diff --git a/config/src/lib.rs b/config/src/lib.rs
index 08308c6..636ef84 100644
--- a/config/src/lib.rs
+++ b/config/src/lib.rs
@@ -38,5 +38,7 @@
 pub const MAILBOX_RTIRQ: u32 = 188; // kTopMatchaPlicIrqIdMailboxSecRtirq
 pub const MAILBOX_EIRQ: u32 = 189; // kTopMatchaPlicIrqIdMailboxSecEirq
 
+pub const RV_CORE_IBEX_SEC_CFG_BASE_ADDRESS: u32 = 0x411F_0000; // TOP_MATCHA_RV_CORE_IBEX_SEC_CFG_BASE_ADDRESS
+
 pub const UART0_BASE_ADDRESS: u32 = 0x40000000; // TOP_MATCHA_UART0_BASE_ADDR
 pub const UART0_BAUDRATE: u32 = 115200;
diff --git a/hal/src/lib.rs b/hal/src/lib.rs
index 4cd367b..20c518c 100644
--- a/hal/src/lib.rs
+++ b/hal/src/lib.rs
@@ -9,6 +9,7 @@
 pub mod mailbox_hal;
 pub mod plic_constants;
 pub mod plic_hal;
+pub mod rv_core_ibex_hal;
 pub mod timer_hal;
 pub mod uart_hal;
 
