summaryrefslogtreecommitdiffstats
path: root/c/src/lib/libcpu/powerpc/ppc403/include/ppc405gp.h
diff options
context:
space:
mode:
Diffstat (limited to 'c/src/lib/libcpu/powerpc/ppc403/include/ppc405gp.h')
-rw-r--r--c/src/lib/libcpu/powerpc/ppc403/include/ppc405gp.h146
1 files changed, 146 insertions, 0 deletions
diff --git a/c/src/lib/libcpu/powerpc/ppc403/include/ppc405gp.h b/c/src/lib/libcpu/powerpc/ppc403/include/ppc405gp.h
new file mode 100644
index 0000000000..814f18d046
--- /dev/null
+++ b/c/src/lib/libcpu/powerpc/ppc403/include/ppc405gp.h
@@ -0,0 +1,146 @@
+
+
+/* SDRAM DCRs */
+enum {
+ SDRAM0_BESR0 = 0,
+ SDRAM0_BESR1 = 8,
+ SDRAM0_BEAR = 0x10,
+ SDRAM0_CFG = 0x20,
+ SDRAM0_STATUS = 0x24,
+ SDRAM0_RTR = 0x30,
+ SDRAM0_PMIT = 0x34,
+ SDRAM0_TR = 0x80
+};
+
+
+/* EBC DCRs */
+enum {
+ EBC0_B0CR = 0,
+ EBC0_B1CR = 1,
+ EBC0_B2CR = 2,
+ EBC0_B3CR = 3,
+ EBC0_B4CR = 4,
+ EBC0_B5CR = 5,
+ EBC0_B6CR = 6,
+ EBC0_B7CR = 7,
+ EBC0_B0AP = 0x10,
+ EBC0_B1AP = 0x11,
+ EBC0_B2AP = 0x12,
+ EBC0_B3AP = 0x13,
+ EBC0_B4AP = 0x14,
+ EBC0_B5AP = 0x15,
+ EBC0_B6AP = 0x16,
+ EBC0_B7AP = 0x17,
+ EBC0_BEAR = 0x20,
+ EBC0_BESR0 = 0x21,
+ EBC0_BESR1 = 0x22,
+ EBC0_CFG = 0x23
+};
+
+/* Memory-mapped registers */
+
+typedef struct EthernetRegisters_GP {
+ uint32_t mode0;
+ uint32_t mode1;
+ uint32_t xmtMode0;
+ uint32_t xmtMode1;
+ uint32_t rcvMode;
+ uint32_t intStatus;
+ uint32_t intEnable;
+ uint32_t addrHi;
+ uint32_t addrLo;
+ uint32_t VLANTPID;
+ uint32_t VLANTCI;
+ uint32_t pauseTimer;
+ uint32_t indivHash[4];
+ uint32_t groupHash[4];
+ uint32_t lastSrcLo;
+ uint32_t lastSrcHi;
+ uint32_t IPGap;
+ uint32_t STAcontrol;
+ uint32_t xmtReqThreshold;
+ uint32_t rcvWatermark;
+ uint32_t bytesXmtd;
+ uint32_t bytesRcvd;
+} EthernetRegisters_GP;
+
+enum { EMACAddress = 0xEF600800 };
+
+enum {
+ // Mode 0 bits
+ kEMACRxIdle = 0x80000000,
+ kEMACTxIdle = 0x40000000,
+ kEMACSoftRst = 0x20000000,
+ kEMACTxEnable = 0x10000000,
+ kEMACRxEnable = 0x08000000,
+
+ // Mode 1 bits
+ kEMACFullDuplex = 0x80000000,
+ kEMACIgnoreSQE = 0x01000000,
+ kEMAC100MBbps = 0x00400000,
+ kEMAC4KRxFIFO = 0x00300000,
+ kEMAC2KTxFIFO = 0x00080000,
+ kEMACTx0Multi = 0x00008000,
+ kEMACTxDependent= 0x00014000,
+
+ // Tx mode bits
+ kEMACNewPacket0 = 0x80000000,
+ kEMACNewPacket1 = 0x40000000,
+
+ // Receive mode bits
+ kEMACStripPadding = 0x80000000,
+ kEMACStripFCS = 0x40000000,
+ kEMACRcvRunts = 0x20000000,
+ kEMACRcvFCSErrs = 0x10000000,
+ kEMACRcvOversize = 0x08000000,
+ kEMACPromiscRcv = 0x01000000,
+ kEMACPromMultRcv = 0x00800000,
+ kEMACIndivRcv = 0x00400000,
+ kEMACHashRcv = 0x00200000,
+ kEMACBrcastRcv = 0x00100000,
+ kEMACMultcastRcv = 0x00080000,
+
+ // Buffer descriptor control bits
+ kMALTxReady = 0x8000,
+ kMALRxEmpty = 0x8000,
+ kMALWrap = 0x4000,
+ kMALContinuous = 0x2000,
+ kMALLast = 0x1000,
+ kMALRxFirst = 0x0800,
+ kMALInterrupt = 0x0400,
+
+ // EMAC Tx descriptor bits sent
+ kEMACGenFCS = 0x200,
+ kEMACGenPad = 0x100,
+ kEMACInsSrcAddr = 0x080,
+ kEMACRepSrcAddr = 0x040,
+ kEMACInsVLAN = 0x020,
+ kEMACRepVLAN = 0x010,
+
+ // EMAC TX descriptor bits returned
+ kEMACErrMask = 0x3FF,
+ kEMACFCSWrong = 0x200,
+ kEMACBadPrev = 0x100,
+ kEMACLostCarrier = 0x080,
+ kEMACDeferred = 0x040,
+ kEMACCollFail = 0x020,
+ kEMACLateColl = 0x010,
+ kEMACMultColl = 0x008,
+ kEMACOneColl = 0x004,
+ kEMACUnderrun = 0x002,
+ kEMACSQEFail = 0x001,
+
+ // EMAC Rx descriptor bits returned
+ kEMACOverrun = 0x200,
+ kEMACPausePkt = 0x100,
+ kEMACBadPkt = 0x080,
+ kEMACRuntPkt = 0x040,
+ kEMACShortEvt = 0x020,
+ kEMACAlignErr = 0x010,
+ kEMACBadFCS = 0x008,
+ kEMACPktLong = 0x004,
+ kEMACPktOOR = 0x002,
+ kEMACPktIRL = 0x001
+};
+
+