3c595.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032 FILE_LICENCE ( BSD3 );
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042
00043
00044
00045
00046
00047
00048
00049
00050
00051
00052
00053 #define TX_INIT_RATE 16
00054 #define TX_INIT_MAX_RATE 64
00055 #define RX_INIT_LATENCY 64
00056 #define RX_INIT_EARLY_THRESH 64
00057 #define MIN_RX_EARLY_THRESHF 16
00058 #define MIN_RX_EARLY_THRESHL 4
00059
00060 #define EEPROMSIZE 0x40
00061 #define MAX_EEPROMBUSY 1000
00062 #define VX_LAST_TAG 0xd7
00063 #define VX_MAX_BOARDS 16
00064 #define VX_ID_PORT 0x100
00065
00066
00067
00068
00069 #define BASE (eth_nic_base)
00070
00071
00072
00073
00074
00075 #define EEPROM_CMD_RD 0x0080
00076 #define EEPROM_CMD_WR 0x0040
00077 #define EEPROM_CMD_ERASE 0x00c0
00078 #define EEPROM_CMD_EWEN 0x0030
00079
00080 #define EEPROM_BUSY (1<<15)
00081
00082
00083
00084
00085
00086
00087
00088
00089
00090
00091
00092
00093
00094
00095
00096 #define EEPROM_NODE_ADDR_0 0x0
00097 #define EEPROM_NODE_ADDR_1 0x1
00098 #define EEPROM_NODE_ADDR_2 0x2
00099 #define EEPROM_PROD_ID 0x3
00100 #define EEPROM_MFG_ID 0x7
00101 #define EEPROM_ADDR_CFG 0x8
00102 #define EEPROM_RESOURCE_CFG 0x9
00103 #define EEPROM_OEM_ADDR_0 0xa
00104 #define EEPROM_OEM_ADDR_1 0xb
00105 #define EEPROM_OEM_ADDR_2 0xc
00106 #define EEPROM_SOFT_INFO_2 0xf
00107
00108 #define NO_RX_OVN_ANOMALY (1<<5)
00109
00110
00111
00112
00113
00114
00115
00116
00117
00118
00119 #define VX_COMMAND 0x0e
00120
00121 #define VX_STATUS 0x0e
00122
00123 #define VX_WINDOW 0x0f
00124
00125
00126
00127
00128
00129 #define VX_W0_EEPROM_DATA 0x0c
00130 #define VX_W0_EEPROM_COMMAND 0x0a
00131 #define VX_W0_RESOURCE_CFG 0x08
00132 #define VX_W0_ADDRESS_CFG 0x06
00133 #define VX_W0_CONFIG_CTRL 0x04
00134
00135 #define VX_W0_PRODUCT_ID 0x02
00136 #define VX_W0_MFG_ID 0x00
00137
00138
00139
00140
00141
00142
00143 #define VX_W1_TX_PIO_WR_2 0x02
00144 #define VX_W1_TX_PIO_WR_1 0x00
00145
00146 #define VX_W1_FREE_TX 0x0c
00147 #define VX_W1_TX_STATUS 0x0b
00148 #define VX_W1_TIMER 0x0a
00149 #define VX_W1_RX_STATUS 0x08
00150 #define VX_W1_RX_PIO_RD_2 0x02
00151 #define VX_W1_RX_PIO_RD_1 0x00
00152
00153
00154
00155
00156
00157 #define VX_W2_ADDR_5 0x05
00158 #define VX_W2_ADDR_4 0x04
00159 #define VX_W2_ADDR_3 0x03
00160 #define VX_W2_ADDR_2 0x02
00161 #define VX_W2_ADDR_1 0x01
00162 #define VX_W2_ADDR_0 0x00
00163
00164
00165
00166
00167
00168 #define VX_W3_INTERNAL_CFG 0x00
00169 #define VX_W3_RESET_OPT 0x08
00170 #define VX_W3_FREE_TX 0x0c
00171 #define VX_W3_FREE_RX 0x0a
00172
00173
00174
00175
00176
00177 #define VX_W4_MEDIA_TYPE 0x0a
00178 #define VX_W4_CTRLR_STATUS 0x08
00179 #define VX_W4_NET_DIAG 0x06
00180 #define VX_W4_FIFO_DIAG 0x04
00181 #define VX_W4_HOST_DIAG 0x02
00182 #define VX_W4_TX_DIAG 0x00
00183
00184
00185
00186
00187
00188 #define VX_W5_READ_0_MASK 0x0c
00189 #define VX_W5_INTR_MASK 0x0a
00190 #define VX_W5_RX_FILTER 0x08
00191 #define VX_W5_RX_EARLY_THRESH 0x06
00192 #define VX_W5_TX_AVAIL_THRESH 0x02
00193 #define VX_W5_TX_START_THRESH 0x00
00194
00195
00196
00197
00198
00199 #define TX_TOTAL_OK 0x0c
00200 #define RX_TOTAL_OK 0x0a
00201 #define TX_DEFERRALS 0x08
00202 #define RX_FRAMES_OK 0x07
00203 #define TX_FRAMES_OK 0x06
00204 #define RX_OVERRUNS 0x05
00205 #define TX_COLLISIONS 0x04
00206 #define TX_AFTER_1_COLLISION 0x03
00207 #define TX_AFTER_X_COLLISIONS 0x02
00208 #define TX_NO_SQE 0x01
00209 #define TX_CD_LOST 0x00
00210
00211
00212
00213
00214
00215
00216
00217
00218
00219
00220
00221
00222
00223
00224
00225 #define GLOBAL_RESET (unsigned short) 0x0000
00226
00227 #define WINDOW_SELECT (unsigned short) (0x1<<11)
00228 #define START_TRANSCEIVER (unsigned short) (0x2<<11)
00229
00230
00231
00232
00233
00234 #define RX_DISABLE (unsigned short) (0x3<<11)
00235
00236 #define RX_ENABLE (unsigned short) (0x4<<11)
00237 #define RX_RESET (unsigned short) (0x5<<11)
00238 #define RX_DISCARD_TOP_PACK (unsigned short) (0x8<<11)
00239 #define TX_ENABLE (unsigned short) (0x9<<11)
00240 #define TX_DISABLE (unsigned short) (0xa<<11)
00241 #define TX_RESET (unsigned short) (0xb<<11)
00242 #define REQ_INTR (unsigned short) (0xc<<11)
00243
00244
00245
00246
00247 #define ACK_INTR (unsigned short) (0x6800)
00248 # define C_INTR_LATCH (unsigned short) (ACK_INTR|0x1)
00249 # define C_CARD_FAILURE (unsigned short) (ACK_INTR|0x2)
00250 # define C_TX_COMPLETE (unsigned short) (ACK_INTR|0x4)
00251 # define C_TX_AVAIL (unsigned short) (ACK_INTR|0x8)
00252 # define C_RX_COMPLETE (unsigned short) (ACK_INTR|0x10)
00253 # define C_RX_EARLY (unsigned short) (ACK_INTR|0x20)
00254 # define C_INT_RQD (unsigned short) (ACK_INTR|0x40)
00255 # define C_UPD_STATS (unsigned short) (ACK_INTR|0x80)
00256 #define SET_INTR_MASK (unsigned short) (0xe<<11)
00257 #define SET_RD_0_MASK (unsigned short) (0xf<<11)
00258 #define SET_RX_FILTER (unsigned short) (0x10<<11)
00259 # define FIL_INDIVIDUAL (unsigned short) (0x1)
00260 # define FIL_MULTICAST (unsigned short) (0x02)
00261 # define FIL_BRDCST (unsigned short) (0x04)
00262 # define FIL_PROMISC (unsigned short) (0x08)
00263 #define SET_RX_EARLY_THRESH (unsigned short) (0x11<<11)
00264 #define SET_TX_AVAIL_THRESH (unsigned short) (0x12<<11)
00265 #define SET_TX_START_THRESH (unsigned short) (0x13<<11)
00266 #define STATS_ENABLE (unsigned short) (0x15<<11)
00267 #define STATS_DISABLE (unsigned short) (0x16<<11)
00268 #define STOP_TRANSCEIVER (unsigned short) (0x17<<11)
00269
00270
00271
00272
00273
00274
00275
00276
00277
00278
00279
00280
00281
00282
00283
00284
00285
00286
00287
00288 #define S_INTR_LATCH (unsigned short) (0x1)
00289 #define S_CARD_FAILURE (unsigned short) (0x2)
00290 #define S_TX_COMPLETE (unsigned short) (0x4)
00291 #define S_TX_AVAIL (unsigned short) (0x8)
00292 #define S_RX_COMPLETE (unsigned short) (0x10)
00293 #define S_RX_EARLY (unsigned short) (0x20)
00294 #define S_INT_RQD (unsigned short) (0x40)
00295 #define S_UPD_STATS (unsigned short) (0x80)
00296 #define S_COMMAND_IN_PROGRESS (unsigned short) (0x1000)
00297
00298 #define VX_BUSY_WAIT while (inw(BASE + VX_STATUS) & S_COMMAND_IN_PROGRESS)
00299
00300
00301
00302
00303
00304 #define ACF_CONNECTOR_BITS 14
00305 #define ACF_CONNECTOR_UTP 0
00306 #define ACF_CONNECTOR_AUI 1
00307 #define ACF_CONNECTOR_BNC 3
00308
00309 #define INTERNAL_CONNECTOR_BITS 20
00310 #define INTERNAL_CONNECTOR_MASK 0x01700000
00311
00312
00313
00314
00315
00316
00317
00318
00319
00320
00321
00322
00323
00324
00325
00326
00327
00328 #define ERR_INCOMPLETE (unsigned short) (0x8000)
00329 #define ERR_RX (unsigned short) (0x4000)
00330 #define ERR_MASK (unsigned short) (0x7800)
00331 #define ERR_OVERRUN (unsigned short) (0x4000)
00332 #define ERR_RUNT (unsigned short) (0x5800)
00333 #define ERR_ALIGNMENT (unsigned short) (0x6000)
00334 #define ERR_CRC (unsigned short) (0x6800)
00335 #define ERR_OVERSIZE (unsigned short) (0x4800)
00336 #define ERR_DRIBBLE (unsigned short) (0x1000)
00337
00338
00339
00340
00341
00342
00343
00344
00345
00346
00347
00348
00349
00350
00351
00352
00353
00354
00355 #define TXS_COMPLETE 0x80
00356 #define TXS_INTR_REQ 0x40
00357 #define TXS_JABBER 0x20
00358 #define TXS_UNDERRUN 0x10
00359 #define TXS_MAX_COLLISION 0x8
00360 #define TXS_STATUS_OVERFLOW 0x4
00361
00362 #define RS_AUI (1<<5)
00363 #define RS_BNC (1<<4)
00364 #define RS_UTP (1<<3)
00365 #define RS_T4 (1<<0)
00366 #define RS_TX (1<<1)
00367 #define RS_FX (1<<2)
00368 #define RS_MII (1<<6)
00369
00370
00371
00372
00373
00374
00375
00376
00377
00378
00379
00380
00381
00382
00383
00384
00385
00386
00387
00388
00389
00390
00391
00392
00393
00394
00395
00396
00397
00398
00399
00400
00401
00402
00403
00404 #define FIFOS_RX_RECEIVING (unsigned short) 0x8000
00405 #define FIFOS_RX_UNDERRUN (unsigned short) 0x2000
00406 #define FIFOS_RX_STATUS_OVERRUN (unsigned short) 0x1000
00407 #define FIFOS_RX_OVERRUN (unsigned short) 0x0800
00408 #define FIFOS_TX_OVERRUN (unsigned short) 0x0400
00409
00410
00411
00412
00413 #define TAG_ADAPTER 0xd0
00414 #define ACTIVATE_ADAPTER_TO_CONFIG 0xff
00415 #define ENABLE_DRQ_IRQ 0x0001
00416 #define MFG_ID 0x506d
00417 #define PROD_ID 0x5090
00418 #define GO_WINDOW(x) outw(WINDOW_SELECT|(x),BASE+VX_COMMAND)
00419 #define JABBER_GUARD_ENABLE 0x40
00420 #define LINKBEAT_ENABLE 0x80
00421 #define ENABLE_UTP (JABBER_GUARD_ENABLE | LINKBEAT_ENABLE)
00422 #define DISABLE_UTP 0x0
00423 #define RX_BYTES_MASK (unsigned short) (0x07ff)
00424 #define RX_ERROR 0x4000
00425 #define RX_INCOMPLETE 0x8000
00426 #define TX_INDICATE 1<<15
00427 #define is_eeprom_busy(b) (inw((b)+VX_W0_EEPROM_COMMAND)&EEPROM_BUSY)
00428
00429 #define VX_IOSIZE 0x20
00430
00431 #define VX_CONNECTORS 8
00432
00433
00434
00435
00436
00437