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
common
include
smapregs.h
Generated on Wed May 20 2026 06:06:26 for PS2SDK by
1.8.17