58// 0x00ff0000 [23:16] MISO (-) SBPI MISO (master in - slave out): response from SBPI
59// 0x00001000 [12] FLAG (-) SBPI flag
60// 0x00000100 [8] INSTR_MISS (0) Last instruction missed (dropped), as the previous has...
61// 0x00000010 [4] INSTR_DONE (0) Last instruction done
62// 0x00000001 [0] RDATA_VLD (0) Read command has returned data
63 io_rw_32 sbpi_status;
64
65 _REG_(OTP_USR_OFFSET) // OTP_USR
66// Controls for APB data read interface (USER interface)
67// 0x00000010 [4] PD (0) Power-down; 1 disables current reference
68// 0x00000001 [0] DCTRL (1) 1 enables USER interface; 0 disables USER interface...
69 io_rw_32 usr;
70
71 _REG_(OTP_DBG_OFFSET) // OTP_DBG
72// Debug for OTP power-on state machine
73// 0x00001000 [12] CUSTOMER_RMA_FLAG (-) The chip is in RMA mode
74// 0x000000f0 [7:4] PSM_STATE (-) Monitor the PSM FSM's state
75// 0x00000008 [3] ROSC_UP (-) Ring oscillator is up and running
76// 0x00000004 [2] ROSC_UP_SEEN (0) Ring oscillator was seen up and running
77// 0x00000002 [1] BOOT_DONE (-) PSM boot done status flag
78// 0x00000001 [0] PSM_DONE (-) PSM done status flag
79 io_rw_32 dbg;
80
81 uint32_t _pad0;
82
83 _REG_(OTP_BIST_OFFSET) // OTP_BIST
84// During BIST, count address locations that have at least one leaky bit
85// 0x40000000 [30] CNT_FAIL (-) Flag if the count of address locations with at least one...
86// 0x20000000 [29] CNT_CLR (0) Clear counter before use
87// 0x10000000 [28] CNT_ENA (0) Enable the counter before the BIST function is initiated
88// 0x0fff0000 [27:16] CNT_MAX (0xfff) The cnt_fail flag will be set if the number of leaky...
89// 0x00001fff [12:0] CNT (-) Number of locations that have at least one leaky bit
90 io_rw_32 bist;
91
92// (Description copied from array index 0 register OTP_CRT_KEY_W0 applies similarly to other array indexes)
93 _REG_(OTP_CRT_KEY_W0_OFFSET) // OTP_CRT_KEY_W0
94// Word 0 (bits 31
95// 0xffffffff [31:0] CRT_KEY_W0 (0x00000000)
96 io_wo_32 crt_key_w[4];
97
98 _REG_(OTP_CRITICAL_OFFSET) // OTP_CRITICAL
99// Quickly check values of critical flags read during boot up
100// 0x00020000 [17] RISCV_DISABLE (0)
101// 0x00010000 [16] ARM_DISABLE (0)
102// 0x00000060 [6:5] GLITCH_DETECTOR_SENS (0x0)
103// 0x00000010 [4] GLITCH_DETECTOR_ENABLE (0)
104// 0x00000008 [3] DEFAULT_ARCHSEL (0)
105// 0x00000004 [2] DEBUG_DISABLE (0)
106// 0x00000002 [1] SECURE_DEBUG_DISABLE (0)
107// 0x00000001 [0] SECURE_BOOT_ENABLE (0)
108 io_ro_32 critical;
109
110 _REG_(OTP_KEY_VALID_OFFSET) // OTP_KEY_VALID
111// Which keys were valid (enrolled) at boot time
112// 0x000000ff [7:0] KEY_VALID (0x00)
113 io_ro_32 key_valid;
114
115 _REG_(OTP_DEBUGEN_OFFSET) // OTP_DEBUGEN
116// Enable a debug feature that has been disabled. Debug features are disabled if one of the relevant critical boot flags is set in OTP (DEBUG_DISABLE or SECURE_DEBUG_DISABLE), OR if a debug key is marked valid in OTP, and the matching key value has not been supplied over SWD.
117// 0x00000100 [8] MISC (0) Enable other debug components
125// Write 1s to lock corresponding bits in DEBUGEN
126// 0x00000100 [8] MISC (0) Write 1 to lock the MISC bit of DEBUGEN
127// 0x00000008 [3] PROC1_SECURE (0) Write 1 to lock the PROC1_SECURE bit of DEBUGEN
128// 0x00000004 [2] PROC1 (0) Write 1 to lock the PROC1 bit of DEBUGEN
129// 0x00000002 [1] PROC0_SECURE (0) Write 1 to lock the PROC0_SECURE bit of DEBUGEN
130// 0x00000001 [0] PROC0 (0) Write 1 to lock the PROC0 bit of DEBUGEN
131 io_rw_32 debugen_lock;
132
133 _REG_(OTP_ARCHSEL_OFFSET) // OTP_ARCHSEL
134// Architecture select (Arm/RISC-V), applied on next processor reset. The default and allowable values of this register are constrained by the critical boot flags.
135// 0x00000002 [1] CORE1 (0) Select architecture for core 1
136// 0x00000001 [0] CORE0 (0) Select architecture for core 0