PS2SDK
PS2 Homebrew Libraries
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#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)
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
284typedef struct _smap_bd
285{
286 vu16 ctrl_stat;
290 vu16 length;
291 vu16 pointer;
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)
315#define SMAP_BD_TX_GENFCS (1 << 9)
317#define SMAP_BD_TX_GENPAD (1 << 8)
319#define SMAP_BD_TX_INSSA (1 << 7)
321#define SMAP_BD_TX_RPLSA (1 << 6)
323#define SMAP_BD_TX_INSVLAN (1 << 5)
325#define SMAP_BD_TX_RPLVLAN (1 << 4)
326
327/* TX Status */
329#define SMAP_BD_TX_READY (1 << 15)
331#define SMAP_BD_TX_BADFCS (1 << 9)
333#define SMAP_BD_TX_BADPKT (1 << 8)
335#define SMAP_BD_TX_LOSSCR (1 << 7)
337#define SMAP_BD_TX_EDEFER (1 << 6)
339#define SMAP_BD_TX_ECOLL (1 << 5)
341#define SMAP_BD_TX_LCOLL (1 << 4)
343#define SMAP_BD_TX_MCOLL (1 << 3)
345#define SMAP_BD_TX_SCOLL (1 << 2)
347#define SMAP_BD_TX_UNDERRUN (1 << 1)
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)
362#define SMAP_BD_RX_OVERRUN (1 << 9)
364#define SMAP_BD_RX_PFRM (1 << 8)
366#define SMAP_BD_RX_BADFRM (1 << 7)
368#define SMAP_BD_RX_RUNTFRM (1 << 6)
370#define SMAP_BD_RX_SHORTEVNT (1 << 5)
372#define SMAP_BD_RX_ALIGNERR (1 << 4)
374#define SMAP_BD_RX_BADFCS (1 << 3)
376#define SMAP_BD_RX_FRMTOOLONG (1 << 2)
378#define SMAP_BD_RX_OUTRANGE (1 << 1)
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
415#define SMAP_PHY_BMSR_ANCP (1 << 5)
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
431#define SMAP_PHY_ANAR_RFLT (1 << 13)
433#define SMAP_PHY_ANAR_PAUSE (1 << 10)
435#define SMAP_PHY_ANAR_T4 (1 << 9)
437#define SMAP_PHY_ANAR_TX_FD (1 << 8)
439#define SMAP_PHY_ANAR_TX (1 << 7)
441#define SMAP_PHY_ANAR_10_FD (1 << 6)
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
452#define SMAP_PHY_STS_REL (1 << 13)
454#define SMAP_PHY_STS_POST (1 << 12)
456#define SMAP_PHY_STS_FCSL (1 << 11)
458#define SMAP_PHY_STS_SD (1 << 10)
460#define SMAP_PHY_STS_DSL (1 << 9)
462#define SMAP_PHY_STS_PRCV (1 << 8)
464#define SMAP_PHY_STS_RFLT (1 << 6)
466#define SMAP_PHY_STS_JBDT (1 << 5)
468#define SMAP_PHY_STS_ANCP (1 << 4)
470#define SMAP_PHY_STS_LPBK (1 << 3)
472#define SMAP_PHY_STS_DUPS (1 << 2)
474#define SMAP_PHY_STS_FDX (1 << 2)
476#define SMAP_PHY_STS_HDX (0 << 2)
478#define SMAP_PHY_STS_SPDS (1 << 1)
480#define SMAP_PHY_STS_10M (1 << 1)
482#define SMAP_PHY_STS_100M (0 << 1)
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
491#define SMAP_PHY_10BTSCR_LOOPBACK_10_DIS (1 << 8)
493#define SMAP_PHY_10BTSCR_LP_DIS (1 << 7)
495#define SMAP_PHY_10BTSCR_FORCE_10_LINK (1 << 6)
497#define SMAP_PHY_10BTSCR_FORCE_POL_COR (1 << 5)
499#define SMAP_PHY_10BTSCR_POLARITY (1 << 4)
501#define SMAP_PHY_10BTSCR_AUTOPOL_DIS (1 << 3)
503#define SMAP_PHY_10BTSCR_2 (1 << 2)
505#define SMAP_PHY_10BTSCR_HEARTBEAT_DIS (1 << 1)
507#define SMAP_PHY_10BTSCR_JABBER_DIS (1 << 0)
508#define SMAP_DsPHYTER_CDCTRL 0x1B
509
510#endif /* __SMAPREGS_H__ */
vu16 reserved
Definition smapregs.h:288
struct _smap_bd smap_bd_t
vu16 length
Definition smapregs.h:290