use rigless::soc::{Access, FieldSpec, Layout, ReadAction, RegisterSpec, Width, WriteModify};
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum Register {
Mtlomr = 0,
Mtlisr = 1,
Mtltxqomr = 2,
Mtltxqur = 3,
Mtltxqdr = 4,
Mtlqicsr = 5,
Mtlrxqomr = 6,
Mtlrxqmpocr = 7,
Mtlrxqdr = 8,
}
impl Register {
pub const ALL: [Self; 9] = [Self::Mtlomr, Self::Mtlisr, Self::Mtltxqomr, Self::Mtltxqur, Self::Mtltxqdr, Self::Mtlqicsr, Self::Mtlrxqomr, Self::Mtlrxqmpocr, Self::Mtlrxqdr];
}
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 mtlomr {
use super::FieldSpec;
pub const DTXSTS: &FieldSpec = &super::REGISTERS[0].fields[0];
pub const CNTPRST: &FieldSpec = &super::REGISTERS[0].fields[1];
pub const CNTCLR: &FieldSpec = &super::REGISTERS[0].fields[2];
}
pub mod mtlisr {
use super::FieldSpec;
pub const Q0IS: &FieldSpec = &super::REGISTERS[1].fields[0];
}
pub mod mtltxqomr {
use super::FieldSpec;
pub const FTQ: &FieldSpec = &super::REGISTERS[2].fields[0];
pub const TSF: &FieldSpec = &super::REGISTERS[2].fields[1];
pub const TXQEN: &FieldSpec = &super::REGISTERS[2].fields[2];
pub const TTC: &FieldSpec = &super::REGISTERS[2].fields[3];
pub const TQS: &FieldSpec = &super::REGISTERS[2].fields[4];
}
pub mod mtltxqur {
use super::FieldSpec;
pub const UFFRMCNT: &FieldSpec = &super::REGISTERS[3].fields[0];
pub const UFCNTOVF: &FieldSpec = &super::REGISTERS[3].fields[1];
}
pub mod mtltxqdr {
use super::FieldSpec;
pub const TXQPAUSED: &FieldSpec = &super::REGISTERS[4].fields[0];
pub const TRCSTS: &FieldSpec = &super::REGISTERS[4].fields[1];
pub const TWCSTS: &FieldSpec = &super::REGISTERS[4].fields[2];
pub const TXQSTS: &FieldSpec = &super::REGISTERS[4].fields[3];
pub const TXSTSFSTS: &FieldSpec = &super::REGISTERS[4].fields[4];
pub const PTXQ: &FieldSpec = &super::REGISTERS[4].fields[5];
pub const STXSTSF: &FieldSpec = &super::REGISTERS[4].fields[6];
}
pub mod mtlqicsr {
use super::FieldSpec;
pub const TXUNFIS: &FieldSpec = &super::REGISTERS[5].fields[0];
pub const TXUIE: &FieldSpec = &super::REGISTERS[5].fields[1];
pub const RXOVFIS: &FieldSpec = &super::REGISTERS[5].fields[2];
pub const RXOIE: &FieldSpec = &super::REGISTERS[5].fields[3];
}
pub mod mtlrxqomr {
use super::FieldSpec;
pub const RTC: &FieldSpec = &super::REGISTERS[6].fields[0];
pub const FUP: &FieldSpec = &super::REGISTERS[6].fields[1];
pub const FEP: &FieldSpec = &super::REGISTERS[6].fields[2];
pub const RSF: &FieldSpec = &super::REGISTERS[6].fields[3];
pub const DIS_TCP_EF: &FieldSpec = &super::REGISTERS[6].fields[4];
pub const EHFC: &FieldSpec = &super::REGISTERS[6].fields[5];
pub const RFA: &FieldSpec = &super::REGISTERS[6].fields[6];
pub const RFD: &FieldSpec = &super::REGISTERS[6].fields[7];
pub const RQS: &FieldSpec = &super::REGISTERS[6].fields[8];
}
pub mod mtlrxqmpocr {
use super::FieldSpec;
pub const OVFPKTCNT: &FieldSpec = &super::REGISTERS[7].fields[0];
pub const OVFCNTOVF: &FieldSpec = &super::REGISTERS[7].fields[1];
pub const MISPKTCNT: &FieldSpec = &super::REGISTERS[7].fields[2];
pub const MISCNTOVF: &FieldSpec = &super::REGISTERS[7].fields[3];
}
pub mod mtlrxqdr {
use super::FieldSpec;
pub const RWCSTS: &FieldSpec = &super::REGISTERS[8].fields[0];
pub const RRCSTS: &FieldSpec = &super::REGISTERS[8].fields[1];
pub const RXQSTS: &FieldSpec = &super::REGISTERS[8].fields[2];
pub const PRXQ: &FieldSpec = &super::REGISTERS[8].fields[3];
}
pub static REGISTERS: [RegisterSpec; 9] = [
RegisterSpec { name: "MTLOMR", offset: 0x0, width: Width::W32, reset: 0x0000_0000, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None, fields: &[
FieldSpec { name: "DTXSTS", bit: 1, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "CNTPRST", bit: 8, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "CNTCLR", bit: 9, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
] },
RegisterSpec { name: "MTLISR", offset: 0x20, width: Width::W32, reset: 0x0000_0000, access: Access::ReadOnly, read: ReadAction::None, write: WriteModify::None, fields: &[
FieldSpec { name: "Q0IS", bit: 0, width: 1, access: Access::ReadOnly, read: ReadAction::None, write: WriteModify::None },
] },
RegisterSpec { name: "MTLTxQOMR", offset: 0x100, width: Width::W32, reset: 0x0007_0008, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None, fields: &[
FieldSpec { name: "FTQ", bit: 0, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "TSF", bit: 1, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "TXQEN", bit: 2, width: 2, access: Access::ReadOnly, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "TTC", bit: 4, width: 3, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "TQS", bit: 16, width: 3, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
] },
RegisterSpec { name: "MTLTxQUR", offset: 0x104, width: Width::W32, reset: 0x0000_0000, access: Access::ReadOnly, read: ReadAction::None, write: WriteModify::None, fields: &[
FieldSpec { name: "UFFRMCNT", bit: 0, width: 11, access: Access::ReadOnly, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "UFCNTOVF", bit: 11, width: 1, access: Access::ReadOnly, read: ReadAction::None, write: WriteModify::None },
] },
RegisterSpec { name: "MTLTxQDR", offset: 0x108, width: Width::W32, reset: 0x0000_0000, access: Access::ReadOnly, read: ReadAction::None, write: WriteModify::None, fields: &[
FieldSpec { name: "TXQPAUSED", bit: 0, width: 1, access: Access::ReadOnly, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "TRCSTS", bit: 1, width: 2, access: Access::ReadOnly, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "TWCSTS", bit: 3, width: 1, access: Access::ReadOnly, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "TXQSTS", bit: 4, width: 1, access: Access::ReadOnly, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "TXSTSFSTS", bit: 5, width: 1, access: Access::ReadOnly, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "PTXQ", bit: 16, width: 3, access: Access::ReadOnly, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "STXSTSF", bit: 20, width: 3, access: Access::ReadOnly, read: ReadAction::None, write: WriteModify::None },
] },
RegisterSpec { name: "MTLQICSR", offset: 0x12C, width: Width::W32, reset: 0x0000_0000, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None, fields: &[
FieldSpec { name: "TXUNFIS", bit: 0, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "TXUIE", bit: 8, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "RXOVFIS", bit: 16, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "RXOIE", bit: 24, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
] },
RegisterSpec { name: "MTLRxQOMR", offset: 0x130, width: Width::W32, reset: 0x0070_0000, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None, fields: &[
FieldSpec { name: "RTC", bit: 0, width: 2, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "FUP", bit: 3, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "FEP", bit: 4, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "RSF", bit: 5, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "DIS_TCP_EF", bit: 6, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "EHFC", bit: 7, width: 1, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "RFA", bit: 8, width: 3, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "RFD", bit: 14, width: 3, access: Access::ReadWrite, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "RQS", bit: 20, width: 3, access: Access::ReadOnly, read: ReadAction::None, write: WriteModify::None },
] },
RegisterSpec { name: "MTLRxQMPOCR", offset: 0x134, width: Width::W32, reset: 0x0000_0000, access: Access::ReadOnly, read: ReadAction::None, write: WriteModify::None, fields: &[
FieldSpec { name: "OVFPKTCNT", bit: 0, width: 11, access: Access::ReadOnly, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "OVFCNTOVF", bit: 11, width: 1, access: Access::ReadOnly, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "MISPKTCNT", bit: 16, width: 11, access: Access::ReadOnly, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "MISCNTOVF", bit: 27, width: 1, access: Access::ReadOnly, read: ReadAction::None, write: WriteModify::None },
] },
RegisterSpec { name: "MTLRxQDR", offset: 0x138, width: Width::W32, reset: 0x0000_0000, access: Access::ReadOnly, read: ReadAction::None, write: WriteModify::None, fields: &[
FieldSpec { name: "RWCSTS", bit: 0, width: 1, access: Access::ReadOnly, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "RRCSTS", bit: 1, width: 2, access: Access::ReadOnly, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "RXQSTS", bit: 4, width: 2, access: Access::ReadOnly, read: ReadAction::None, write: WriteModify::None },
FieldSpec { name: "PRXQ", bit: 16, width: 14, access: Access::ReadOnly, read: ReadAction::None, write: WriteModify::None },
] },
];