use rigless::soc::{Access, FieldSpec, Layout, ReadAction, RegisterSpec, Width, WriteModify};
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum Register {
Bcr1 = 0,
Btr1 = 1,
Bcr2 = 2,
Btr2 = 3,
Bcr3 = 4,
Btr3 = 5,
Bcr4 = 6,
Btr4 = 7,
Pcr2 = 8,
Sr2 = 9,
Pmem2 = 10,
Patt2 = 11,
Eccr2 = 12,
Pcr3 = 13,
Sr3 = 14,
Pmem3 = 15,
Patt3 = 16,
Eccr3 = 17,
Pcr4 = 18,
Sr4 = 19,
Pmem4 = 20,
Patt4 = 21,
Pio4 = 22,
Bwtr1 = 23,
Bwtr3 = 24,
Bwtr2 = 25,
Bwtr4 = 26,
Sdcr1 = 27,
Sdcr2 = 28,
Sdtr1 = 29,
Sdtr2 = 30,
Sdcmr = 31,
Sdrtr = 32,
Sdsr = 33,
}
impl Register {
pub const ALL: [Self; 34] = [Self::Bcr1, Self::Btr1, Self::Bcr2, Self::Btr2, Self::Bcr3, Self::Btr3, Self::Bcr4, Self::Btr4, Self::Pcr2, Self::Sr2, Self::Pmem2, Self::Patt2, Self::Eccr2, Self::Pcr3, Self::Sr3, Self::Pmem3, Self::Patt3, Self::Eccr3, Self::Pcr4, Self::Sr4, Self::Pmem4, Self::Patt4, Self::Pio4, Self::Bwtr1, Self::Bwtr3, Self::Bwtr2, Self::Bwtr4, Self::Sdcr1, Self::Sdcr2, Self::Sdtr1, Self::Sdtr2, Self::Sdcmr, Self::Sdrtr, Self::Sdsr];
}
impl Layout for Register {
const REGISTERS: &'static [RegisterSpec] = ®ISTERS;
fn from_index(index: usize) -> Option<Self> {
Self::ALL.get(index).copied()
}
fn index(self) -> usize {
self as usize
}
}
pub mod bcr1 {
use super::FieldSpec;
pub const MBKEN: &FieldSpec = &super::REGISTERS[0].fields[0];
pub const MUXEN: &FieldSpec = &super::REGISTERS[0].fields[1];
pub const MTYP: &FieldSpec = &super::REGISTERS[0].fields[2];
pub const MWID: &FieldSpec = &super::REGISTERS[0].fields[3];
pub const FACCEN: &FieldSpec = &super::REGISTERS[0].fields[4];
pub const BURSTEN: &FieldSpec = &super::REGISTERS[0].fields[5];
pub const WAITPOL: &FieldSpec = &super::REGISTERS[0].fields[6];
pub const WRAPMOD: &FieldSpec = &super::REGISTERS[0].fields[7];
pub const WAITCFG: &FieldSpec = &super::REGISTERS[0].fields[8];
pub const WREN: &FieldSpec = &super::REGISTERS[0].fields[9];
pub const WAITEN: &FieldSpec = &super::REGISTERS[0].fields[10];
pub const EXTMOD: &FieldSpec = &super::REGISTERS[0].fields[11];
pub const ASYNCWAIT: &FieldSpec = &super::REGISTERS[0].fields[12];
pub const CPSIZE: &FieldSpec = &super::REGISTERS[0].fields[13];
pub const CBURSTRW: &FieldSpec = &super::REGISTERS[0].fields[14];
pub const CCLKEN: &FieldSpec = &super::REGISTERS[0].fields[15];
}
pub mod btr1 {
use super::FieldSpec;
pub const ADDSET: &FieldSpec = &super::REGISTERS[1].fields[0];
pub const ADDHLD: &FieldSpec = &super::REGISTERS[1].fields[1];
pub const DATAST: &FieldSpec = &super::REGISTERS[1].fields[2];
pub const BUSTURN: &FieldSpec = &super::REGISTERS[1].fields[3];
pub const CLKDIV: &FieldSpec = &super::REGISTERS[1].fields[4];
pub const DATLAT: &FieldSpec = &super::REGISTERS[1].fields[5];
pub const ACCMOD: &FieldSpec = &super::REGISTERS[1].fields[6];
}
pub mod bcr2 {
use super::FieldSpec;
pub const MBKEN: &FieldSpec = &super::REGISTERS[2].fields[0];
pub const MUXEN: &FieldSpec = &super::REGISTERS[2].fields[1];
pub const MTYP: &FieldSpec = &super::REGISTERS[2].fields[2];
pub const MWID: &FieldSpec = &super::REGISTERS[2].fields[3];
pub const FACCEN: &FieldSpec = &super::REGISTERS[2].fields[4];
pub const BURSTEN: &FieldSpec = &super::REGISTERS[2].fields[5];
pub const WAITPOL: &FieldSpec = &super::REGISTERS[2].fields[6];
pub const WRAPMOD: &FieldSpec = &super::REGISTERS[2].fields[7];
pub const WAITCFG: &FieldSpec = &super::REGISTERS[2].fields[8];
pub const WREN: &FieldSpec = &super::REGISTERS[2].fields[9];
pub const WAITEN: &FieldSpec = &super::REGISTERS[2].fields[10];
pub const EXTMOD: &FieldSpec = &super::REGISTERS[2].fields[11];
pub const ASYNCWAIT: &FieldSpec = &super::REGISTERS[2].fields[12];
pub const CPSIZE: &FieldSpec = &super::REGISTERS[2].fields[13];
pub const CBURSTRW: &FieldSpec = &super::REGISTERS[2].fields[14];
}
pub mod btr2 {
use super::FieldSpec;
pub const ADDSET: &FieldSpec = &super::REGISTERS[3].fields[0];
pub const ADDHLD: &FieldSpec = &super::REGISTERS[3].fields[1];
pub const DATAST: &FieldSpec = &super::REGISTERS[3].fields[2];
pub const BUSTURN: &FieldSpec = &super::REGISTERS[3].fields[3];
pub const CLKDIV: &FieldSpec = &super::REGISTERS[3].fields[4];
pub const DATLAT: &FieldSpec = &super::REGISTERS[3].fields[5];
pub const ACCMOD: &FieldSpec = &super::REGISTERS[3].fields[6];
}
pub mod bcr3 {
use super::FieldSpec;
pub const MBKEN: &FieldSpec = &super::REGISTERS[4].fields[0];
pub const MUXEN: &FieldSpec = &super::REGISTERS[4].fields[1];
pub const MTYP: &FieldSpec = &super::REGISTERS[4].fields[2];
pub const MWID: &FieldSpec = &super::REGISTERS[4].fields[3];
pub const FACCEN: &FieldSpec = &super::REGISTERS[4].fields[4];
pub const BURSTEN: &FieldSpec = &super::REGISTERS[4].fields[5];
pub const WAITPOL: &FieldSpec = &super::REGISTERS[4].fields[6];
pub const WRAPMOD: &FieldSpec = &super::REGISTERS[4].fields[7];
pub const WAITCFG: &FieldSpec = &super::REGISTERS[4].fields[8];
pub const WREN: &FieldSpec = &super::REGISTERS[4].fields[9];
pub const WAITEN: &FieldSpec = &super::REGISTERS[4].fields[10];
pub const EXTMOD: &FieldSpec = &super::REGISTERS[4].fields[11];
pub const ASYNCWAIT: &FieldSpec = &super::REGISTERS[4].fields[12];
pub const CPSIZE: &FieldSpec = &super::REGISTERS[4].fields[13];
pub const CBURSTRW: &FieldSpec = &super::REGISTERS[4].fields[14];
}
pub mod btr3 {
use super::FieldSpec;
pub const ADDSET: &FieldSpec = &super::REGISTERS[5].fields[0];
pub const ADDHLD: &FieldSpec = &super::REGISTERS[5].fields[1];
pub const DATAST: &FieldSpec = &super::REGISTERS[5].fields[2];
pub const BUSTURN: &FieldSpec = &super::REGISTERS[5].fields[3];
pub const CLKDIV: &FieldSpec = &super::REGISTERS[5].fields[4];
pub const DATLAT: &FieldSpec = &super::REGISTERS[5].fields[5];
pub const ACCMOD: &FieldSpec = &super::REGISTERS[5].fields[6];
}
pub mod bcr4 {
use super::FieldSpec;
pub const MBKEN: &FieldSpec = &super::REGISTERS[6].fields[0];
pub const MUXEN: &FieldSpec = &super::REGISTERS[6].fields[1];
pub const MTYP: &FieldSpec = &super::REGISTERS[6].fields[2];
pub const MWID: &FieldSpec = &super::REGISTERS[6].fields[3];
pub const FACCEN: &FieldSpec = &super::REGISTERS[6].fields[4];
pub const BURSTEN: &FieldSpec = &super::REGISTERS[6].fields[5];
pub const WAITPOL: &FieldSpec = &super::REGISTERS[6].fields[6];
pub const WRAPMOD: &FieldSpec = &super::REGISTERS[6].fields[7];
pub const WAITCFG: &FieldSpec = &super::REGISTERS[6].fields[8];
pub const WREN: &FieldSpec = &super::REGISTERS[6].fields[9];
pub const WAITEN: &FieldSpec = &super::REGISTERS[6].fields[10];
pub const EXTMOD: &FieldSpec = &super::REGISTERS[6].fields[11];
pub const ASYNCWAIT: &FieldSpec = &super::REGISTERS[6].fields[12];
pub const CPSIZE: &FieldSpec = &super::REGISTERS[6].fields[13];
pub const CBURSTRW: &FieldSpec = &super::REGISTERS[6].fields[14];
}
pub mod btr4 {
use super::FieldSpec;
pub const ADDSET: &FieldSpec = &super::REGISTERS[7].fields[0];
pub const ADDHLD: &FieldSpec = &super::REGISTERS[7].fields[1];
pub const DATAST: &FieldSpec = &super::REGISTERS[7].fields[2];
pub const BUSTURN: &FieldSpec = &super::REGISTERS[7].fields[3];
pub const CLKDIV: &FieldSpec = &super::REGISTERS[7].fields[4];
pub const DATLAT: &FieldSpec = &super::REGISTERS[7].fields[5];
pub const ACCMOD: &FieldSpec = &super::REGISTERS[7].fields[6];
}
pub mod pcr2 {
use super::FieldSpec;
pub const PWAITEN: &FieldSpec = &super::REGISTERS[8].fields[0];
pub const PBKEN: &FieldSpec = &super::REGISTERS[8].fields[1];
pub const PTYP: &FieldSpec = &super::REGISTERS[8].fields[2];
pub const PWID: &FieldSpec = &super::REGISTERS[8].fields[3];
pub const ECCEN: &FieldSpec = &super::REGISTERS[8].fields[4];
pub const TCLR: &FieldSpec = &super::REGISTERS[8].fields[5];
pub const TAR: &FieldSpec = &super::REGISTERS[8].fields[6];
pub const ECCPS: &FieldSpec = &super::REGISTERS[8].fields[7];
}
pub mod sr2 {
use super::FieldSpec;
pub const IRS: &FieldSpec = &super::REGISTERS[9].fields[0];
pub const ILS: &FieldSpec = &super::REGISTERS[9].fields[1];
pub const IFS: &FieldSpec = &super::REGISTERS[9].fields[2];
pub const IREN: &FieldSpec = &super::REGISTERS[9].fields[3];
pub const ILEN: &FieldSpec = &super::REGISTERS[9].fields[4];
pub const IFEN: &FieldSpec = &super::REGISTERS[9].fields[5];
pub const FEMPT: &FieldSpec = &super::REGISTERS[9].fields[6];
}
pub mod pmem2 {
use super::FieldSpec;
pub const MEMSETX: &FieldSpec = &super::REGISTERS[10].fields[0];
pub const MEMWAITX: &FieldSpec = &super::REGISTERS[10].fields[1];
pub const MEMHOLDX: &FieldSpec = &super::REGISTERS[10].fields[2];
pub const MEMHIZX: &FieldSpec = &super::REGISTERS[10].fields[3];
}
pub mod patt2 {
use super::FieldSpec;
pub const ATTSETX: &FieldSpec = &super::REGISTERS[11].fields[0];
pub const ATTWAITX: &FieldSpec = &super::REGISTERS[11].fields[1];
pub const ATTHOLDX: &FieldSpec = &super::REGISTERS[11].fields[2];
pub const ATTHIZX: &FieldSpec = &super::REGISTERS[11].fields[3];
}
pub mod eccr2 {
use super::FieldSpec;
pub const ECCX: &FieldSpec = &super::REGISTERS[12].fields[0];
}
pub mod pcr3 {
use super::FieldSpec;
pub const PWAITEN: &FieldSpec = &super::REGISTERS[13].fields[0];
pub const PBKEN: &FieldSpec = &super::REGISTERS[13].fields[1];
pub const PTYP: &FieldSpec = &super::REGISTERS[13].fields[2];
pub const PWID: &FieldSpec = &super::REGISTERS[13].fields[3];
pub const ECCEN: &FieldSpec = &super::REGISTERS[13].fields[4];
pub const TCLR: &FieldSpec = &super::REGISTERS[13].fields[5];
pub const TAR: &FieldSpec = &super::REGISTERS[13].fields[6];
pub const ECCPS: &FieldSpec = &super::REGISTERS[13].fields[7];
}
pub mod sr3 {
use super::FieldSpec;
pub const IRS: &FieldSpec = &super::REGISTERS[14].fields[0];
pub const ILS: &FieldSpec = &super::REGISTERS[14].fields[1];
pub const IFS: &FieldSpec = &super::REGISTERS[14].fields[2];
pub const IREN: &FieldSpec = &super::REGISTERS[14].fields[3];
pub const ILEN: &FieldSpec = &super::REGISTERS[14].fields[4];
pub const IFEN: &FieldSpec = &super::REGISTERS[14].fields[5];
pub const FEMPT: &FieldSpec = &super::REGISTERS[14].fields[6];
}
pub mod pmem3 {
use super::FieldSpec;
pub const MEMSETX: &FieldSpec = &super::REGISTERS[15].fields[0];
pub const MEMWAITX: &FieldSpec = &super::REGISTERS[15].fields[1];
pub const MEMHOLDX: &FieldSpec = &super::REGISTERS[15].fields[2];
pub const MEMHIZX: &FieldSpec = &super::REGISTERS[15].fields[3];
}
pub mod patt3 {
use super::FieldSpec;
pub const ATTSETX: &FieldSpec = &super::REGISTERS[16].fields[0];
pub const ATTWAITX: &FieldSpec = &super::REGISTERS[16].fields[1];
pub const ATTHOLDX: &FieldSpec = &super::REGISTERS[16].fields[2];
pub const ATTHIZX: &FieldSpec = &super::REGISTERS[16].fields[3];
}
pub mod eccr3 {
use super::FieldSpec;
pub const ECCX: &FieldSpec = &super::REGISTERS[17].fields[0];
}
pub mod pcr4 {
use super::FieldSpec;
pub const PWAITEN: &FieldSpec = &super::REGISTERS[18].fields[0];
pub const PBKEN: &FieldSpec = &super::REGISTERS[18].fields[1];
pub const PTYP: &FieldSpec = &super::REGISTERS[18].fields[2];
pub const PWID: &FieldSpec = &super::REGISTERS[18].fields[3];
pub const ECCEN: &FieldSpec = &super::REGISTERS[18].fields[4];
pub const TCLR: &FieldSpec = &super::REGISTERS[18].fields[5];
pub const TAR: &FieldSpec = &super::REGISTERS[18].fields[6];
pub const ECCPS: &FieldSpec = &super::REGISTERS[18].fields[7];
}
pub mod sr4 {
use super::FieldSpec;
pub const IRS: &FieldSpec = &super::REGISTERS[19].fields[0];
pub const ILS: &FieldSpec = &super::REGISTERS[19].fields[1];
pub const IFS: &FieldSpec = &super::REGISTERS[19].fields[2];
pub const IREN: &FieldSpec = &super::REGISTERS[19].fields[3];
pub const ILEN: &FieldSpec = &super::REGISTERS[19].fields[4];
pub const IFEN: &FieldSpec = &super::REGISTERS[19].fields[5];
pub const FEMPT: &FieldSpec = &super::REGISTERS[19].fields[6];
}
pub mod pmem4 {
use super::FieldSpec;
pub const MEMSETX: &FieldSpec = &super::REGISTERS[20].fields[0];
pub const MEMWAITX: &FieldSpec = &super::REGISTERS[20].fields[1];
pub const MEMHOLDX: &FieldSpec = &super::REGISTERS[20].fields[2];
pub const MEMHIZX: &FieldSpec = &super::REGISTERS[20].fields[3];
}
pub mod patt4 {
use super::FieldSpec;
pub const ATTSETX: &FieldSpec = &super::REGISTERS[21].fields[0];
pub const ATTWAITX: &FieldSpec = &super::REGISTERS[21].fields[1];
pub const ATTHOLDX: &FieldSpec = &super::REGISTERS[21].fields[2];
pub const ATTHIZX: &FieldSpec = &super::REGISTERS[21].fields[3];
}
pub mod pio4 {
use super::FieldSpec;
pub const IOSETX: &FieldSpec = &super::REGISTERS[22].fields[0];
pub const IOWAITX: &FieldSpec = &super::REGISTERS[22].fields[1];
pub const IOHOLDX: &FieldSpec = &super::REGISTERS[22].fields[2];
pub const IOHIZX: &FieldSpec = &super::REGISTERS[22].fields[3];
}
pub mod bwtr1 {
use super::FieldSpec;
pub const ADDSET: &FieldSpec = &super::REGISTERS[23].fields[0];
pub const ADDHLD: &FieldSpec = &super::REGISTERS[23].fields[1];
pub const DATAST: &FieldSpec = &super::REGISTERS[23].fields[2];
pub const BUSTURN: &FieldSpec = &super::REGISTERS[23].fields[3];
pub const ACCMOD: &FieldSpec = &super::REGISTERS[23].fields[4];
}
pub mod bwtr3 {
use super::FieldSpec;
pub const ADDSET: &FieldSpec = &super::REGISTERS[24].fields[0];
pub const ADDHLD: &FieldSpec = &super::REGISTERS[24].fields[1];
pub const DATAST: &FieldSpec = &super::REGISTERS[24].fields[2];
pub const BUSTURN: &FieldSpec = &super::REGISTERS[24].fields[3];
pub const ACCMOD: &FieldSpec = &super::REGISTERS[24].fields[4];
}
pub mod bwtr2 {
use super::FieldSpec;
pub const ADDSET: &FieldSpec = &super::REGISTERS[25].fields[0];
pub const ADDHLD: &FieldSpec = &super::REGISTERS[25].fields[1];
pub const DATAST: &FieldSpec = &super::REGISTERS[25].fields[2];
pub const BUSTURN: &FieldSpec = &super::REGISTERS[25].fields[3];
pub const ACCMOD: &FieldSpec = &super::REGISTERS[25].fields[4];
}
pub mod bwtr4 {
use super::FieldSpec;
pub const ADDSET: &FieldSpec = &super::REGISTERS[26].fields[0];
pub const ADDHLD: &FieldSpec = &super::REGISTERS[26].fields[1];
pub const DATAST: &FieldSpec = &super::REGISTERS[26].fields[2];
pub const BUSTURN: &FieldSpec = &super::REGISTERS[26].fields[3];
pub const ACCMOD: &FieldSpec = &super::REGISTERS[26].fields[4];
}
pub mod sdcr1 {
use super::FieldSpec;
pub const NC: &FieldSpec = &super::REGISTERS[27].fields[0];
pub const NR: &FieldSpec = &super::REGISTERS[27].fields[1];
pub const MWID: &FieldSpec = &super::REGISTERS[27].fields[2];
pub const NB: &FieldSpec = &super::REGISTERS[27].fields[3];
pub const CAS: &FieldSpec = &super::REGISTERS[27].fields[4];
pub const WP: &FieldSpec = &super::REGISTERS[27].fields[5];
pub const SDCLK: &FieldSpec = &super::REGISTERS[27].fields[6];
pub const RBURST: &FieldSpec = &super::REGISTERS[27].fields[7];
pub const RPIPE: &FieldSpec = &super::REGISTERS[27].fields[8];
}
pub mod sdcr2 {
use super::FieldSpec;
pub const NC: &FieldSpec = &super::REGISTERS[28].fields[0];
pub const NR: &FieldSpec = &super::REGISTERS[28].fields[1];
pub const MWID: &FieldSpec = &super::REGISTERS[28].fields[2];
pub const NB: &FieldSpec = &super::REGISTERS[28].fields[3];
pub const CAS: &FieldSpec = &super::REGISTERS[28].fields[4];
pub const WP: &FieldSpec = &super::REGISTERS[28].fields[5];
pub const CLK: &FieldSpec = &super::REGISTERS[28].fields[6];
}
pub mod sdtr1 {
use super::FieldSpec;
pub const TMRD: &FieldSpec = &super::REGISTERS[29].fields[0];
pub const TXSR: &FieldSpec = &super::REGISTERS[29].fields[1];
pub const TRAS: &FieldSpec = &super::REGISTERS[29].fields[2];
pub const TRC: &FieldSpec = &super::REGISTERS[29].fields[3];
pub const TWR: &FieldSpec = &super::REGISTERS[29].fields[4];
pub const TRP: &FieldSpec = &super::REGISTERS[29].fields[5];
pub const TRCD: &FieldSpec = &super::REGISTERS[29].fields[6];
}
pub mod sdtr2 {
use super::FieldSpec;
pub const TMRD: &FieldSpec = &super::REGISTERS[30].fields[0];
pub const TXSR: &FieldSpec = &super::REGISTERS[30].fields[1];
pub const TRAS: &FieldSpec = &super::REGISTERS[30].fields[2];
pub const TRC: &FieldSpec = &super::REGISTERS[30].fields[3];
pub const TWR: &FieldSpec = &super::REGISTERS[30].fields[4];
pub const TRP: &FieldSpec = &super::REGISTERS[30].fields[5];
pub const TRCD: &FieldSpec = &super::REGISTERS[30].fields[6];
}
pub mod sdcmr {
use super::FieldSpec;
pub const MODE: &FieldSpec = &super::REGISTERS[31].fields[0];
pub const CTB2: &FieldSpec = &super::REGISTERS[31].fields[1];
pub const CTB1: &FieldSpec = &super::REGISTERS[31].fields[2];
pub const NRFS: &FieldSpec = &super::REGISTERS[31].fields[3];
pub const MRD: &FieldSpec = &super::REGISTERS[31].fields[4];
}
pub mod sdrtr {
use super::FieldSpec;
pub const CRE: &FieldSpec = &super::REGISTERS[32].fields[0];
pub const COUNT: &FieldSpec = &super::REGISTERS[32].fields[1];
pub const REIE: &FieldSpec = &super::REGISTERS[32].fields[2];
}
pub mod sdsr {
use super::FieldSpec;
pub const RE: &FieldSpec = &super::REGISTERS[33].fields[0];
pub const MODES1: &FieldSpec = &super::REGISTERS[33].fields[1];
pub const MODES2: &FieldSpec = &super::REGISTERS[33].fields[2];
pub const BUSY: &FieldSpec = &super::REGISTERS[33].fields[3];
}
pub static REGISTERS: [RegisterSpec; 34] = [
RegisterSpec { name: "BCR1", offset: 0x0, width: Width::W32, reset: 0x0000_30D0, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None, fields: &[
FieldSpec { name: "MBKEN", bit: 0, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "MUXEN", bit: 1, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "MTYP", bit: 2, width: 2, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "MWID", bit: 4, width: 2, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "FACCEN", bit: 6, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "BURSTEN", bit: 8, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "WAITPOL", bit: 9, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "WRAPMOD", bit: 10, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "WAITCFG", bit: 11, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "WREN", bit: 12, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "WAITEN", bit: 13, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "EXTMOD", bit: 14, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "ASYNCWAIT", bit: 15, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "CPSIZE", bit: 16, width: 3, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "CBURSTRW", bit: 19, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "CCLKEN", bit: 20, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
] },
RegisterSpec { name: "BTR1", offset: 0x4, width: Width::W32, reset: 0xFFFF_FFFF, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None, fields: &[
FieldSpec { name: "ADDSET", bit: 0, width: 4, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "ADDHLD", bit: 4, width: 4, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "DATAST", bit: 8, width: 8, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "BUSTURN", bit: 16, width: 4, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "CLKDIV", bit: 20, width: 4, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "DATLAT", bit: 24, width: 4, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "ACCMOD", bit: 28, width: 2, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
] },
RegisterSpec { name: "BCR2", offset: 0x8, width: Width::W32, reset: 0x0000_30D0, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None, fields: &[
FieldSpec { name: "MBKEN", bit: 0, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "MUXEN", bit: 1, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "MTYP", bit: 2, width: 2, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "MWID", bit: 4, width: 2, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "FACCEN", bit: 6, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "BURSTEN", bit: 8, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "WAITPOL", bit: 9, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "WRAPMOD", bit: 10, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "WAITCFG", bit: 11, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "WREN", bit: 12, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "WAITEN", bit: 13, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "EXTMOD", bit: 14, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "ASYNCWAIT", bit: 15, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "CPSIZE", bit: 16, width: 3, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "CBURSTRW", bit: 19, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
] },
RegisterSpec { name: "BTR2", offset: 0xC, width: Width::W32, reset: 0xFFFF_FFFF, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None, fields: &[
FieldSpec { name: "ADDSET", bit: 0, width: 4, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "ADDHLD", bit: 4, width: 4, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "DATAST", bit: 8, width: 8, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "BUSTURN", bit: 16, width: 4, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "CLKDIV", bit: 20, width: 4, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "DATLAT", bit: 24, width: 4, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "ACCMOD", bit: 28, width: 2, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
] },
RegisterSpec { name: "BCR3", offset: 0x10, width: Width::W32, reset: 0x0000_30D0, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None, fields: &[
FieldSpec { name: "MBKEN", bit: 0, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "MUXEN", bit: 1, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "MTYP", bit: 2, width: 2, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "MWID", bit: 4, width: 2, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "FACCEN", bit: 6, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "BURSTEN", bit: 8, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "WAITPOL", bit: 9, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "WRAPMOD", bit: 10, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "WAITCFG", bit: 11, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "WREN", bit: 12, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "WAITEN", bit: 13, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "EXTMOD", bit: 14, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "ASYNCWAIT", bit: 15, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "CPSIZE", bit: 16, width: 3, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "CBURSTRW", bit: 19, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
] },
RegisterSpec { name: "BTR3", offset: 0x14, width: Width::W32, reset: 0xFFFF_FFFF, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None, fields: &[
FieldSpec { name: "ADDSET", bit: 0, width: 4, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "ADDHLD", bit: 4, width: 4, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "DATAST", bit: 8, width: 8, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "BUSTURN", bit: 16, width: 4, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "CLKDIV", bit: 20, width: 4, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "DATLAT", bit: 24, width: 4, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "ACCMOD", bit: 28, width: 2, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
] },
RegisterSpec { name: "BCR4", offset: 0x18, width: Width::W32, reset: 0x0000_30D0, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None, fields: &[
FieldSpec { name: "MBKEN", bit: 0, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "MUXEN", bit: 1, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "MTYP", bit: 2, width: 2, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "MWID", bit: 4, width: 2, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "FACCEN", bit: 6, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "BURSTEN", bit: 8, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "WAITPOL", bit: 9, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "WRAPMOD", bit: 10, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "WAITCFG", bit: 11, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "WREN", bit: 12, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "WAITEN", bit: 13, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "EXTMOD", bit: 14, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "ASYNCWAIT", bit: 15, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "CPSIZE", bit: 16, width: 3, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "CBURSTRW", bit: 19, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
] },
RegisterSpec { name: "BTR4", offset: 0x1C, width: Width::W32, reset: 0xFFFF_FFFF, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None, fields: &[
FieldSpec { name: "ADDSET", bit: 0, width: 4, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "ADDHLD", bit: 4, width: 4, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "DATAST", bit: 8, width: 8, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "BUSTURN", bit: 16, width: 4, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "CLKDIV", bit: 20, width: 4, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "DATLAT", bit: 24, width: 4, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "ACCMOD", bit: 28, width: 2, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
] },
RegisterSpec { name: "PCR2", offset: 0x60, width: Width::W32, reset: 0x0000_0018, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None, fields: &[
FieldSpec { name: "PWAITEN", bit: 1, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "PBKEN", bit: 2, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "PTYP", bit: 3, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "PWID", bit: 4, width: 2, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "ECCEN", bit: 6, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "TCLR", bit: 9, width: 4, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "TAR", bit: 13, width: 4, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "ECCPS", bit: 17, width: 3, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
] },
RegisterSpec { name: "SR2", offset: 0x64, width: Width::W32, reset: 0x0000_0040, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None, fields: &[
FieldSpec { name: "IRS", bit: 0, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "ILS", bit: 1, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "IFS", bit: 2, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "IREN", bit: 3, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "ILEN", bit: 4, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "IFEN", bit: 5, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "FEMPT", bit: 6, width: 1, access: Access::ReadOnly, read: ReadAction::None, write: WriteModify::None },
] },
RegisterSpec { name: "PMEM2", offset: 0x68, width: Width::W32, reset: 0xFCFC_FCFC, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None, fields: &[
FieldSpec { name: "MEMSETx", bit: 0, width: 8, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "MEMWAITx", bit: 8, width: 8, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "MEMHOLDx", bit: 16, width: 8, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "MEMHIZx", bit: 24, width: 8, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
] },
RegisterSpec { name: "PATT2", offset: 0x6C, width: Width::W32, reset: 0xFCFC_FCFC, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None, fields: &[
FieldSpec { name: "ATTSETx", bit: 0, width: 8, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "ATTWAITx", bit: 8, width: 8, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "ATTHOLDx", bit: 16, width: 8, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "ATTHIZx", bit: 24, width: 8, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
] },
RegisterSpec { name: "ECCR2", offset: 0x74, width: Width::W32, reset: 0x0000_0000, access: Access::ReadOnly, read: ReadAction::None, write: WriteModify::None, fields: &[
FieldSpec { name: "ECCx", bit: 0, width: 32, access: Access::ReadOnly, read: ReadAction::None, write: WriteModify::None },
] },
RegisterSpec { name: "PCR3", offset: 0x80, width: Width::W32, reset: 0x0000_0018, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None, fields: &[
FieldSpec { name: "PWAITEN", bit: 1, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "PBKEN", bit: 2, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "PTYP", bit: 3, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "PWID", bit: 4, width: 2, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "ECCEN", bit: 6, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "TCLR", bit: 9, width: 4, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "TAR", bit: 13, width: 4, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "ECCPS", bit: 17, width: 3, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
] },
RegisterSpec { name: "SR3", offset: 0x84, width: Width::W32, reset: 0x0000_0040, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None, fields: &[
FieldSpec { name: "IRS", bit: 0, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "ILS", bit: 1, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "IFS", bit: 2, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "IREN", bit: 3, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "ILEN", bit: 4, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "IFEN", bit: 5, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "FEMPT", bit: 6, width: 1, access: Access::ReadOnly, read: ReadAction::None, write: WriteModify::None },
] },
RegisterSpec { name: "PMEM3", offset: 0x88, width: Width::W32, reset: 0xFCFC_FCFC, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None, fields: &[
FieldSpec { name: "MEMSETx", bit: 0, width: 8, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "MEMWAITx", bit: 8, width: 8, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "MEMHOLDx", bit: 16, width: 8, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "MEMHIZx", bit: 24, width: 8, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
] },
RegisterSpec { name: "PATT3", offset: 0x8C, width: Width::W32, reset: 0xFCFC_FCFC, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None, fields: &[
FieldSpec { name: "ATTSETx", bit: 0, width: 8, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "ATTWAITx", bit: 8, width: 8, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "ATTHOLDx", bit: 16, width: 8, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "ATTHIZx", bit: 24, width: 8, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
] },
RegisterSpec { name: "ECCR3", offset: 0x94, width: Width::W32, reset: 0x0000_0000, access: Access::ReadOnly, read: ReadAction::None, write: WriteModify::None, fields: &[
FieldSpec { name: "ECCx", bit: 0, width: 32, access: Access::ReadOnly, read: ReadAction::None, write: WriteModify::None },
] },
RegisterSpec { name: "PCR4", offset: 0xA0, width: Width::W32, reset: 0x0000_0018, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None, fields: &[
FieldSpec { name: "PWAITEN", bit: 1, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "PBKEN", bit: 2, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "PTYP", bit: 3, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "PWID", bit: 4, width: 2, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "ECCEN", bit: 6, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "TCLR", bit: 9, width: 4, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "TAR", bit: 13, width: 4, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "ECCPS", bit: 17, width: 3, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
] },
RegisterSpec { name: "SR4", offset: 0xA4, width: Width::W32, reset: 0x0000_0040, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None, fields: &[
FieldSpec { name: "IRS", bit: 0, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "ILS", bit: 1, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "IFS", bit: 2, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "IREN", bit: 3, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "ILEN", bit: 4, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "IFEN", bit: 5, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "FEMPT", bit: 6, width: 1, access: Access::ReadOnly, read: ReadAction::None, write: WriteModify::None },
] },
RegisterSpec { name: "PMEM4", offset: 0xA8, width: Width::W32, reset: 0xFCFC_FCFC, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None, fields: &[
FieldSpec { name: "MEMSETx", bit: 0, width: 8, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "MEMWAITx", bit: 8, width: 8, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "MEMHOLDx", bit: 16, width: 8, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "MEMHIZx", bit: 24, width: 8, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
] },
RegisterSpec { name: "PATT4", offset: 0xAC, width: Width::W32, reset: 0xFCFC_FCFC, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None, fields: &[
FieldSpec { name: "ATTSETx", bit: 0, width: 8, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "ATTWAITx", bit: 8, width: 8, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "ATTHOLDx", bit: 16, width: 8, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "ATTHIZx", bit: 24, width: 8, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
] },
RegisterSpec { name: "PIO4", offset: 0xB0, width: Width::W32, reset: 0xFCFC_FCFC, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None, fields: &[
FieldSpec { name: "IOSETx", bit: 0, width: 8, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "IOWAITx", bit: 8, width: 8, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "IOHOLDx", bit: 16, width: 8, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "IOHIZx", bit: 24, width: 8, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
] },
RegisterSpec { name: "BWTR1", offset: 0x104, width: Width::W32, reset: 0x0FFF_FFFF, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None, fields: &[
FieldSpec { name: "ADDSET", bit: 0, width: 4, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "ADDHLD", bit: 4, width: 4, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "DATAST", bit: 8, width: 8, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "BUSTURN", bit: 16, width: 4, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "ACCMOD", bit: 28, width: 2, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
] },
RegisterSpec { name: "BWTR3", offset: 0x104, width: Width::W32, reset: 0x0FFF_FFFF, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None, fields: &[
FieldSpec { name: "ADDSET", bit: 0, width: 4, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "ADDHLD", bit: 4, width: 4, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "DATAST", bit: 8, width: 8, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "BUSTURN", bit: 16, width: 4, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "ACCMOD", bit: 28, width: 2, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
] },
RegisterSpec { name: "BWTR2", offset: 0x10C, width: Width::W32, reset: 0x0FFF_FFFF, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None, fields: &[
FieldSpec { name: "ADDSET", bit: 0, width: 4, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "ADDHLD", bit: 4, width: 4, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "DATAST", bit: 8, width: 8, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "BUSTURN", bit: 16, width: 4, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "ACCMOD", bit: 28, width: 2, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
] },
RegisterSpec { name: "BWTR4", offset: 0x10C, width: Width::W32, reset: 0x0FFF_FFFF, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None, fields: &[
FieldSpec { name: "ADDSET", bit: 0, width: 4, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "ADDHLD", bit: 4, width: 4, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "DATAST", bit: 8, width: 8, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "BUSTURN", bit: 16, width: 4, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "ACCMOD", bit: 28, width: 2, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
] },
RegisterSpec { name: "SDCR1", offset: 0x140, width: Width::W32, reset: 0x0000_02D0, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None, fields: &[
FieldSpec { name: "NC", bit: 0, width: 2, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "NR", bit: 2, width: 2, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "MWID", bit: 4, width: 2, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "NB", bit: 6, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "CAS", bit: 7, width: 2, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "WP", bit: 9, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "SDCLK", bit: 10, width: 2, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "RBURST", bit: 12, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "RPIPE", bit: 13, width: 2, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
] },
RegisterSpec { name: "SDCR2", offset: 0x144, width: Width::W32, reset: 0x0000_02D0, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None, fields: &[
FieldSpec { name: "NC", bit: 0, width: 2, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "NR", bit: 2, width: 2, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "MWID", bit: 4, width: 2, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "NB", bit: 6, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "CAS", bit: 7, width: 2, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "WP", bit: 9, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "CLK", bit: 10, width: 2, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
] },
RegisterSpec { name: "SDTR1", offset: 0x148, width: Width::W32, reset: 0x0FFF_FFFF, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None, fields: &[
FieldSpec { name: "TMRD", bit: 0, width: 4, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "TXSR", bit: 4, width: 4, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "TRAS", bit: 8, width: 4, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "TRC", bit: 12, width: 4, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "TWR", bit: 16, width: 4, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "TRP", bit: 20, width: 4, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "TRCD", bit: 24, width: 4, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
] },
RegisterSpec { name: "SDTR2", offset: 0x14C, width: Width::W32, reset: 0x0FFF_FFFF, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None, fields: &[
FieldSpec { name: "TMRD", bit: 0, width: 4, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "TXSR", bit: 4, width: 4, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "TRAS", bit: 8, width: 4, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "TRC", bit: 12, width: 4, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "TWR", bit: 16, width: 4, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "TRP", bit: 20, width: 4, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "TRCD", bit: 24, width: 4, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
] },
RegisterSpec { name: "SDCMR", offset: 0x150, width: Width::W32, reset: 0x0000_0000, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None, fields: &[
FieldSpec { name: "MODE", bit: 0, width: 3, access: Access::WriteOnly, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "CTB2", bit: 3, width: 1, access: Access::WriteOnly, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "CTB1", bit: 4, width: 1, access: Access::WriteOnly, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "NRFS", bit: 5, width: 4, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "MRD", bit: 9, width: 13, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
] },
RegisterSpec { name: "SDRTR", offset: 0x154, width: Width::W32, reset: 0x0000_0000, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None, fields: &[
FieldSpec { name: "CRE", bit: 0, width: 1, access: Access::WriteOnly, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "COUNT", bit: 1, width: 13, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "REIE", bit: 14, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
] },
RegisterSpec { name: "SDSR", offset: 0x158, width: Width::W32, reset: 0x0000_0000, access: Access::ReadOnly, read: ReadAction::None, write: WriteModify::None, fields: &[
FieldSpec { name: "RE", bit: 0, width: 1, access: Access::ReadOnly, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "MODES1", bit: 1, width: 2, access: Access::ReadOnly, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "MODES2", bit: 3, width: 2, access: Access::ReadOnly, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "BUSY", bit: 5, width: 1, access: Access::ReadOnly, read: ReadAction::None, write: WriteModify::None },
] },
];