1use kernel::utilities::registers::ReadOnly;
13use kernel::utilities::registers::ReadWrite;
14use kernel::utilities::registers::{register_bitfields, register_structs};
15pub const OTP_CTRL_PARAM_NUM_SRAM_KEY_REQ_SLOTS: u32 = 3;
17pub const OTP_CTRL_PARAM_OTP_BYTE_ADDR_WIDTH: u32 = 11;
19pub const OTP_CTRL_PARAM_NUM_ERROR_ENTRIES: u32 = 10;
21pub const OTP_CTRL_PARAM_NUM_DAI_WORDS: u32 = 2;
23pub const OTP_CTRL_PARAM_NUM_DIGEST_WORDS: u32 = 2;
25pub const OTP_CTRL_PARAM_NUM_SW_CFG_WINDOW_WORDS: u32 = 512;
28pub const OTP_CTRL_PARAM_NUM_PART: u32 = 8;
30pub const OTP_CTRL_PARAM_VENDOR_TEST_OFFSET: usize = 0;
32pub const OTP_CTRL_PARAM_VENDOR_TEST_SIZE: u32 = 64;
34pub const OTP_CTRL_PARAM_SCRATCH_OFFSET: usize = 0;
36pub const OTP_CTRL_PARAM_SCRATCH_SIZE: u32 = 56;
38pub const OTP_CTRL_PARAM_VENDOR_TEST_DIGEST_OFFSET: usize = 56;
40pub const OTP_CTRL_PARAM_VENDOR_TEST_DIGEST_SIZE: u32 = 8;
42pub const OTP_CTRL_PARAM_CREATOR_SW_CFG_OFFSET: usize = 64;
44pub const OTP_CTRL_PARAM_CREATOR_SW_CFG_SIZE: u32 = 800;
46pub const OTP_CTRL_PARAM_CREATOR_SW_CFG_AST_CFG_OFFSET: usize = 64;
48pub const OTP_CTRL_PARAM_CREATOR_SW_CFG_AST_CFG_SIZE: u32 = 156;
50pub const OTP_CTRL_PARAM_CREATOR_SW_CFG_AST_INIT_EN_OFFSET: usize = 220;
52pub const OTP_CTRL_PARAM_CREATOR_SW_CFG_AST_INIT_EN_SIZE: u32 = 4;
54pub const OTP_CTRL_PARAM_CREATOR_SW_CFG_ROM_EXT_SKU_OFFSET: usize = 224;
56pub const OTP_CTRL_PARAM_CREATOR_SW_CFG_ROM_EXT_SKU_SIZE: u32 = 4;
58pub const OTP_CTRL_PARAM_CREATOR_SW_CFG_SIGVERIFY_RSA_MOD_EXP_IBEX_EN_OFFSET: usize = 228;
60pub const OTP_CTRL_PARAM_CREATOR_SW_CFG_SIGVERIFY_RSA_MOD_EXP_IBEX_EN_SIZE: u32 = 4;
62pub const OTP_CTRL_PARAM_CREATOR_SW_CFG_SIGVERIFY_RSA_KEY_EN_OFFSET: usize = 232;
64pub const OTP_CTRL_PARAM_CREATOR_SW_CFG_SIGVERIFY_RSA_KEY_EN_SIZE: u32 = 8;
66pub const OTP_CTRL_PARAM_CREATOR_SW_CFG_SIGVERIFY_SPX_EN_OFFSET: usize = 240;
68pub const OTP_CTRL_PARAM_CREATOR_SW_CFG_SIGVERIFY_SPX_EN_SIZE: u32 = 4;
70pub const OTP_CTRL_PARAM_CREATOR_SW_CFG_SIGVERIFY_SPX_KEY_EN_OFFSET: usize = 244;
72pub const OTP_CTRL_PARAM_CREATOR_SW_CFG_SIGVERIFY_SPX_KEY_EN_SIZE: u32 = 8;
74pub const OTP_CTRL_PARAM_CREATOR_SW_CFG_FLASH_DATA_DEFAULT_CFG_OFFSET: usize = 252;
76pub const OTP_CTRL_PARAM_CREATOR_SW_CFG_FLASH_DATA_DEFAULT_CFG_SIZE: u32 = 4;
78pub const OTP_CTRL_PARAM_CREATOR_SW_CFG_FLASH_INFO_BOOT_DATA_CFG_OFFSET: usize = 256;
80pub const OTP_CTRL_PARAM_CREATOR_SW_CFG_FLASH_INFO_BOOT_DATA_CFG_SIZE: u32 = 4;
82pub const OTP_CTRL_PARAM_CREATOR_SW_CFG_FLASH_HW_INFO_CFG_OVERRIDE_OFFSET: usize = 260;
84pub const OTP_CTRL_PARAM_CREATOR_SW_CFG_FLASH_HW_INFO_CFG_OVERRIDE_SIZE: u32 = 4;
86pub const OTP_CTRL_PARAM_CREATOR_SW_CFG_RNG_EN_OFFSET: usize = 264;
88pub const OTP_CTRL_PARAM_CREATOR_SW_CFG_RNG_EN_SIZE: u32 = 4;
90pub const OTP_CTRL_PARAM_CREATOR_SW_CFG_JITTER_EN_OFFSET: usize = 268;
92pub const OTP_CTRL_PARAM_CREATOR_SW_CFG_JITTER_EN_SIZE: u32 = 4;
94pub const OTP_CTRL_PARAM_CREATOR_SW_CFG_RET_RAM_RESET_MASK_OFFSET: usize = 272;
96pub const OTP_CTRL_PARAM_CREATOR_SW_CFG_RET_RAM_RESET_MASK_SIZE: u32 = 4;
98pub const OTP_CTRL_PARAM_CREATOR_SW_CFG_MANUF_STATE_OFFSET: usize = 276;
100pub const OTP_CTRL_PARAM_CREATOR_SW_CFG_MANUF_STATE_SIZE: u32 = 4;
102pub const OTP_CTRL_PARAM_CREATOR_SW_CFG_ROM_EXEC_EN_OFFSET: usize = 280;
104pub const OTP_CTRL_PARAM_CREATOR_SW_CFG_ROM_EXEC_EN_SIZE: u32 = 4;
106pub const OTP_CTRL_PARAM_CREATOR_SW_CFG_CPUCTRL_OFFSET: usize = 284;
108pub const OTP_CTRL_PARAM_CREATOR_SW_CFG_CPUCTRL_SIZE: u32 = 4;
110pub const OTP_CTRL_PARAM_CREATOR_SW_CFG_MIN_SEC_VER_ROM_EXT_OFFSET: usize = 288;
112pub const OTP_CTRL_PARAM_CREATOR_SW_CFG_MIN_SEC_VER_ROM_EXT_SIZE: u32 = 4;
114pub const OTP_CTRL_PARAM_CREATOR_SW_CFG_MIN_SEC_VER_BL0_OFFSET: usize = 292;
116pub const OTP_CTRL_PARAM_CREATOR_SW_CFG_MIN_SEC_VER_BL0_SIZE: u32 = 4;
118pub const OTP_CTRL_PARAM_CREATOR_SW_CFG_DEFAULT_BOOT_DATA_IN_PROD_EN_OFFSET: usize = 296;
120pub const OTP_CTRL_PARAM_CREATOR_SW_CFG_DEFAULT_BOOT_DATA_IN_PROD_EN_SIZE: u32 = 4;
122pub const OTP_CTRL_PARAM_CREATOR_SW_CFG_RMA_SPIN_EN_OFFSET: usize = 300;
124pub const OTP_CTRL_PARAM_CREATOR_SW_CFG_RMA_SPIN_EN_SIZE: u32 = 4;
126pub const OTP_CTRL_PARAM_CREATOR_SW_CFG_RMA_SPIN_CYCLES_OFFSET: usize = 304;
128pub const OTP_CTRL_PARAM_CREATOR_SW_CFG_RMA_SPIN_CYCLES_SIZE: u32 = 4;
130pub const OTP_CTRL_PARAM_CREATOR_SW_CFG_RNG_REPCNT_THRESHOLDS_OFFSET: usize = 308;
132pub const OTP_CTRL_PARAM_CREATOR_SW_CFG_RNG_REPCNT_THRESHOLDS_SIZE: u32 = 4;
134pub const OTP_CTRL_PARAM_CREATOR_SW_CFG_RNG_REPCNTS_THRESHOLDS_OFFSET: usize = 312;
136pub const OTP_CTRL_PARAM_CREATOR_SW_CFG_RNG_REPCNTS_THRESHOLDS_SIZE: u32 = 4;
138pub const OTP_CTRL_PARAM_CREATOR_SW_CFG_RNG_ADAPTP_HI_THRESHOLDS_OFFSET: usize = 316;
140pub const OTP_CTRL_PARAM_CREATOR_SW_CFG_RNG_ADAPTP_HI_THRESHOLDS_SIZE: u32 = 4;
142pub const OTP_CTRL_PARAM_CREATOR_SW_CFG_RNG_ADAPTP_LO_THRESHOLDS_OFFSET: usize = 320;
144pub const OTP_CTRL_PARAM_CREATOR_SW_CFG_RNG_ADAPTP_LO_THRESHOLDS_SIZE: u32 = 4;
146pub const OTP_CTRL_PARAM_CREATOR_SW_CFG_RNG_BUCKET_THRESHOLDS_OFFSET: usize = 324;
148pub const OTP_CTRL_PARAM_CREATOR_SW_CFG_RNG_BUCKET_THRESHOLDS_SIZE: u32 = 4;
150pub const OTP_CTRL_PARAM_CREATOR_SW_CFG_RNG_MARKOV_HI_THRESHOLDS_OFFSET: usize = 328;
152pub const OTP_CTRL_PARAM_CREATOR_SW_CFG_RNG_MARKOV_HI_THRESHOLDS_SIZE: u32 = 4;
154pub const OTP_CTRL_PARAM_CREATOR_SW_CFG_RNG_MARKOV_LO_THRESHOLDS_OFFSET: usize = 332;
156pub const OTP_CTRL_PARAM_CREATOR_SW_CFG_RNG_MARKOV_LO_THRESHOLDS_SIZE: u32 = 4;
158pub const OTP_CTRL_PARAM_CREATOR_SW_CFG_RNG_EXTHT_HI_THRESHOLDS_OFFSET: usize = 336;
160pub const OTP_CTRL_PARAM_CREATOR_SW_CFG_RNG_EXTHT_HI_THRESHOLDS_SIZE: u32 = 4;
162pub const OTP_CTRL_PARAM_CREATOR_SW_CFG_RNG_EXTHT_LO_THRESHOLDS_OFFSET: usize = 340;
164pub const OTP_CTRL_PARAM_CREATOR_SW_CFG_RNG_EXTHT_LO_THRESHOLDS_SIZE: u32 = 4;
166pub const OTP_CTRL_PARAM_CREATOR_SW_CFG_RNG_ALERT_THRESHOLD_OFFSET: usize = 344;
168pub const OTP_CTRL_PARAM_CREATOR_SW_CFG_RNG_ALERT_THRESHOLD_SIZE: u32 = 4;
170pub const OTP_CTRL_PARAM_CREATOR_SW_CFG_RNG_HEALTH_CONFIG_DIGEST_OFFSET: usize = 348;
172pub const OTP_CTRL_PARAM_CREATOR_SW_CFG_RNG_HEALTH_CONFIG_DIGEST_SIZE: u32 = 4;
174pub const OTP_CTRL_PARAM_CREATOR_SW_CFG_SRAM_KEY_RENEW_EN_OFFSET: usize = 352;
176pub const OTP_CTRL_PARAM_CREATOR_SW_CFG_SRAM_KEY_RENEW_EN_SIZE: u32 = 4;
178pub const OTP_CTRL_PARAM_CREATOR_SW_CFG_DIGEST_OFFSET: usize = 856;
180pub const OTP_CTRL_PARAM_CREATOR_SW_CFG_DIGEST_SIZE: u32 = 8;
182pub const OTP_CTRL_PARAM_OWNER_SW_CFG_OFFSET: usize = 864;
184pub const OTP_CTRL_PARAM_OWNER_SW_CFG_SIZE: u32 = 800;
186pub const OTP_CTRL_PARAM_OWNER_SW_CFG_ROM_ERROR_REPORTING_OFFSET: usize = 864;
188pub const OTP_CTRL_PARAM_OWNER_SW_CFG_ROM_ERROR_REPORTING_SIZE: u32 = 4;
190pub const OTP_CTRL_PARAM_OWNER_SW_CFG_ROM_BOOTSTRAP_DIS_OFFSET: usize = 868;
192pub const OTP_CTRL_PARAM_OWNER_SW_CFG_ROM_BOOTSTRAP_DIS_SIZE: u32 = 4;
194pub const OTP_CTRL_PARAM_OWNER_SW_CFG_ROM_ALERT_CLASS_EN_OFFSET: usize = 872;
196pub const OTP_CTRL_PARAM_OWNER_SW_CFG_ROM_ALERT_CLASS_EN_SIZE: u32 = 4;
198pub const OTP_CTRL_PARAM_OWNER_SW_CFG_ROM_ALERT_ESCALATION_OFFSET: usize = 876;
200pub const OTP_CTRL_PARAM_OWNER_SW_CFG_ROM_ALERT_ESCALATION_SIZE: u32 = 4;
202pub const OTP_CTRL_PARAM_OWNER_SW_CFG_ROM_ALERT_CLASSIFICATION_OFFSET: usize = 880;
204pub const OTP_CTRL_PARAM_OWNER_SW_CFG_ROM_ALERT_CLASSIFICATION_SIZE: u32 = 320;
206pub const OTP_CTRL_PARAM_OWNER_SW_CFG_ROM_LOCAL_ALERT_CLASSIFICATION_OFFSET: usize = 1200;
208pub const OTP_CTRL_PARAM_OWNER_SW_CFG_ROM_LOCAL_ALERT_CLASSIFICATION_SIZE: u32 = 64;
210pub const OTP_CTRL_PARAM_OWNER_SW_CFG_ROM_ALERT_ACCUM_THRESH_OFFSET: usize = 1264;
212pub const OTP_CTRL_PARAM_OWNER_SW_CFG_ROM_ALERT_ACCUM_THRESH_SIZE: u32 = 16;
214pub const OTP_CTRL_PARAM_OWNER_SW_CFG_ROM_ALERT_TIMEOUT_CYCLES_OFFSET: usize = 1280;
216pub const OTP_CTRL_PARAM_OWNER_SW_CFG_ROM_ALERT_TIMEOUT_CYCLES_SIZE: u32 = 16;
218pub const OTP_CTRL_PARAM_OWNER_SW_CFG_ROM_ALERT_PHASE_CYCLES_OFFSET: usize = 1296;
220pub const OTP_CTRL_PARAM_OWNER_SW_CFG_ROM_ALERT_PHASE_CYCLES_SIZE: u32 = 64;
222pub const OTP_CTRL_PARAM_OWNER_SW_CFG_ROM_ALERT_DIGEST_PROD_OFFSET: usize = 1360;
224pub const OTP_CTRL_PARAM_OWNER_SW_CFG_ROM_ALERT_DIGEST_PROD_SIZE: u32 = 4;
226pub const OTP_CTRL_PARAM_OWNER_SW_CFG_ROM_ALERT_DIGEST_PROD_END_OFFSET: usize = 1364;
228pub const OTP_CTRL_PARAM_OWNER_SW_CFG_ROM_ALERT_DIGEST_PROD_END_SIZE: u32 = 4;
230pub const OTP_CTRL_PARAM_OWNER_SW_CFG_ROM_ALERT_DIGEST_DEV_OFFSET: usize = 1368;
232pub const OTP_CTRL_PARAM_OWNER_SW_CFG_ROM_ALERT_DIGEST_DEV_SIZE: u32 = 4;
234pub const OTP_CTRL_PARAM_OWNER_SW_CFG_ROM_ALERT_DIGEST_RMA_OFFSET: usize = 1372;
236pub const OTP_CTRL_PARAM_OWNER_SW_CFG_ROM_ALERT_DIGEST_RMA_SIZE: u32 = 4;
238pub const OTP_CTRL_PARAM_OWNER_SW_CFG_ROM_WATCHDOG_BITE_THRESHOLD_CYCLES_OFFSET: usize = 1376;
240pub const OTP_CTRL_PARAM_OWNER_SW_CFG_ROM_WATCHDOG_BITE_THRESHOLD_CYCLES_SIZE: u32 = 4;
242pub const OTP_CTRL_PARAM_OWNER_SW_CFG_ROM_KEYMGR_ROM_EXT_MEAS_EN_OFFSET: usize = 1380;
244pub const OTP_CTRL_PARAM_OWNER_SW_CFG_ROM_KEYMGR_ROM_EXT_MEAS_EN_SIZE: u32 = 4;
246pub const OTP_CTRL_PARAM_OWNER_SW_CFG_MANUF_STATE_OFFSET: usize = 1384;
248pub const OTP_CTRL_PARAM_OWNER_SW_CFG_MANUF_STATE_SIZE: u32 = 4;
250pub const OTP_CTRL_PARAM_OWNER_SW_CFG_ROM_RSTMGR_INFO_EN_OFFSET: usize = 1388;
252pub const OTP_CTRL_PARAM_OWNER_SW_CFG_ROM_RSTMGR_INFO_EN_SIZE: u32 = 4;
254pub const OTP_CTRL_PARAM_OWNER_SW_CFG_DIGEST_OFFSET: usize = 1656;
256pub const OTP_CTRL_PARAM_OWNER_SW_CFG_DIGEST_SIZE: u32 = 8;
258pub const OTP_CTRL_PARAM_HW_CFG_OFFSET: usize = 1664;
260pub const OTP_CTRL_PARAM_HW_CFG_SIZE: u32 = 80;
262pub const OTP_CTRL_PARAM_DEVICE_ID_OFFSET: usize = 1664;
264pub const OTP_CTRL_PARAM_DEVICE_ID_SIZE: u32 = 32;
266pub const OTP_CTRL_PARAM_MANUF_STATE_OFFSET: usize = 1696;
268pub const OTP_CTRL_PARAM_MANUF_STATE_SIZE: u32 = 32;
270pub const OTP_CTRL_PARAM_EN_SRAM_IFETCH_OFFSET: usize = 1728;
272pub const OTP_CTRL_PARAM_EN_SRAM_IFETCH_SIZE: u32 = 1;
274pub const OTP_CTRL_PARAM_EN_CSRNG_SW_APP_READ_OFFSET: usize = 1729;
276pub const OTP_CTRL_PARAM_EN_CSRNG_SW_APP_READ_SIZE: u32 = 1;
278pub const OTP_CTRL_PARAM_EN_ENTROPY_SRC_FW_READ_OFFSET: usize = 1730;
280pub const OTP_CTRL_PARAM_EN_ENTROPY_SRC_FW_READ_SIZE: u32 = 1;
282pub const OTP_CTRL_PARAM_EN_ENTROPY_SRC_FW_OVER_OFFSET: usize = 1731;
284pub const OTP_CTRL_PARAM_EN_ENTROPY_SRC_FW_OVER_SIZE: u32 = 1;
286pub const OTP_CTRL_PARAM_HW_CFG_DIGEST_OFFSET: usize = 1736;
288pub const OTP_CTRL_PARAM_HW_CFG_DIGEST_SIZE: u32 = 8;
290pub const OTP_CTRL_PARAM_SECRET0_OFFSET: usize = 1744;
292pub const OTP_CTRL_PARAM_SECRET0_SIZE: u32 = 40;
294pub const OTP_CTRL_PARAM_TEST_UNLOCK_TOKEN_OFFSET: usize = 1744;
296pub const OTP_CTRL_PARAM_TEST_UNLOCK_TOKEN_SIZE: u32 = 16;
298pub const OTP_CTRL_PARAM_TEST_EXIT_TOKEN_OFFSET: usize = 1760;
300pub const OTP_CTRL_PARAM_TEST_EXIT_TOKEN_SIZE: u32 = 16;
302pub const OTP_CTRL_PARAM_SECRET0_DIGEST_OFFSET: usize = 1776;
304pub const OTP_CTRL_PARAM_SECRET0_DIGEST_SIZE: u32 = 8;
306pub const OTP_CTRL_PARAM_SECRET1_OFFSET: usize = 1784;
308pub const OTP_CTRL_PARAM_SECRET1_SIZE: u32 = 88;
310pub const OTP_CTRL_PARAM_FLASH_ADDR_KEY_SEED_OFFSET: usize = 1784;
312pub const OTP_CTRL_PARAM_FLASH_ADDR_KEY_SEED_SIZE: u32 = 32;
314pub const OTP_CTRL_PARAM_FLASH_DATA_KEY_SEED_OFFSET: usize = 1816;
316pub const OTP_CTRL_PARAM_FLASH_DATA_KEY_SEED_SIZE: u32 = 32;
318pub const OTP_CTRL_PARAM_SRAM_DATA_KEY_SEED_OFFSET: usize = 1848;
320pub const OTP_CTRL_PARAM_SRAM_DATA_KEY_SEED_SIZE: u32 = 16;
322pub const OTP_CTRL_PARAM_SECRET1_DIGEST_OFFSET: usize = 1864;
324pub const OTP_CTRL_PARAM_SECRET1_DIGEST_SIZE: u32 = 8;
326pub const OTP_CTRL_PARAM_SECRET2_OFFSET: usize = 1872;
328pub const OTP_CTRL_PARAM_SECRET2_SIZE: u32 = 88;
330pub const OTP_CTRL_PARAM_RMA_TOKEN_OFFSET: usize = 1872;
332pub const OTP_CTRL_PARAM_RMA_TOKEN_SIZE: u32 = 16;
334pub const OTP_CTRL_PARAM_CREATOR_ROOT_KEY_SHARE0_OFFSET: usize = 1888;
336pub const OTP_CTRL_PARAM_CREATOR_ROOT_KEY_SHARE0_SIZE: u32 = 32;
338pub const OTP_CTRL_PARAM_CREATOR_ROOT_KEY_SHARE1_OFFSET: usize = 1920;
340pub const OTP_CTRL_PARAM_CREATOR_ROOT_KEY_SHARE1_SIZE: u32 = 32;
342pub const OTP_CTRL_PARAM_SECRET2_DIGEST_OFFSET: usize = 1952;
344pub const OTP_CTRL_PARAM_SECRET2_DIGEST_SIZE: u32 = 8;
346pub const OTP_CTRL_PARAM_LIFE_CYCLE_OFFSET: usize = 1960;
348pub const OTP_CTRL_PARAM_LIFE_CYCLE_SIZE: u32 = 88;
350pub const OTP_CTRL_PARAM_LC_TRANSITION_CNT_OFFSET: usize = 1960;
352pub const OTP_CTRL_PARAM_LC_TRANSITION_CNT_SIZE: u32 = 48;
354pub const OTP_CTRL_PARAM_LC_STATE_OFFSET: usize = 2008;
356pub const OTP_CTRL_PARAM_LC_STATE_SIZE: u32 = 40;
358pub const OTP_CTRL_PARAM_NUM_ALERTS: u32 = 5;
360pub const OTP_CTRL_PARAM_REG_WIDTH: u32 = 32;
362
363register_structs! {
364    pub OtpCtrlRegisters {
365        (0x0000 => pub(crate) intr_state: ReadWrite<u32, INTR::Register>),
367        (0x0004 => pub(crate) intr_enable: ReadWrite<u32, INTR::Register>),
369        (0x0008 => pub(crate) intr_test: ReadWrite<u32, INTR::Register>),
371        (0x000c => pub(crate) alert_test: ReadWrite<u32, ALERT_TEST::Register>),
373        (0x0010 => pub(crate) status: ReadWrite<u32, STATUS::Register>),
375        (0x0014 => pub(crate) err_code: [ReadWrite<u32, ERR_CODE::Register>; 1]),
377        (0x0018 => pub(crate) direct_access_regwen: ReadWrite<u32, DIRECT_ACCESS_REGWEN::Register>),
379        (0x001c => pub(crate) direct_access_cmd: ReadWrite<u32, DIRECT_ACCESS_CMD::Register>),
381        (0x0020 => pub(crate) direct_access_address: ReadWrite<u32, DIRECT_ACCESS_ADDRESS::Register>),
383        (0x0024 => pub(crate) direct_access_wdata: [ReadWrite<u32, DIRECT_ACCESS_WDATA::Register>; 2]),
385        (0x002c => pub(crate) direct_access_rdata: [ReadWrite<u32, DIRECT_ACCESS_RDATA::Register>; 2]),
387        (0x0034 => pub(crate) check_trigger_regwen: ReadWrite<u32, CHECK_TRIGGER_REGWEN::Register>),
389        (0x0038 => pub(crate) check_trigger: ReadWrite<u32, CHECK_TRIGGER::Register>),
391        (0x003c => pub(crate) check_regwen: ReadWrite<u32, CHECK_REGWEN::Register>),
393        (0x0040 => pub(crate) check_timeout: ReadWrite<u32, CHECK_TIMEOUT::Register>),
395        (0x0044 => pub(crate) integrity_check_period: ReadWrite<u32, INTEGRITY_CHECK_PERIOD::Register>),
397        (0x0048 => pub(crate) consistency_check_period: ReadWrite<u32, CONSISTENCY_CHECK_PERIOD::Register>),
399        (0x004c => pub(crate) vendor_test_read_lock: ReadWrite<u32, VENDOR_TEST_READ_LOCK::Register>),
401        (0x0050 => pub(crate) creator_sw_cfg_read_lock: ReadWrite<u32, CREATOR_SW_CFG_READ_LOCK::Register>),
403        (0x0054 => pub(crate) owner_sw_cfg_read_lock: ReadWrite<u32, OWNER_SW_CFG_READ_LOCK::Register>),
405        (0x0058 => pub(crate) vendor_test_digest: [ReadWrite<u32, VENDOR_TEST_DIGEST::Register>; 2]),
407        (0x0060 => pub(crate) creator_sw_cfg_digest: [ReadWrite<u32, CREATOR_SW_CFG_DIGEST::Register>; 2]),
409        (0x0068 => pub(crate) owner_sw_cfg_digest: [ReadWrite<u32, OWNER_SW_CFG_DIGEST::Register>; 2]),
411        (0x0070 => pub(crate) hw_cfg_digest: [ReadWrite<u32, HW_CFG_DIGEST::Register>; 2]),
413        (0x0078 => pub(crate) secret0_digest: [ReadWrite<u32, SECRET0_DIGEST::Register>; 2]),
415        (0x0080 => pub(crate) secret1_digest: [ReadWrite<u32, SECRET1_DIGEST::Register>; 2]),
417        (0x0088 => pub(crate) secret2_digest: [ReadWrite<u32, SECRET2_DIGEST::Register>; 2]),
419        (0x0090 => _reserved1),
420        (0x1000 => pub(crate) sw_cfg_window: [ReadOnly<u32>; 512]),
423        (0x1800 => @END),
424    }
425}
426
427register_bitfields![u32,
428    pub(crate) INTR [
430        OTP_OPERATION_DONE OFFSET(0) NUMBITS(1) [],
431        OTP_ERROR OFFSET(1) NUMBITS(1) [],
432    ],
433    pub(crate) ALERT_TEST [
434        FATAL_MACRO_ERROR OFFSET(0) NUMBITS(1) [],
435        FATAL_CHECK_ERROR OFFSET(1) NUMBITS(1) [],
436        FATAL_BUS_INTEG_ERROR OFFSET(2) NUMBITS(1) [],
437        FATAL_PRIM_OTP_ALERT OFFSET(3) NUMBITS(1) [],
438        RECOV_PRIM_OTP_ALERT OFFSET(4) NUMBITS(1) [],
439    ],
440    pub(crate) STATUS [
441        VENDOR_TEST_ERROR OFFSET(0) NUMBITS(1) [],
442        CREATOR_SW_CFG_ERROR OFFSET(1) NUMBITS(1) [],
443        OWNER_SW_CFG_ERROR OFFSET(2) NUMBITS(1) [],
444        HW_CFG_ERROR OFFSET(3) NUMBITS(1) [],
445        SECRET0_ERROR OFFSET(4) NUMBITS(1) [],
446        SECRET1_ERROR OFFSET(5) NUMBITS(1) [],
447        SECRET2_ERROR OFFSET(6) NUMBITS(1) [],
448        LIFE_CYCLE_ERROR OFFSET(7) NUMBITS(1) [],
449        DAI_ERROR OFFSET(8) NUMBITS(1) [],
450        LCI_ERROR OFFSET(9) NUMBITS(1) [],
451        TIMEOUT_ERROR OFFSET(10) NUMBITS(1) [],
452        LFSR_FSM_ERROR OFFSET(11) NUMBITS(1) [],
453        SCRAMBLING_FSM_ERROR OFFSET(12) NUMBITS(1) [],
454        KEY_DERIV_FSM_ERROR OFFSET(13) NUMBITS(1) [],
455        BUS_INTEG_ERROR OFFSET(14) NUMBITS(1) [],
456        DAI_IDLE OFFSET(15) NUMBITS(1) [],
457        CHECK_PENDING OFFSET(16) NUMBITS(1) [],
458    ],
459    pub(crate) ERR_CODE [
460        ERR_CODE_0 OFFSET(0) NUMBITS(3) [
461            NO_ERROR = 0,
462            MACRO_ERROR = 1,
463            MACRO_ECC_CORR_ERROR = 2,
464            MACRO_ECC_UNCORR_ERROR = 3,
465            MACRO_WRITE_BLANK_ERROR = 4,
466            ACCESS_ERROR = 5,
467            CHECK_FAIL_ERROR = 6,
468            FSM_STATE_ERROR = 7,
469        ],
470        ERR_CODE_1 OFFSET(3) NUMBITS(3) [
471            NO_ERROR = 0,
472            MACRO_ERROR = 1,
473            MACRO_ECC_CORR_ERROR = 2,
474            MACRO_ECC_UNCORR_ERROR = 3,
475            MACRO_WRITE_BLANK_ERROR = 4,
476            ACCESS_ERROR = 5,
477            CHECK_FAIL_ERROR = 6,
478            FSM_STATE_ERROR = 7,
479        ],
480        ERR_CODE_2 OFFSET(6) NUMBITS(3) [
481            NO_ERROR = 0,
482            MACRO_ERROR = 1,
483            MACRO_ECC_CORR_ERROR = 2,
484            MACRO_ECC_UNCORR_ERROR = 3,
485            MACRO_WRITE_BLANK_ERROR = 4,
486            ACCESS_ERROR = 5,
487            CHECK_FAIL_ERROR = 6,
488            FSM_STATE_ERROR = 7,
489        ],
490        ERR_CODE_3 OFFSET(9) NUMBITS(3) [
491            NO_ERROR = 0,
492            MACRO_ERROR = 1,
493            MACRO_ECC_CORR_ERROR = 2,
494            MACRO_ECC_UNCORR_ERROR = 3,
495            MACRO_WRITE_BLANK_ERROR = 4,
496            ACCESS_ERROR = 5,
497            CHECK_FAIL_ERROR = 6,
498            FSM_STATE_ERROR = 7,
499        ],
500        ERR_CODE_4 OFFSET(12) NUMBITS(3) [
501            NO_ERROR = 0,
502            MACRO_ERROR = 1,
503            MACRO_ECC_CORR_ERROR = 2,
504            MACRO_ECC_UNCORR_ERROR = 3,
505            MACRO_WRITE_BLANK_ERROR = 4,
506            ACCESS_ERROR = 5,
507            CHECK_FAIL_ERROR = 6,
508            FSM_STATE_ERROR = 7,
509        ],
510        ERR_CODE_5 OFFSET(15) NUMBITS(3) [
511            NO_ERROR = 0,
512            MACRO_ERROR = 1,
513            MACRO_ECC_CORR_ERROR = 2,
514            MACRO_ECC_UNCORR_ERROR = 3,
515            MACRO_WRITE_BLANK_ERROR = 4,
516            ACCESS_ERROR = 5,
517            CHECK_FAIL_ERROR = 6,
518            FSM_STATE_ERROR = 7,
519        ],
520        ERR_CODE_6 OFFSET(18) NUMBITS(3) [
521            NO_ERROR = 0,
522            MACRO_ERROR = 1,
523            MACRO_ECC_CORR_ERROR = 2,
524            MACRO_ECC_UNCORR_ERROR = 3,
525            MACRO_WRITE_BLANK_ERROR = 4,
526            ACCESS_ERROR = 5,
527            CHECK_FAIL_ERROR = 6,
528            FSM_STATE_ERROR = 7,
529        ],
530        ERR_CODE_7 OFFSET(21) NUMBITS(3) [
531            NO_ERROR = 0,
532            MACRO_ERROR = 1,
533            MACRO_ECC_CORR_ERROR = 2,
534            MACRO_ECC_UNCORR_ERROR = 3,
535            MACRO_WRITE_BLANK_ERROR = 4,
536            ACCESS_ERROR = 5,
537            CHECK_FAIL_ERROR = 6,
538            FSM_STATE_ERROR = 7,
539        ],
540        ERR_CODE_8 OFFSET(24) NUMBITS(3) [
541            NO_ERROR = 0,
542            MACRO_ERROR = 1,
543            MACRO_ECC_CORR_ERROR = 2,
544            MACRO_ECC_UNCORR_ERROR = 3,
545            MACRO_WRITE_BLANK_ERROR = 4,
546            ACCESS_ERROR = 5,
547            CHECK_FAIL_ERROR = 6,
548            FSM_STATE_ERROR = 7,
549        ],
550        ERR_CODE_9 OFFSET(27) NUMBITS(3) [
551            NO_ERROR = 0,
552            MACRO_ERROR = 1,
553            MACRO_ECC_CORR_ERROR = 2,
554            MACRO_ECC_UNCORR_ERROR = 3,
555            MACRO_WRITE_BLANK_ERROR = 4,
556            ACCESS_ERROR = 5,
557            CHECK_FAIL_ERROR = 6,
558            FSM_STATE_ERROR = 7,
559        ],
560    ],
561    pub(crate) DIRECT_ACCESS_REGWEN [
562        DIRECT_ACCESS_REGWEN OFFSET(0) NUMBITS(1) [],
563    ],
564    pub(crate) DIRECT_ACCESS_CMD [
565        RD OFFSET(0) NUMBITS(1) [],
566        WR OFFSET(1) NUMBITS(1) [],
567        DIGEST OFFSET(2) NUMBITS(1) [],
568    ],
569    pub(crate) DIRECT_ACCESS_ADDRESS [
570        DIRECT_ACCESS_ADDRESS OFFSET(0) NUMBITS(11) [],
571    ],
572    pub(crate) DIRECT_ACCESS_WDATA [
573        DIRECT_ACCESS_WDATA_0 OFFSET(0) NUMBITS(32) [],
574    ],
575    pub(crate) DIRECT_ACCESS_RDATA [
576        DIRECT_ACCESS_RDATA_0 OFFSET(0) NUMBITS(32) [],
577    ],
578    pub(crate) CHECK_TRIGGER_REGWEN [
579        CHECK_TRIGGER_REGWEN OFFSET(0) NUMBITS(1) [],
580    ],
581    pub(crate) CHECK_TRIGGER [
582        INTEGRITY OFFSET(0) NUMBITS(1) [],
583        CONSISTENCY OFFSET(1) NUMBITS(1) [],
584    ],
585    pub(crate) CHECK_REGWEN [
586        CHECK_REGWEN OFFSET(0) NUMBITS(1) [],
587    ],
588    pub(crate) CHECK_TIMEOUT [
589        CHECK_TIMEOUT OFFSET(0) NUMBITS(32) [],
590    ],
591    pub(crate) INTEGRITY_CHECK_PERIOD [
592        INTEGRITY_CHECK_PERIOD OFFSET(0) NUMBITS(32) [],
593    ],
594    pub(crate) CONSISTENCY_CHECK_PERIOD [
595        CONSISTENCY_CHECK_PERIOD OFFSET(0) NUMBITS(32) [],
596    ],
597    pub(crate) VENDOR_TEST_READ_LOCK [
598        VENDOR_TEST_READ_LOCK OFFSET(0) NUMBITS(1) [],
599    ],
600    pub(crate) CREATOR_SW_CFG_READ_LOCK [
601        CREATOR_SW_CFG_READ_LOCK OFFSET(0) NUMBITS(1) [],
602    ],
603    pub(crate) OWNER_SW_CFG_READ_LOCK [
604        OWNER_SW_CFG_READ_LOCK OFFSET(0) NUMBITS(1) [],
605    ],
606    pub(crate) VENDOR_TEST_DIGEST [
607        VENDOR_TEST_DIGEST_0 OFFSET(0) NUMBITS(32) [],
608    ],
609    pub(crate) CREATOR_SW_CFG_DIGEST [
610        CREATOR_SW_CFG_DIGEST_0 OFFSET(0) NUMBITS(32) [],
611    ],
612    pub(crate) OWNER_SW_CFG_DIGEST [
613        OWNER_SW_CFG_DIGEST_0 OFFSET(0) NUMBITS(32) [],
614    ],
615    pub(crate) HW_CFG_DIGEST [
616        HW_CFG_DIGEST_0 OFFSET(0) NUMBITS(32) [],
617    ],
618    pub(crate) SECRET0_DIGEST [
619        SECRET0_DIGEST_0 OFFSET(0) NUMBITS(32) [],
620    ],
621    pub(crate) SECRET1_DIGEST [
622        SECRET1_DIGEST_0 OFFSET(0) NUMBITS(32) [],
623    ],
624    pub(crate) SECRET2_DIGEST [
625        SECRET2_DIGEST_0 OFFSET(0) NUMBITS(32) [],
626    ],
627];
628
629