ps2sdk  1.1
A collection of Open Source libraries used for developing applications on Sony's PlayStation 2® (PS2).
smapregs.h
Go to the documentation of this file.
1 /*
2 # _____ ___ ____ ___ ____
3 # ____| | ____| | | |____|
4 # | ___| |____ ___| ____| | \ PS2DEV Open Source Project.
5 #-----------------------------------------------------------------------
6 # Copyright (c) 2003 Marcus R. Brown <mrbrown@0xd6.org>
7 # Licenced under Academic Free License version 2.0
8 # Review ps2sdk README & LICENSE files for further details.
9 */
10 
18 #ifndef __SMAPREGS_H__
19 #define __SMAPREGS_H__
20 
21 #include <tamtypes.h>
22 #include <speedregs.h>
23 
24 /* SMAP interrupt status bits (selected from the SPEED device). */
25 #define SMAP_INTR_EMAC3 (1<<6)
26 #define SMAP_INTR_RXEND (1<<5)
27 #define SMAP_INTR_TXEND (1<<4)
28 #define SMAP_INTR_RXDNV (1<<3) /* descriptor not valid */
29 #define SMAP_INTR_TXDNV (1<<2) /* descriptor not valid */
30 #define SMAP_INTR_CLR_ALL (SMAP_INTR_RXEND|SMAP_INTR_TXEND|SMAP_INTR_RXDNV)
31 #define SMAP_INTR_ENA_ALL (SMAP_INTR_EMAC3|SMAP_INTR_CLR_ALL)
32 #define SMAP_INTR_BITMSK (SMAP_INTR_EMAC3|SMAP_INTR_RXEND|SMAP_INTR_TXEND|SMAP_INTR_RXDNV|SMAP_INTR_TXDNV)
33 
34 /* SMAP Register Definitions. */
35 
36 #define SMAP_REGBASE (SPD_REGBASE + 0x100)
37 
38 #define USE_SMAP_REGS volatile u8 *smap_regbase = \
39  (volatile u8 *)SMAP_REGBASE
40 
41 #define SMAP_REG8(offset) (*(volatile u8 *)(smap_regbase + (offset)))
42 #define SMAP_REG16(offset) (*(volatile u16 *)(smap_regbase + (offset)))
43 #define SMAP_REG32(offset) (*(volatile u32 *)(smap_regbase + (offset)))
44 
45 #define SMAP_R_BD_MODE 0x02
46 #define SMAP_BD_SWAP (1<<0)
47 
48 #define SMAP_R_INTR_CLR 0x28
49 
50 /* SMAP FIFO Registers. */
51 
52 #define SMAP_R_TXFIFO_CTRL 0xf00
53 #define SMAP_TXFIFO_RESET (1<<0)
54 #define SMAP_TXFIFO_DMAEN (1<<1)
55 #define SMAP_R_TXFIFO_WR_PTR 0xf04
56 #define SMAP_R_TXFIFO_SIZE 0xf08
57 #define SMAP_R_TXFIFO_FRAME_CNT 0xf0C
58 #define SMAP_R_TXFIFO_FRAME_INC 0xf10
59 #define SMAP_R_TXFIFO_DATA 0x1000
60 
61 #define SMAP_R_RXFIFO_CTRL 0xf30
62 #define SMAP_RXFIFO_RESET (1<<0)
63 #define SMAP_RXFIFO_DMAEN (1<<1)
64 #define SMAP_R_RXFIFO_RD_PTR 0xf34
65 #define SMAP_R_RXFIFO_SIZE 0xf38
66 #define SMAP_R_RXFIFO_FRAME_CNT 0xf3C
67 #define SMAP_R_RXFIFO_FRAME_DEC 0xf40
68 #define SMAP_R_RXFIFO_DATA 0x1100
69 
70 #define SMAP_R_FIFO_ADDR 0x1200
71 #define SMAP_FIFO_CMD_READ (1<<1)
72 #define SMAP_FIFO_DATA_SWAP (1<<0)
73 #define SMAP_R_FIFO_DATA 0x1208
74 
75 /* EMAC3 Registers. */
76 
77 #define SMAP_EMAC3_REGBASE 0x1f00
78 
79 /* Seperating out the EMAC3 registers makes it a lot easier to debug register
80  assigns. Besides, I am a staunch supporter of preprocessor macro abuse. */
81 #define USE_SMAP_EMAC3_REGS volatile u8 *emac3_regbase = \
82  (volatile u8 *)(SMAP_REGBASE + SMAP_EMAC3_REGBASE)
83 
84 #define SMAP_EMAC3_REG(offset) (*(volatile u16 *)(emac3_regbase + (offset)))
85 #define SMAP_EMAC3_REG32(offset) (*(volatile u32 *)(emac3_regbase + (offset)))
86 
87 #define SMAP_EMAC3_GET(offset) ((SMAP_EMAC3_REG((offset)) << 16) | \
88  (SMAP_EMAC3_REG((offset)+2)))
89 
90 #define SMAP_EMAC3_GET32(offset) (((SMAP_EMAC3_REG32((offset)) >> 16) & 0xffff) | \
91  ((SMAP_EMAC3_REG32((offset)) & 0xffff) << 16))
92 
93 #define SMAP_EMAC3_WRITE32(offset, val) \
94  SMAP_EMAC3_REG32((offset)) = ((((val) >> 16) & 0xffff) | (((val) & 0xffff) << 16));
95 
96 #define SMAP_EMAC3_WRITE(offset, val) \
97  SMAP_EMAC3_REG((offset)) = ((val) >> 16) & 0xffff; \
98  SMAP_EMAC3_REG((offset)+2) = (val) & 0xffff;
99 
100 #define SMAP_EMAC3_SET(offset, val) \
101  SMAP_EMAC3_WRITE(offset, val) \
102  SMAP_EMAC3_GET(offset)
103 
104 #define SMAP_EMAC3_SET32(offset, val) \
105  SMAP_EMAC3_WRITE32(offset, val) \
106  SMAP_EMAC3_GET32(offset)
107 
108 #define SMAP_R_EMAC3_MODE0 0x00
109 #define SMAP_E3_RXMAC_IDLE (1<<31)
110 #define SMAP_E3_TXMAC_IDLE (1<<30)
111 #define SMAP_E3_SOFT_RESET (1<<29)
112 #define SMAP_E3_TXMAC_ENABLE (1<<28)
113 #define SMAP_E3_RXMAC_ENABLE (1<<27)
114 #define SMAP_E3_WAKEUP_ENABLE (1<<26)
115 
116 #define SMAP_R_EMAC3_MODE1 0x04
117 #define SMAP_E3_FDX_ENABLE (1<<31)
119 #define SMAP_E3_INLPBK_ENABLE (1<<30)
120 #define SMAP_E3_VLAN_ENABLE (1<<29)
122 #define SMAP_E3_FLOWCTRL_ENABLE (1<<28)
124 #define SMAP_E3_ALLOW_PF (1<<27)
126 #define SMAP_E3_ALLOW_EXTMNGIF (1<<25)
127 #define SMAP_E3_IGNORE_SQE (1<<24)
128 #define SMAP_E3_MEDIA_FREQ_BITSFT (22)
129 #define SMAP_E3_MEDIA_10M (0<<22)
130 #define SMAP_E3_MEDIA_100M (1<<22)
131 #define SMAP_E3_MEDIA_1000M (2<<22)
132 #define SMAP_E3_MEDIA_MSK (3<<22)
133 #define SMAP_E3_RXFIFO_SIZE_BITSFT (20)
134 #define SMAP_E3_RXFIFO_512 (0<<20)
135 #define SMAP_E3_RXFIFO_1K (1<<20)
136 #define SMAP_E3_RXFIFO_2K (2<<20)
137 #define SMAP_E3_RXFIFO_4K (3<<20)
138 #define SMAP_E3_TXFIFO_SIZE_BITSFT (18)
139 #define SMAP_E3_TXFIFO_512 (0<<18)
140 #define SMAP_E3_TXFIFO_1K (1<<18)
141 #define SMAP_E3_TXFIFO_2K (2<<18)
142 #define SMAP_E3_TXREQ0_BITSFT (15)
143 #define SMAP_E3_TXREQ0_SINGLE (0<<15)
144 #define SMAP_E3_TXREQ0_MULTI (1<<15)
145 #define SMAP_E3_TXREQ0_DEPEND (2<<15)
146 #define SMAP_E3_TXREQ1_BITSFT (13)
147 #define SMAP_E3_TXREQ1_SINGLE (0<<13)
148 #define SMAP_E3_TXREQ1_MULTI (1<<13)
149 #define SMAP_E3_TXREQ1_DEPEND (2<<13)
150 #define SMAP_E3_JUMBO_ENABLE (1<<12)
151 
152 #define SMAP_R_EMAC3_TxMODE0 0x08
154 #define SMAP_E3_TX_GNP_0 (1<<31)
156 #define SMAP_E3_TX_GNP_1 (1<<30)
158 #define SMAP_E3_TX_GNP_DEPEND (1<<29)
159 #define SMAP_E3_TX_FIRST_CHANNEL (1<<28)
160 
161 #define SMAP_R_EMAC3_TxMODE1 0x0C
163 #define SMAP_E3_TX_LOW_REQ_MSK (0x1F)
165 #define SMAP_E3_TX_LOW_REQ_BITSFT (27)
167 #define SMAP_E3_TX_URG_REQ_MSK (0xFF)
169 #define SMAP_E3_TX_URG_REQ_BITSFT (16)
170 
171 #define SMAP_R_EMAC3_RxMODE 0x10
172 #define SMAP_E3_RX_STRIP_PAD (1<<31)
173 #define SMAP_E3_RX_STRIP_FCS (1<<30)
174 #define SMAP_E3_RX_RX_RUNT_FRAME (1<<29)
175 #define SMAP_E3_RX_RX_FCS_ERR (1<<28)
176 #define SMAP_E3_RX_RX_TOO_LONG_ERR (1<<27)
177 #define SMAP_E3_RX_RX_IN_RANGE_ERR (1<<26)
179 #define SMAP_E3_RX_PROP_PF (1<<25)
180 #define SMAP_E3_RX_PROMISC (1<<24)
181 #define SMAP_E3_RX_PROMISC_MCAST (1<<23)
182 #define SMAP_E3_RX_INDIVID_ADDR (1<<22)
183 #define SMAP_E3_RX_INDIVID_HASH (1<<21)
184 #define SMAP_E3_RX_BCAST (1<<20)
185 #define SMAP_E3_RX_MCAST (1<<19)
186 
187 #define SMAP_R_EMAC3_INTR_STAT 0x14
188 #define SMAP_R_EMAC3_INTR_ENABLE 0x18
190 #define SMAP_E3_INTR_OVERRUN (1<<25)
191 #define SMAP_E3_INTR_PF (1<<24)
192 #define SMAP_E3_INTR_BAD_FRAME (1<<23)
193 #define SMAP_E3_INTR_RUNT_FRAME (1<<22)
194 #define SMAP_E3_INTR_SHORT_EVENT (1<<21)
195 #define SMAP_E3_INTR_ALIGN_ERR (1<<20)
196 #define SMAP_E3_INTR_BAD_FCS (1<<19)
197 #define SMAP_E3_INTR_TOO_LONG (1<<18)
198 #define SMAP_E3_INTR_OUT_RANGE_ERR (1<<17)
199 #define SMAP_E3_INTR_IN_RANGE_ERR (1<<16)
200 #define SMAP_E3_INTR_DEAD_DEPEND (1<<9)
201 #define SMAP_E3_INTR_DEAD_0 (1<<8)
202 #define SMAP_E3_INTR_SQE_ERR_0 (1<<7)
203 #define SMAP_E3_INTR_TX_ERR_0 (1<<6)
204 #define SMAP_E3_INTR_DEAD_1 (1<<5)
205 #define SMAP_E3_INTR_SQE_ERR_1 (1<<4)
206 #define SMAP_E3_INTR_TX_ERR_1 (1<<3)
207 #define SMAP_E3_INTR_MMAOP_SUCCESS (1<<1)
208 #define SMAP_E3_INTR_MMAOP_FAIL (1<<0)
209 #define SMAP_E3_INTR_ALL \
210  (SMAP_E3_INTR_OVERRUN|SMAP_E3_INTR_PF|SMAP_E3_INTR_BAD_FRAME| \
211  SMAP_E3_INTR_RUNT_FRAME|SMAP_E3_INTR_SHORT_EVENT| \
212  SMAP_E3_INTR_ALIGN_ERR|SMAP_E3_INTR_BAD_FCS| \
213  SMAP_E3_INTR_TOO_LONG|SMAP_E3_INTR_OUT_RANGE_ERR| \
214  SMAP_E3_INTR_IN_RANGE_ERR| \
215  SMAP_E3_INTR_DEAD_DEPEND|SMAP_E3_INTR_DEAD_0| \
216  SMAP_E3_INTR_SQE_ERR_0|SMAP_E3_INTR_TX_ERR_0| \
217  SMAP_E3_INTR_DEAD_1|SMAP_E3_INTR_SQE_ERR_1| \
218  SMAP_E3_INTR_TX_ERR_1| \
219  SMAP_E3_INTR_MMAOP_SUCCESS|SMAP_E3_INTR_MMAOP_FAIL)
220 #define SMAP_E3_DEAD_ALL \
221  (SMAP_E3_INTR_DEAD_DEPEND|SMAP_E3_INTR_DEAD_0| \
222  SMAP_E3_INTR_DEAD_1)
223 
224 #define SMAP_R_EMAC3_ADDR_HI 0x1C
225 #define SMAP_R_EMAC3_ADDR_LO 0x20
226 
227 #define SMAP_R_EMAC3_VLAN_TPID 0x24
228 #define SMAP_E3_VLAN_ID_MSK 0xFFFF
229 
230 #define SMAP_R_EMAC3_VLAN_TCI 0x28
231 #define SMAP_E3_VLAN_TCITAG_MSK 0xFFFF
232 
233 #define SMAP_R_EMAC3_PAUSE_TIMER 0x2C
234 #define SMAP_E3_PTIMER_MSK 0xFFFF
235 
236 #define SMAP_R_EMAC3_INDIVID_HASH1 0x30
237 #define SMAP_R_EMAC3_INDIVID_HASH2 0x34
238 #define SMAP_R_EMAC3_INDIVID_HASH3 0x38
239 #define SMAP_R_EMAC3_INDIVID_HASH4 0x3C
240 #define SMAP_R_EMAC3_GROUP_HASH1 0x40
241 #define SMAP_R_EMAC3_GROUP_HASH2 0x44
242 #define SMAP_R_EMAC3_GROUP_HASH3 0x48
243 #define SMAP_R_EMAC3_GROUP_HASH4 0x4C
244 #define SMAP_E3_HASH_MSK 0xFFFF
245 
246 #define SMAP_R_EMAC3_LAST_SA_HI 0x50
247 #define SMAP_R_EMAC3_LAST_SA_LO 0x54
248 
249 #define SMAP_R_EMAC3_INTER_FRAME_GAP 0x58
250 #define SMAP_E3_IFGAP_MSK 0x3F
251 
252 #define SMAP_R_EMAC3_STA_CTRL 0x5C
253 #define SMAP_E3_PHY_DATA_MSK (0xFFFF)
254 #define SMAP_E3_PHY_DATA_BITSFT (16)
256 #define SMAP_E3_PHY_OP_COMP (1<<15)
257 #define SMAP_E3_PHY_ERR_READ (1<<14)
258 #define SMAP_E3_PHY_STA_CMD_BITSFT (12)
259 #define SMAP_E3_PHY_READ (1<<12)
260 #define SMAP_E3_PHY_WRITE (2<<12)
261 #define SMAP_E3_PHY_OPBCLCK_BITSFT (10)
262 #define SMAP_E3_PHY_50M (0<<10)
263 #define SMAP_E3_PHY_66M (1<<10)
264 #define SMAP_E3_PHY_83M (2<<10)
265 #define SMAP_E3_PHY_100M (3<<10)
266 #define SMAP_E3_PHY_ADDR_MSK (0x1F)
267 #define SMAP_E3_PHY_ADDR_BITSFT (5)
268 #define SMAP_E3_PHY_REG_ADDR_MSK (0x1F)
269 
270 #define SMAP_R_EMAC3_TX_THRESHOLD 0x60
271 #define SMAP_E3_TX_THRESHLD_MSK (0x1F)
272 #define SMAP_E3_TX_THRESHLD_BITSFT (27)
273 
274 #define SMAP_R_EMAC3_RX_WATERMARK 0x64
275 #define SMAP_E3_RX_LO_WATER_MSK (0x1FF)
276 #define SMAP_E3_RX_LO_WATER_BITSFT (23)
277 #define SMAP_E3_RX_HI_WATER_MSK (0x1FF)
278 #define SMAP_E3_RX_HI_WATER_BITSFT (7)
279 
280 #define SMAP_R_EMAC3_TX_OCTETS 0x68
281 #define SMAP_R_EMAC3_RX_OCTETS 0x6C
282 
284 typedef struct _smap_bd {
291 } smap_bd_t;
292 
293 #define SMAP_BD_REGBASE 0x2f00
294 #define SMAP_BD_TX_BASE (SMAP_BD_REGBASE + 0x0000)
295 /* For backward compatibility */
296 #define SMAP_TX_BASE SMAP_TX_BUFBASE
297 #define SMAP_TX_BUFBASE 0x1000
298 #define SMAP_TX_BUFSIZE 4096
299 #define SMAP_BD_RX_BASE (SMAP_BD_REGBASE + 0x0200)
300 #define SMAP_RX_BUFBASE 0x4000
301 #define SMAP_RX_BUFSIZE 16384
302 #define SMAP_BD_SIZE 512
303 #define SMAP_BD_MAX_ENTRY 64
304 
305 #define USE_SMAP_TX_BD volatile smap_bd_t *tx_bd = \
306  (volatile smap_bd_t *)(SMAP_REGBASE + SMAP_BD_TX_BASE)
307 #define USE_SMAP_RX_BD volatile smap_bd_t *rx_bd = \
308  (volatile smap_bd_t *)(SMAP_REGBASE + SMAP_BD_RX_BASE)
309 
310 /* TX Control */
312 #define SMAP_BD_TX_READY (1<<15)
314 #define SMAP_BD_TX_GENFCS (1<<9)
316 #define SMAP_BD_TX_GENPAD (1<<8)
318 #define SMAP_BD_TX_INSSA (1<<7)
320 #define SMAP_BD_TX_RPLSA (1<<6)
322 #define SMAP_BD_TX_INSVLAN (1<<5)
324 #define SMAP_BD_TX_RPLVLAN (1<<4)
325 
326 /* TX Status */
328 #define SMAP_BD_TX_READY (1<<15)
330 #define SMAP_BD_TX_BADFCS (1<<9)
332 #define SMAP_BD_TX_BADPKT (1<<8)
334 #define SMAP_BD_TX_LOSSCR (1<<7)
336 #define SMAP_BD_TX_EDEFER (1<<6)
338 #define SMAP_BD_TX_ECOLL (1<<5)
340 #define SMAP_BD_TX_LCOLL (1<<4)
342 #define SMAP_BD_TX_MCOLL (1<<3)
344 #define SMAP_BD_TX_SCOLL (1<<2)
346 #define SMAP_BD_TX_UNDERRUN (1<<1)
348 #define SMAP_BD_TX_SQE (1<<0)
349 
350 #define SMAP_BD_TX_ERROR (SMAP_BD_TX_LOSSCR|SMAP_BD_TX_EDEFER|SMAP_BD_TX_ECOLL| \
351  SMAP_BD_TX_LCOLL|SMAP_BD_TX_UNDERRUN)
352 
353 /* RX Control */
355 #define SMAP_BD_RX_EMPTY (1<<15)
356 
357 /* RX Status */
359 #define SMAP_BD_RX_EMPTY (1<<15)
361 #define SMAP_BD_RX_OVERRUN (1<<9)
363 #define SMAP_BD_RX_PFRM (1<<8)
365 #define SMAP_BD_RX_BADFRM (1<<7)
367 #define SMAP_BD_RX_RUNTFRM (1<<6)
369 #define SMAP_BD_RX_SHORTEVNT (1<<5)
371 #define SMAP_BD_RX_ALIGNERR (1<<4)
373 #define SMAP_BD_RX_BADFCS (1<<3)
375 #define SMAP_BD_RX_FRMTOOLONG (1<<2)
377 #define SMAP_BD_RX_OUTRANGE (1<<1)
379 #define SMAP_BD_RX_INRANGE (1<<0)
380 
381 #define SMAP_BD_RX_ERROR (SMAP_BD_RX_OVERRUN|SMAP_BD_RX_RUNTFRM|SMAP_BD_RX_SHORTEVNT| \
382  SMAP_BD_RX_ALIGNERR|SMAP_BD_RX_BADFCS|SMAP_BD_RX_FRMTOOLONG| \
383  SMAP_BD_RX_OUTRANGE|SMAP_BD_RX_INRANGE)
384 
385 /* PHY registers (National Semiconductor DP83846A). */
386 
387 #define SMAP_NS_OUI 0x080017
388 #define SMAP_DsPHYTER_ADDRESS 0x1
389 
390 #define SMAP_DsPHYTER_BMCR 0x00
391 /* ReSeT */
392 #define SMAP_PHY_BMCR_RST (1<<15)
393 /* LooPBacK */
394 #define SMAP_PHY_BMCR_LPBK (1<<14)
395 /* speed select, 1:100M, 0:10M */
396 #define SMAP_PHY_BMCR_100M (1<<13)
397 /* speed select, 1:100M, 0:10M */
398 #define SMAP_PHY_BMCR_10M (0<<13)
399 /* Auto-Negotiation ENable */
400 #define SMAP_PHY_BMCR_ANEN (1<<12)
401 /* PoWer DowN */
402 #define SMAP_PHY_BMCR_PWDN (1<<11)
403 /* ISOLate */
404 #define SMAP_PHY_BMCR_ISOL (1<<10)
405 /* ReStart Auto-Negotiation */
406 #define SMAP_PHY_BMCR_RSAN (1<<9)
407 /* DUPlex Mode, 1:FDX, 0:HDX */
408 #define SMAP_PHY_BMCR_DUPM (1<<8)
409 /* COLlision Test */
410 #define SMAP_PHY_BMCR_COLT (1<<7)
411 
412 #define SMAP_DsPHYTER_BMSR 0x01
414 #define SMAP_PHY_BMSR_ANCP (1<<5)
416 #define SMAP_PHY_BMSR_LINK (1<<2)
417 
418 #define SMAP_DsPHYTER_PHYIDR1 0x02
419 #define SMAP_PHY_IDR1_VAL (((SMAP_NS_OUI<<2)>>8)&0xffff)
420 
421 #define SMAP_DsPHYTER_PHYIDR2 0x03
422 #define SMAP_PHY_IDR2_VMDL 0x2 /* Vendor MoDeL number */
423 #define SMAP_PHY_IDR2_VAL \
424  (((SMAP_NS_OUI<<10)&0xFC00)|((SMAP_PHY_IDR2_VMDL<<4)&0x3F0))
425 #define SMAP_PHY_IDR2_MSK 0xFFF0
426 #define SMAP_PHY_IDR2_REV_MSK 0x000F
427 
428 #define SMAP_DsPHYTER_ANAR 0x04
430 #define SMAP_PHY_ANAR_RFLT (1<<13)
432 #define SMAP_PHY_ANAR_PAUSE (1<<10)
434 #define SMAP_PHY_ANAR_T4 (1<<9)
436 #define SMAP_PHY_ANAR_TX_FD (1<<8)
438 #define SMAP_PHY_ANAR_TX (1<<7)
440 #define SMAP_PHY_ANAR_10_FD (1<<6)
442 #define SMAP_PHY_ANAR_10 (1<<5)
443 #define SMAP_DsPHYTER_ANLPAR 0x05
444 #define SMAP_DsPHYTER_ANLPARNP 0x05
445 #define SMAP_DsPHYTER_ANER 0x06
446 #define SMAP_DsPHYTER_ANNPTR 0x07
447 
448 /* Extended registers. */
449 #define SMAP_DsPHYTER_PHYSTS 0x10
451 #define SMAP_PHY_STS_REL (1<<13)
453 #define SMAP_PHY_STS_POST (1<<12)
455 #define SMAP_PHY_STS_FCSL (1<<11)
457 #define SMAP_PHY_STS_SD (1<<10)
459 #define SMAP_PHY_STS_DSL (1<<9)
461 #define SMAP_PHY_STS_PRCV (1<<8)
463 #define SMAP_PHY_STS_RFLT (1<<6)
465 #define SMAP_PHY_STS_JBDT (1<<5)
467 #define SMAP_PHY_STS_ANCP (1<<4)
469 #define SMAP_PHY_STS_LPBK (1<<3)
471 #define SMAP_PHY_STS_DUPS (1<<2)
473 #define SMAP_PHY_STS_FDX (1<<2)
475 #define SMAP_PHY_STS_HDX (0<<2)
477 #define SMAP_PHY_STS_SPDS (1<<1)
479 #define SMAP_PHY_STS_10M (1<<1)
481 #define SMAP_PHY_STS_100M (0<<1)
483 #define SMAP_PHY_STS_LINK (1<<0)
484 #define SMAP_DsPHYTER_FCSCR 0x14
485 #define SMAP_DsPHYTER_RECR 0x15
486 #define SMAP_DsPHYTER_PCSR 0x16
487 #define SMAP_DsPHYTER_PHYCTRL 0x19
488 #define SMAP_DsPHYTER_10BTSCR 0x1A
490 #define SMAP_PHY_10BTSCR_LOOPBACK_10_DIS (1<<8)
492 #define SMAP_PHY_10BTSCR_LP_DIS (1<<7)
494 #define SMAP_PHY_10BTSCR_FORCE_10_LINK (1<<6)
496 #define SMAP_PHY_10BTSCR_FORCE_POL_COR (1<<5)
498 #define SMAP_PHY_10BTSCR_POLARITY (1<<4)
500 #define SMAP_PHY_10BTSCR_AUTOPOL_DIS (1<<3)
502 #define SMAP_PHY_10BTSCR_2 (1<<2)
504 #define SMAP_PHY_10BTSCR_HEARTBEAT_DIS (1<<1)
506 #define SMAP_PHY_10BTSCR_JABBER_DIS (1<<0)
507 #define SMAP_DsPHYTER_CDCTRL 0x1B
508 
509 #endif /* __SMAPREGS_H__ */
u16 reserved
Definition: smapregs.h:287
u16 length
Definition: smapregs.h:289
u16 ctrl_stat
Definition: smapregs.h:285
u16 pointer
Definition: smapregs.h:290
unsigned short u16
Definition: tamtypes.h:24