cs89x0.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 FILE_LICENCE ( GPL2_ONLY );
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036 #define PP_ChipID 0x0000
00037
00038
00039
00040 #define PP_ISAIOB 0x0020
00041 #define PP_CS8900_ISAINT 0x0022
00042 #define PP_CS8920_ISAINT 0x0370
00043 #define PP_CS8900_ISADMA 0x0024
00044 #define PP_CS8920_ISADMA 0x0374
00045 #define PP_ISASOF 0x0026
00046 #define PP_DmaFrameCnt 0x0028
00047 #define PP_DmaByteCnt 0x002A
00048 #define PP_CS8900_ISAMemB 0x002C
00049 #define PP_CS8920_ISAMemB 0x0348
00050
00051 #define PP_ISABootBase 0x0030
00052 #define PP_ISABootMask 0x0034
00053
00054
00055 #define PP_EECMD 0x0040
00056 #define PP_EEData 0x0042
00057 #define PP_DebugReg 0x0044
00058
00059 #define PP_RxCFG 0x0102
00060 #define PP_RxCTL 0x0104
00061 #define PP_TxCFG 0x0106
00062 #define PP_TxCMD 0x0108
00063 #define PP_BufCFG 0x010A
00064 #define PP_LineCTL 0x0112
00065 #define PP_SelfCTL 0x0114
00066 #define PP_BusCTL 0x0116
00067 #define PP_TestCTL 0x0118
00068 #define PP_AutoNegCTL 0x011C
00069
00070 #define PP_ISQ 0x0120
00071 #define PP_RxEvent 0x0124
00072 #define PP_TxEvent 0x0128
00073 #define PP_BufEvent 0x012C
00074 #define PP_RxMiss 0x0130
00075 #define PP_TxCol 0x0132
00076 #define PP_LineST 0x0134
00077 #define PP_SelfST 0x0136
00078 #define PP_BusST 0x0138
00079 #define PP_TDR 0x013C
00080 #define PP_AutoNegST 0x013E
00081 #define PP_TxCommand 0x0144
00082 #define PP_TxLength 0x0146
00083 #define PP_LAF 0x0150
00084 #define PP_IA 0x0158
00085
00086 #define PP_RxStatus 0x0400
00087 #define PP_RxLength 0x0402
00088 #define PP_RxFrame 0x0404
00089 #define PP_TxFrame 0x0A00
00090
00091
00092
00093 #define DEFAULTIOBASE 0x0300
00094 #define FIRST_IO 0x020C
00095 #define LAST_IO 0x037C
00096 #define ADD_MASK 0x3000
00097 #define ADD_SIG 0x3000
00098
00099 #define CHIP_EISA_ID_SIG 0x630E
00100
00101 #ifdef IBMEIPKT
00102 #define EISA_ID_SIG 0x4D24
00103 #define PART_NO_SIG 0x1010
00104 #define MONGOOSE_BIT 0x0000
00105 #else
00106 #define EISA_ID_SIG 0x630E
00107 #define PART_NO_SIG 0x4000
00108 #define MONGOOSE_BIT 0x2000
00109 #endif
00110
00111 #define PRODUCT_ID_ADD 0x0002
00112
00113
00114 #define REG_TYPE_MASK 0x001F
00115
00116
00117 #define ERSE_WR_ENBL 0x00F0
00118 #define ERSE_WR_DISABLE 0x0000
00119
00120
00121 #define RX_BUF_CFG 0x0003
00122 #define RX_CONTROL 0x0005
00123 #define TX_CFG 0x0007
00124 #define TX_COMMAND 0x0009
00125 #define BUF_CFG 0x000B
00126 #define LINE_CONTROL 0x0013
00127 #define SELF_CONTROL 0x0015
00128 #define BUS_CONTROL 0x0017
00129 #define TEST_CONTROL 0x0019
00130
00131
00132 #define RX_EVENT 0x0004
00133 #define TX_EVENT 0x0008
00134 #define BUF_EVENT 0x000C
00135 #define RX_MISS_COUNT 0x0010
00136 #define TX_COL_COUNT 0x0012
00137 #define LINE_STATUS 0x0014
00138 #define SELF_STATUS 0x0016
00139 #define BUS_STATUS 0x0018
00140 #define TDR 0x001C
00141
00142
00143 #define SKIP_1 0x0040
00144 #define RX_STREAM_ENBL 0x0080
00145 #define RX_OK_ENBL 0x0100
00146 #define RX_DMA_ONLY 0x0200
00147 #define AUTO_RX_DMA 0x0400
00148 #define BUFFER_CRC 0x0800
00149 #define RX_CRC_ERROR_ENBL 0x1000
00150 #define RX_RUNT_ENBL 0x2000
00151 #define RX_EXTRA_DATA_ENBL 0x4000
00152
00153
00154 #define RX_IA_HASH_ACCEPT 0x0040
00155 #define RX_PROM_ACCEPT 0x0080
00156 #define RX_OK_ACCEPT 0x0100
00157 #define RX_MULTCAST_ACCEPT 0x0200
00158 #define RX_IA_ACCEPT 0x0400
00159 #define RX_BROADCAST_ACCEPT 0x0800
00160 #define RX_BAD_CRC_ACCEPT 0x1000
00161 #define RX_RUNT_ACCEPT 0x2000
00162 #define RX_EXTRA_DATA_ACCEPT 0x4000
00163 #define RX_ALL_ACCEPT (RX_PROM_ACCEPT|RX_BAD_CRC_ACCEPT|RX_RUNT_ACCEPT|RX_EXTRA_DATA_ACCEPT)
00164
00165 #define DEF_RX_ACCEPT (RX_IA_ACCEPT | RX_BROADCAST_ACCEPT | RX_OK_ACCEPT)
00166
00167
00168 #define TX_LOST_CRS_ENBL 0x0040
00169 #define TX_SQE_ERROR_ENBL 0x0080
00170 #define TX_OK_ENBL 0x0100
00171 #define TX_LATE_COL_ENBL 0x0200
00172 #define TX_JBR_ENBL 0x0400
00173 #define TX_ANY_COL_ENBL 0x0800
00174 #define TX_16_COL_ENBL 0x8000
00175
00176
00177 #define TX_START_4_BYTES 0x0000
00178 #define TX_START_64_BYTES 0x0040
00179 #define TX_START_128_BYTES 0x0080
00180 #define TX_START_ALL_BYTES 0x00C0
00181 #define TX_FORCE 0x0100
00182 #define TX_ONE_COL 0x0200
00183 #define TX_TWO_PART_DEFF_DISABLE 0x0400
00184 #define TX_NO_CRC 0x1000
00185 #define TX_RUNT 0x2000
00186
00187
00188 #define GENERATE_SW_INTERRUPT 0x0040
00189 #define RX_DMA_ENBL 0x0080
00190 #define READY_FOR_TX_ENBL 0x0100
00191 #define TX_UNDERRUN_ENBL 0x0200
00192 #define RX_MISS_ENBL 0x0400
00193 #define RX_128_BYTE_ENBL 0x0800
00194 #define TX_COL_COUNT_OVRFLOW_ENBL 0x1000
00195 #define RX_MISS_COUNT_OVRFLOW_ENBL 0x2000
00196 #define RX_DEST_MATCH_ENBL 0x8000
00197
00198
00199 #define SERIAL_RX_ON 0x0040
00200 #define SERIAL_TX_ON 0x0080
00201 #define AUI_ONLY 0x0100
00202 #define AUTO_AUI_10BASET 0x0200
00203 #define MODIFIED_BACKOFF 0x0800
00204 #define NO_AUTO_POLARITY 0x1000
00205 #define TWO_PART_DEFDIS 0x2000
00206 #define LOW_RX_SQUELCH 0x4000
00207
00208
00209 #define POWER_ON_RESET 0x0040
00210 #define SW_STOP 0x0100
00211 #define SLEEP_ON 0x0200
00212 #define AUTO_WAKEUP 0x0400
00213 #define HCB0_ENBL 0x1000
00214 #define HCB1_ENBL 0x2000
00215 #define HCB0 0x4000
00216 #define HCB1 0x8000
00217
00218
00219 #define RESET_RX_DMA 0x0040
00220 #define MEMORY_ON 0x0400
00221 #define DMA_BURST_MODE 0x0800
00222 #define IO_CHANNEL_READY_ON 0x1000
00223 #define RX_DMA_SIZE_64K 0x2000
00224 #define ENABLE_IRQ 0x8000
00225
00226
00227 #define LINK_OFF 0x0080
00228 #define ENDEC_LOOPBACK 0x0200
00229 #define AUI_LOOPBACK 0x0400
00230 #define BACKOFF_OFF 0x0800
00231 #define FAST_TEST 0x8000
00232
00233
00234 #define RX_IA_HASHED 0x0040
00235 #define RX_DRIBBLE 0x0080
00236 #define RX_OK 0x0100
00237 #define RX_HASHED 0x0200
00238 #define RX_IA 0x0400
00239 #define RX_BROADCAST 0x0800
00240 #define RX_CRC_ERROR 0x1000
00241 #define RX_RUNT 0x2000
00242 #define RX_EXTRA_DATA 0x4000
00243
00244 #define HASH_INDEX_MASK 0x0FC00
00245
00246
00247 #define TX_LOST_CRS 0x0040
00248 #define TX_SQE_ERROR 0x0080
00249 #define TX_OK 0x0100
00250 #define TX_LATE_COL 0x0200
00251 #define TX_JBR 0x0400
00252 #define TX_16_COL 0x8000
00253 #define TX_SEND_OK_BITS (TX_OK|TX_LOST_CRS)
00254 #define TX_COL_COUNT_MASK 0x7800
00255
00256
00257 #define SW_INTERRUPT 0x0040
00258 #define RX_DMA 0x0080
00259 #define READY_FOR_TX 0x0100
00260 #define TX_UNDERRUN 0x0200
00261 #define RX_MISS 0x0400
00262 #define RX_128_BYTE 0x0800
00263 #define TX_COL_OVRFLW 0x1000
00264 #define RX_MISS_OVRFLW 0x2000
00265 #define RX_DEST_MATCH 0x8000
00266
00267
00268 #define LINK_OK 0x0080
00269 #define AUI_ON 0x0100
00270 #define TENBASET_ON 0x0200
00271 #define POLARITY_OK 0x1000
00272 #define CRS_OK 0x4000
00273
00274
00275 #define ACTIVE_33V 0x0040
00276 #define INIT_DONE 0x0080
00277 #define SI_BUSY 0x0100
00278 #define EEPROM_PRESENT 0x0200
00279 #define EEPROM_OK 0x0400
00280 #define EL_PRESENT 0x0800
00281 #define EE_SIZE_64 0x1000
00282
00283
00284 #define TX_BID_ERROR 0x0080
00285 #define READY_FOR_TX_NOW 0x0100
00286
00287
00288 #define RE_NEG_NOW 0x0040
00289 #define ALLOW_FDX 0x0080
00290 #define AUTO_NEG_ENABLE 0x0100
00291 #define NLP_ENABLE 0x0200
00292 #define FORCE_FDX 0x8000
00293 #define AUTO_NEG_BITS (FORCE_FDX|NLP_ENABLE|AUTO_NEG_ENABLE)
00294 #define AUTO_NEG_MASK (FORCE_FDX|NLP_ENABLE|AUTO_NEG_ENABLE|ALLOW_FDX|RE_NEG_NOW)
00295
00296
00297 #define AUTO_NEG_BUSY 0x0080
00298 #define FLP_LINK 0x0100
00299 #define FLP_LINK_GOOD 0x0800
00300 #define LINK_FAULT 0x1000
00301 #define HDX_ACTIVE 0x4000
00302 #define FDX_ACTIVE 0x8000
00303
00304
00305 #define ISQ_RECEIVER_EVENT 0x04
00306 #define ISQ_TRANSMITTER_EVENT 0x08
00307 #define ISQ_BUFFER_EVENT 0x0c
00308 #define ISQ_RX_MISS_EVENT 0x10
00309 #define ISQ_TX_COL_EVENT 0x12
00310
00311 #define ISQ_EVENT_MASK 0x003F
00312 #define ISQ_HIST 16
00313 #define AUTOINCREMENT 0x8000
00314
00315 #define TXRXBUFSIZE 0x0600
00316 #define RXDMABUFSIZE 0x8000
00317 #define RXDMASIZE 0x4000
00318 #define TXRX_LENGTH_MASK 0x07FF
00319
00320
00321 #define RCV_WITH_RXON 1
00322 #define RCV_COUNTS 2
00323 #define RCV_PONG 4
00324 #define RCV_DONG 8
00325 #define RCV_POLLING 0x10
00326 #define RCV_ISQ 0x20
00327 #define RCV_AUTO_DMA 0x100
00328 #define RCV_DMA 0x200
00329 #define RCV_DMA_ALL 0x400
00330 #define RCV_FIXED_DATA 0x800
00331 #define RCV_IO 0x1000
00332 #define RCV_MEMORY 0x2000
00333
00334 #define RAM_SIZE 0x1000
00335 #define PKT_START PP_TxFrame
00336
00337 #define RX_FRAME_PORT 0x0000
00338 #define TX_FRAME_PORT RX_FRAME_PORT
00339 #define TX_CMD_PORT 0x0004
00340 #define TX_NOW 0x0000
00341 #define TX_AFTER_381 0x0020
00342 #define TX_AFTER_ALL 0x00C0
00343 #define TX_LEN_PORT 0x0006
00344 #define ISQ_PORT 0x0008
00345 #define ADD_PORT 0x000A
00346 #define DATA_PORT 0x000C
00347
00348 #define EEPROM_WRITE_EN 0x00F0
00349 #define EEPROM_WRITE_DIS 0x0000
00350 #define EEPROM_WRITE_CMD 0x0100
00351 #define EEPROM_READ_CMD 0x0200
00352
00353
00354
00355 #define RBUF_EVENT_LOW 0
00356 #define RBUF_EVENT_HIGH 1
00357 #define RBUF_LEN_LOW 2
00358 #define RBUF_LEN_HI 3
00359 #define RBUF_HEAD_LEN 4
00360
00361 #define CHIP_READ 0x1
00362 #define DMA_READ 0x2
00363
00364
00365
00366 #ifdef CSDEBUG
00367
00368 #define BIOS_START_SEG 0x00000
00369 #define BIOS_OFFSET_INC 0x0010
00370 #else
00371 #define BIOS_START_SEG 0x0c000
00372 #define BIOS_OFFSET_INC 0x0200
00373 #endif
00374
00375 #define BIOS_LAST_OFFSET 0x0fc00
00376
00377
00378 #define ISA_CNF_OFFSET 0x6
00379 #define TX_CTL_OFFSET (ISA_CNF_OFFSET + 8)
00380 #define AUTO_NEG_CNF_OFFSET (ISA_CNF_OFFSET + 8)
00381
00382
00383
00384
00385
00386 #define EE_FORCE_FDX 0x8000
00387 #define EE_NLP_ENABLE 0x0200
00388 #define EE_AUTO_NEG_ENABLE 0x0100
00389 #define EE_ALLOW_FDX 0x0080
00390 #define EE_AUTO_NEG_CNF_MASK (EE_FORCE_FDX|EE_NLP_ENABLE|EE_AUTO_NEG_ENABLE|EE_ALLOW_FDX)
00391
00392 #define IMM_BIT 0x0040
00393
00394 #define ADAPTER_CNF_OFFSET (AUTO_NEG_CNF_OFFSET + 2)
00395 #define A_CNF_10B_T 0x0001
00396 #define A_CNF_AUI 0x0002
00397 #define A_CNF_10B_2 0x0004
00398 #define A_CNF_MEDIA_TYPE 0x0060
00399 #define A_CNF_MEDIA_AUTO 0x0000
00400 #define A_CNF_MEDIA_10B_T 0x0020
00401 #define A_CNF_MEDIA_AUI 0x0040
00402 #define A_CNF_MEDIA_10B_2 0x0060
00403 #define A_CNF_DC_DC_POLARITY 0x0080
00404 #define A_CNF_NO_AUTO_POLARITY 0x2000
00405 #define A_CNF_LOW_RX_SQUELCH 0x4000
00406 #define A_CNF_EXTND_10B_2 0x8000
00407
00408 #define PACKET_PAGE_OFFSET 0x8
00409
00410
00411 #define INT_NO_MASK 0x000F
00412 #define DMA_NO_MASK 0x0070
00413 #define ISA_DMA_SIZE 0x0200
00414 #define ISA_AUTO_RxDMA 0x0400
00415 #define ISA_RxDMA 0x0800
00416 #define DMA_BURST 0x1000
00417 #define STREAM_TRANSFER 0x2000
00418 #define ANY_ISA_DMA (ISA_AUTO_RxDMA | ISA_RxDMA)
00419
00420
00421 #define DMA_BASE 0x00
00422 #define DMA_BASE_2 0x0C0
00423
00424 #define DMA_STAT 0x0D0
00425 #define DMA_MASK 0x0D4
00426 #define DMA_MODE 0x0D6
00427 #define DMA_RESETFF 0x0D8
00428
00429
00430 #define DMA_DISABLE 0x04
00431 #define DMA_ENABLE 0x00
00432
00433 #define DMA_RX_MODE 0x14
00434
00435 #define DMA_TX_MODE 0x18
00436
00437 #define DMA_SIZE (16*1024)
00438
00439 #define CS8900 0x0000
00440 #define CS8920 0x4000
00441 #define CS8920M 0x6000
00442 #define REVISON_BITS 0x1F00
00443 #define EEVER_NUMBER 0x12
00444 #define CHKSUM_LEN 0x14
00445 #define CHKSUM_VAL 0x0000
00446 #define START_EEPROM_DATA 0x001c
00447 #define IRQ_MAP_EEPROM_DATA 0x0046
00448 #define IRQ_MAP_LEN 0x0004
00449 #define PNP_IRQ_FRMT 0x0022
00450 #define CS8900_IRQ_MAP 0x1c20
00451
00452 #define CS8920_NO_INTS 0x0F
00453
00454 #define PNP_ADD_PORT 0x0279
00455 #define PNP_WRITE_PORT 0x0A79
00456
00457 #define GET_PNP_ISA_STRUCT 0x40
00458 #define PNP_ISA_STRUCT_LEN 0x06
00459 #define PNP_CSN_CNT_OFF 0x01
00460 #define PNP_RD_PORT_OFF 0x02
00461 #define PNP_FUNCTION_OK 0x00
00462 #define PNP_WAKE 0x03
00463 #define PNP_RSRC_DATA 0x04
00464 #define PNP_RSRC_READY 0x01
00465 #define PNP_STATUS 0x05
00466 #define PNP_ACTIVATE 0x30
00467 #define PNP_CNF_IO_H 0x60
00468 #define PNP_CNF_IO_L 0x61
00469 #define PNP_CNF_INT 0x70
00470 #define PNP_CNF_DMA 0x74
00471 #define PNP_CNF_MEM 0x48
00472
00473 #define BIT0 1
00474 #define BIT15 0x8000
00475
00476
00477
00478
00479
00480
00481