PS2SDK
PS2 Homebrew Libraries
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  (void)SMAP_EMAC3_GET(offset)
103 
104 #define SMAP_EMAC3_SET32(offset, val) \
105  SMAP_EMAC3_WRITE32(offset, val) \
106  (void)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)
118 
119 #define SMAP_E3_INLPBK_ENABLE (1 << 30)
120 #define SMAP_E3_VLAN_ENABLE (1 << 29)
121 
122 #define SMAP_E3_FLOWCTRL_ENABLE (1 << 28)
123 
124 #define SMAP_E3_ALLOW_PF (1 << 27)
125 
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
153 
154 #define SMAP_E3_TX_GNP_0 (1 << 31)
155 
156 #define SMAP_E3_TX_GNP_1 (1 << 30)
157 
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
162 
163 #define SMAP_E3_TX_LOW_REQ_MSK (0x1F)
164 
165 #define SMAP_E3_TX_LOW_REQ_BITSFT (27)
166 
167 #define SMAP_E3_TX_URG_REQ_MSK (0xFF)
168 
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)
178 
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
189 
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)
255 
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
285 {
286  vu16 ctrl_stat;
288  vu16 reserved;
290  vu16 length;
291  vu16 pointer;
292 } smap_bd_t;
293 
294 #define SMAP_BD_REGBASE 0x2f00
295 #define SMAP_BD_TX_BASE (SMAP_BD_REGBASE + 0x0000)
296 /* For backward compatibility */
297 #define SMAP_TX_BASE SMAP_TX_BUFBASE
298 #define SMAP_TX_BUFBASE 0x1000
299 #define SMAP_TX_BUFSIZE 4096
300 #define SMAP_BD_RX_BASE (SMAP_BD_REGBASE + 0x0200)
301 #define SMAP_RX_BUFBASE 0x4000
302 #define SMAP_RX_BUFSIZE 16384
303 #define SMAP_BD_SIZE 512
304 #define SMAP_BD_MAX_ENTRY 64
305 
306 #define USE_SMAP_TX_BD smap_bd_t *tx_bd = \
307  (smap_bd_t *)(SMAP_REGBASE + SMAP_BD_TX_BASE)
308 #define USE_SMAP_RX_BD smap_bd_t *rx_bd = \
309  (smap_bd_t *)(SMAP_REGBASE + SMAP_BD_RX_BASE)
310 
311 /* TX Control */
313 #define SMAP_BD_TX_READY (1 << 15)
314 
315 #define SMAP_BD_TX_GENFCS (1 << 9)
316 
317 #define SMAP_BD_TX_GENPAD (1 << 8)
318 
319 #define SMAP_BD_TX_INSSA (1 << 7)
320 
321 #define SMAP_BD_TX_RPLSA (1 << 6)
322 
323 #define SMAP_BD_TX_INSVLAN (1 << 5)
324 
325 #define SMAP_BD_TX_RPLVLAN (1 << 4)
326 
327 /* TX Status */
329 #define SMAP_BD_TX_READY (1 << 15)
330 
331 #define SMAP_BD_TX_BADFCS (1 << 9)
332 
333 #define SMAP_BD_TX_BADPKT (1 << 8)
334 
335 #define SMAP_BD_TX_LOSSCR (1 << 7)
336 
337 #define SMAP_BD_TX_EDEFER (1 << 6)
338 
339 #define SMAP_BD_TX_ECOLL (1 << 5)
340 
341 #define SMAP_BD_TX_LCOLL (1 << 4)
342 
343 #define SMAP_BD_TX_MCOLL (1 << 3)
344 
345 #define SMAP_BD_TX_SCOLL (1 << 2)
346 
347 #define SMAP_BD_TX_UNDERRUN (1 << 1)
348 
349 #define SMAP_BD_TX_SQE (1 << 0)
350 
351 #define SMAP_BD_TX_ERROR (SMAP_BD_TX_LOSSCR | SMAP_BD_TX_EDEFER | SMAP_BD_TX_ECOLL | \
352  SMAP_BD_TX_LCOLL | SMAP_BD_TX_UNDERRUN)
353 
354 /* RX Control */
356 #define SMAP_BD_RX_EMPTY (1 << 15)
357 
358 /* RX Status */
360 #define SMAP_BD_RX_EMPTY (1 << 15)
361 
362 #define SMAP_BD_RX_OVERRUN (1 << 9)
363 
364 #define SMAP_BD_RX_PFRM (1 << 8)
365 
366 #define SMAP_BD_RX_BADFRM (1 << 7)
367 
368 #define SMAP_BD_RX_RUNTFRM (1 << 6)
369 
370 #define SMAP_BD_RX_SHORTEVNT (1 << 5)
371 
372 #define SMAP_BD_RX_ALIGNERR (1 << 4)
373 
374 #define SMAP_BD_RX_BADFCS (1 << 3)
375 
376 #define SMAP_BD_RX_FRMTOOLONG (1 << 2)
377 
378 #define SMAP_BD_RX_OUTRANGE (1 << 1)
379 
380 #define SMAP_BD_RX_INRANGE (1 << 0)
381 
382 #define SMAP_BD_RX_ERROR (SMAP_BD_RX_OVERRUN | SMAP_BD_RX_RUNTFRM | SMAP_BD_RX_SHORTEVNT | \
383  SMAP_BD_RX_ALIGNERR | SMAP_BD_RX_BADFCS | SMAP_BD_RX_FRMTOOLONG | \
384  SMAP_BD_RX_OUTRANGE | SMAP_BD_RX_INRANGE)
385 
386 /* PHY registers (National Semiconductor DP83846A). */
387 
388 #define SMAP_NS_OUI 0x080017
389 #define SMAP_DsPHYTER_ADDRESS 0x1
390 
391 #define SMAP_DsPHYTER_BMCR 0x00
392 /* ReSeT */
393 #define SMAP_PHY_BMCR_RST (1 << 15)
394 /* LooPBacK */
395 #define SMAP_PHY_BMCR_LPBK (1 << 14)
396 /* speed select, 1:100M, 0:10M */
397 #define SMAP_PHY_BMCR_100M (1 << 13)
398 /* speed select, 1:100M, 0:10M */
399 #define SMAP_PHY_BMCR_10M (0 << 13)
400 /* Auto-Negotiation ENable */
401 #define SMAP_PHY_BMCR_ANEN (1 << 12)
402 /* PoWer DowN */
403 #define SMAP_PHY_BMCR_PWDN (1 << 11)
404 /* ISOLate */
405 #define SMAP_PHY_BMCR_ISOL (1 << 10)
406 /* ReStart Auto-Negotiation */
407 #define SMAP_PHY_BMCR_RSAN (1 << 9)
408 /* DUPlex Mode, 1:FDX, 0:HDX */
409 #define SMAP_PHY_BMCR_DUPM (1 << 8)
410 /* COLlision Test */
411 #define SMAP_PHY_BMCR_COLT (1 << 7)
412 
413 #define SMAP_DsPHYTER_BMSR 0x01
414 
415 #define SMAP_PHY_BMSR_ANCP (1 << 5)
416 
417 #define SMAP_PHY_BMSR_LINK (1 << 2)
418 
419 #define SMAP_DsPHYTER_PHYIDR1 0x02
420 #define SMAP_PHY_IDR1_VAL (((SMAP_NS_OUI << 2) >> 8) & 0xffff)
421 
422 #define SMAP_DsPHYTER_PHYIDR2 0x03
423 #define SMAP_PHY_IDR2_VMDL 0x2 /* Vendor MoDeL number */
424 #define SMAP_PHY_IDR2_VAL \
425  (((SMAP_NS_OUI << 10) & 0xFC00) | ((SMAP_PHY_IDR2_VMDL << 4) & 0x3F0))
426 #define SMAP_PHY_IDR2_MSK 0xFFF0
427 #define SMAP_PHY_IDR2_REV_MSK 0x000F
428 
429 #define SMAP_DsPHYTER_ANAR 0x04
430 
431 #define SMAP_PHY_ANAR_RFLT (1 << 13)
432 
433 #define SMAP_PHY_ANAR_PAUSE (1 << 10)
434 
435 #define SMAP_PHY_ANAR_T4 (1 << 9)
436 
437 #define SMAP_PHY_ANAR_TX_FD (1 << 8)
438 
439 #define SMAP_PHY_ANAR_TX (1 << 7)
440 
441 #define SMAP_PHY_ANAR_10_FD (1 << 6)
442 
443 #define SMAP_PHY_ANAR_10 (1 << 5)
444 #define SMAP_DsPHYTER_ANLPAR 0x05
445 #define SMAP_DsPHYTER_ANLPARNP 0x05
446 #define SMAP_DsPHYTER_ANER 0x06
447 #define SMAP_DsPHYTER_ANNPTR 0x07
448 
449 /* Extended registers. */
450 #define SMAP_DsPHYTER_PHYSTS 0x10
451 
452 #define SMAP_PHY_STS_REL (1 << 13)
453 
454 #define SMAP_PHY_STS_POST (1 << 12)
455 
456 #define SMAP_PHY_STS_FCSL (1 << 11)
457 
458 #define SMAP_PHY_STS_SD (1 << 10)
459 
460 #define SMAP_PHY_STS_DSL (1 << 9)
461 
462 #define SMAP_PHY_STS_PRCV (1 << 8)
463 
464 #define SMAP_PHY_STS_RFLT (1 << 6)
465 
466 #define SMAP_PHY_STS_JBDT (1 << 5)
467 
468 #define SMAP_PHY_STS_ANCP (1 << 4)
469 
470 #define SMAP_PHY_STS_LPBK (1 << 3)
471 
472 #define SMAP_PHY_STS_DUPS (1 << 2)
473 
474 #define SMAP_PHY_STS_FDX (1 << 2)
475 
476 #define SMAP_PHY_STS_HDX (0 << 2)
477 
478 #define SMAP_PHY_STS_SPDS (1 << 1)
479 
480 #define SMAP_PHY_STS_10M (1 << 1)
481 
482 #define SMAP_PHY_STS_100M (0 << 1)
483 
484 #define SMAP_PHY_STS_LINK (1 << 0)
485 #define SMAP_DsPHYTER_FCSCR 0x14
486 #define SMAP_DsPHYTER_RECR 0x15
487 #define SMAP_DsPHYTER_PCSR 0x16
488 #define SMAP_DsPHYTER_PHYCTRL 0x19
489 #define SMAP_DsPHYTER_10BTSCR 0x1A
490 
491 #define SMAP_PHY_10BTSCR_LOOPBACK_10_DIS (1 << 8)
492 
493 #define SMAP_PHY_10BTSCR_LP_DIS (1 << 7)
494 
495 #define SMAP_PHY_10BTSCR_FORCE_10_LINK (1 << 6)
496 
497 #define SMAP_PHY_10BTSCR_FORCE_POL_COR (1 << 5)
498 
499 #define SMAP_PHY_10BTSCR_POLARITY (1 << 4)
500 
501 #define SMAP_PHY_10BTSCR_AUTOPOL_DIS (1 << 3)
502 
503 #define SMAP_PHY_10BTSCR_2 (1 << 2)
504 
505 #define SMAP_PHY_10BTSCR_HEARTBEAT_DIS (1 << 1)
506 
507 #define SMAP_PHY_10BTSCR_JABBER_DIS (1 << 0)
508 #define SMAP_DsPHYTER_CDCTRL 0x1B
509 
510 #endif /* __SMAPREGS_H__ */
_smap_bd
Definition: smapregs.h:284
speedregs.h
_smap_bd::reserved
vu16 reserved
Definition: smapregs.h:288
tamtypes.h
smap_bd_t
struct _smap_bd smap_bd_t
_smap_bd::length
vu16 length
Definition: smapregs.h:290