3c509.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
00033
00034 FILE_LICENCE ( BSD3 );
00035
00036 #include "nic.h"
00037
00038
00039
00040
00041
00042
00043
00044
00045 #define TX_INIT_RATE 16
00046 #define TX_INIT_MAX_RATE 64
00047 #define RX_INIT_LATENCY 64
00048 #define RX_INIT_EARLY_THRESH 64
00049 #define MIN_RX_EARLY_THRESHF 16
00050 #define MIN_RX_EARLY_THRESHL 4
00051
00052 #define EEPROMSIZE 0x40
00053 #define MAX_EEPROMBUSY 1000
00054 #define EP_ID_PORT_START 0x110
00055 #define EP_ID_PORT_INC 0x10
00056 #define EP_ID_PORT_END 0x200
00057 #define EP_TAG_MAX 0x7
00058
00059
00060
00061
00062
00063 #define EEPROM_CMD_RD 0x0080
00064 #define EEPROM_CMD_WR 0x0040
00065 #define EEPROM_CMD_ERASE 0x00c0
00066 #define EEPROM_CMD_EWEN 0x0030
00067
00068 #define EEPROM_BUSY (1<<15)
00069 #define EEPROM_TST_MODE (1<<14)
00070
00071
00072
00073
00074 #define is_eeprom_busy(b) (inw((b)+EP_W0_EEPROM_COMMAND)&EEPROM_BUSY)
00075 #define GO_WINDOW(b,x) outw(WINDOW_SELECT|(x), (b)+EP_COMMAND)
00076
00077
00078
00079
00080
00081
00082
00083
00084
00085
00086
00087 #define EEPROM_NODE_ADDR_0 0x0
00088 #define EEPROM_NODE_ADDR_1 0x1
00089 #define EEPROM_NODE_ADDR_2 0x2
00090 #define EEPROM_PROD_ID 0x3
00091 #define EEPROM_MFG_ID 0x7
00092 #define EEPROM_ADDR_CFG 0x8
00093 #define EEPROM_RESOURCE_CFG 0x9
00094
00095
00096
00097
00098
00099
00100
00101
00102
00103
00104
00105
00106
00107
00108
00109 #define EP_COMMAND 0x0e
00110
00111 #define EP_STATUS 0x0e
00112
00113 #define EP_WINDOW 0x0f
00114
00115
00116
00117
00118
00119 #define EP_W0_EEPROM_DATA 0x0c
00120 #define EP_W0_EEPROM_COMMAND 0x0a
00121 #define EP_W0_RESOURCE_CFG 0x08
00122 #define EP_W0_ADDRESS_CFG 0x06
00123 #define EP_W0_CONFIG_CTRL 0x04
00124
00125 #define EP_W0_PRODUCT_ID 0x02
00126 #define EP_W0_MFG_ID 0x00
00127
00128
00129
00130
00131
00132 #define EP_W1_TX_PIO_WR_2 0x02
00133 #define EP_W1_TX_PIO_WR_1 0x00
00134
00135 #define EP_W1_FREE_TX 0x0c
00136 #define EP_W1_TX_STATUS 0x0b
00137 #define EP_W1_TIMER 0x0a
00138 #define EP_W1_RX_STATUS 0x08
00139 #define EP_W1_RX_PIO_RD_2 0x02
00140 #define EP_W1_RX_PIO_RD_1 0x00
00141
00142
00143
00144
00145
00146 #define EP_W2_ADDR_5 0x05
00147 #define EP_W2_ADDR_4 0x04
00148 #define EP_W2_ADDR_3 0x03
00149 #define EP_W2_ADDR_2 0x02
00150 #define EP_W2_ADDR_1 0x01
00151 #define EP_W2_ADDR_0 0x00
00152
00153
00154
00155
00156
00157 #define EP_W3_FREE_TX 0x0c
00158 #define EP_W3_FREE_RX 0x0a
00159
00160
00161
00162
00163
00164 #define EP_W4_MEDIA_TYPE 0x0a
00165 #define EP_W4_CTRLR_STATUS 0x08
00166 #define EP_W4_NET_DIAG 0x06
00167 #define EP_W4_FIFO_DIAG 0x04
00168 #define EP_W4_HOST_DIAG 0x02
00169 #define EP_W4_TX_DIAG 0x00
00170
00171
00172
00173
00174
00175 #define EP_W5_READ_0_MASK 0x0c
00176 #define EP_W5_INTR_MASK 0x0a
00177 #define EP_W5_RX_FILTER 0x08
00178 #define EP_W5_RX_EARLY_THRESH 0x06
00179 #define EP_W5_TX_AVAIL_THRESH 0x02
00180 #define EP_W5_TX_START_THRESH 0x00
00181
00182
00183
00184
00185
00186 #define TX_TOTAL_OK 0x0c
00187 #define RX_TOTAL_OK 0x0a
00188 #define TX_DEFERRALS 0x08
00189 #define RX_FRAMES_OK 0x07
00190 #define TX_FRAMES_OK 0x06
00191 #define RX_OVERRUNS 0x05
00192 #define TX_COLLISIONS 0x04
00193 #define TX_AFTER_1_COLLISION 0x03
00194 #define TX_AFTER_X_COLLISIONS 0x02
00195 #define TX_NO_SQE 0x01
00196 #define TX_CD_LOST 0x00
00197
00198
00199
00200
00201
00202
00203
00204
00205
00206
00207
00208
00209
00210
00211
00212 #define GLOBAL_RESET (unsigned short) 0x0000
00213
00214 #define WINDOW_SELECT (unsigned short) (0x1<<11)
00215 #define START_TRANSCEIVER (unsigned short) (0x2<<11)
00216
00217
00218
00219
00220
00221 #define RX_DISABLE (unsigned short) (0x3<<11)
00222
00223 #define RX_ENABLE (unsigned short) (0x4<<11)
00224 #define RX_RESET (unsigned short) (0x5<<11)
00225 #define RX_DISCARD_TOP_PACK (unsigned short) (0x8<<11)
00226 #define TX_ENABLE (unsigned short) (0x9<<11)
00227 #define TX_DISABLE (unsigned short) (0xa<<11)
00228 #define TX_RESET (unsigned short) (0xb<<11)
00229 #define REQ_INTR (unsigned short) (0xc<<11)
00230 #define SET_INTR_MASK (unsigned short) (0xe<<11)
00231 #define SET_RD_0_MASK (unsigned short) (0xf<<11)
00232 #define SET_RX_FILTER (unsigned short) (0x10<<11)
00233 #define FIL_INDIVIDUAL (unsigned short) (0x1)
00234 #define FIL_GROUP (unsigned short) (0x2)
00235 #define FIL_BRDCST (unsigned short) (0x4)
00236 #define FIL_ALL (unsigned short) (0x8)
00237 #define SET_RX_EARLY_THRESH (unsigned short) (0x11<<11)
00238 #define SET_TX_AVAIL_THRESH (unsigned short) (0x12<<11)
00239 #define SET_TX_START_THRESH (unsigned short) (0x13<<11)
00240 #define STATS_ENABLE (unsigned short) (0x15<<11)
00241 #define STATS_DISABLE (unsigned short) (0x16<<11)
00242 #define STOP_TRANSCEIVER (unsigned short) (0x17<<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
00257
00258
00259
00260
00261
00262
00263
00264
00265
00266
00267
00268
00269
00270
00271
00272
00273
00274
00275 #define S_INTR_LATCH (unsigned short) (0x1)
00276 #define S_CARD_FAILURE (unsigned short) (0x2)
00277 #define S_TX_COMPLETE (unsigned short) (0x4)
00278 #define S_TX_AVAIL (unsigned short) (0x8)
00279 #define S_RX_COMPLETE (unsigned short) (0x10)
00280 #define S_RX_EARLY (unsigned short) (0x20)
00281 #define S_INT_RQD (unsigned short) (0x40)
00282 #define S_UPD_STATS (unsigned short) (0x80)
00283 #define S_5_INTS (S_CARD_FAILURE|S_TX_COMPLETE|\
00284 S_TX_AVAIL|S_RX_COMPLETE|S_RX_EARLY)
00285 #define S_COMMAND_IN_PROGRESS (unsigned short) (0x1000)
00286
00287
00288
00289
00290
00291
00292
00293
00294
00295
00296
00297
00298
00299
00300
00301
00302
00303
00304 #define ERR_RX_INCOMPLETE (unsigned short) (0x1<<15)
00305 #define ERR_RX (unsigned short) (0x1<<14)
00306 #define ERR_RX_OVERRUN (unsigned short) (0x8<<11)
00307 #define ERR_RX_RUN_PKT (unsigned short) (0xb<<11)
00308 #define ERR_RX_ALIGN (unsigned short) (0xc<<11)
00309 #define ERR_RX_CRC (unsigned short) (0xd<<11)
00310 #define ERR_RX_OVERSIZE (unsigned short) (0x9<<11)
00311 #define ERR_RX_DRIBBLE (unsigned short) (0x2<<11)
00312
00313
00314
00315
00316
00317
00318
00319
00320
00321
00322
00323
00324
00325
00326
00327
00328
00329
00330
00331 #define TXS_COMPLETE 0x80
00332 #define TXS_SUCCES_INTR_REQ 0x40
00333 #define TXS_JABBER 0x20
00334 #define TXS_UNDERRUN 0x10
00335 #define TXS_MAX_COLLISION 0x8
00336 #define TXS_STATUS_OVERFLOW 0x4
00337
00338
00339
00340
00341
00342
00343 #define IS_AUI (1<<13)
00344 #define IS_BNC (1<<12)
00345 #define IS_UTP (1<<9)
00346
00347 #define ENABLE_DRQ_IRQ 0x0001
00348 #define W0_P4_CMD_RESET_ADAPTER 0x4
00349 #define W0_P4_CMD_ENABLE_ADAPTER 0x1
00350
00351
00352
00353
00354 #define ENABLE_UTP 0xc0
00355 #define DISABLE_UTP 0x0
00356
00357
00358
00359
00360
00361 #define SET_IRQ(i) ( ((i)<<12) | 0xF00)
00362
00363
00364
00365
00366
00367 #define RX_BYTES_MASK (unsigned short) (0x07ff)
00368 #define RX_ERROR 0x4000
00369 #define RX_INCOMPLETE 0x8000
00370
00371
00372
00373
00374 #define MFG_ID 0x6d50
00375 #define PROD_ID 0x9150
00376
00377 #define AUI 0x1
00378 #define BNC 0x2
00379 #define UTP 0x4
00380
00381 #define RX_BYTES_MASK (unsigned short) (0x07ff)
00382
00383
00384
00385
00386 extern int t5x9_probe ( struct nic *nic,
00387 uint16_t prod_id_check, uint16_t prod_id_mask );
00388 extern void t5x9_disable ( struct nic *nic );
00389
00390
00391
00392
00393
00394