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