sdk-core
v2026.11.05
PS2 SDK - core tier (build-critical EE/IOP modules)
Toggle main menu visibility
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
285
typedef
struct
_smap_bd
286
{
287
vu16 ctrl_stat;
289
vu16
reserved
;
291
vu16
length
;
292
vu16 pointer;
293
}
smap_bd_t
;
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__ */
smap_bd_t
struct _smap_bd smap_bd_t
speedregs.h
_smap_bd
Definition
smapregs.h:286
_smap_bd::reserved
vu16 reserved
Definition
smapregs.h:289
_smap_bd::length
vu16 length
Definition
smapregs.h:291
tamtypes.h
core
common
include
smapregs.h
Generated by
1.18.0