#![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 CR {
pub mod INIT {
pub const offset: u32 = 2;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod DMAE {
pub const offset: u32 = 3;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod DATATYPE {
pub const offset: u32 = 4;
pub const mask: u32 = 0b11 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod MODE {
pub const offset: u32 = 6;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod ALGO0 {
pub const offset: u32 = 7;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod NBW {
pub const offset: u32 = 8;
pub const mask: u32 = 0b1111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod DINNE {
pub const offset: u32 = 12;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod MDMAT {
pub const offset: u32 = 13;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod LKEY {
pub const offset: u32 = 16;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod ALGO1 {
pub const offset: u32 = 18;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod DIN {
pub mod DATAIN {
pub const offset: u32 = 0;
pub const mask: u32 = 0xffffffff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod STR {
pub mod DCAL {
pub const offset: u32 = 8;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod NBLW {
pub const offset: u32 = 0;
pub const mask: u32 = 0b11111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod HR0 {
pub mod H {
pub const offset: u32 = 0;
pub const mask: u32 = 0xffffffff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod HR1 {
pub use super::HR0::H;
}
pub mod HR2 {
pub use super::HR0::H;
}
pub mod HR3 {
pub use super::HR0::H;
}
pub mod HR4 {
pub use super::HR0::H;
}
pub mod IMR {
pub mod DCIE {
pub const offset: u32 = 1;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod DINIE {
pub const offset: u32 = 0;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod SR {
pub mod BUSY {
pub const offset: u32 = 3;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod DMAS {
pub const offset: u32 = 2;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod DCIS {
pub const offset: u32 = 1;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod DINIS {
pub const offset: u32 = 0;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod CSR0 {
pub mod CSR {
pub const offset: u32 = 0;
pub const mask: u32 = 0xffffffff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod CSR1 {
pub use super::CSR0::CSR;
}
pub mod CSR2 {
pub use super::CSR0::CSR;
}
pub mod CSR3 {
pub use super::CSR0::CSR;
}
pub mod CSR4 {
pub use super::CSR0::CSR;
}
pub mod CSR5 {
pub use super::CSR0::CSR;
}
pub mod CSR6 {
pub use super::CSR0::CSR;
}
pub mod CSR7 {
pub use super::CSR0::CSR;
}
pub mod CSR8 {
pub use super::CSR0::CSR;
}
pub mod CSR9 {
pub use super::CSR0::CSR;
}
pub mod CSR10 {
pub use super::CSR0::CSR;
}
pub mod CSR11 {
pub use super::CSR0::CSR;
}
pub mod CSR12 {
pub use super::CSR0::CSR;
}
pub mod CSR13 {
pub use super::CSR0::CSR;
}
pub mod CSR14 {
pub use super::CSR0::CSR;
}
pub mod CSR15 {
pub use super::CSR0::CSR;
}
pub mod CSR16 {
pub use super::CSR0::CSR;
}
pub mod CSR17 {
pub use super::CSR0::CSR;
}
pub mod CSR18 {
pub use super::CSR0::CSR;
}
pub mod CSR19 {
pub use super::CSR0::CSR;
}
pub mod CSR20 {
pub use super::CSR0::CSR;
}
pub mod CSR21 {
pub use super::CSR0::CSR;
}
pub mod CSR22 {
pub use super::CSR0::CSR;
}
pub mod CSR23 {
pub use super::CSR0::CSR;
}
pub mod CSR24 {
pub use super::CSR0::CSR;
}
pub mod CSR25 {
pub use super::CSR0::CSR;
}
pub mod CSR26 {
pub use super::CSR0::CSR;
}
pub mod CSR27 {
pub use super::CSR0::CSR;
}
pub mod CSR28 {
pub use super::CSR0::CSR;
}
pub mod CSR29 {
pub use super::CSR0::CSR;
}
pub mod CSR30 {
pub use super::CSR0::CSR;
}
pub mod CSR31 {
pub use super::CSR0::CSR;
}
pub mod CSR32 {
pub use super::CSR0::CSR;
}
pub mod CSR33 {
pub use super::CSR0::CSR;
}
pub mod CSR34 {
pub use super::CSR0::CSR;
}
pub mod CSR35 {
pub use super::CSR0::CSR;
}
pub mod CSR36 {
pub use super::CSR0::CSR;
}
pub mod CSR37 {
pub use super::CSR0::CSR;
}
pub mod CSR38 {
pub use super::CSR0::CSR;
}
pub mod CSR39 {
pub use super::CSR0::CSR;
}
pub mod CSR40 {
pub use super::CSR0::CSR;
}
pub mod CSR41 {
pub use super::CSR0::CSR;
}
pub mod CSR42 {
pub use super::CSR0::CSR;
}
pub mod CSR43 {
pub use super::CSR0::CSR;
}
pub mod CSR44 {
pub use super::CSR0::CSR;
}
pub mod CSR45 {
pub use super::CSR0::CSR;
}
pub mod CSR46 {
pub use super::CSR0::CSR;
}
pub mod CSR47 {
pub use super::CSR0::CSR;
}
pub mod CSR48 {
pub use super::CSR0::CSR;
}
pub mod CSR49 {
pub use super::CSR0::CSR;
}
pub mod CSR50 {
pub use super::CSR0::CSR;
}
pub mod CSR51 {
pub use super::CSR0::CSR;
}
pub mod CSR52 {
pub use super::CSR0::CSR;
}
pub mod CSR53 {
pub use super::CSR0::CSR;
}
pub mod HASH_HR0 {
pub use super::HR0::H;
}
pub mod HASH_HR1 {
pub use super::HR0::H;
}
pub mod HASH_HR2 {
pub use super::HR0::H;
}
pub mod HASH_HR3 {
pub use super::HR0::H;
}
pub mod HASH_HR4 {
pub use super::HR0::H;
}
pub mod HASH_HR5 {
pub use super::HR0::H;
}
pub mod HASH_HR6 {
pub use super::HR0::H;
}
pub mod HASH_HR7 {
pub use super::HR0::H;
}
#[repr(C)]
pub struct RegisterBlock {
pub CR: RWRegister<u32>,
pub DIN: RWRegister<u32>,
pub STR: RWRegister<u32>,
pub HR0: RORegister<u32>,
pub HR1: RORegister<u32>,
pub HR2: RORegister<u32>,
pub HR3: RORegister<u32>,
pub HR4: RORegister<u32>,
pub IMR: RWRegister<u32>,
pub SR: RWRegister<u32>,
_reserved1: [u32; 52],
pub CSR0: RWRegister<u32>,
pub CSR1: RWRegister<u32>,
pub CSR2: RWRegister<u32>,
pub CSR3: RWRegister<u32>,
pub CSR4: RWRegister<u32>,
pub CSR5: RWRegister<u32>,
pub CSR6: RWRegister<u32>,
pub CSR7: RWRegister<u32>,
pub CSR8: RWRegister<u32>,
pub CSR9: RWRegister<u32>,
pub CSR10: RWRegister<u32>,
pub CSR11: RWRegister<u32>,
pub CSR12: RWRegister<u32>,
pub CSR13: RWRegister<u32>,
pub CSR14: RWRegister<u32>,
pub CSR15: RWRegister<u32>,
pub CSR16: RWRegister<u32>,
pub CSR17: RWRegister<u32>,
pub CSR18: RWRegister<u32>,
pub CSR19: RWRegister<u32>,
pub CSR20: RWRegister<u32>,
pub CSR21: RWRegister<u32>,
pub CSR22: RWRegister<u32>,
pub CSR23: RWRegister<u32>,
pub CSR24: RWRegister<u32>,
pub CSR25: RWRegister<u32>,
pub CSR26: RWRegister<u32>,
pub CSR27: RWRegister<u32>,
pub CSR28: RWRegister<u32>,
pub CSR29: RWRegister<u32>,
pub CSR30: RWRegister<u32>,
pub CSR31: RWRegister<u32>,
pub CSR32: RWRegister<u32>,
pub CSR33: RWRegister<u32>,
pub CSR34: RWRegister<u32>,
pub CSR35: RWRegister<u32>,
pub CSR36: RWRegister<u32>,
pub CSR37: RWRegister<u32>,
pub CSR38: RWRegister<u32>,
pub CSR39: RWRegister<u32>,
pub CSR40: RWRegister<u32>,
pub CSR41: RWRegister<u32>,
pub CSR42: RWRegister<u32>,
pub CSR43: RWRegister<u32>,
pub CSR44: RWRegister<u32>,
pub CSR45: RWRegister<u32>,
pub CSR46: RWRegister<u32>,
pub CSR47: RWRegister<u32>,
pub CSR48: RWRegister<u32>,
pub CSR49: RWRegister<u32>,
pub CSR50: RWRegister<u32>,
pub CSR51: RWRegister<u32>,
pub CSR52: RWRegister<u32>,
pub CSR53: RWRegister<u32>,
_reserved2: [u32; 80],
pub HASH_HR0: RORegister<u32>,
pub HASH_HR1: RORegister<u32>,
pub HASH_HR2: RORegister<u32>,
pub HASH_HR3: RORegister<u32>,
pub HASH_HR4: RORegister<u32>,
pub HASH_HR5: RORegister<u32>,
pub HASH_HR6: RORegister<u32>,
pub HASH_HR7: RORegister<u32>,
}
pub struct ResetValues {
pub CR: u32,
pub DIN: u32,
pub STR: u32,
pub HR0: u32,
pub HR1: u32,
pub HR2: u32,
pub HR3: u32,
pub HR4: u32,
pub IMR: u32,
pub SR: u32,
pub CSR0: u32,
pub CSR1: u32,
pub CSR2: u32,
pub CSR3: u32,
pub CSR4: u32,
pub CSR5: u32,
pub CSR6: u32,
pub CSR7: u32,
pub CSR8: u32,
pub CSR9: u32,
pub CSR10: u32,
pub CSR11: u32,
pub CSR12: u32,
pub CSR13: u32,
pub CSR14: u32,
pub CSR15: u32,
pub CSR16: u32,
pub CSR17: u32,
pub CSR18: u32,
pub CSR19: u32,
pub CSR20: u32,
pub CSR21: u32,
pub CSR22: u32,
pub CSR23: u32,
pub CSR24: u32,
pub CSR25: u32,
pub CSR26: u32,
pub CSR27: u32,
pub CSR28: u32,
pub CSR29: u32,
pub CSR30: u32,
pub CSR31: u32,
pub CSR32: u32,
pub CSR33: u32,
pub CSR34: u32,
pub CSR35: u32,
pub CSR36: u32,
pub CSR37: u32,
pub CSR38: u32,
pub CSR39: u32,
pub CSR40: u32,
pub CSR41: u32,
pub CSR42: u32,
pub CSR43: u32,
pub CSR44: u32,
pub CSR45: u32,
pub CSR46: u32,
pub CSR47: u32,
pub CSR48: u32,
pub CSR49: u32,
pub CSR50: u32,
pub CSR51: u32,
pub CSR52: u32,
pub CSR53: u32,
pub HASH_HR0: u32,
pub HASH_HR1: u32,
pub HASH_HR2: u32,
pub HASH_HR3: u32,
pub HASH_HR4: u32,
pub HASH_HR5: u32,
pub HASH_HR6: u32,
pub HASH_HR7: 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 = "rtic")]
unsafe impl Send for Instance {}