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