diff --git a/hal/src/rv_core_ibex_hal.rs b/hal/src/rv_core_ibex_hal.rs
new file mode 100644
index 0000000..a2eeecb
--- /dev/null
+++ b/hal/src/rv_core_ibex_hal.rs
@@ -0,0 +1,155 @@
+// Generated register constants for RV_CORE_IBEX.
+// This file is licensed under either of:
+//   Apache License, Version 2.0 (LICENSE-APACHE <http://www.apache.org/licenses/LICENSE-2.0>)
+//   MIT License (LICENSE-MIT <http://opensource.org/licenses/MIT>)
+
+// Build date: 2023-02-22T20:24:05.302615
+
+// Original reference file: ./hw/opentitan-upstream/hw/ip/rv_core_ibex/data/rv_core_ibex.hjson
+use kernel::common::registers::{
+    register_bitfields, register_structs, ReadWrite
+};
+use kernel::common::StaticRef;
+// Number of software triggerable alerts
+pub const RV_CORE_IBEX_PARAM_NUM_SW_ALERTS: u32 = 2;
+// Number of translatable regions per ibex bus
+pub const RV_CORE_IBEX_PARAM_NUM_REGIONS: u32 = 2;
+// Number of scratch words maintained.
+pub const RV_CORE_IBEX_PARAM_NUM_SCRATCH_WORDS: u32 = 8;
+// Number of alerts
+pub const RV_CORE_IBEX_PARAM_NUM_ALERTS: u32 = 4;
+// Register width
+pub const RV_CORE_IBEX_PARAM_REG_WIDTH: u32 = 32;
+
+pub const RV_CORE_IBEX_SEC_REGISTERS: StaticRef<RvCoreIbexRegisters> =
+    unsafe { StaticRef::new(matcha_config::RV_CORE_IBEX_SEC_CFG_BASE_ADDRESS as *const RvCoreIbexRegisters) };
+pub static mut RV_CORE_IBEX_SEC: RvCoreIbex = RvCoreIbex::new(RV_CORE_IBEX_SEC_REGISTERS);
+
+register_structs! {
+    pub RvCoreIbexRegisters {
+        // Alert Test Register
+        (0x0000 => pub(crate) alert_test: ReadWrite<u32, ALERT_TEST::Register>),
+        // Software recoverable error
+        (0x0004 => pub(crate) sw_recov_err: ReadWrite<u32, SW_RECOV_ERR::Register>),
+        // Software fatal error
+        (0x0008 => pub(crate) sw_fatal_err: ReadWrite<u32, SW_FATAL_ERR::Register>),
+        // Ibus address control regwen.
+        (0x000c => pub(crate) ibus_regwen: [ReadWrite<u32, IBUS_REGWEN::Register>; 2]),
+        //   Enable Ibus address matching
+        (0x0014 => pub(crate) ibus_addr_en: [ReadWrite<u32, IBUS_ADDR_EN::Register>; 2]),
+        //   Matching region programming for ibus.
+        (0x001c => pub(crate) ibus_addr_matching: [ReadWrite<u32, IBUS_ADDR_MATCHING::Register>; 2]),
+        //   The remap address after a match has been made.
+        (0x0024 => pub(crate) ibus_remap_addr: [ReadWrite<u32, IBUS_REMAP_ADDR::Register>; 2]),
+        // Dbus address control regwen.
+        (0x002c => pub(crate) dbus_regwen: [ReadWrite<u32, DBUS_REGWEN::Register>; 2]),
+        //   Enable dbus address matching
+        (0x0034 => pub(crate) dbus_addr_en: [ReadWrite<u32, DBUS_ADDR_EN::Register>; 2]),
+        //   See !!IBUS_ADDR_MATCHING_0 for detailed description.
+        (0x003c => pub(crate) dbus_addr_matching: [ReadWrite<u32, DBUS_ADDR_MATCHING::Register>; 2]),
+        //   See !!IBUS_REMAP_ADDR_0 for a detailed description.
+        (0x0044 => pub(crate) dbus_remap_addr: [ReadWrite<u32, DBUS_REMAP_ADDR::Register>; 2]),
+        // Enable mask for NMI.
+        (0x004c => pub(crate) nmi_enable: ReadWrite<u32, NMI_ENABLE::Register>),
+        // Current NMI state
+        (0x0050 => pub(crate) nmi_state: ReadWrite<u32, NMI_STATE::Register>),
+        // error status
+        (0x0054 => pub(crate) err_status: ReadWrite<u32, ERR_STATUS::Register>),
+        // Random data from EDN
+        (0x0058 => pub(crate) rnd_data: ReadWrite<u32, RND_DATA::Register>),
+        // Status of random data in !!RND_DATA
+        (0x005c => pub(crate) rnd_status: ReadWrite<u32, RND_STATUS::Register>),
+        // FPGA build timestamp info.
+        (0x0060 => pub(crate) fpga_info: ReadWrite<u32, FPGA_INFO::Register>),
+        // Memory area: Exposed tlul window for DV only purposes.
+        (0x0080 => pub(crate) dv_sim_window: [ReadWrite<u32>; 8]),
+        (0x00a0 => @END),
+    }
+}
+
+register_bitfields![u32,
+    pub(crate) ALERT_TEST [
+        FATAL_SW_ERR OFFSET(0) NUMBITS(1) [],
+        RECOV_SW_ERR OFFSET(1) NUMBITS(1) [],
+        FATAL_HW_ERR OFFSET(2) NUMBITS(1) [],
+        RECOV_HW_ERR OFFSET(3) NUMBITS(1) []
+    ],
+    pub(crate) SW_RECOV_ERR [
+        VAL OFFSET(0) NUMBITS(4) []
+    ],
+    pub(crate) SW_FATAL_ERR [
+        VAL OFFSET(0) NUMBITS(4) []
+    ],
+    pub(crate) IBUS_REGWEN [
+        EN_0 OFFSET(0) NUMBITS(1) [
+            LOCKED = 0,
+            ENABLED = 1
+        ]
+    ],
+    pub(crate) IBUS_ADDR_EN [
+        IBUS_ADDR_EN OFFSET(0) NUMBITS(1) []
+    ],
+    pub(crate) IBUS_ADDR_MATCHING [
+        IBUS_ADDR_MATCHING OFFSET(0) NUMBITS(32) []
+    ],
+    pub(crate) IBUS_REMAP_ADDR [
+        IBUS_REMAP_ADDR OFFSET(0) NUMBITS(32) []
+    ],
+    pub(crate) DBUS_REGWEN [
+        EN_0 OFFSET(0) NUMBITS(1) [
+            LOCKED = 0,
+            ENABLED = 1
+        ]
+    ],
+    pub(crate) DBUS_ADDR_EN [
+        EN_0 OFFSET(0) NUMBITS(1) []
+    ],
+    pub(crate) DBUS_ADDR_MATCHING [
+        DEBUS_ADDR_MATCHING OFFSET(0) NUMBITS(32) []
+    ],
+    pub(crate) DBUS_REMAP_ADDR [
+        DBUS_REMAP_ADDR OFFSET(0) NUMBITS(32) []
+    ],
+    pub(crate) NMI_ENABLE [
+        ALERT_EN OFFSET(0) NUMBITS(1) [],
+        WDOG_EN OFFSET(1) NUMBITS(1) []
+    ],
+    pub(crate) NMI_STATE [
+        ALERT OFFSET(0) NUMBITS(1) [],
+        WDOG OFFSET(1) NUMBITS(1) []
+    ],
+    pub(crate) ERR_STATUS [
+        REG_INTG_ERR OFFSET(0) NUMBITS(1) [],
+        FATAL_INTG_ERR OFFSET(8) NUMBITS(1) [],
+        FATAL_CORE_ERR OFFSET(9) NUMBITS(1) [],
+        RECOV_CORE_ERR OFFSET(10) NUMBITS(1) []
+    ],
+    pub(crate) RND_DATA [
+        RND_DATA OFFSET(0) NUMBITS(32) []
+    ],
+    pub(crate) RND_STATUS [
+        RND_DATA_VALID OFFSET(0) NUMBITS(1) [],
+        RND_DATA_FIPS OFFSET(1) NUMBITS(1) []
+    ],
+    pub(crate) FPGA_INFO [
+        FPGA_INFO OFFSET(0) NUMBITS(32) []
+    ]
+];
+
+// End generated register constants for RV_CORE_IBEX
+
+pub struct RvCoreIbex {
+    registers: StaticRef<RvCoreIbexRegisters>,
+}
+
+impl RvCoreIbex {
+    pub const fn new(base: StaticRef<RvCoreIbexRegisters>) -> RvCoreIbex {
+        RvCoreIbex {
+            registers: base,
+        }
+    }
+
+    pub fn fpga_version(&self) -> u32 {
+        self.registers.fpga_info.get()
+    }
+}
