source: rtems/c/src/lib/libcpu/powerpc/ppc403/include/ppc405gp.h @ 502609c8

4.115
Last change on this file since 502609c8 was 502609c8, checked in by Nigel Spon <nigel@…>, on Nov 21, 2014 at 5:15:22 PM

powerpc/haleakala: Add network driver

close 1405

  • Property mode set to 100644
File size: 4.7 KB
Line 
1
2/* SDRAM DCRs */
3enum {
4        SDRAM0_BESR0    =       0,
5        SDRAM0_BESR1    =       8,
6        SDRAM0_BEAR             =       0x10,
7        SDRAM0_CFG              =       0x20,
8        SDRAM0_STATUS   =       0x24,
9        SDRAM0_RTR              =       0x30,
10        SDRAM0_PMIT             =       0x34,
11        SDRAM0_TR               =       0x80
12};
13
14
15/* EBC DCRs */
16enum {
17        EBC0_B0CR       =       0,
18        EBC0_B1CR       =       1,
19        EBC0_B2CR       =       2,
20        EBC0_B3CR       =       3,
21        EBC0_B4CR       =       4,
22        EBC0_B5CR       =       5,
23        EBC0_B6CR       =       6,
24        EBC0_B7CR       =       7,
25        EBC0_B0AP       =       0x10,
26        EBC0_B1AP       =       0x11,
27        EBC0_B2AP       =       0x12,
28        EBC0_B3AP       =       0x13,
29        EBC0_B4AP       =       0x14,
30        EBC0_B5AP       =       0x15,
31        EBC0_B6AP       =       0x16,
32        EBC0_B7AP       =       0x17,
33        EBC0_BEAR       =       0x20,
34        EBC0_BESR0      =       0x21,
35        EBC0_BESR1      =       0x22,
36        EBC0_CFG        =       0x23
37};
38
39/* MAL DCRs, have to be #defines */
40#define MAL0_CFG                0x180
41#define MAL0_ESR                0x181
42#define MAL0_IER                0x182
43#define MAL0_TXCASR             0x184
44#define MAL0_TXCARR             0x185
45#define MAL0_TXEOBISR   0x186
46#define MAL0_TXDEIR             0x187
47#define MAL0_RXCASR             0x190
48#define MAL0_RXCARR             0x191
49#define MAL0_RXEOBISR   0x192
50#define MAL0_RXDEIR             0x193
51#define MAL0_TXCTP0R    0x1A0
52#define MAL0_TXCTP1R    0x1A1
53#define MAL0_RXCTP0R    0x1C0
54#define MAL0_RXCTP1R    0x1C1
55#define MAL0_RCBS0              0x1E0
56#define MAL0_RCBS1              0x1E1
57
58/* Memory-mapped registers */
59
60typedef struct EthernetRegisters_GP {
61        uint32_t mode0;
62        uint32_t mode1;
63        uint32_t xmtMode0;
64        uint32_t xmtMode1;
65        uint32_t rcvMode;
66        uint32_t intStatus;
67        uint32_t intEnable;
68        uint32_t addrHi;
69        uint32_t addrLo;
70        uint32_t VLANTPID;
71        uint32_t VLANTCI;
72        uint32_t pauseTimer;
73        uint32_t g_indivHash[4];  /* EX non-IP multicast addr/mask */
74        uint32_t g_groupHash[4];
75        uint32_t lastSrcLo;
76        uint32_t lastSrcHi;
77        uint32_t IPGap;
78        uint32_t STAcontrol;
79        uint32_t xmtReqThreshold;
80        uint32_t rcvWatermarks;
81        uint32_t bytesXmtd;
82        uint32_t bytesRcvd;
83        uint32_t e_unused2;
84        uint32_t e_revID;
85        uint32_t e_unused3[2];
86        uint32_t e_indivHash[8];
87        uint32_t e_groupHash[8];
88        uint32_t e_xmtPause;
89} EthernetRegisters_GP;
90
91typedef struct EthernetRegisters_GP EthernetRegisters_EX;
92
93enum { EMACAddress = 0xEF600800 };
94enum { EMAC0GPAddress = 0xEF600800 };
95
96enum {
97        // Mode 0 bits
98        kEMACRxIdle   = 0x80000000,
99        kEMACTxIdle   = 0x40000000,
100        kEMACSoftRst  = 0x20000000,
101        kEMACTxEnable = 0x10000000,
102        kEMACRxEnable = 0x08000000,
103
104        // Mode 1 bits
105        kEMACFullDuplex = 0x80000000,
106        kEMACDoFlowControl = 0x10000000,
107        kEMACIgnoreSQE  = 0x01000000,
108        kEMAC100MBbps    = 0x00400000,
109        kEMAC4KRxFIFO   = 0x00300000,
110        kEMAC2KTxFIFO    = 0x00080000,
111        kEMACTx0Multi    = 0x00008000,
112        kEMACTxDependent= 0x00014000,
113        kEMAC100Mbps     = 0x00400000,
114        kgEMAC4KRxFIFO   = 0x00300000,
115        kgEMAC2KTxFIFO   = 0x00080000,
116        kgEMACTx0Multi   = 0x00008000,
117        kgEMACTxDependent= 0x00014000,
118
119
120        // Tx mode bits
121        kEMACNewPacket0 = 0x80000000,
122        kEMACNewPacket1 = 0x40000000,
123
124        // Receive mode bits
125        kEMACStripPadding = 0x80000000,
126        kEMACStripFCS     = 0x40000000,
127        kEMACRcvRunts           = 0x20000000,
128        kEMACRcvFCSErrs = 0x10000000,
129        kEMACRcvOversize  = 0x08000000,
130        kEMACPromiscRcv = 0x01000000,
131        kEMACPromMultRcv  = 0x00800000,
132        kEMACIndivRcv           = 0x00400000,
133        kEMACHashRcv            = 0x00200000,
134        kEMACBrcastRcv          = 0x00100000,
135        kEMACMultcastRcv        = 0x00080000,
136        keEMACNonIPMultcast = 0x00040000,
137        keEMACRxFIFOAFMax   = 7,
138       
139        // EMAC_STACR bits
140        kgSTAComplete   = 0x8000,
141        kSTAErr         = 0x4000,
142       
143        // Interrupt status bits
144        kEMACIOverrun = 0x02000000,
145        kEMACIPause   = 0x01000000,
146        kEMACIBadPkt  = 0x00800000,
147        kEMACIRuntPkt = 0x00400000,
148        kEMACIShortEvt= 0x00200000,
149        kEMACIAlignErr= 0x00100000,
150        kEMACIBadFCS  = 0x00080000,
151        kEMACIOverSize= 0x00040000,
152        kEMACILLCRange= 0x00020000,
153        kEMACISQEErr  = 0x00000080,
154        kEMACITxErr   = 0x00000040,
155
156        // Buffer descriptor control bits
157        kMALTxReady                     = 0x8000,
158        kMALRxEmpty                     = 0x8000,
159        kMALWrap                                = 0x4000,
160        kMALContinuous          = 0x2000,
161        kMALLast                                = 0x1000,
162        kMALRxFirst                     = 0x0800,
163        kMALInterrupt           = 0x0400,
164
165        kMALReset                       = 0x80000000,
166        kMALLowPriority    = 0,
167        kMALMedLowPriority = 0x00400000,
168        kMALMedHiPriority  = 0x00800000,
169        kMALHighPriority   = 0x00C00000,
170        kMALLatency8       = 0x00040000,
171        kMALLockErr         = 0x8000,
172        kMALCanBurst    = 0x4000,
173        kMALLocksOPB    = 0x80,
174        kMALLocksErrs   = 0x2,
175       
176        // MAL channel masks
177        kMALChannel0 = 0x80000000,
178        kMALChannel1 = 0x40000000,
179
180        // EMAC Tx descriptor bits sent
181        kEMACGenFCS                     = 0x200,
182        kEMACGenPad                     = 0x100,
183        kEMACInsSrcAddr = 0x080,
184        kEMACRepSrcAddr = 0x040,
185        kEMACInsVLAN            = 0x020,
186        kEMACRepVLAN            = 0x010,
187
188        // EMAC TX descriptor bits returned
189        kEMACErrMask      = 0x3FF,
190        kEMACFCSWrong           = 0x200,
191        kEMACBadPrev            = 0x100,
192        kEMACLostCarrier        = 0x080,
193        kEMACDeferred           = 0x040,
194        kEMACCollFail           = 0x020,
195        kEMACLateColl           = 0x010,
196        kEMACMultColl           = 0x008,
197        kEMACOneColl            = 0x004,
198        kEMACUnderrun           = 0x002,
199        kEMACSQEFail            = 0x001,
200
201        // EMAC Rx descriptor bits returned
202        kEMACOverrun            = 0x200,
203        kEMACPausePkt           = 0x100,
204        kEMACBadPkt                     = 0x080,
205        kEMACRuntPkt            = 0x040,
206        kEMACShortEvt           = 0x020,
207        kEMACAlignErr           = 0x010,
208        kEMACBadFCS             = 0x008,
209        kEMACPktLong            = 0x004,
210        kEMACPktOOR             = 0x002,
211        kEMACPktIRL             = 0x001
212};
213
214
Note: See TracBrowser for help on using the repository browser.