use rigless::soc::{Access, FieldSpec, Layout, ReadAction, RegisterSpec, Width, WriteModify};
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum Register {
Ier = 0,
M1cr = 1,
M1sr = 2,
M1far = 3,
M1fdrl = 4,
M1fdrh = 5,
M1fecr = 6,
M2cr = 7,
M2sr = 8,
M2far = 9,
M2fdrl = 10,
M2fdrh = 11,
M2fecr = 12,
M3cr = 13,
M3sr = 14,
M3far = 15,
M3fdrl = 16,
M3fdrh = 17,
M3fecr = 18,
M4cr = 19,
M4sr = 20,
M4far = 21,
M4fdrl = 22,
M4fdrh = 23,
M4fecr = 24,
M5cr = 25,
M5sr = 26,
M5far = 27,
M5fdrl = 28,
M5fdrh = 29,
M5fecr = 30,
}
impl Register {
pub const ALL: [Self; 31] = [Self::Ier, Self::M1cr, Self::M1sr, Self::M1far, Self::M1fdrl, Self::M1fdrh, Self::M1fecr, Self::M2cr, Self::M2sr, Self::M2far, Self::M2fdrl, Self::M2fdrh, Self::M2fecr, Self::M3cr, Self::M3sr, Self::M3far, Self::M3fdrl, Self::M3fdrh, Self::M3fecr, Self::M4cr, Self::M4sr, Self::M4far, Self::M4fdrl, Self::M4fdrh, Self::M4fecr, Self::M5cr, Self::M5sr, Self::M5far, Self::M5fdrl, Self::M5fdrh, Self::M5fecr];
}
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 ier {
use super::FieldSpec;
pub const GIE: &FieldSpec = &super::REGISTERS[0].fields[0];
pub const GECCSEIE_: &FieldSpec = &super::REGISTERS[0].fields[1];
pub const GECCDEIE: &FieldSpec = &super::REGISTERS[0].fields[2];
pub const GECCDEBWIE: &FieldSpec = &super::REGISTERS[0].fields[3];
}
pub mod m1cr {
use super::FieldSpec;
pub const ECCSEIE: &FieldSpec = &super::REGISTERS[1].fields[0];
pub const ECCDEIE: &FieldSpec = &super::REGISTERS[1].fields[1];
pub const ECCDEBWIE: &FieldSpec = &super::REGISTERS[1].fields[2];
pub const ECCELEN: &FieldSpec = &super::REGISTERS[1].fields[3];
}
pub mod m1sr {
use super::FieldSpec;
pub const SEDCF: &FieldSpec = &super::REGISTERS[2].fields[0];
pub const DEDF: &FieldSpec = &super::REGISTERS[2].fields[1];
pub const DEBWDF: &FieldSpec = &super::REGISTERS[2].fields[2];
}
pub mod m1far {
use super::FieldSpec;
pub const FADD: &FieldSpec = &super::REGISTERS[3].fields[0];
}
pub mod m1fdrl {
use super::FieldSpec;
pub const FDATAL: &FieldSpec = &super::REGISTERS[4].fields[0];
}
pub mod m1fdrh {
use super::FieldSpec;
pub const FDATAH: &FieldSpec = &super::REGISTERS[5].fields[0];
}
pub mod m1fecr {
use super::FieldSpec;
pub const FEC: &FieldSpec = &super::REGISTERS[6].fields[0];
}
pub mod m2cr {
use super::FieldSpec;
pub const ECCSEIE: &FieldSpec = &super::REGISTERS[7].fields[0];
pub const ECCDEIE: &FieldSpec = &super::REGISTERS[7].fields[1];
pub const ECCDEBWIE: &FieldSpec = &super::REGISTERS[7].fields[2];
pub const ECCELEN: &FieldSpec = &super::REGISTERS[7].fields[3];
}
pub mod m2sr {
use super::FieldSpec;
pub const SEDCF: &FieldSpec = &super::REGISTERS[8].fields[0];
pub const DEDF: &FieldSpec = &super::REGISTERS[8].fields[1];
pub const DEBWDF: &FieldSpec = &super::REGISTERS[8].fields[2];
}
pub mod m2far {
use super::FieldSpec;
pub const FADD: &FieldSpec = &super::REGISTERS[9].fields[0];
}
pub mod m2fdrl {
use super::FieldSpec;
pub const FDATAL: &FieldSpec = &super::REGISTERS[10].fields[0];
}
pub mod m2fdrh {
use super::FieldSpec;
pub const FDATAH: &FieldSpec = &super::REGISTERS[11].fields[0];
}
pub mod m2fecr {
use super::FieldSpec;
pub const FEC: &FieldSpec = &super::REGISTERS[12].fields[0];
}
pub mod m3cr {
use super::FieldSpec;
pub const ECCSEIE: &FieldSpec = &super::REGISTERS[13].fields[0];
pub const ECCDEIE: &FieldSpec = &super::REGISTERS[13].fields[1];
pub const ECCDEBWIE: &FieldSpec = &super::REGISTERS[13].fields[2];
pub const ECCELEN: &FieldSpec = &super::REGISTERS[13].fields[3];
}
pub mod m3sr {
use super::FieldSpec;
pub const SEDCF: &FieldSpec = &super::REGISTERS[14].fields[0];
pub const DEDF: &FieldSpec = &super::REGISTERS[14].fields[1];
pub const DEBWDF: &FieldSpec = &super::REGISTERS[14].fields[2];
}
pub mod m3far {
use super::FieldSpec;
pub const FADD: &FieldSpec = &super::REGISTERS[15].fields[0];
}
pub mod m3fdrl {
use super::FieldSpec;
pub const FDATAL: &FieldSpec = &super::REGISTERS[16].fields[0];
}
pub mod m3fdrh {
use super::FieldSpec;
pub const FDATAH: &FieldSpec = &super::REGISTERS[17].fields[0];
}
pub mod m3fecr {
use super::FieldSpec;
pub const FEC: &FieldSpec = &super::REGISTERS[18].fields[0];
}
pub mod m4cr {
use super::FieldSpec;
pub const ECCSEIE: &FieldSpec = &super::REGISTERS[19].fields[0];
pub const ECCDEIE: &FieldSpec = &super::REGISTERS[19].fields[1];
pub const ECCDEBWIE: &FieldSpec = &super::REGISTERS[19].fields[2];
pub const ECCELEN: &FieldSpec = &super::REGISTERS[19].fields[3];
}
pub mod m4sr {
use super::FieldSpec;
pub const SEDCF: &FieldSpec = &super::REGISTERS[20].fields[0];
pub const DEDF: &FieldSpec = &super::REGISTERS[20].fields[1];
pub const DEBWDF: &FieldSpec = &super::REGISTERS[20].fields[2];
}
pub mod m4far {
use super::FieldSpec;
pub const FADD: &FieldSpec = &super::REGISTERS[21].fields[0];
}
pub mod m4fdrl {
use super::FieldSpec;
pub const FDATAL: &FieldSpec = &super::REGISTERS[22].fields[0];
}
pub mod m4fdrh {
use super::FieldSpec;
pub const FDATAH: &FieldSpec = &super::REGISTERS[23].fields[0];
}
pub mod m4fecr {
use super::FieldSpec;
pub const FEC: &FieldSpec = &super::REGISTERS[24].fields[0];
}
pub mod m5cr {
use super::FieldSpec;
pub const ECCSEIE: &FieldSpec = &super::REGISTERS[25].fields[0];
pub const ECCDEIE: &FieldSpec = &super::REGISTERS[25].fields[1];
pub const ECCDEBWIE: &FieldSpec = &super::REGISTERS[25].fields[2];
pub const ECCELEN: &FieldSpec = &super::REGISTERS[25].fields[3];
}
pub mod m5sr {
use super::FieldSpec;
pub const SEDCF: &FieldSpec = &super::REGISTERS[26].fields[0];
pub const DEDF: &FieldSpec = &super::REGISTERS[26].fields[1];
pub const DEBWDF: &FieldSpec = &super::REGISTERS[26].fields[2];
}
pub mod m5far {
use super::FieldSpec;
pub const FADD: &FieldSpec = &super::REGISTERS[27].fields[0];
}
pub mod m5fdrl {
use super::FieldSpec;
pub const FDATAL: &FieldSpec = &super::REGISTERS[28].fields[0];
}
pub mod m5fdrh {
use super::FieldSpec;
pub const FEC: &FieldSpec = &super::REGISTERS[29].fields[0];
}
pub mod m5fecr {
use super::FieldSpec;
pub const FEC: &FieldSpec = &super::REGISTERS[30].fields[0];
}
pub static REGISTERS: [RegisterSpec; 31] = [
RegisterSpec { name: "IER", offset: 0x0, width: Width::W32, reset: 0x0000_0000, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None, fields: &[
FieldSpec { name: "GIE", bit: 0, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "GECCSEIE_", bit: 1, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "GECCDEIE", bit: 2, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "GECCDEBWIE", bit: 3, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
] },
RegisterSpec { name: "M1CR", offset: 0x20, width: Width::W32, reset: 0x0000_0000, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None, fields: &[
FieldSpec { name: "ECCSEIE", bit: 2, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "ECCDEIE", bit: 3, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "ECCDEBWIE", bit: 4, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "ECCELEN", bit: 5, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
] },
RegisterSpec { name: "M1SR", offset: 0x24, width: Width::W32, reset: 0x0000_0000, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None, fields: &[
FieldSpec { name: "SEDCF", bit: 0, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "DEDF", bit: 1, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "DEBWDF", bit: 2, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
] },
RegisterSpec { name: "M1FAR", offset: 0x28, width: Width::W32, reset: 0x0000_0000, access: Access::ReadOnly, read: ReadAction::None, write: WriteModify::None, fields: &[
FieldSpec { name: "FADD", bit: 0, width: 32, access: Access::ReadOnly, read: ReadAction::None, write: WriteModify::None },
] },
RegisterSpec { name: "M1FDRL", offset: 0x2C, width: Width::W32, reset: 0x0000_0000, access: Access::ReadOnly, read: ReadAction::None, write: WriteModify::None, fields: &[
FieldSpec { name: "FDATAL", bit: 0, width: 32, access: Access::ReadOnly, read: ReadAction::None, write: WriteModify::None },
] },
RegisterSpec { name: "M1FDRH", offset: 0x30, width: Width::W32, reset: 0x0000_0000, access: Access::ReadOnly, read: ReadAction::None, write: WriteModify::None, fields: &[
FieldSpec { name: "FDATAH", bit: 0, width: 32, access: Access::ReadOnly, read: ReadAction::None, write: WriteModify::None },
] },
RegisterSpec { name: "M1FECR", offset: 0x34, width: Width::W32, reset: 0x0000_0000, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None, fields: &[
FieldSpec { name: "FEC", bit: 0, width: 32, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
] },
RegisterSpec { name: "M2CR", offset: 0x40, width: Width::W32, reset: 0x0000_0000, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None, fields: &[
FieldSpec { name: "ECCSEIE", bit: 2, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "ECCDEIE", bit: 3, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "ECCDEBWIE", bit: 4, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "ECCELEN", bit: 5, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
] },
RegisterSpec { name: "M2SR", offset: 0x44, width: Width::W32, reset: 0x0000_0000, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None, fields: &[
FieldSpec { name: "SEDCF", bit: 0, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "DEDF", bit: 1, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "DEBWDF", bit: 2, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
] },
RegisterSpec { name: "M2FAR", offset: 0x48, width: Width::W32, reset: 0x0000_0000, access: Access::ReadOnly, read: ReadAction::None, write: WriteModify::None, fields: &[
FieldSpec { name: "FADD", bit: 0, width: 32, access: Access::ReadOnly, read: ReadAction::None, write: WriteModify::None },
] },
RegisterSpec { name: "M2FDRL", offset: 0x4C, width: Width::W32, reset: 0x0000_0000, access: Access::ReadOnly, read: ReadAction::None, write: WriteModify::None, fields: &[
FieldSpec { name: "FDATAL", bit: 0, width: 32, access: Access::ReadOnly, read: ReadAction::None, write: WriteModify::None },
] },
RegisterSpec { name: "M2FDRH", offset: 0x50, width: Width::W32, reset: 0x0000_0000, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None, fields: &[
FieldSpec { name: "FDATAH", bit: 0, width: 32, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
] },
RegisterSpec { name: "M2FECR", offset: 0x58, width: Width::W32, reset: 0x0000_0000, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None, fields: &[
FieldSpec { name: "FEC", bit: 0, width: 32, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
] },
RegisterSpec { name: "M3CR", offset: 0x60, width: Width::W32, reset: 0x0000_0000, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None, fields: &[
FieldSpec { name: "ECCSEIE", bit: 2, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "ECCDEIE", bit: 3, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "ECCDEBWIE", bit: 4, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "ECCELEN", bit: 5, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
] },
RegisterSpec { name: "M3SR", offset: 0x64, width: Width::W32, reset: 0x0000_0000, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None, fields: &[
FieldSpec { name: "SEDCF", bit: 0, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "DEDF", bit: 1, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "DEBWDF", bit: 2, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
] },
RegisterSpec { name: "M3FAR", offset: 0x68, width: Width::W32, reset: 0x0000_0000, access: Access::ReadOnly, read: ReadAction::None, write: WriteModify::None, fields: &[
FieldSpec { name: "FADD", bit: 0, width: 32, access: Access::ReadOnly, read: ReadAction::None, write: WriteModify::None },
] },
RegisterSpec { name: "M3FDRL", offset: 0x6C, width: Width::W32, reset: 0x0000_0000, access: Access::ReadOnly, read: ReadAction::None, write: WriteModify::None, fields: &[
FieldSpec { name: "FDATAL", bit: 0, width: 32, access: Access::ReadOnly, read: ReadAction::None, write: WriteModify::None },
] },
RegisterSpec { name: "M3FDRH", offset: 0x70, width: Width::W32, reset: 0x0000_0000, access: Access::ReadOnly, read: ReadAction::None, write: WriteModify::None, fields: &[
FieldSpec { name: "FDATAH", bit: 0, width: 32, access: Access::ReadOnly, read: ReadAction::None, write: WriteModify::None },
] },
RegisterSpec { name: "M3FECR", offset: 0x7C, width: Width::W32, reset: 0x0000_0000, access: Access::ReadOnly, read: ReadAction::None, write: WriteModify::None, fields: &[
FieldSpec { name: "FEC", bit: 0, width: 32, access: Access::ReadOnly, read: ReadAction::None, write: WriteModify::None },
] },
RegisterSpec { name: "M4CR", offset: 0x80, width: Width::W32, reset: 0x0000_0000, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None, fields: &[
FieldSpec { name: "ECCSEIE", bit: 2, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "ECCDEIE", bit: 3, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "ECCDEBWIE", bit: 4, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "ECCELEN", bit: 5, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
] },
RegisterSpec { name: "M4SR", offset: 0x84, width: Width::W32, reset: 0x0000_0000, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None, fields: &[
FieldSpec { name: "SEDCF", bit: 0, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "DEDF", bit: 1, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "DEBWDF", bit: 2, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
] },
RegisterSpec { name: "M4FAR", offset: 0x88, width: Width::W32, reset: 0x0000_0000, access: Access::ReadOnly, read: ReadAction::None, write: WriteModify::None, fields: &[
FieldSpec { name: "FADD", bit: 0, width: 32, access: Access::ReadOnly, read: ReadAction::None, write: WriteModify::None },
] },
RegisterSpec { name: "M4FDRL", offset: 0x8C, width: Width::W32, reset: 0x0000_0000, access: Access::ReadOnly, read: ReadAction::None, write: WriteModify::None, fields: &[
FieldSpec { name: "FDATAL", bit: 0, width: 32, access: Access::ReadOnly, read: ReadAction::None, write: WriteModify::None },
] },
RegisterSpec { name: "M4FDRH", offset: 0x90, width: Width::W32, reset: 0x0000_0000, access: Access::ReadOnly, read: ReadAction::None, write: WriteModify::None, fields: &[
FieldSpec { name: "FDATAH", bit: 0, width: 32, access: Access::ReadOnly, read: ReadAction::None, write: WriteModify::None },
] },
RegisterSpec { name: "M4FECR", offset: 0x90, width: Width::W32, reset: 0x0000_0000, access: Access::ReadOnly, read: ReadAction::None, write: WriteModify::None, fields: &[
FieldSpec { name: "FEC", bit: 0, width: 32, access: Access::ReadOnly, read: ReadAction::None, write: WriteModify::None },
] },
RegisterSpec { name: "M5CR", offset: 0xA0, width: Width::W32, reset: 0x0000_0000, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None, fields: &[
FieldSpec { name: "ECCSEIE", bit: 2, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "ECCDEIE", bit: 3, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "ECCDEBWIE", bit: 4, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "ECCELEN", bit: 5, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
] },
RegisterSpec { name: "M5SR", offset: 0xA4, width: Width::W32, reset: 0x0000_0000, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None, fields: &[
FieldSpec { name: "SEDCF", bit: 0, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "DEDF", bit: 1, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "DEBWDF", bit: 2, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
] },
RegisterSpec { name: "M5FAR", offset: 0xA8, width: Width::W32, reset: 0x0000_0000, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None, fields: &[
FieldSpec { name: "FADD", bit: 0, width: 32, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
] },
RegisterSpec { name: "M5FDRL", offset: 0xAC, width: Width::W32, reset: 0x0000_0000, access: Access::ReadOnly, read: ReadAction::None, write: WriteModify::None, fields: &[
FieldSpec { name: "FDATAL", bit: 0, width: 32, access: Access::ReadOnly, read: ReadAction::None, write: WriteModify::None },
] },
RegisterSpec { name: "M5FDRH", offset: 0xB0, width: Width::W32, reset: 0x0000_0000, access: Access::ReadOnly, read: ReadAction::None, write: WriteModify::None, fields: &[
FieldSpec { name: "FEC", bit: 0, width: 32, access: Access::ReadOnly, read: ReadAction::None, write: WriteModify::None },
] },
RegisterSpec { name: "M5FECR", offset: 0xB4, width: Width::W32, reset: 0x0000_0000, access: Access::ReadOnly, read: ReadAction::None, write: WriteModify::None, fields: &[
FieldSpec { name: "FEC", bit: 0, width: 32, access: Access::ReadOnly, read: ReadAction::None, write: WriteModify::None },
] },
];