summaryrefslogtreecommitdiff
path: root/dev/sinicreg.hh
diff options
context:
space:
mode:
Diffstat (limited to 'dev/sinicreg.hh')
-rw-r--r--dev/sinicreg.hh48
1 files changed, 29 insertions, 19 deletions
diff --git a/dev/sinicreg.hh b/dev/sinicreg.hh
index 12f545255..30f5b3c95 100644
--- a/dev/sinicreg.hh
+++ b/dev/sinicreg.hh
@@ -140,6 +140,8 @@ struct Info
uint8_t size;
bool read;
bool write;
+ bool delay_read;
+ bool delay_write;
const char *name;
};
@@ -148,26 +150,34 @@ struct Info
inline const Regs::Info&
regInfo(Addr daddr)
{
+ static Regs::Info invalid = { 0, false, false, false, false, "invalid" };
static Regs::Info info [] = {
- { 4, true, true, "Config" },
- { 4, false, true, "Command" },
- { 4, true, true, "IntrStatus" },
- { 4, true, true, "IntrMask" },
- { 4, true, false, "RxMaxCopy" },
- { 4, true, false, "TxMaxCopy" },
- { 4, true, false, "RxMaxIntr" },
- { 0, false, false, "invalid" },
- { 4, true, false, "RxFifoSize" },
- { 4, true, false, "TxFifoSize" },
- { 4, true, false, "RxFifoMark" },
- { 4, true, false, "TxFifoMark" },
- { 8, true, true, "RxData" }, { 0, false, false, "invalid" },
- { 8, true, false, "RxDone" }, { 0, false, false, "invalid" },
- { 8, true, false, "RxWait" }, { 0, false, false, "invalid" },
- { 8, true, true, "TxData" }, { 0, false, false, "invalid" },
- { 8, true, false, "TxDone" }, { 0, false, false, "invalid" },
- { 8, true, false, "TxWait" }, { 0, false, false, "invalid" },
- { 8, true, false, "HwAddr" }, { 0, false, false, "invalid" }
+ { 4, true, true, false, false, "Config" },
+ { 4, false, true, false, false, "Command" },
+ { 4, true, true, false, false, "IntrStatus" },
+ { 4, true, true, false, false, "IntrMask" },
+ { 4, true, false, false, false, "RxMaxCopy" },
+ { 4, true, false, false, false, "TxMaxCopy" },
+ { 4, true, false, false, false, "RxMaxIntr" },
+ invalid,
+ { 4, true, false, false, false, "RxFifoSize" },
+ { 4, true, false, false, false, "TxFifoSize" },
+ { 4, true, false, false, false, "RxFifoMark" },
+ { 4, true, false, false, false, "TxFifoMark" },
+ { 8, true, true, false, true, "RxData" },
+ invalid,
+ { 8, true, false, false, false, "RxDone" },
+ invalid,
+ { 8, true, false, false, false, "RxWait" },
+ invalid,
+ { 8, true, true, false, true, "TxData" },
+ invalid,
+ { 8, true, false, false, false, "TxDone" },
+ invalid,
+ { 8, true, false, false, false, "TxWait" },
+ invalid,
+ { 8, true, false, false, false, "HwAddr" },
+ invalid,
};
return info[daddr / 4];