#![allow(non_snake_case, non_upper_case_globals)]
#![allow(non_camel_case_types)]
use crate::{RORegister, RWRegister};
#[cfg(not(feature = "nosync"))]
use core::marker::PhantomData;
pub mod HW_OCOTP_CTRL {
pub mod ADDR {
pub const offset: u32 = 0;
pub const mask: u32 = 0x3f << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod BUSY {
pub const offset: u32 = 8;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod ERROR {
pub const offset: u32 = 9;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod RELOAD_SHADOWS {
pub const offset: u32 = 10;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod WR_UNLOCK {
pub const offset: u32 = 16;
pub const mask: u32 = 0xffff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod HW_OCOTP_CTRL_SET {
pub use super::HW_OCOTP_CTRL::ADDR;
pub use super::HW_OCOTP_CTRL::BUSY;
pub use super::HW_OCOTP_CTRL::ERROR;
pub use super::HW_OCOTP_CTRL::RELOAD_SHADOWS;
pub use super::HW_OCOTP_CTRL::WR_UNLOCK;
}
pub mod HW_OCOTP_CTRL_CLR {
pub use super::HW_OCOTP_CTRL::ADDR;
pub use super::HW_OCOTP_CTRL::BUSY;
pub use super::HW_OCOTP_CTRL::ERROR;
pub use super::HW_OCOTP_CTRL::RELOAD_SHADOWS;
pub use super::HW_OCOTP_CTRL::WR_UNLOCK;
}
pub mod HW_OCOTP_CTRL_TOG {
pub use super::HW_OCOTP_CTRL::ADDR;
pub use super::HW_OCOTP_CTRL::BUSY;
pub use super::HW_OCOTP_CTRL::ERROR;
pub use super::HW_OCOTP_CTRL::RELOAD_SHADOWS;
pub use super::HW_OCOTP_CTRL::WR_UNLOCK;
}
pub mod HW_OCOTP_TIMING {
pub mod STROBE_PROG {
pub const offset: u32 = 0;
pub const mask: u32 = 0xfff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod RELAX {
pub const offset: u32 = 12;
pub const mask: u32 = 0b1111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod STROBE_READ {
pub const offset: u32 = 16;
pub const mask: u32 = 0x3f << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod WAIT {
pub const offset: u32 = 22;
pub const mask: u32 = 0x3f << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod HW_OCOTP_DATA {
pub mod DATA {
pub const offset: u32 = 0;
pub const mask: u32 = 0xffffffff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod HW_OCOTP_READ_CTRL {
pub mod READ_FUSE {
pub const offset: u32 = 0;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod HW_OCOTP_READ_FUSE_DATA {
pub use super::HW_OCOTP_DATA::DATA;
}
pub mod HW_OCOTP_SW_STICKY {
pub mod BLOCK_DTCP_KEY {
pub const offset: u32 = 0;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod SRK_REVOKE_LOCK {
pub const offset: u32 = 1;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod FIELD_RETURN_LOCK {
pub const offset: u32 = 2;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod BLOCK_ROM_PART {
pub const offset: u32 = 3;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod JTAG_BLOCK_RELEASE {
pub const offset: u32 = 4;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod HW_OCOTP_SCS {
pub mod HAB_JDE {
pub const offset: u32 = 0;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod SPARE {
pub const offset: u32 = 1;
pub const mask: u32 = 0x3fffffff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod LOCK {
pub const offset: u32 = 31;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod HW_OCOTP_SCS_SET {
pub use super::HW_OCOTP_SCS::HAB_JDE;
pub use super::HW_OCOTP_SCS::LOCK;
pub use super::HW_OCOTP_SCS::SPARE;
}
pub mod HW_OCOTP_SCS_CLR {
pub use super::HW_OCOTP_SCS::HAB_JDE;
pub use super::HW_OCOTP_SCS::LOCK;
pub use super::HW_OCOTP_SCS::SPARE;
}
pub mod HW_OCOTP_SCS_TOG {
pub use super::HW_OCOTP_SCS::HAB_JDE;
pub use super::HW_OCOTP_SCS::LOCK;
pub use super::HW_OCOTP_SCS::SPARE;
}
pub mod HW_OCOTP_VERSION {
pub mod STEP {
pub const offset: u32 = 0;
pub const mask: u32 = 0xffff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod MINOR {
pub const offset: u32 = 16;
pub const mask: u32 = 0xff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod MAJOR {
pub const offset: u32 = 24;
pub const mask: u32 = 0xff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod HW_OCOTP_TIMING2 {
pub mod RELAX_PROG {
pub const offset: u32 = 0;
pub const mask: u32 = 0xfff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod RELAX_READ {
pub const offset: u32 = 16;
pub const mask: u32 = 0x3f << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod RELAX1 {
pub const offset: u32 = 22;
pub const mask: u32 = 0x7f << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod HW_OCOTP_LOCK {
pub mod TESTER {
pub const offset: u32 = 0;
pub const mask: u32 = 0b11 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod BOOT_CFG {
pub const offset: u32 = 2;
pub const mask: u32 = 0b11 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod MEM_TRIM {
pub const offset: u32 = 4;
pub const mask: u32 = 0b11 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod SJC_RESP {
pub const offset: u32 = 6;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod MAC_ADDR {
pub const offset: u32 = 8;
pub const mask: u32 = 0b11 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod GP1 {
pub const offset: u32 = 10;
pub const mask: u32 = 0b11 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod GP2 {
pub const offset: u32 = 12;
pub const mask: u32 = 0b11 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod OTPMK_MSB {
pub const offset: u32 = 15;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod SW_GP1 {
pub const offset: u32 = 16;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod OTPMK_LSB {
pub const offset: u32 = 17;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod ANALOG {
pub const offset: u32 = 18;
pub const mask: u32 = 0b11 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod OTPMK_CRC {
pub const offset: u32 = 20;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod SW_GP2_LOCK {
pub const offset: u32 = 21;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod MISC_CONF {
pub const offset: u32 = 22;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod SW_GP2_RLOCK {
pub const offset: u32 = 23;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod GP3 {
pub const offset: u32 = 26;
pub const mask: u32 = 0b11 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod FIELD_RETURN {
pub const offset: u32 = 28;
pub const mask: u32 = 0b1111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod HW_OCOTP_CFG0 {
pub mod BITS {
pub const offset: u32 = 0;
pub const mask: u32 = 0xffffffff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod HW_OCOTP_CFG1 {
pub use super::HW_OCOTP_CFG0::BITS;
}
pub mod HW_OCOTP_CFG2 {
pub use super::HW_OCOTP_CFG0::BITS;
}
pub mod HW_OCOTP_CFG3 {
pub use super::HW_OCOTP_CFG0::BITS;
}
pub mod HW_OCOTP_CFG4 {
pub use super::HW_OCOTP_CFG0::BITS;
}
pub mod HW_OCOTP_CFG5 {
pub use super::HW_OCOTP_CFG0::BITS;
}
pub mod HW_OCOTP_CFG6 {
pub use super::HW_OCOTP_CFG0::BITS;
}
pub mod HW_OCOTP_MEM0 {
pub use super::HW_OCOTP_CFG0::BITS;
}
pub mod HW_OCOTP_MEM1 {
pub use super::HW_OCOTP_CFG0::BITS;
}
pub mod HW_OCOTP_MEM2 {
pub use super::HW_OCOTP_CFG0::BITS;
}
pub mod HW_OCOTP_MEM3 {
pub use super::HW_OCOTP_CFG0::BITS;
}
pub mod HW_OCOTP_MEM4 {
pub use super::HW_OCOTP_CFG0::BITS;
}
pub mod HW_OCOTP_ANA0 {
pub use super::HW_OCOTP_CFG0::BITS;
}
pub mod HW_OCOTP_ANA1 {
pub use super::HW_OCOTP_CFG0::BITS;
}
pub mod HW_OCOTP_ANA2 {
pub use super::HW_OCOTP_CFG0::BITS;
}
pub mod HW_OCOTP_SRK0 {
pub use super::HW_OCOTP_CFG0::BITS;
}
pub mod HW_OCOTP_SRK1 {
pub use super::HW_OCOTP_CFG0::BITS;
}
pub mod HW_OCOTP_SRK2 {
pub use super::HW_OCOTP_CFG0::BITS;
}
pub mod HW_OCOTP_SRK3 {
pub use super::HW_OCOTP_CFG0::BITS;
}
pub mod HW_OCOTP_SRK4 {
pub use super::HW_OCOTP_CFG0::BITS;
}
pub mod HW_OCOTP_SRK5 {
pub use super::HW_OCOTP_CFG0::BITS;
}
pub mod HW_OCOTP_SRK6 {
pub use super::HW_OCOTP_CFG0::BITS;
}
pub mod HW_OCOTP_SRK7 {
pub use super::HW_OCOTP_CFG0::BITS;
}
pub mod HW_OCOTP_SJC_RESP0 {
pub use super::HW_OCOTP_CFG0::BITS;
}
pub mod HW_OCOTP_SJC_RESP1 {
pub use super::HW_OCOTP_CFG0::BITS;
}
pub mod HW_OCOTP_MAC0 {
pub use super::HW_OCOTP_CFG0::BITS;
}
pub mod HW_OCOTP_MAC1 {
pub use super::HW_OCOTP_CFG0::BITS;
}
pub mod HW_OCOTP_GP3 {
pub use super::HW_OCOTP_CFG0::BITS;
}
pub mod HW_OCOTP_GP1 {
pub use super::HW_OCOTP_CFG0::BITS;
}
pub mod HW_OCOTP_GP2 {
pub use super::HW_OCOTP_CFG0::BITS;
}
pub mod HW_OCOTP_SW_GP1 {
pub use super::HW_OCOTP_CFG0::BITS;
}
pub mod HW_OCOTP_SW_GP20 {
pub use super::HW_OCOTP_CFG0::BITS;
}
pub mod HW_OCOTP_SW_GP21 {
pub use super::HW_OCOTP_CFG0::BITS;
}
pub mod HW_OCOTP_SW_GP22 {
pub use super::HW_OCOTP_CFG0::BITS;
}
pub mod HW_OCOTP_SW_GP23 {
pub use super::HW_OCOTP_CFG0::BITS;
}
pub mod HW_OCOTP_MISC_CONF0 {
pub use super::HW_OCOTP_CFG0::BITS;
}
pub mod HW_OCOTP_MISC_CONF1 {
pub use super::HW_OCOTP_CFG0::BITS;
}
pub mod HW_OCOTP_SRK_REVOKE {
pub use super::HW_OCOTP_CFG0::BITS;
}
#[repr(C)]
pub struct RegisterBlock {
pub HW_OCOTP_CTRL: RWRegister<u32>,
pub HW_OCOTP_CTRL_SET: RWRegister<u32>,
pub HW_OCOTP_CTRL_CLR: RWRegister<u32>,
pub HW_OCOTP_CTRL_TOG: RWRegister<u32>,
pub HW_OCOTP_TIMING: RWRegister<u32>,
_reserved1: [u32; 3],
pub HW_OCOTP_DATA: RWRegister<u32>,
_reserved2: [u32; 3],
pub HW_OCOTP_READ_CTRL: RWRegister<u32>,
_reserved3: [u32; 3],
pub HW_OCOTP_READ_FUSE_DATA: RWRegister<u32>,
_reserved4: [u32; 3],
pub HW_OCOTP_SW_STICKY: RWRegister<u32>,
_reserved5: [u32; 3],
pub HW_OCOTP_SCS: RWRegister<u32>,
pub HW_OCOTP_SCS_SET: RWRegister<u32>,
pub HW_OCOTP_SCS_CLR: RWRegister<u32>,
pub HW_OCOTP_SCS_TOG: RWRegister<u32>,
_reserved6: [u32; 8],
pub HW_OCOTP_VERSION: RORegister<u32>,
_reserved7: [u32; 27],
pub HW_OCOTP_TIMING2: RWRegister<u32>,
_reserved8: [u32; 191],
pub HW_OCOTP_LOCK: RWRegister<u32>,
_reserved9: [u32; 3],
pub HW_OCOTP_CFG0: RWRegister<u32>,
_reserved10: [u32; 3],
pub HW_OCOTP_CFG1: RWRegister<u32>,
_reserved11: [u32; 3],
pub HW_OCOTP_CFG2: RWRegister<u32>,
_reserved12: [u32; 3],
pub HW_OCOTP_CFG3: RWRegister<u32>,
_reserved13: [u32; 3],
pub HW_OCOTP_CFG4: RWRegister<u32>,
_reserved14: [u32; 3],
pub HW_OCOTP_CFG5: RWRegister<u32>,
_reserved15: [u32; 3],
pub HW_OCOTP_CFG6: RWRegister<u32>,
_reserved16: [u32; 3],
pub HW_OCOTP_MEM0: RWRegister<u32>,
_reserved17: [u32; 3],
pub HW_OCOTP_MEM1: RWRegister<u32>,
_reserved18: [u32; 3],
pub HW_OCOTP_MEM2: RWRegister<u32>,
_reserved19: [u32; 3],
pub HW_OCOTP_MEM3: RWRegister<u32>,
_reserved20: [u32; 3],
pub HW_OCOTP_MEM4: RWRegister<u32>,
_reserved21: [u32; 3],
pub HW_OCOTP_ANA0: RWRegister<u32>,
_reserved22: [u32; 3],
pub HW_OCOTP_ANA1: RWRegister<u32>,
_reserved23: [u32; 3],
pub HW_OCOTP_ANA2: RWRegister<u32>,
_reserved24: [u32; 35],
pub HW_OCOTP_SRK0: RWRegister<u32>,
_reserved25: [u32; 3],
pub HW_OCOTP_SRK1: RWRegister<u32>,
_reserved26: [u32; 3],
pub HW_OCOTP_SRK2: RWRegister<u32>,
_reserved27: [u32; 3],
pub HW_OCOTP_SRK3: RWRegister<u32>,
_reserved28: [u32; 3],
pub HW_OCOTP_SRK4: RWRegister<u32>,
_reserved29: [u32; 3],
pub HW_OCOTP_SRK5: RWRegister<u32>,
_reserved30: [u32; 3],
pub HW_OCOTP_SRK6: RWRegister<u32>,
_reserved31: [u32; 3],
pub HW_OCOTP_SRK7: RWRegister<u32>,
_reserved32: [u32; 3],
pub HW_OCOTP_SJC_RESP0: RWRegister<u32>,
_reserved33: [u32; 3],
pub HW_OCOTP_SJC_RESP1: RWRegister<u32>,
_reserved34: [u32; 3],
pub HW_OCOTP_MAC0: RWRegister<u32>,
_reserved35: [u32; 3],
pub HW_OCOTP_MAC1: RWRegister<u32>,
_reserved36: [u32; 3],
pub HW_OCOTP_GP3: RWRegister<u32>,
_reserved37: [u32; 7],
pub HW_OCOTP_GP1: RWRegister<u32>,
_reserved38: [u32; 3],
pub HW_OCOTP_GP2: RWRegister<u32>,
_reserved39: [u32; 3],
pub HW_OCOTP_SW_GP1: RWRegister<u32>,
_reserved40: [u32; 3],
pub HW_OCOTP_SW_GP20: RWRegister<u32>,
_reserved41: [u32; 3],
pub HW_OCOTP_SW_GP21: RWRegister<u32>,
_reserved42: [u32; 3],
pub HW_OCOTP_SW_GP22: RWRegister<u32>,
_reserved43: [u32; 3],
pub HW_OCOTP_SW_GP23: RWRegister<u32>,
_reserved44: [u32; 3],
pub HW_OCOTP_MISC_CONF0: RWRegister<u32>,
_reserved45: [u32; 3],
pub HW_OCOTP_MISC_CONF1: RWRegister<u32>,
_reserved46: [u32; 3],
pub HW_OCOTP_SRK_REVOKE: RWRegister<u32>,
}
pub struct ResetValues {
pub HW_OCOTP_CTRL: u32,
pub HW_OCOTP_CTRL_SET: u32,
pub HW_OCOTP_CTRL_CLR: u32,
pub HW_OCOTP_CTRL_TOG: u32,
pub HW_OCOTP_TIMING: u32,
pub HW_OCOTP_DATA: u32,
pub HW_OCOTP_READ_CTRL: u32,
pub HW_OCOTP_READ_FUSE_DATA: u32,
pub HW_OCOTP_SW_STICKY: u32,
pub HW_OCOTP_SCS: u32,
pub HW_OCOTP_SCS_SET: u32,
pub HW_OCOTP_SCS_CLR: u32,
pub HW_OCOTP_SCS_TOG: u32,
pub HW_OCOTP_VERSION: u32,
pub HW_OCOTP_TIMING2: u32,
pub HW_OCOTP_LOCK: u32,
pub HW_OCOTP_CFG0: u32,
pub HW_OCOTP_CFG1: u32,
pub HW_OCOTP_CFG2: u32,
pub HW_OCOTP_CFG3: u32,
pub HW_OCOTP_CFG4: u32,
pub HW_OCOTP_CFG5: u32,
pub HW_OCOTP_CFG6: u32,
pub HW_OCOTP_MEM0: u32,
pub HW_OCOTP_MEM1: u32,
pub HW_OCOTP_MEM2: u32,
pub HW_OCOTP_MEM3: u32,
pub HW_OCOTP_MEM4: u32,
pub HW_OCOTP_ANA0: u32,
pub HW_OCOTP_ANA1: u32,
pub HW_OCOTP_ANA2: u32,
pub HW_OCOTP_SRK0: u32,
pub HW_OCOTP_SRK1: u32,
pub HW_OCOTP_SRK2: u32,
pub HW_OCOTP_SRK3: u32,
pub HW_OCOTP_SRK4: u32,
pub HW_OCOTP_SRK5: u32,
pub HW_OCOTP_SRK6: u32,
pub HW_OCOTP_SRK7: u32,
pub HW_OCOTP_SJC_RESP0: u32,
pub HW_OCOTP_SJC_RESP1: u32,
pub HW_OCOTP_MAC0: u32,
pub HW_OCOTP_MAC1: u32,
pub HW_OCOTP_GP3: u32,
pub HW_OCOTP_GP1: u32,
pub HW_OCOTP_GP2: u32,
pub HW_OCOTP_SW_GP1: u32,
pub HW_OCOTP_SW_GP20: u32,
pub HW_OCOTP_SW_GP21: u32,
pub HW_OCOTP_SW_GP22: u32,
pub HW_OCOTP_SW_GP23: u32,
pub HW_OCOTP_MISC_CONF0: u32,
pub HW_OCOTP_MISC_CONF1: u32,
pub HW_OCOTP_SRK_REVOKE: u32,
}
#[cfg(not(feature = "nosync"))]
pub struct Instance {
pub(crate) addr: u32,
pub(crate) _marker: PhantomData<*const RegisterBlock>,
}
#[cfg(not(feature = "nosync"))]
impl ::core::ops::Deref for Instance {
type Target = RegisterBlock;
#[inline(always)]
fn deref(&self) -> &RegisterBlock {
unsafe { &*(self.addr as *const _) }
}
}
#[cfg(feature = "rtfm")]
unsafe impl Send for Instance {}