Referring to the Comportable guideline for peripheral device functionality, the module rstmgr
has the following hardware interfaces defined
- Primary Clock:
clk_i
- Other Clocks:
clk_aon_i
, clk_io_div4_i
, clk_main_i
, clk_io_i
, clk_io_div2_i
, clk_usb_i
, clk_por_i
- Bus Device Interfaces (TL-UL):
tl
- Bus Host Interfaces (TL-UL): none
- Peripheral Pins for Chip IO: none
- Interrupts: none
Port Name | Package::Struct | Type | Act | Width | Description |
por_n | logic | uni | rcv | 2 | Root power on reset signals from ast. There is one root reset signal for each core power domain. |
pwr | pwr_rst | req_rsp | rsp | 1 | Reset request signals from power manager. Power manager can request for specific domains of the lc/sys reset tree to assert. |
resets | rstmgr_pkg::rstmgr_out | uni | req | 1 | Leaf resets fed to the system. |
rst_en | rstmgr_pkg::rstmgr_rst_en | uni | req | 1 | Low-power-group outputs used by alert handler. |
alert_dump | alert_pkg::alert_crashdump | uni | rcv | 1 | Alert handler crash dump information. |
cpu_dump | rv_core_ibex_pkg::cpu_crash_dump | uni | rcv | 1 | Main processing element crash dump information. |
sw_rst_req | prim_mubi_pkg::mubi4 | uni | req | 1 | Software requested system reset to pwrmgr. |
tl | tlul_pkg::tl | req_rsp | rsp | 1 | |
Alert Name | Description |
fatal_fault | This fatal alert is triggered when a fatal structural fault is detected. Structural faults include errors such as sparse fsm errors and tlul integrity errors. |
fatal_cnsty_fault | This fatal alert is triggered when a reset consistency fault is detected. It is separated from the category above for clearer error collection and debug. |
Countermeasure ID | Description |
RSTMGR.BUS.INTEGRITY | End-to-end bus integrity scheme. |
RSTMGR.SCAN.INTERSIG.MUBI | scan control signals are multibit |
RSTMGR.LEAF.RST.BKGN_CHK | Background consistency checks for each leaf reset. |
RSTMGR.LEAF.RST.SHADOW | Leaf resets to blocks containing shadow registers are shadowed |
RSTMGR.LEAF.FSM.SPARSE | Sparsely encoded fsm for each leaf rst check. The Hamming delta is only 3 as there are a significant number of leaf resets |
RSTMGR.SW_RST.CONFIG.REGWEN | Software reset controls are protected by regwen |
RSTMGR.DUMP_CTRL.CONFIG.REGWEN | Crash dump controls are protected by regwen |
Alert Test Register
- Offset:
0x0
- Reset default:
0x0
- Reset mask:
0x3
Bits | Type | Reset | Name | Description |
31:2 | | | | Reserved |
1 | wo | 0x0 | fatal_cnsty_fault | Write 1 to trigger one alert event of this kind. |
0 | wo | 0x0 | fatal_fault | Write 1 to trigger one alert event of this kind. |
Software requested system reset.
- Offset:
0x4
- Reset default:
0x9
- Reset mask:
0xf
Bits | Type | Reset | Name | Description |
31:4 | | | | Reserved |
3:0 | rw | 0x9 | VAL | When set to kMultiBitBool4True, a reset to power manager is requested. Upon completion of reset, this bit is automatically cleared by hardware. |
Device reset reason.
- Offset:
0x8
- Reset default:
0x1
- Reset mask:
0xff
Indicates when a device has reset due to a hardware requested reset.
The bit mapping is as follows:
b3: sysrst_ctrl_aon: OpenTitan reset request to rstmgr
(running on AON clock).
b4: aon_timer_aon: watchdog reset requestt
b5: pwrmgr_aon: main power glitch reset request
b6: alert_handler: escalation reset request
b7: rv_dm: non-debug-module reset request
Indicates when a device has reset due to RESET_REQ.
Indicates when a device has reset due low power exit.
Indicates when a device has reset due to power up.
Alert write enable
- Offset:
0xc
- Reset default:
0x1
- Reset mask:
0x1
Bits | Type | Reset | Name | Description |
31:1 | | | | Reserved |
0 | rw0c | 0x1 | EN | When 1, ALERT_INFO_CTRL can be modified. |
Alert info dump controls.
- Offset:
0x10
- Reset default:
0x0
- Reset mask:
0xf1
- Register enable:
ALERT_REGWEN
Bits | Type | Reset | Name | Description |
31:8 | | | | Reserved |
7:4 | rw | 0x0 | INDEX | Controls which 32-bit value to read. |
3:1 | | | | Reserved |
0 | rw | 0x0 | EN | Enable alert dump to capture new information. This field is automatically set to 0 upon system reset (even if rstmgr is not reset). |
Alert info dump attributes.
- Offset:
0x14
- Reset default:
0x0
- Reset mask:
0xf
Bits | Type | Reset | Name | Description |
31:4 | | | | Reserved |
3:0 | ro | 0x0 | CNT_AVAIL | The number of 32-bit values contained in the alert info dump. |
Alert dump information prior to last reset.
Which value read is controlled by the ALERT_INFO_CTRL
register.
- Offset:
0x18
- Reset default:
0x0
- Reset mask:
0xffffffff
Bits | Type | Reset | Name | Description |
31:0 | ro | 0x0 | VALUE | The current 32-bit value of crash dump. |
Cpu write enable
- Offset:
0x1c
- Reset default:
0x1
- Reset mask:
0x1
Bits | Type | Reset | Name | Description |
31:1 | | | | Reserved |
0 | rw0c | 0x1 | EN | When 1, CPU_INFO_CTRL can be modified. |
Cpu info dump controls.
- Offset:
0x20
- Reset default:
0x0
- Reset mask:
0xf1
- Register enable:
CPU_REGWEN
Bits | Type | Reset | Name | Description |
31:8 | | | | Reserved |
7:4 | rw | 0x0 | INDEX | Controls which 32-bit value to read. |
3:1 | | | | Reserved |
0 | rw | 0x0 | EN | Enable cpu dump to capture new information. This field is automatically set to 0 upon system reset (even if rstmgr is not reset). |
Cpu info dump attributes.
- Offset:
0x24
- Reset default:
0x0
- Reset mask:
0xf
Bits | Type | Reset | Name | Description |
31:4 | | | | Reserved |
3:0 | ro | 0x0 | CNT_AVAIL | The number of 32-bit values contained in the cpu info dump. |
Cpu dump information prior to last reset.
Which value read is controlled by the CPU_INFO_CTRL
register.
- Offset:
0x28
- Reset default:
0x0
- Reset mask:
0xffffffff
Bits | Type | Reset | Name | Description |
31:0 | ro | 0x0 | VALUE | The current 32-bit value of crash dump. |
Register write enable for software controllable resets.
When a particular bit value is 0, the corresponding value in SW_RST_CTRL_N
can no longer be changed.
When a particular bit value is 1, the corresponding value in SW_RST_CTRL_N
can be changed.
- Reset default:
0x1
- Reset mask:
0x1
Name | Offset |
SW_RST_REGWEN_0 | 0x2c |
SW_RST_REGWEN_1 | 0x30 |
SW_RST_REGWEN_2 | 0x34 |
SW_RST_REGWEN_3 | 0x38 |
SW_RST_REGWEN_4 | 0x3c |
SW_RST_REGWEN_5 | 0x40 |
SW_RST_REGWEN_6 | 0x44 |
SW_RST_REGWEN_7 | 0x48 |
Bits | Type | Reset | Name | Description |
31:1 | | | | Reserved |
0 | rw0c | 0x1 | EN | Register write enable for software controllable resets |
Software controllable resets.
When a particular bit value is 0, the corresponding module is held in reset.
When a particular bit value is 1, the corresponding module is not held in reset.
- Reset default:
0x1
- Reset mask:
0x1
Name | Offset |
SW_RST_CTRL_N_0 | 0x4c |
SW_RST_CTRL_N_1 | 0x50 |
SW_RST_CTRL_N_2 | 0x54 |
SW_RST_CTRL_N_3 | 0x58 |
SW_RST_CTRL_N_4 | 0x5c |
SW_RST_CTRL_N_5 | 0x60 |
SW_RST_CTRL_N_6 | 0x64 |
SW_RST_CTRL_N_7 | 0x68 |
Bits | Type | Reset | Name | Description |
31:1 | | | | Reserved |
0 | rw | 0x1 | VAL | Software reset value |
A bit vector of all the errors that have occurred in reset manager
- Offset:
0x6c
- Reset default:
0x0
- Reset mask:
0x7
Bits | Type | Reset | Name | Description |
31:3 | | | | Reserved |
2 | ro | 0x0 | FSM_ERR | Sparsely encoded fsm error. |
1 | ro | 0x0 | RESET_CONSISTENCY_ERR | A inconsistent parent / child reset was observed. |
0 | ro | 0x0 | REG_INTG_ERR | The register file has experienced an integrity error. |