Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 1 | /* smctr.h: SMC Token Ring driver header for Linux |
| 2 | * |
| 3 | * Authors: |
| 4 | * - Jay Schulist <jschlst@samba.org> |
| 5 | */ |
| 6 | |
| 7 | #ifndef __LINUX_SMCTR_H |
| 8 | #define __LINUX_SMCTR_H |
| 9 | |
| 10 | #ifdef __KERNEL__ |
| 11 | |
| 12 | #define MAX_TX_QUEUE 10 |
| 13 | |
| 14 | #define SMC_HEADER_SIZE 14 |
| 15 | |
| 16 | #define SMC_PAGE_OFFSET(X) (((unsigned long)(X) - tp->ram_access) & tp->page_offset_mask) |
| 17 | |
| 18 | #define INIT 0x0D |
| 19 | #define RQ_ATTCH 0x10 |
| 20 | #define RQ_STATE 0x0F |
| 21 | #define RQ_ADDR 0x0E |
| 22 | #define CHG_PARM 0x0C |
| 23 | #define RSP 0x00 |
| 24 | #define TX_FORWARD 0x09 |
| 25 | |
| 26 | #define AC_FC_DAT ((3<<13) | 1) |
| 27 | #define DAT 0x07 |
| 28 | |
| 29 | #define RPT_NEW_MON 0x25 |
| 30 | #define RPT_SUA_CHG 0x26 |
| 31 | #define RPT_ACTIVE_ERR 0x28 |
| 32 | #define RPT_NN_INCMP 0x27 |
| 33 | #define RPT_ERROR 0x29 |
| 34 | |
| 35 | #define RQ_INIT 0x20 |
| 36 | #define RPT_ATTCH 0x24 |
| 37 | #define RPT_STATE 0x23 |
| 38 | #define RPT_ADDR 0x22 |
| 39 | |
| 40 | #define POSITIVE_ACK 0x0001 |
| 41 | #define A_FRAME_WAS_FORWARDED 0x8888 |
| 42 | |
| 43 | #define GROUP_ADDRESS 0x2B |
| 44 | #define PHYSICAL_DROP 0x0B |
| 45 | #define AUTHORIZED_ACCESS_PRIORITY 0x07 |
| 46 | #define AUTHORIZED_FUNCTION_CLASS 0x06 |
| 47 | #define FUNCTIONAL_ADDRESS 0x2C |
| 48 | #define RING_STATION_STATUS 0x29 |
| 49 | #define TRANSMIT_STATUS_CODE 0x2A |
| 50 | #define IBM_PASS_SOURCE_ADDR 0x01 |
| 51 | #define AC_FC_RPT_TX_FORWARD ((0<<13) | 0) |
| 52 | #define AC_FC_RPT_STATE ((0<<13) | 0) |
| 53 | #define AC_FC_RPT_ADDR ((0<<13) | 0) |
| 54 | #define CORRELATOR 0x09 |
| 55 | |
| 56 | #define POSITIVE_ACK 0x0001 /* */ |
| 57 | #define E_MAC_DATA_INCOMPLETE 0x8001 /* not used */ |
| 58 | #define E_VECTOR_LENGTH_ERROR 0x8002 /* */ |
| 59 | #define E_UNRECOGNIZED_VECTOR_ID 0x8003 /* */ |
| 60 | #define E_INAPPROPRIATE_SOURCE_CLASS 0x8004 /* */ |
| 61 | #define E_SUB_VECTOR_LENGTH_ERROR 0x8005 /* */ |
| 62 | #define E_TRANSMIT_FORWARD_INVALID 0x8006 /* def. by IBM */ |
| 63 | #define E_MISSING_SUB_VECTOR 0x8007 /* */ |
| 64 | #define E_SUB_VECTOR_UNKNOWN 0x8008 /* */ |
| 65 | #define E_MAC_HEADER_TOO_LONG 0x8009 /* */ |
| 66 | #define E_FUNCTION_DISABLED 0x800A /* not used */ |
| 67 | |
| 68 | #define A_FRAME_WAS_FORWARDED 0x8888 /* used by send_TX_FORWARD */ |
| 69 | |
| 70 | #define UPSTREAM_NEIGHBOR_ADDRESS 0x02 |
| 71 | #define LOCAL_RING_NUMBER 0x03 |
| 72 | #define ASSIGN_PHYSICAL_DROP 0x04 |
| 73 | #define ERROR_TIMER_VALUE 0x05 |
| 74 | #define AUTHORIZED_FUNCTION_CLASS 0x06 |
| 75 | #define AUTHORIZED_ACCESS_PRIORITY 0x07 |
| 76 | #define CORRELATOR 0x09 |
| 77 | #define PHYSICAL_DROP 0x0B |
| 78 | #define RESPONSE_CODE 0x20 |
| 79 | #define ADDRESS_MODIFER 0x21 |
| 80 | #define PRODUCT_INSTANCE_ID 0x22 |
| 81 | #define RING_STATION_VERSION_NUMBER 0x23 |
| 82 | #define WRAP_DATA 0x26 |
| 83 | #define FRAME_FORWARD 0x27 |
| 84 | #define STATION_IDENTIFER 0x28 |
| 85 | #define RING_STATION_STATUS 0x29 |
| 86 | #define TRANSMIT_STATUS_CODE 0x2A |
| 87 | #define GROUP_ADDRESS 0x2B |
| 88 | #define FUNCTIONAL_ADDRESS 0x2C |
| 89 | |
| 90 | #define F_NO_SUB_VECTORS_FOUND 0x0000 |
| 91 | #define F_UPSTREAM_NEIGHBOR_ADDRESS 0x0001 |
| 92 | #define F_LOCAL_RING_NUMBER 0x0002 |
| 93 | #define F_ASSIGN_PHYSICAL_DROP 0x0004 |
| 94 | #define F_ERROR_TIMER_VALUE 0x0008 |
| 95 | #define F_AUTHORIZED_FUNCTION_CLASS 0x0010 |
| 96 | #define F_AUTHORIZED_ACCESS_PRIORITY 0x0020 |
| 97 | #define F_CORRELATOR 0x0040 |
| 98 | #define F_PHYSICAL_DROP 0x0080 |
| 99 | #define F_RESPONSE_CODE 0x0100 |
| 100 | #define F_PRODUCT_INSTANCE_ID 0x0200 |
| 101 | #define F_RING_STATION_VERSION_NUMBER 0x0400 |
| 102 | #define F_STATION_IDENTIFER 0x0800 |
| 103 | #define F_RING_STATION_STATUS 0x1000 |
| 104 | #define F_GROUP_ADDRESS 0x2000 |
| 105 | #define F_FUNCTIONAL_ADDRESS 0x4000 |
| 106 | #define F_FRAME_FORWARD 0x8000 |
| 107 | |
| 108 | #define R_INIT 0x00 |
| 109 | #define R_RQ_ATTCH_STATE_ADDR 0x00 |
| 110 | #define R_CHG_PARM 0x00 |
| 111 | #define R_TX_FORWARD F_FRAME_FORWARD |
| 112 | |
| 113 | |
| 114 | #define UPSTREAM_NEIGHBOR_ADDRESS 0x02 |
| 115 | #define ADDRESS_MODIFER 0x21 |
| 116 | #define RING_STATION_VERSION_NUMBER 0x23 |
| 117 | #define PRODUCT_INSTANCE_ID 0x22 |
| 118 | |
| 119 | #define RPT_TX_FORWARD 0x2A |
| 120 | |
| 121 | #define AC_FC_INIT (3<<13) | 0 /* */ |
| 122 | #define AC_FC_RQ_INIT ((3<<13) | 0) /* */ |
| 123 | #define AC_FC_RQ_ATTCH (3<<13) | 0 /* DC = SC of rx frame */ |
| 124 | #define AC_FC_RQ_STATE (3<<13) | 0 /* DC = SC of rx frame */ |
| 125 | #define AC_FC_RQ_ADDR (3<<13) | 0 /* DC = SC of rx frame */ |
| 126 | #define AC_FC_CHG_PARM (3<<13) | 0 /* */ |
| 127 | #define AC_FC_RSP (0<<13) | 0 /* DC = SC of rx frame */ |
| 128 | #define AC_FC_RPT_ATTCH (0<<13) | 0 |
| 129 | |
| 130 | #define S_UPSTREAM_NEIGHBOR_ADDRESS 6 + 2 |
| 131 | #define S_LOCAL_RING_NUMBER 2 + 2 |
| 132 | #define S_ASSIGN_PHYSICAL_DROP 4 + 2 |
| 133 | #define S_ERROR_TIMER_VALUE 2 + 2 |
| 134 | #define S_AUTHORIZED_FUNCTION_CLASS 2 + 2 |
| 135 | #define S_AUTHORIZED_ACCESS_PRIORITY 2 + 2 |
| 136 | #define S_CORRELATOR 2 + 2 |
| 137 | #define S_PHYSICAL_DROP 4 + 2 |
| 138 | #define S_RESPONSE_CODE 4 + 2 |
| 139 | #define S_ADDRESS_MODIFER 2 + 2 |
| 140 | #define S_PRODUCT_INSTANCE_ID 18 + 2 |
| 141 | #define S_RING_STATION_VERSION_NUMBER 10 + 2 |
| 142 | #define S_STATION_IDENTIFER 6 + 2 |
| 143 | #define S_RING_STATION_STATUS 6 + 2 |
| 144 | #define S_GROUP_ADDRESS 4 + 2 |
| 145 | #define S_FUNCTIONAL_ADDRESS 4 + 2 |
| 146 | #define S_FRAME_FORWARD 252 + 2 |
| 147 | #define S_TRANSMIT_STATUS_CODE 2 + 2 |
| 148 | |
| 149 | #define ISB_IMC_RES0 0x0000 /* */ |
| 150 | #define ISB_IMC_MAC_TYPE_3 0x0001 /* MAC_ARC_INDICATE */ |
| 151 | #define ISB_IMC_MAC_ERROR_COUNTERS 0x0002 /* */ |
| 152 | #define ISB_IMC_RES1 0x0003 /* */ |
| 153 | #define ISB_IMC_MAC_TYPE_2 0x0004 /* QUE_MAC_INDICATE */ |
| 154 | #define ISB_IMC_TX_FRAME 0x0005 /* */ |
| 155 | #define ISB_IMC_END_OF_TX_QUEUE 0x0006 /* */ |
| 156 | #define ISB_IMC_NON_MAC_RX_RESOURCE 0x0007 /* */ |
| 157 | #define ISB_IMC_MAC_RX_RESOURCE 0x0008 /* */ |
| 158 | #define ISB_IMC_NON_MAC_RX_FRAME 0x0009 /* */ |
| 159 | #define ISB_IMC_MAC_RX_FRAME 0x000A /* */ |
| 160 | #define ISB_IMC_TRC_FIFO_STATUS 0x000B /* */ |
| 161 | #define ISB_IMC_COMMAND_STATUS 0x000C /* */ |
| 162 | #define ISB_IMC_MAC_TYPE_1 0x000D /* Self Removed */ |
| 163 | #define ISB_IMC_TRC_INTRNL_TST_STATUS 0x000E /* */ |
| 164 | #define ISB_IMC_RES2 0x000F /* */ |
| 165 | |
| 166 | #define NON_MAC_RX_RESOURCE_BW 0x10 /* shifted right 8 bits */ |
| 167 | #define NON_MAC_RX_RESOURCE_FW 0x20 /* shifted right 8 bits */ |
| 168 | #define NON_MAC_RX_RESOURCE_BE 0x40 /* shifted right 8 bits */ |
| 169 | #define NON_MAC_RX_RESOURCE_FE 0x80 /* shifted right 8 bits */ |
| 170 | #define RAW_NON_MAC_RX_RESOURCE_BW 0x1000 /* */ |
| 171 | #define RAW_NON_MAC_RX_RESOURCE_FW 0x2000 /* */ |
| 172 | #define RAW_NON_MAC_RX_RESOURCE_BE 0x4000 /* */ |
| 173 | #define RAW_NON_MAC_RX_RESOURCE_FE 0x8000 /* */ |
| 174 | |
| 175 | #define MAC_RX_RESOURCE_BW 0x10 /* shifted right 8 bits */ |
| 176 | #define MAC_RX_RESOURCE_FW 0x20 /* shifted right 8 bits */ |
| 177 | #define MAC_RX_RESOURCE_BE 0x40 /* shifted right 8 bits */ |
| 178 | #define MAC_RX_RESOURCE_FE 0x80 /* shifted right 8 bits */ |
| 179 | #define RAW_MAC_RX_RESOURCE_BW 0x1000 /* */ |
| 180 | #define RAW_MAC_RX_RESOURCE_FW 0x2000 /* */ |
| 181 | #define RAW_MAC_RX_RESOURCE_BE 0x4000 /* */ |
| 182 | #define RAW_MAC_RX_RESOURCE_FE 0x8000 /* */ |
| 183 | |
| 184 | #define TRC_FIFO_STATUS_TX_UNDERRUN 0x40 /* shifted right 8 bits */ |
| 185 | #define TRC_FIFO_STATUS_RX_OVERRUN 0x80 /* shifted right 8 bits */ |
| 186 | #define RAW_TRC_FIFO_STATUS_TX_UNDERRUN 0x4000 /* */ |
| 187 | #define RAW_TRC_FIFO_STATUS_RX_OVERRUN 0x8000 /* */ |
| 188 | |
| 189 | #define CSR_CLRTINT 0x08 |
| 190 | |
| 191 | #define MSB(X) ((__u8)((__u16) X >> 8)) |
| 192 | #define LSB(X) ((__u8)((__u16) X & 0xff)) |
| 193 | |
| 194 | #define AC_FC_LOBE_MEDIA_TEST ((3<<13) | 0) |
| 195 | #define S_WRAP_DATA 248 + 2 /* 500 + 2 */ |
| 196 | #define WRAP_DATA 0x26 |
| 197 | #define LOBE_MEDIA_TEST 0x08 |
| 198 | |
| 199 | /* Destination Class (dc) */ |
| 200 | |
| 201 | #define DC_MASK 0xF0 |
| 202 | #define DC_RS 0x00 |
| 203 | #define DC_CRS 0x40 |
| 204 | #define DC_RPS 0x50 |
| 205 | #define DC_REM 0x60 |
| 206 | |
| 207 | /* Source Classes (sc) */ |
| 208 | |
| 209 | #define SC_MASK 0x0F |
| 210 | #define SC_RS 0x00 |
| 211 | #define SC_CRS 0x04 |
| 212 | #define SC_RPS 0x05 |
| 213 | #define SC_REM 0x06 |
| 214 | |
| 215 | #define PR 0x11 |
| 216 | #define PR_PAGE_MASK 0x0C000 |
| 217 | |
| 218 | #define MICROCHANNEL 0x0008 |
| 219 | #define INTERFACE_CHIP 0x0010 |
| 220 | #define BOARD_16BIT 0x0040 |
| 221 | #define PAGED_RAM 0x0080 |
| 222 | #define WD8115TA (TOKEN_MEDIA | MICROCHANNEL | INTERFACE_CHIP | PAGED_RAM) |
| 223 | #define WD8115T (TOKEN_MEDIA | INTERFACE_CHIP | BOARD_16BIT | PAGED_RAM) |
| 224 | |
| 225 | #define BRD_ID_8316 0x50 |
| 226 | |
| 227 | #define r587_SER 0x001 |
| 228 | #define SER_DIN 0x80 |
| 229 | #define SER_DOUT 0x40 |
| 230 | #define SER_CLK 0x20 |
| 231 | #define SER_ECS 0x10 |
| 232 | #define SER_E806 0x08 |
| 233 | #define SER_PNP 0x04 |
| 234 | #define SER_BIO 0x02 |
| 235 | #define SER_16B 0x01 |
| 236 | |
| 237 | #define r587_IDR 0x004 |
| 238 | #define IDR_IRQ_MASK 0x0F0 |
| 239 | #define IDR_DCS_MASK 0x007 |
| 240 | #define IDR_RWS 0x008 |
| 241 | |
| 242 | |
| 243 | #define r587_BIO 0x003 |
| 244 | #define BIO_ENB 0x080 |
| 245 | #define BIO_MASK 0x03F |
| 246 | |
| 247 | #define r587_PCR 0x005 |
| 248 | #define PCR_RAMS 0x040 |
| 249 | |
| 250 | |
| 251 | |
| 252 | #define NUM_ADDR_BITS 8 |
| 253 | |
| 254 | #define ISA_MAX_ADDRESS 0x00ffffff |
| 255 | |
| 256 | #define SMCTR_MAX_ADAPTERS 7 |
| 257 | |
| 258 | #define MC_TABLE_ENTRIES 16 |
| 259 | |
| 260 | #define MAXFRAGMENTS 32 |
| 261 | |
| 262 | #define CHIP_REV_MASK 0x3000 |
| 263 | |
| 264 | #define MAX_TX_QS 8 |
| 265 | #define NUM_TX_QS_USED 3 |
| 266 | |
| 267 | #define MAX_RX_QS 2 |
| 268 | #define NUM_RX_QS_USED 2 |
| 269 | |
| 270 | #define INTEL_DATA_FORMAT 0x4000 |
| 271 | #define INTEL_ADDRESS_POINTER_FORMAT 0x8000 |
| 272 | #define PAGE_POINTER(X) ((((unsigned long)(X) - tp->ram_access) & tp->page_offset_mask) + tp->ram_access) |
| 273 | #define SWAP_WORDS(X) (((X & 0xFFFF) << 16) | (X >> 16)) |
| 274 | |
| 275 | #define INTERFACE_CHIP 0x0010 /* Soft Config Adapter */ |
| 276 | #define ADVANCED_FEATURES 0x0020 /* Adv. netw. interface features */ |
| 277 | #define BOARD_16BIT 0x0040 /* 16 bit capability */ |
| 278 | #define PAGED_RAM 0x0080 /* Adapter has paged RAM */ |
| 279 | |
| 280 | #define PAGED_ROM 0x0100 /* Adapter has paged ROM */ |
| 281 | |
| 282 | #define RAM_SIZE_UNKNOWN 0x0000 /* Unknown RAM size */ |
| 283 | #define RAM_SIZE_0K 0x0001 /* 0K RAM */ |
| 284 | #define RAM_SIZE_8K 0x0002 /* 8k RAM */ |
| 285 | #define RAM_SIZE_16K 0x0003 /* 16k RAM */ |
| 286 | #define RAM_SIZE_32K 0x0004 /* 32k RAM */ |
| 287 | #define RAM_SIZE_64K 0x0005 /* 64k RAM */ |
| 288 | #define RAM_SIZE_RESERVED_6 0x0006 /* Reserved RAM size */ |
| 289 | #define RAM_SIZE_RESERVED_7 0x0007 /* Reserved RAM size */ |
| 290 | #define RAM_SIZE_MASK 0x0007 /* Isolates RAM Size */ |
| 291 | |
| 292 | #define TOKEN_MEDIA 0x0005 |
| 293 | |
| 294 | #define BID_REG_0 0x00 |
| 295 | #define BID_REG_1 0x01 |
| 296 | #define BID_REG_2 0x02 |
| 297 | #define BID_REG_3 0x03 |
| 298 | #define BID_REG_4 0x04 |
| 299 | #define BID_REG_5 0x05 |
| 300 | #define BID_REG_6 0x06 |
| 301 | #define BID_REG_7 0x07 |
| 302 | #define BID_LAR_0 0x08 |
| 303 | #define BID_LAR_1 0x09 |
| 304 | #define BID_LAR_2 0x0A |
| 305 | #define BID_LAR_3 0x0B |
| 306 | #define BID_LAR_4 0x0C |
| 307 | #define BID_LAR_5 0x0D |
| 308 | |
| 309 | #define BID_BOARD_ID_BYTE 0x0E |
| 310 | #define BID_CHCKSM_BYTE 0x0F |
| 311 | #define BID_LAR_OFFSET 0x08 |
| 312 | |
| 313 | #define BID_MSZ_583_BIT 0x08 |
| 314 | #define BID_SIXTEEN_BIT_BIT 0x01 |
| 315 | |
| 316 | #define BID_BOARD_REV_MASK 0x1E |
| 317 | |
| 318 | #define BID_MEDIA_TYPE_BIT 0x01 |
| 319 | #define BID_SOFT_CONFIG_BIT 0x20 |
| 320 | #define BID_RAM_SIZE_BIT 0x40 |
| 321 | #define BID_BUS_TYPE_BIT 0x80 |
| 322 | |
| 323 | #define BID_CR 0x10 |
| 324 | |
| 325 | #define BID_TXP 0x04 /* Transmit Packet Command */ |
| 326 | |
| 327 | #define BID_TCR_DIFF 0x0D /* Transmit Configuration Register */ |
| 328 | |
| 329 | #define BID_TCR_VAL 0x18 /* Value to Test 8390 or 690 */ |
| 330 | #define BID_PS0 0x00 /* Register Page Select 0 */ |
| 331 | #define BID_PS1 0x40 /* Register Page Select 1 */ |
| 332 | #define BID_PS2 0x80 /* Register Page Select 2 */ |
| 333 | #define BID_PS_MASK 0x3F /* For Masking Off Page Select Bits */ |
| 334 | |
| 335 | #define BID_EEPROM_0 0x08 |
| 336 | #define BID_EEPROM_1 0x09 |
| 337 | #define BID_EEPROM_2 0x0A |
| 338 | #define BID_EEPROM_3 0x0B |
| 339 | #define BID_EEPROM_4 0x0C |
| 340 | #define BID_EEPROM_5 0x0D |
| 341 | #define BID_EEPROM_6 0x0E |
| 342 | #define BID_EEPROM_7 0x0F |
| 343 | |
| 344 | #define BID_OTHER_BIT 0x02 |
| 345 | #define BID_ICR_MASK 0x0C |
| 346 | #define BID_EAR_MASK 0x0F |
| 347 | #define BID_ENGR_PAGE 0x0A0 |
| 348 | #define BID_RLA 0x10 |
| 349 | #define BID_EA6 0x80 |
| 350 | #define BID_RECALL_DONE_MASK 0x10 |
| 351 | #define BID_BID_EEPROM_OVERRIDE 0xFFB0 |
| 352 | #define BID_EXTRA_EEPROM_OVERRIDE 0xFFD0 |
| 353 | #define BID_EEPROM_MEDIA_MASK 0x07 |
| 354 | #define BID_STARLAN_TYPE 0x00 |
| 355 | #define BID_ETHERNET_TYPE 0x01 |
| 356 | #define BID_TP_TYPE 0x02 |
| 357 | #define BID_EW_TYPE 0x03 |
| 358 | #define BID_TOKEN_RING_TYPE 0x04 |
| 359 | #define BID_UTP2_TYPE 0x05 |
| 360 | #define BID_EEPROM_IRQ_MASK 0x18 |
| 361 | #define BID_PRIMARY_IRQ 0x00 |
| 362 | #define BID_ALTERNATE_IRQ_1 0x08 |
| 363 | #define BID_ALTERNATE_IRQ_2 0x10 |
| 364 | #define BID_ALTERNATE_IRQ_3 0x18 |
| 365 | #define BID_EEPROM_RAM_SIZE_MASK 0xE0 |
| 366 | #define BID_EEPROM_RAM_SIZE_RES1 0x00 |
| 367 | #define BID_EEPROM_RAM_SIZE_RES2 0x20 |
| 368 | #define BID_EEPROM_RAM_SIZE_8K 0x40 |
| 369 | #define BID_EEPROM_RAM_SIZE_16K 0x60 |
| 370 | #define BID_EEPROM_RAM_SIZE_32K 0x80 |
| 371 | #define BID_EEPROM_RAM_SIZE_64K 0xA0 |
| 372 | #define BID_EEPROM_RAM_SIZE_RES3 0xC0 |
| 373 | #define BID_EEPROM_RAM_SIZE_RES4 0xE0 |
| 374 | #define BID_EEPROM_BUS_TYPE_MASK 0x07 |
| 375 | #define BID_EEPROM_BUS_TYPE_AT 0x00 |
| 376 | #define BID_EEPROM_BUS_TYPE_MCA 0x01 |
| 377 | #define BID_EEPROM_BUS_TYPE_EISA 0x02 |
| 378 | #define BID_EEPROM_BUS_TYPE_NEC 0x03 |
| 379 | #define BID_EEPROM_BUS_SIZE_MASK 0x18 |
| 380 | #define BID_EEPROM_BUS_SIZE_8BIT 0x00 |
| 381 | #define BID_EEPROM_BUS_SIZE_16BIT 0x08 |
| 382 | #define BID_EEPROM_BUS_SIZE_32BIT 0x10 |
| 383 | #define BID_EEPROM_BUS_SIZE_64BIT 0x18 |
| 384 | #define BID_EEPROM_BUS_MASTER 0x20 |
| 385 | #define BID_EEPROM_RAM_PAGING 0x40 |
| 386 | #define BID_EEPROM_ROM_PAGING 0x80 |
| 387 | #define BID_EEPROM_PAGING_MASK 0xC0 |
| 388 | #define BID_EEPROM_LOW_COST 0x08 |
| 389 | #define BID_EEPROM_IO_MAPPED 0x10 |
| 390 | #define BID_EEPROM_HMI 0x01 |
| 391 | #define BID_EEPROM_AUTO_MEDIA_DETECT 0x01 |
| 392 | #define BID_EEPROM_CHIP_REV_MASK 0x0C |
| 393 | |
| 394 | #define BID_EEPROM_LAN_ADDR 0x30 |
| 395 | |
| 396 | #define BID_EEPROM_MEDIA_OPTION 0x54 |
| 397 | #define BID_EEPROM_MEDIA_UTP 0x01 |
| 398 | #define BID_EEPROM_4MB_RING 0x08 |
| 399 | #define BID_EEPROM_16MB_RING 0x10 |
| 400 | #define BID_EEPROM_MEDIA_STP 0x40 |
| 401 | |
| 402 | #define BID_EEPROM_MISC_DATA 0x56 |
| 403 | #define BID_EEPROM_EARLY_TOKEN_RELEASE 0x02 |
| 404 | |
| 405 | #define CNFG_ID_8003E 0x6fc0 |
| 406 | #define CNFG_ID_8003S 0x6fc1 |
| 407 | #define CNFG_ID_8003W 0x6fc2 |
| 408 | #define CNFG_ID_8115TRA 0x6ec6 |
| 409 | #define CNFG_ID_8013E 0x61C8 |
| 410 | #define CNFG_ID_8013W 0x61C9 |
| 411 | #define CNFG_ID_BISTRO03E 0xEFE5 |
| 412 | #define CNFG_ID_BISTRO13E 0xEFD5 |
| 413 | #define CNFG_ID_BISTRO13W 0xEFD4 |
| 414 | #define CNFG_MSR_583 0x0 |
| 415 | #define CNFG_ICR_583 0x1 |
| 416 | #define CNFG_IAR_583 0x2 |
| 417 | #define CNFG_BIO_583 0x3 |
| 418 | #define CNFG_EAR_583 0x3 |
| 419 | #define CNFG_IRR_583 0x4 |
| 420 | #define CNFG_LAAR_584 0x5 |
| 421 | #define CNFG_GP2 0x7 |
| 422 | #define CNFG_LAAR_MASK 0x1F |
| 423 | #define CNFG_LAAR_ZWS 0x20 |
| 424 | #define CNFG_LAAR_L16E 0x40 |
| 425 | #define CNFG_ICR_IR2_584 0x04 |
| 426 | #define CNFG_ICR_MASK 0x08 |
| 427 | #define CNFG_ICR_MSZ 0x08 |
| 428 | #define CNFG_ICR_RLA 0x10 |
| 429 | #define CNFG_ICR_STO 0x80 |
| 430 | #define CNFG_IRR_IRQS 0x60 |
| 431 | #define CNFG_IRR_IEN 0x80 |
| 432 | #define CNFG_IRR_ZWS 0x01 |
| 433 | #define CNFG_GP2_BOOT_NIBBLE 0x0F |
| 434 | #define CNFG_IRR_OUT2 0x04 |
| 435 | #define CNFG_IRR_OUT1 0x02 |
| 436 | |
| 437 | #define CNFG_SIZE_8KB 8 |
| 438 | #define CNFG_SIZE_16KB 16 |
| 439 | #define CNFG_SIZE_32KB 32 |
| 440 | #define CNFG_SIZE_64KB 64 |
| 441 | #define CNFG_SIZE_128KB 128 |
| 442 | #define CNFG_SIZE_256KB 256 |
| 443 | #define ROM_DISABLE 0x0 |
| 444 | |
| 445 | #define CNFG_SLOT_ENABLE_BIT 0x08 |
| 446 | |
| 447 | #define CNFG_POS_CONTROL_REG 0x096 |
| 448 | #define CNFG_POS_REG0 0x100 |
| 449 | #define CNFG_POS_REG1 0x101 |
| 450 | #define CNFG_POS_REG2 0x102 |
| 451 | #define CNFG_POS_REG3 0x103 |
| 452 | #define CNFG_POS_REG4 0x104 |
| 453 | #define CNFG_POS_REG5 0x105 |
| 454 | |
| 455 | #define CNFG_ADAPTER_TYPE_MASK 0x0e |
| 456 | |
| 457 | #define SLOT_16BIT 0x0008 |
| 458 | #define INTERFACE_5X3_CHIP 0x0000 /* 0000 = 583 or 593 chips */ |
| 459 | #define NIC_690_BIT 0x0010 /* NIC is 690 */ |
| 460 | #define ALTERNATE_IRQ_BIT 0x0020 /* Alternate IRQ is used */ |
| 461 | #define INTERFACE_584_CHIP 0x0040 /* 0001 = 584 chip */ |
| 462 | #define INTERFACE_594_CHIP 0x0080 /* 0010 = 594 chip */ |
| 463 | #define INTERFACE_585_CHIP 0x0100 /* 0100 = 585/790 chip */ |
| 464 | #define INTERFACE_CHIP_MASK 0x03C0 /* Isolates Intfc Chip Type */ |
| 465 | |
| 466 | #define BOARD_16BIT 0x0040 |
| 467 | #define NODE_ADDR_CKSUM 0xEE |
| 468 | #define BRD_ID_8115T 0x04 |
| 469 | |
| 470 | #define NIC_825_BIT 0x0400 /* TRC 83C825 NIC */ |
| 471 | #define NIC_790_BIT 0x0800 /* NIC is 83C790 Ethernet */ |
| 472 | |
| 473 | #define CHIP_REV_MASK 0x3000 |
| 474 | |
| 475 | #define HWR_CBUSY 0x02 |
| 476 | #define HWR_CA 0x01 |
| 477 | |
| 478 | #define MAC_QUEUE 0 |
| 479 | #define NON_MAC_QUEUE 1 |
| 480 | #define BUG_QUEUE 2 /* NO RECEIVE QUEUE, ONLY TX */ |
| 481 | |
| 482 | #define NUM_MAC_TX_FCBS 8 |
| 483 | #define NUM_MAC_TX_BDBS NUM_MAC_TX_FCBS |
| 484 | #define NUM_MAC_RX_FCBS 7 |
| 485 | #define NUM_MAC_RX_BDBS 8 |
| 486 | |
| 487 | #define NUM_NON_MAC_TX_FCBS 6 |
| 488 | #define NUM_NON_MAC_TX_BDBS NUM_NON_MAC_TX_FCBS |
| 489 | |
| 490 | #define NUM_NON_MAC_RX_BDBS 0 /* CALCULATED DYNAMICALLY */ |
| 491 | |
| 492 | #define NUM_BUG_TX_FCBS 8 |
| 493 | #define NUM_BUG_TX_BDBS NUM_BUG_TX_FCBS |
| 494 | |
| 495 | #define MAC_TX_BUFFER_MEMORY 1024 |
| 496 | #define NON_MAC_TX_BUFFER_MEMORY (20 * 1024) |
| 497 | #define BUG_TX_BUFFER_MEMORY (NUM_BUG_TX_FCBS * 32) |
| 498 | |
| 499 | #define RX_BUFFER_MEMORY 0 /* CALCULATED DYNAMICALLY */ |
| 500 | #define RX_DATA_BUFFER_SIZE 256 |
| 501 | #define RX_BDB_SIZE_SHIFT 3 /* log2(RX_DATA_BUFFER_SIZE)-log2(sizeof(BDBlock)) */ |
| 502 | #define RX_BDB_SIZE_MASK (sizeof(BDBlock) - 1) |
| 503 | #define RX_DATA_BUFFER_SIZE_MASK (RX_DATA_BUFFER_SIZE-1) |
| 504 | |
| 505 | #define NUM_OF_INTERRUPTS 0x20 |
| 506 | |
| 507 | #define NOT_TRANSMITING 0 |
| 508 | #define TRANSMITING 1 |
| 509 | |
| 510 | #define TRC_INTERRUPT_ENABLE_MASK 0x7FF6 |
| 511 | |
| 512 | #define UCODE_VERSION 0x58 |
| 513 | |
| 514 | #define UCODE_SIZE_OFFSET 0x0000 /* WORD */ |
| 515 | #define UCODE_CHECKSUM_OFFSET 0x0002 /* WORD */ |
| 516 | #define UCODE_VERSION_OFFSET 0x0004 /* BYTE */ |
| 517 | |
| 518 | #define CS_RAM_SIZE 0X2000 |
| 519 | #define CS_RAM_CHECKSUM_OFFSET 0x1FFE /* WORD 1FFE(MSB)-1FFF(LSB)*/ |
| 520 | #define CS_RAM_VERSION_OFFSET 0x1FFC /* WORD 1FFC(MSB)-1FFD(LSB)*/ |
| 521 | |
| 522 | #define MISC_DATA_SIZE 128 |
| 523 | #define NUM_OF_ACBS 1 |
| 524 | |
| 525 | #define ACB_COMMAND_NOT_DONE 0x0000 /* Init, command not done */ |
| 526 | #define ACB_COMMAND_DONE 0x8000 /* TRC says command done */ |
| 527 | #define ACB_COMMAND_STATUS_MASK 0x00FF /* low byte is status */ |
| 528 | #define ACB_COMMAND_SUCCESSFUL 0x0000 /* means cmd was successful */ |
| 529 | #define ACB_NOT_CHAIN_END 0x0000 /* tell TRC more CBs in chain */ |
| 530 | #define ACB_CHAIN_END 0x8000 /* tell TRC last CB in chain */ |
| 531 | #define ACB_COMMAND_NO_INTERRUPT 0x0000 /* tell TRC no INT after CB */ |
| 532 | #define ACB_COMMAND_INTERRUPT 0x2000 /* tell TRC to INT after CB */ |
| 533 | #define ACB_SUB_CMD_NOP 0x0000 |
| 534 | #define ACB_CMD_HIC_NOP 0x0080 |
| 535 | #define ACB_CMD_MCT_NOP 0x0000 |
| 536 | #define ACB_CMD_MCT_TEST 0x0001 |
| 537 | #define ACB_CMD_HIC_TEST 0x0081 |
| 538 | #define ACB_CMD_INSERT 0x0002 |
| 539 | #define ACB_CMD_REMOVE 0x0003 |
| 540 | #define ACB_CMD_MCT_WRITE_VALUE 0x0004 |
| 541 | #define ACB_CMD_HIC_WRITE_VALUE 0x0084 |
| 542 | #define ACB_CMD_MCT_READ_VALUE 0x0005 |
| 543 | #define ACB_CMD_HIC_READ_VALUE 0x0085 |
| 544 | #define ACB_CMD_INIT_TX_RX 0x0086 |
| 545 | #define ACB_CMD_INIT_TRC_TIMERS 0x0006 |
| 546 | #define ACB_CMD_READ_TRC_STATUS 0x0007 |
| 547 | #define ACB_CMD_CHANGE_JOIN_STATE 0x0008 |
| 548 | #define ACB_CMD_RESERVED_9 0x0009 |
| 549 | #define ACB_CMD_RESERVED_A 0x000A |
| 550 | #define ACB_CMD_RESERVED_B 0x000B |
| 551 | #define ACB_CMD_RESERVED_C 0x000C |
| 552 | #define ACB_CMD_RESERVED_D 0x000D |
| 553 | #define ACB_CMD_RESERVED_E 0x000E |
| 554 | #define ACB_CMD_RESERVED_F 0x000F |
| 555 | |
| 556 | #define TRC_MAC_REGISTERS_TEST 0x0000 |
| 557 | #define TRC_INTERNAL_LOOPBACK 0x0001 |
| 558 | #define TRC_TRI_LOOPBACK 0x0002 |
| 559 | #define TRC_INTERNAL_ROM_TEST 0x0003 |
| 560 | #define TRC_LOBE_MEDIA_TEST 0x0004 |
| 561 | #define TRC_ANALOG_TEST 0x0005 |
| 562 | #define TRC_HOST_INTERFACE_REG_TEST 0x0003 |
| 563 | |
| 564 | #define TEST_DMA_1 0x0000 |
| 565 | #define TEST_DMA_2 0x0001 |
| 566 | #define TEST_MCT_ROM 0x0002 |
| 567 | #define HIC_INTERNAL_DIAG 0x0003 |
| 568 | |
| 569 | #define ABORT_TRANSMIT_PRIORITY_0 0x0001 |
| 570 | #define ABORT_TRANSMIT_PRIORITY_1 0x0002 |
| 571 | #define ABORT_TRANSMIT_PRIORITY_2 0x0004 |
| 572 | #define ABORT_TRANSMIT_PRIORITY_3 0x0008 |
| 573 | #define ABORT_TRANSMIT_PRIORITY_4 0x0010 |
| 574 | #define ABORT_TRANSMIT_PRIORITY_5 0x0020 |
| 575 | #define ABORT_TRANSMIT_PRIORITY_6 0x0040 |
| 576 | #define ABORT_TRANSMIT_PRIORITY_7 0x0080 |
| 577 | |
| 578 | #define TX_PENDING_PRIORITY_0 0x0001 |
| 579 | #define TX_PENDING_PRIORITY_1 0x0002 |
| 580 | #define TX_PENDING_PRIORITY_2 0x0004 |
| 581 | #define TX_PENDING_PRIORITY_3 0x0008 |
| 582 | #define TX_PENDING_PRIORITY_4 0x0010 |
| 583 | #define TX_PENDING_PRIORITY_5 0x0020 |
| 584 | #define TX_PENDING_PRIORITY_6 0x0040 |
| 585 | #define TX_PENDING_PRIORITY_7 0x0080 |
| 586 | |
| 587 | #define FCB_FRAME_LENGTH 0x100 |
| 588 | #define FCB_COMMAND_DONE 0x8000 /* FCB Word 0 */ |
| 589 | #define FCB_NOT_CHAIN_END 0x0000 /* FCB Word 1 */ |
| 590 | #define FCB_CHAIN_END 0x8000 |
| 591 | #define FCB_NO_WARNING 0x0000 |
| 592 | #define FCB_WARNING 0x4000 |
| 593 | #define FCB_INTERRUPT_DISABLE 0x0000 |
| 594 | #define FCB_INTERRUPT_ENABLE 0x2000 |
| 595 | |
| 596 | #define FCB_ENABLE_IMA 0x0008 |
| 597 | #define FCB_ENABLE_TES 0x0004 /* Guarantee Tx before Int */ |
| 598 | #define FCB_ENABLE_TFS 0x0002 /* Post Tx Frame Status */ |
| 599 | #define FCB_ENABLE_NTC 0x0001 /* No Tx CRC */ |
| 600 | |
| 601 | #define FCB_TX_STATUS_CR2 0x0004 |
| 602 | #define FCB_TX_STATUS_AR2 0x0008 |
| 603 | #define FCB_TX_STATUS_CR1 0x0040 |
| 604 | #define FCB_TX_STATUS_AR1 0x0080 |
| 605 | #define FCB_TX_AC_BITS (FCB_TX_STATUS_AR1+FCB_TX_STATUS_AR2+FCB_TX_STATUS_CR1+FCB_TX_STATUS_CR2) |
| 606 | #define FCB_TX_STATUS_E 0x0100 |
| 607 | |
| 608 | #define FCB_RX_STATUS_ANY_ERROR 0x0001 |
| 609 | #define FCB_RX_STATUS_FCS_ERROR 0x0002 |
| 610 | |
| 611 | #define FCB_RX_STATUS_IA_MATCHED 0x0400 |
| 612 | #define FCB_RX_STATUS_IGA_BSGA_MATCHED 0x0500 |
| 613 | #define FCB_RX_STATUS_FA_MATCHED 0x0600 |
| 614 | #define FCB_RX_STATUS_BA_MATCHED 0x0700 |
| 615 | #define FCB_RX_STATUS_DA_MATCHED 0x0400 |
| 616 | #define FCB_RX_STATUS_SOURCE_ROUTING 0x0800 |
| 617 | |
| 618 | #define BDB_BUFFER_SIZE 0x100 |
| 619 | #define BDB_NOT_CHAIN_END 0x0000 |
| 620 | #define BDB_CHAIN_END 0x8000 |
| 621 | #define BDB_NO_WARNING 0x0000 |
| 622 | #define BDB_WARNING 0x4000 |
| 623 | |
| 624 | #define ERROR_COUNTERS_CHANGED 0x0001 |
| 625 | #define TI_NDIS_RING_STATUS_CHANGED 0x0002 |
| 626 | #define UNA_CHANGED 0x0004 |
| 627 | #define READY_TO_SEND_RQ_INIT 0x0008 |
| 628 | |
| 629 | #define SCGB_ADDRESS_POINTER_FORMAT INTEL_ADDRESS_POINTER_FORMAT |
| 630 | #define SCGB_DATA_FORMAT INTEL_DATA_FORMAT |
| 631 | #define SCGB_MULTI_WORD_CONTROL 0 |
| 632 | #define SCGB_BURST_LENGTH 0x000E /* DMA Burst Length */ |
| 633 | |
| 634 | #define SCGB_CONFIG (INTEL_ADDRESS_POINTER_FORMAT+INTEL_DATA_FORMAT+SCGB_BURST_LENGTH) |
| 635 | |
| 636 | #define ISCP_BLOCK_SIZE 0x0A |
| 637 | #define RAM_SIZE 0x10000 |
| 638 | #define INIT_SYS_CONFIG_PTR_OFFSET (RAM_SIZE-ISCP_BLOCK_SIZE) |
| 639 | #define SCGP_BLOCK_OFFSET 0 |
| 640 | |
| 641 | #define SCLB_NOT_VALID 0x0000 /* Initially, SCLB not valid */ |
| 642 | #define SCLB_VALID 0x8000 /* Host tells TRC SCLB valid */ |
| 643 | #define SCLB_PROCESSED 0x0000 /* TRC says SCLB processed */ |
| 644 | #define SCLB_RESUME_CONTROL_NOT_VALID 0x0000 /* Initially, RC not valid */ |
| 645 | #define SCLB_RESUME_CONTROL_VALID 0x4000 /* Host tells TRC RC valid */ |
| 646 | #define SCLB_IACK_CODE_NOT_VALID 0x0000 /* Initially, IACK not valid */ |
| 647 | #define SCLB_IACK_CODE_VALID 0x2000 /* Host tells TRC IACK valid */ |
| 648 | #define SCLB_CMD_NOP 0x0000 |
| 649 | #define SCLB_CMD_REMOVE 0x0001 |
| 650 | #define SCLB_CMD_SUSPEND_ACB_CHAIN 0x0002 |
| 651 | #define SCLB_CMD_SET_INTERRUPT_MASK 0x0003 |
| 652 | #define SCLB_CMD_CLEAR_INTERRUPT_MASK 0x0004 |
| 653 | #define SCLB_CMD_RESERVED_5 0x0005 |
| 654 | #define SCLB_CMD_RESERVED_6 0x0006 |
| 655 | #define SCLB_CMD_RESERVED_7 0x0007 |
| 656 | #define SCLB_CMD_RESERVED_8 0x0008 |
| 657 | #define SCLB_CMD_RESERVED_9 0x0009 |
| 658 | #define SCLB_CMD_RESERVED_A 0x000A |
| 659 | #define SCLB_CMD_RESERVED_B 0x000B |
| 660 | #define SCLB_CMD_RESERVED_C 0x000C |
| 661 | #define SCLB_CMD_RESERVED_D 0x000D |
| 662 | #define SCLB_CMD_RESERVED_E 0x000E |
| 663 | #define SCLB_CMD_RESERVED_F 0x000F |
| 664 | |
| 665 | #define SCLB_RC_ACB 0x0001 /* Action Command Block Chain */ |
| 666 | #define SCLB_RC_RES0 0x0002 /* Always Zero */ |
| 667 | #define SCLB_RC_RES1 0x0004 /* Always Zero */ |
| 668 | #define SCLB_RC_RES2 0x0008 /* Always Zero */ |
| 669 | #define SCLB_RC_RX_MAC_FCB 0x0010 /* RX_MAC_FCB Chain */ |
| 670 | #define SCLB_RC_RX_MAC_BDB 0x0020 /* RX_MAC_BDB Chain */ |
| 671 | #define SCLB_RC_RX_NON_MAC_FCB 0x0040 /* RX_NON_MAC_FCB Chain */ |
| 672 | #define SCLB_RC_RX_NON_MAC_BDB 0x0080 /* RX_NON_MAC_BDB Chain */ |
| 673 | #define SCLB_RC_TFCB0 0x0100 /* TX Priority 0 FCB Chain */ |
| 674 | #define SCLB_RC_TFCB1 0x0200 /* TX Priority 1 FCB Chain */ |
| 675 | #define SCLB_RC_TFCB2 0x0400 /* TX Priority 2 FCB Chain */ |
| 676 | #define SCLB_RC_TFCB3 0x0800 /* TX Priority 3 FCB Chain */ |
| 677 | #define SCLB_RC_TFCB4 0x1000 /* TX Priority 4 FCB Chain */ |
| 678 | #define SCLB_RC_TFCB5 0x2000 /* TX Priority 5 FCB Chain */ |
| 679 | #define SCLB_RC_TFCB6 0x4000 /* TX Priority 6 FCB Chain */ |
| 680 | #define SCLB_RC_TFCB7 0x8000 /* TX Priority 7 FCB Chain */ |
| 681 | |
| 682 | #define SCLB_IMC_RES0 0x0001 /* */ |
| 683 | #define SCLB_IMC_MAC_TYPE_3 0x0002 /* MAC_ARC_INDICATE */ |
| 684 | #define SCLB_IMC_MAC_ERROR_COUNTERS 0x0004 /* */ |
| 685 | #define SCLB_IMC_RES1 0x0008 /* */ |
| 686 | #define SCLB_IMC_MAC_TYPE_2 0x0010 /* QUE_MAC_INDICATE */ |
| 687 | #define SCLB_IMC_TX_FRAME 0x0020 /* */ |
| 688 | #define SCLB_IMC_END_OF_TX_QUEUE 0x0040 /* */ |
| 689 | #define SCLB_IMC_NON_MAC_RX_RESOURCE 0x0080 /* */ |
| 690 | #define SCLB_IMC_MAC_RX_RESOURCE 0x0100 /* */ |
| 691 | #define SCLB_IMC_NON_MAC_RX_FRAME 0x0200 /* */ |
| 692 | #define SCLB_IMC_MAC_RX_FRAME 0x0400 /* */ |
| 693 | #define SCLB_IMC_TRC_FIFO_STATUS 0x0800 /* */ |
| 694 | #define SCLB_IMC_COMMAND_STATUS 0x1000 /* */ |
| 695 | #define SCLB_IMC_MAC_TYPE_1 0x2000 /* Self Removed */ |
| 696 | #define SCLB_IMC_TRC_INTRNL_TST_STATUS 0x4000 /* */ |
| 697 | #define SCLB_IMC_RES2 0x8000 /* */ |
| 698 | |
| 699 | #define DMA_TRIGGER 0x0004 |
| 700 | #define FREQ_16MB_BIT 0x0010 |
| 701 | #define THDREN 0x0020 |
| 702 | #define CFG0_RSV1 0x0040 |
| 703 | #define CFG0_RSV2 0x0080 |
| 704 | #define ETREN 0x0100 |
| 705 | #define RX_OWN_BIT 0x0200 |
| 706 | #define RXATMAC 0x0400 |
| 707 | #define PROMISCUOUS_BIT 0x0800 |
| 708 | #define USETPT 0x1000 |
| 709 | #define SAVBAD_BIT 0x2000 |
| 710 | #define ONEQUE 0x4000 |
| 711 | #define NO_AUTOREMOVE 0x8000 |
| 712 | |
| 713 | #define RX_FCB_AREA_8316 0x00000000 |
| 714 | #define RX_BUFF_AREA_8316 0x00000000 |
| 715 | |
| 716 | #define TRC_POINTER(X) ((unsigned long)(X) - tp->ram_access) |
| 717 | #define RX_FCB_TRC_POINTER(X) ((unsigned long)(X) - tp->ram_access + RX_FCB_AREA_8316) |
| 718 | #define RX_BUFF_TRC_POINTER(X) ((unsigned long)(X) - tp->ram_access + RX_BUFF_AREA_8316) |
| 719 | |
| 720 | // Offset 0: MSR - Memory Select Register |
| 721 | // |
| 722 | #define r587_MSR 0x000 // Register Offset |
| 723 | //#define MSR_RST 0x080 // LAN Controller Reset |
| 724 | #define MSR_MENB 0x040 // Shared Memory Enable |
| 725 | #define MSR_RA18 0x020 // Ram Address bit 18 (583, 584, 587) |
| 726 | #define MSR_RA17 0x010 // Ram Address bit 17 (583, 584, 585/790) |
| 727 | #define MSR_RA16 0x008 // Ram Address bit 16 (583, 584, 585/790) |
| 728 | #define MSR_RA15 0x004 // Ram Address bit 15 (583, 584, 585/790) |
| 729 | #define MSR_RA14 0x002 // Ram Address bit 14 (583, 584, 585/790) |
| 730 | #define MSR_RA13 0x001 // Ram Address bit 13 (583, 584, 585/790) |
| 731 | |
| 732 | #define MSR_MASK 0x03F // Mask for Address bits RA18-RA13 (583, 584, 587) |
| 733 | |
| 734 | #define MSR 0x00 |
| 735 | #define IRR 0x04 |
| 736 | #define HWR 0x04 |
| 737 | #define LAAR 0x05 |
| 738 | #define IMCCR 0x05 |
| 739 | #define LAR0 0x08 |
| 740 | #define BDID 0x0E // Adapter ID byte register offset |
| 741 | #define CSR 0x10 |
| 742 | #define PR 0x11 |
| 743 | |
| 744 | #define MSR_RST 0x80 |
| 745 | #define MSR_MEMB 0x40 |
| 746 | #define MSR_0WS 0x20 |
| 747 | |
| 748 | #define FORCED_16BIT_MODE 0x0002 |
| 749 | |
| 750 | #define INTERFRAME_SPACING_16 0x0003 /* 6 bytes */ |
| 751 | #define INTERFRAME_SPACING_4 0x0001 /* 2 bytes */ |
| 752 | #define MULTICAST_ADDRESS_BIT 0x0010 |
| 753 | #define NON_SRC_ROUTING_BIT 0x0020 |
| 754 | |
| 755 | #define LOOPING_MODE_MASK 0x0007 |
| 756 | |
| 757 | /* |
| 758 | * Decode firmware defines. |
| 759 | */ |
| 760 | #define SWAP_BYTES(X) ((X & 0xff) << 8) | (X >> 8) |
| 761 | #define WEIGHT_OFFSET 5 |
| 762 | #define TREE_SIZE_OFFSET 9 |
| 763 | #define TREE_OFFSET 11 |
| 764 | |
| 765 | /* The Huffman Encoding Tree is constructed of these nodes. */ |
| 766 | typedef struct { |
| 767 | __u8 llink; /* Short version of above node. */ |
| 768 | __u8 tag; |
| 769 | __u8 info; /* This node is used on decodes. */ |
| 770 | __u8 rlink; |
| 771 | } DECODE_TREE_NODE; |
| 772 | |
| 773 | #define ROOT 0 /* Branch value. */ |
| 774 | #define LEAF 0 /* Tag field value. */ |
| 775 | #define BRANCH 1 /* Tag field value. */ |
| 776 | |
| 777 | /* |
| 778 | * Multicast Table Structure |
| 779 | */ |
| 780 | typedef struct { |
| 781 | __u8 address[6]; |
| 782 | __u8 instance_count; |
| 783 | } McTable; |
| 784 | |
| 785 | /* |
| 786 | * Fragment Descriptor Definition |
| 787 | */ |
| 788 | typedef struct { |
| 789 | __u8 *fragment_ptr; |
| 790 | __u32 fragment_length; |
| 791 | } FragmentStructure; |
| 792 | |
| 793 | /* |
| 794 | * Data Buffer Structure Definition |
| 795 | */ |
| 796 | typedef struct { |
| 797 | __u32 fragment_count; |
| 798 | FragmentStructure fragment_list[MAXFRAGMENTS]; |
| 799 | } DataBufferStructure; |
| 800 | |
| 801 | #pragma pack(1) |
| 802 | typedef struct { |
| 803 | __u8 IType; |
| 804 | __u8 ISubtype; |
| 805 | } Interrupt_Status_Word; |
| 806 | |
| 807 | #pragma pack(1) |
| 808 | typedef struct BDBlockType { |
| 809 | __u16 info; /* 02 */ |
| 810 | __u32 trc_next_ptr; /* 06 */ |
| 811 | __u32 trc_data_block_ptr; /* 10 */ |
| 812 | __u16 buffer_length; /* 12 */ |
| 813 | |
| 814 | __u16 *data_block_ptr; /* 16 */ |
| 815 | struct BDBlockType *next_ptr; /* 20 */ |
| 816 | struct BDBlockType *back_ptr; /* 24 */ |
| 817 | __u8 filler[8]; /* 32 */ |
| 818 | } BDBlock; |
| 819 | |
| 820 | #pragma pack(1) |
| 821 | typedef struct FCBlockType { |
| 822 | __u16 frame_status; /* 02 */ |
| 823 | __u16 info; /* 04 */ |
| 824 | __u32 trc_next_ptr; /* 08 */ |
| 825 | __u32 trc_bdb_ptr; /* 12 */ |
| 826 | __u16 frame_length; /* 14 */ |
| 827 | |
| 828 | BDBlock *bdb_ptr; /* 18 */ |
| 829 | struct FCBlockType *next_ptr; /* 22 */ |
| 830 | struct FCBlockType *back_ptr; /* 26 */ |
| 831 | __u16 memory_alloc; /* 28 */ |
| 832 | __u8 filler[4]; /* 32 */ |
| 833 | |
| 834 | } FCBlock; |
| 835 | |
| 836 | #pragma pack(1) |
| 837 | typedef struct SBlockType{ |
| 838 | __u8 Internal_Error_Count; |
| 839 | __u8 Line_Error_Count; |
| 840 | __u8 AC_Error_Count; |
| 841 | __u8 Burst_Error_Count; |
| 842 | __u8 RESERVED_COUNTER_0; |
| 843 | __u8 AD_TRANS_Count; |
| 844 | __u8 RCV_Congestion_Count; |
| 845 | __u8 Lost_FR_Error_Count; |
| 846 | __u8 FREQ_Error_Count; |
| 847 | __u8 FR_Copied_Error_Count; |
| 848 | __u8 RESERVED_COUNTER_1; |
| 849 | __u8 Token_Error_Count; |
| 850 | |
| 851 | __u16 TI_NDIS_Ring_Status; |
| 852 | __u16 BCN_Type; |
| 853 | __u16 Error_Code; |
| 854 | __u16 SA_of_Last_AMP_SMP[3]; |
| 855 | __u16 UNA[3]; |
| 856 | __u16 Ucode_Version_Number; |
| 857 | __u16 Status_CHG_Indicate; |
| 858 | __u16 RESERVED_STATUS_0; |
| 859 | } SBlock; |
| 860 | |
| 861 | #pragma pack(1) |
| 862 | typedef struct ACBlockType { |
| 863 | __u16 cmd_done_status; /* 02 */ |
| 864 | __u16 cmd_info; /* 04 */ |
| 865 | __u32 trc_next_ptr; /* 08 */ |
| 866 | __u16 cmd; /* 10 */ |
| 867 | __u16 subcmd; /* 12 */ |
| 868 | __u16 data_offset_lo; /* 14 */ |
| 869 | __u16 data_offset_hi; /* 16 */ |
| 870 | |
| 871 | struct ACBlockType *next_ptr; /* 20 */ |
| 872 | |
| 873 | __u8 filler[12]; /* 32 */ |
| 874 | } ACBlock; |
| 875 | |
| 876 | #define NUM_OF_INTERRUPTS 0x20 |
| 877 | |
| 878 | #pragma pack(1) |
| 879 | typedef struct { |
| 880 | Interrupt_Status_Word IStatus[NUM_OF_INTERRUPTS]; |
| 881 | } ISBlock; |
| 882 | |
| 883 | #pragma pack(1) |
| 884 | typedef struct { |
| 885 | __u16 valid_command; /* 02 */ |
| 886 | __u16 iack_code; /* 04 */ |
| 887 | __u16 resume_control; /* 06 */ |
| 888 | __u16 int_mask_control; /* 08 */ |
| 889 | __u16 int_mask_state; /* 10 */ |
| 890 | |
| 891 | __u8 filler[6]; /* 16 */ |
| 892 | } SCLBlock; |
| 893 | |
| 894 | #pragma pack(1) |
| 895 | typedef struct |
| 896 | { |
| 897 | __u16 config; /* 02 */ |
| 898 | __u32 trc_sclb_ptr; /* 06 */ |
| 899 | __u32 trc_acb_ptr; /* 10 */ |
| 900 | __u32 trc_isb_ptr; /* 14 */ |
| 901 | __u16 isbsiz; /* 16 */ |
| 902 | |
| 903 | SCLBlock *sclb_ptr; /* 20 */ |
| 904 | ACBlock *acb_ptr; /* 24 */ |
| 905 | ISBlock *isb_ptr; /* 28 */ |
| 906 | |
| 907 | __u16 Non_Mac_Rx_Bdbs; /* 30 DEBUG */ |
| 908 | __u8 filler[2]; /* 32 */ |
| 909 | |
| 910 | } SCGBlock; |
| 911 | |
| 912 | #pragma pack(1) |
| 913 | typedef struct |
| 914 | { |
| 915 | __u32 trc_scgb_ptr; |
| 916 | SCGBlock *scgb_ptr; |
| 917 | } ISCPBlock; |
| 918 | #pragma pack() |
| 919 | |
| 920 | typedef struct net_local { |
| 921 | ISCPBlock *iscpb_ptr; |
| 922 | SCGBlock *scgb_ptr; |
| 923 | SCLBlock *sclb_ptr; |
| 924 | ISBlock *isb_ptr; |
| 925 | |
| 926 | ACBlock *acb_head; |
| 927 | ACBlock *acb_curr; |
| 928 | ACBlock *acb_next; |
| 929 | |
| 930 | __u8 adapter_name[12]; |
| 931 | |
| 932 | __u16 num_rx_bdbs [NUM_RX_QS_USED]; |
| 933 | __u16 num_rx_fcbs [NUM_RX_QS_USED]; |
| 934 | |
| 935 | __u16 num_tx_bdbs [NUM_TX_QS_USED]; |
| 936 | __u16 num_tx_fcbs [NUM_TX_QS_USED]; |
| 937 | |
| 938 | __u16 num_of_tx_buffs; |
| 939 | |
| 940 | __u16 tx_buff_size [NUM_TX_QS_USED]; |
| 941 | __u16 tx_buff_used [NUM_TX_QS_USED]; |
| 942 | __u16 tx_queue_status [NUM_TX_QS_USED]; |
| 943 | |
| 944 | FCBlock *tx_fcb_head[NUM_TX_QS_USED]; |
| 945 | FCBlock *tx_fcb_curr[NUM_TX_QS_USED]; |
| 946 | FCBlock *tx_fcb_end[NUM_TX_QS_USED]; |
| 947 | BDBlock *tx_bdb_head[NUM_TX_QS_USED]; |
| 948 | __u16 *tx_buff_head[NUM_TX_QS_USED]; |
| 949 | __u16 *tx_buff_end[NUM_TX_QS_USED]; |
| 950 | __u16 *tx_buff_curr[NUM_TX_QS_USED]; |
| 951 | __u16 num_tx_fcbs_used[NUM_TX_QS_USED]; |
| 952 | |
| 953 | FCBlock *rx_fcb_head[NUM_RX_QS_USED]; |
| 954 | FCBlock *rx_fcb_curr[NUM_RX_QS_USED]; |
| 955 | BDBlock *rx_bdb_head[NUM_RX_QS_USED]; |
| 956 | BDBlock *rx_bdb_curr[NUM_RX_QS_USED]; |
| 957 | BDBlock *rx_bdb_end[NUM_RX_QS_USED]; |
| 958 | __u16 *rx_buff_head[NUM_RX_QS_USED]; |
| 959 | __u16 *rx_buff_end[NUM_RX_QS_USED]; |
| 960 | |
| 961 | __u32 *ptr_local_ring_num; |
| 962 | |
| 963 | __u32 sh_mem_used; |
| 964 | |
| 965 | __u16 page_offset_mask; |
| 966 | |
| 967 | __u16 authorized_function_classes; |
| 968 | __u16 authorized_access_priority; |
| 969 | |
| 970 | __u16 num_acbs; |
| 971 | __u16 num_acbs_used; |
| 972 | __u16 acb_pending; |
| 973 | |
| 974 | __u16 current_isb_index; |
| 975 | |
| 976 | __u8 monitor_state; |
| 977 | __u8 monitor_state_ready; |
| 978 | __u16 ring_status; |
| 979 | __u8 ring_status_flags; |
| 980 | __u8 current_ring_status; |
| 981 | __u8 state; |
| 982 | |
| 983 | __u8 join_state; |
| 984 | |
| 985 | __u8 slot_num; |
| 986 | __u16 pos_id; |
| 987 | |
| 988 | __u32 *ptr_una; |
| 989 | __u32 *ptr_bcn_type; |
| 990 | __u32 *ptr_tx_fifo_underruns; |
| 991 | __u32 *ptr_rx_fifo_underruns; |
| 992 | __u32 *ptr_rx_fifo_overruns; |
| 993 | __u32 *ptr_tx_fifo_overruns; |
| 994 | __u32 *ptr_tx_fcb_overruns; |
| 995 | __u32 *ptr_rx_fcb_overruns; |
| 996 | __u32 *ptr_tx_bdb_overruns; |
| 997 | __u32 *ptr_rx_bdb_overruns; |
| 998 | |
| 999 | __u16 receive_queue_number; |
| 1000 | |
| 1001 | __u8 rx_fifo_overrun_count; |
| 1002 | __u8 tx_fifo_overrun_count; |
| 1003 | |
| 1004 | __u16 adapter_flags; |
| 1005 | __u16 adapter_flags1; |
| 1006 | __u16 *misc_command_data; |
| 1007 | __u16 max_packet_size; |
| 1008 | |
| 1009 | __u16 config_word0; |
| 1010 | __u16 config_word1; |
| 1011 | |
| 1012 | __u8 trc_mask; |
| 1013 | |
| 1014 | __u16 source_ring_number; |
| 1015 | __u16 target_ring_number; |
| 1016 | |
| 1017 | __u16 microcode_version; |
| 1018 | |
| 1019 | __u16 bic_type; |
| 1020 | __u16 nic_type; |
| 1021 | __u16 board_id; |
| 1022 | |
| 1023 | __u16 rom_size; |
| 1024 | __u32 rom_base; |
| 1025 | __u16 ram_size; |
| 1026 | __u16 ram_usable; |
| 1027 | __u32 ram_base; |
| 1028 | __u32 ram_access; |
| 1029 | |
| 1030 | __u16 extra_info; |
| 1031 | __u16 mode_bits; |
| 1032 | __u16 media_menu; |
| 1033 | __u16 media_type; |
| 1034 | __u16 adapter_bus; |
| 1035 | |
| 1036 | __u16 status; |
| 1037 | __u16 receive_mask; |
| 1038 | |
| 1039 | __u16 group_address_0; |
| 1040 | __u16 group_address[2]; |
| 1041 | __u16 functional_address_0; |
| 1042 | __u16 functional_address[2]; |
| 1043 | __u16 bitwise_group_address[2]; |
| 1044 | |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 1045 | __u8 cleanup; |
| 1046 | |
| 1047 | struct sk_buff_head SendSkbQueue; |
| 1048 | __u16 QueueSkb; |
| 1049 | |
| 1050 | struct tr_statistics MacStat; /* MAC statistics structure */ |
| 1051 | |
| 1052 | spinlock_t lock; |
| 1053 | } NET_LOCAL; |
| 1054 | |
| 1055 | /************************************ |
| 1056 | * SNMP-ON-BOARD Agent Link Structure |
| 1057 | ************************************/ |
| 1058 | |
| 1059 | typedef struct { |
| 1060 | __u8 LnkSigStr[12]; /* signature string "SmcLinkTable" */ |
| 1061 | __u8 LnkDrvTyp; /* 1=Redbox ODI, 2=ODI DOS, 3=ODI OS/2, 4=NDIS DOS */ |
| 1062 | __u8 LnkFlg; /* 0 if no agent linked, 1 if agent linked */ |
| 1063 | void *LnkNfo; /* routine which returns pointer to NIC info */ |
| 1064 | void *LnkAgtRcv; /* pointer to agent receive trap entry */ |
| 1065 | void *LnkAgtXmt; /* pointer to agent transmit trap |
| 1066 | entry */ |
| 1067 | void *LnkGet; /* pointer to NIC receive data |
| 1068 | copy routine */ |
| 1069 | void *LnkSnd; /* pointer to NIC send routine |
| 1070 | */ |
| 1071 | void *LnkRst; /* pointer to NIC driver reset |
| 1072 | routine */ |
| 1073 | void *LnkMib; /* pointer to MIB data base */ |
| 1074 | void *LnkMibAct; /* pointer to MIB action routine list */ |
| 1075 | __u16 LnkCntOffset; /* offset to error counters */ |
| 1076 | __u16 LnkCntNum; /* number of error counters */ |
| 1077 | __u16 LnkCntSize; /* size of error counters i.e. 32 = 32 bits */ |
| 1078 | void *LnkISR; /* pointer to interrupt vector */ |
| 1079 | __u8 LnkFrmTyp; /* 1=Ethernet, 2=Token Ring */ |
| 1080 | __u8 LnkDrvVer1 ; /* driver major version */ |
| 1081 | __u8 LnkDrvVer2 ; /* driver minor version */ |
| 1082 | } AgentLink; |
| 1083 | |
| 1084 | /* |
| 1085 | * Definitions for pcm_card_flags(bit_mapped) |
| 1086 | */ |
| 1087 | #define REG_COMPLETE 0x0001 |
| 1088 | #define INSERTED 0x0002 |
| 1089 | #define PCC_INSERTED 0x0004 /* 1=currently inserted, 0=cur removed */ |
| 1090 | |
| 1091 | /* |
| 1092 | * Adapter RAM test patterns |
| 1093 | */ |
| 1094 | #define RAM_PATTERN_1 0x55AA |
| 1095 | #define RAM_PATTERN_2 0x9249 |
| 1096 | #define RAM_PATTERN_3 0xDB6D |
| 1097 | |
| 1098 | /* |
| 1099 | * definitions for RAM test |
| 1100 | */ |
| 1101 | #define ROM_SIGNATURE 0xAA55 |
| 1102 | #define MIN_ROM_SIZE 0x2000 |
| 1103 | |
| 1104 | /* |
| 1105 | * Return Codes |
| 1106 | */ |
| 1107 | #define SUCCESS 0x0000 |
| 1108 | #define ADAPTER_AND_CONFIG 0x0001 |
| 1109 | #define ADAPTER_NO_CONFIG 0x0002 |
| 1110 | #define NOT_MY_INTERRUPT 0x0003 |
| 1111 | #define FRAME_REJECTED 0x0004 |
| 1112 | #define EVENTS_DISABLED 0x0005 |
| 1113 | #define OUT_OF_RESOURCES 0x0006 |
| 1114 | #define INVALID_PARAMETER 0x0007 |
| 1115 | #define INVALID_FUNCTION 0x0008 |
| 1116 | #define INITIALIZE_FAILED 0x0009 |
| 1117 | #define CLOSE_FAILED 0x000A |
| 1118 | #define MAX_COLLISIONS 0x000B |
| 1119 | #define NO_SUCH_DESTINATION 0x000C |
| 1120 | #define BUFFER_TOO_SMALL_ERROR 0x000D |
| 1121 | #define ADAPTER_CLOSED 0x000E |
| 1122 | #define UCODE_NOT_PRESENT 0x000F |
| 1123 | #define FIFO_UNDERRUN 0x0010 |
| 1124 | #define DEST_OUT_OF_RESOURCES 0x0011 |
| 1125 | #define ADAPTER_NOT_INITIALIZED 0x0012 |
| 1126 | #define PENDING 0x0013 |
| 1127 | #define UCODE_PRESENT 0x0014 |
| 1128 | #define NOT_INIT_BY_BRIDGE 0x0015 |
| 1129 | |
| 1130 | #define OPEN_FAILED 0x0080 |
| 1131 | #define HARDWARE_FAILED 0x0081 |
| 1132 | #define SELF_TEST_FAILED 0x0082 |
| 1133 | #define RAM_TEST_FAILED 0x0083 |
| 1134 | #define RAM_CONFLICT 0x0084 |
| 1135 | #define ROM_CONFLICT 0x0085 |
| 1136 | #define UNKNOWN_ADAPTER 0x0086 |
| 1137 | #define CONFIG_ERROR 0x0087 |
| 1138 | #define CONFIG_WARNING 0x0088 |
| 1139 | #define NO_FIXED_CNFG 0x0089 |
| 1140 | #define EEROM_CKSUM_ERROR 0x008A |
| 1141 | #define ROM_SIGNATURE_ERROR 0x008B |
| 1142 | #define ROM_CHECKSUM_ERROR 0x008C |
| 1143 | #define ROM_SIZE_ERROR 0x008D |
| 1144 | #define UNSUPPORTED_NIC_CHIP 0x008E |
| 1145 | #define NIC_REG_ERROR 0x008F |
| 1146 | #define BIC_REG_ERROR 0x0090 |
| 1147 | #define MICROCODE_TEST_ERROR 0x0091 |
| 1148 | #define LOBE_MEDIA_TEST_FAILED 0x0092 |
| 1149 | |
| 1150 | #define ADAPTER_FOUND_LAN_CORRUPT 0x009B |
| 1151 | |
| 1152 | #define ADAPTER_NOT_FOUND 0xFFFF |
| 1153 | |
| 1154 | #define ILLEGAL_FUNCTION INVALID_FUNCTION |
| 1155 | |
| 1156 | /* Errors */ |
| 1157 | #define IO_BASE_INVALID 0x0001 |
| 1158 | #define IO_BASE_RANGE 0x0002 |
| 1159 | #define IRQ_INVALID 0x0004 |
| 1160 | #define IRQ_RANGE 0x0008 |
| 1161 | #define RAM_BASE_INVALID 0x0010 |
| 1162 | #define RAM_BASE_RANGE 0x0020 |
| 1163 | #define RAM_SIZE_RANGE 0x0040 |
| 1164 | #define MEDIA_INVALID 0x0800 |
| 1165 | |
| 1166 | /* Warnings */ |
| 1167 | #define IRQ_MISMATCH 0x0080 |
| 1168 | #define RAM_BASE_MISMATCH 0x0100 |
| 1169 | #define RAM_SIZE_MISMATCH 0x0200 |
| 1170 | #define BUS_MODE_MISMATCH 0x0400 |
| 1171 | |
| 1172 | #define RX_CRC_ERROR 0x01 |
| 1173 | #define RX_ALIGNMENT_ERROR 0x02 |
| 1174 | #define RX_HW_FAILED 0x80 |
| 1175 | |
| 1176 | /* |
| 1177 | * Definitions for the field RING_STATUS_FLAGS |
| 1178 | */ |
| 1179 | #define RING_STATUS_CHANGED 0X01 |
| 1180 | #define MONITOR_STATE_CHANGED 0X02 |
| 1181 | #define JOIN_STATE_CHANGED 0X04 |
| 1182 | |
| 1183 | /* |
| 1184 | * Definitions for the field JOIN_STATE |
| 1185 | */ |
| 1186 | #define JS_BYPASS_STATE 0x00 |
| 1187 | #define JS_LOBE_TEST_STATE 0x01 |
| 1188 | #define JS_DETECT_MONITOR_PRESENT_STATE 0x02 |
| 1189 | #define JS_AWAIT_NEW_MONITOR_STATE 0x03 |
| 1190 | #define JS_DUPLICATE_ADDRESS_TEST_STATE 0x04 |
| 1191 | #define JS_NEIGHBOR_NOTIFICATION_STATE 0x05 |
| 1192 | #define JS_REQUEST_INITIALIZATION_STATE 0x06 |
| 1193 | #define JS_JOIN_COMPLETE_STATE 0x07 |
| 1194 | #define JS_BYPASS_WAIT_STATE 0x08 |
| 1195 | |
| 1196 | /* |
| 1197 | * Definitions for the field MONITOR_STATE |
| 1198 | */ |
| 1199 | #define MS_MONITOR_FSM_INACTIVE 0x00 |
| 1200 | #define MS_REPEAT_BEACON_STATE 0x01 |
| 1201 | #define MS_REPEAT_CLAIM_TOKEN_STATE 0x02 |
| 1202 | #define MS_TRANSMIT_CLAIM_TOKEN_STATE 0x03 |
| 1203 | #define MS_STANDBY_MONITOR_STATE 0x04 |
| 1204 | #define MS_TRANSMIT_BEACON_STATE 0x05 |
| 1205 | #define MS_ACTIVE_MONITOR_STATE 0x06 |
| 1206 | #define MS_TRANSMIT_RING_PURGE_STATE 0x07 |
| 1207 | #define MS_BEACON_TEST_STATE 0x09 |
| 1208 | |
| 1209 | /* |
| 1210 | * Definitions for the bit-field RING_STATUS |
| 1211 | */ |
| 1212 | #define SIGNAL_LOSS 0x8000 |
| 1213 | #define HARD_ERROR 0x4000 |
| 1214 | #define SOFT_ERROR 0x2000 |
| 1215 | #define TRANSMIT_BEACON 0x1000 |
| 1216 | #define LOBE_WIRE_FAULT 0x0800 |
| 1217 | #define AUTO_REMOVAL_ERROR 0x0400 |
| 1218 | #define REMOVE_RECEIVED 0x0100 |
| 1219 | #define COUNTER_OVERFLOW 0x0080 |
| 1220 | #define SINGLE_STATION 0x0040 |
| 1221 | #define RING_RECOVERY 0x0020 |
| 1222 | |
| 1223 | /* |
| 1224 | * Definitions for the field BUS_TYPE |
| 1225 | */ |
| 1226 | #define AT_BUS 0x00 |
| 1227 | #define MCA_BUS 0x01 |
| 1228 | #define EISA_BUS 0x02 |
| 1229 | #define PCI_BUS 0x03 |
| 1230 | #define PCMCIA_BUS 0x04 |
| 1231 | |
| 1232 | /* |
| 1233 | * Definitions for adapter_flags |
| 1234 | */ |
| 1235 | #define RX_VALID_LOOKAHEAD 0x0001 |
| 1236 | #define FORCED_16BIT_MODE 0x0002 |
| 1237 | #define ADAPTER_DISABLED 0x0004 |
| 1238 | #define TRANSMIT_CHAIN_INT 0x0008 |
| 1239 | #define EARLY_RX_FRAME 0x0010 |
| 1240 | #define EARLY_TX 0x0020 |
| 1241 | #define EARLY_RX_COPY 0x0040 |
| 1242 | #define USES_PHYSICAL_ADDR 0x0080 /* Rsvd for DEC PCI and 9232 */ |
| 1243 | #define NEEDS_PHYSICAL_ADDR 0x0100 /* Reserved*/ |
| 1244 | #define RX_STATUS_PENDING 0x0200 |
| 1245 | #define ERX_DISABLED 0x0400 /* EARLY_RX_ENABLE rcv_mask */ |
| 1246 | #define ENABLE_TX_PENDING 0x0800 |
| 1247 | #define ENABLE_RX_PENDING 0x1000 |
| 1248 | #define PERM_CLOSE 0x2000 |
| 1249 | #define IO_MAPPED 0x4000 /* IOmapped bus interface 795 */ |
| 1250 | #define ETX_DISABLED 0x8000 |
| 1251 | |
| 1252 | |
| 1253 | /* |
| 1254 | * Definitions for adapter_flags1 |
| 1255 | */ |
| 1256 | #define TX_PHY_RX_VIRT 0x0001 |
| 1257 | #define NEEDS_HOST_RAM 0x0002 |
| 1258 | #define NEEDS_MEDIA_TYPE 0x0004 |
| 1259 | #define EARLY_RX_DONE 0x0008 |
| 1260 | #define PNP_BOOT_BIT 0x0010 /* activates PnP & config on power-up */ |
| 1261 | /* clear => regular PnP operation */ |
| 1262 | #define PNP_ENABLE 0x0020 /* regular PnP operation clear => */ |
| 1263 | /* no PnP, overrides PNP_BOOT_BIT */ |
| 1264 | #define SATURN_ENABLE 0x0040 |
| 1265 | |
| 1266 | #define ADAPTER_REMOVABLE 0x0080 /* adapter is hot swappable */ |
| 1267 | #define TX_PHY 0x0100 /* Uses physical address for tx bufs */ |
| 1268 | #define RX_PHY 0x0200 /* Uses physical address for rx bufs */ |
| 1269 | #define TX_VIRT 0x0400 /* Uses virtual addr for tx bufs */ |
| 1270 | #define RX_VIRT 0x0800 |
| 1271 | #define NEEDS_SERVICE 0x1000 |
| 1272 | |
| 1273 | /* |
| 1274 | * Adapter Status Codes |
| 1275 | */ |
| 1276 | #define OPEN 0x0001 |
| 1277 | #define INITIALIZED 0x0002 |
| 1278 | #define CLOSED 0x0003 |
| 1279 | #define FAILED 0x0005 |
| 1280 | #define NOT_INITIALIZED 0x0006 |
| 1281 | #define IO_CONFLICT 0x0007 |
| 1282 | #define CARD_REMOVED 0x0008 |
| 1283 | #define CARD_INSERTED 0x0009 |
| 1284 | |
| 1285 | /* |
| 1286 | * Mode Bit Definitions |
| 1287 | */ |
| 1288 | #define INTERRUPT_STATUS_BIT 0x8000 /* PC Interrupt Line: 0 = Not Enabled */ |
| 1289 | #define BOOT_STATUS_MASK 0x6000 /* Mask to isolate BOOT_STATUS */ |
| 1290 | #define BOOT_INHIBIT 0x0000 /* BOOT_STATUS is 'inhibited' */ |
| 1291 | #define BOOT_TYPE_1 0x2000 /* Unused BOOT_STATUS value */ |
| 1292 | #define BOOT_TYPE_2 0x4000 /* Unused BOOT_STATUS value */ |
| 1293 | #define BOOT_TYPE_3 0x6000 /* Unused BOOT_STATUS value */ |
| 1294 | #define ZERO_WAIT_STATE_MASK 0x1800 /* Mask to isolate Wait State flags */ |
| 1295 | #define ZERO_WAIT_STATE_8_BIT 0x1000 /* 0 = Disabled (Inserts Wait States) */ |
| 1296 | #define ZERO_WAIT_STATE_16_BIT 0x0800 /* 0 = Disabled (Inserts Wait States) */ |
| 1297 | #define LOOPING_MODE_MASK 0x0007 |
| 1298 | #define LOOPBACK_MODE_0 0x0000 |
| 1299 | #define LOOPBACK_MODE_1 0x0001 |
| 1300 | #define LOOPBACK_MODE_2 0x0002 |
| 1301 | #define LOOPBACK_MODE_3 0x0003 |
| 1302 | #define LOOPBACK_MODE_4 0x0004 |
| 1303 | #define LOOPBACK_MODE_5 0x0005 |
| 1304 | #define LOOPBACK_MODE_6 0x0006 |
| 1305 | #define LOOPBACK_MODE_7 0x0007 |
| 1306 | #define AUTO_MEDIA_DETECT 0x0008 |
| 1307 | #define MANUAL_CRC 0x0010 |
| 1308 | #define EARLY_TOKEN_REL 0x0020 /* Early Token Release for Token Ring */ |
| 1309 | #define UMAC 0x0040 |
| 1310 | #define UTP2_PORT 0x0080 /* For 8216T2, 0=port A, 1=Port B. */ |
| 1311 | #define BNC_10BT_INTERFACE 0x0600 /* BNC and UTP current media set */ |
| 1312 | #define UTP_INTERFACE 0x0500 /* Ethernet UTP Only. */ |
| 1313 | #define BNC_INTERFACE 0x0400 |
| 1314 | #define AUI_INTERFACE 0x0300 |
| 1315 | #define AUI_10BT_INTERFACE 0x0200 |
| 1316 | #define STARLAN_10_INTERFACE 0x0100 |
| 1317 | #define INTERFACE_TYPE_MASK 0x0700 |
| 1318 | |
| 1319 | /* |
| 1320 | * Media Type Bit Definitions |
| 1321 | * |
| 1322 | * legend: TP = Twisted Pair |
| 1323 | * STP = Shielded twisted pair |
| 1324 | * UTP = Unshielded twisted pair |
| 1325 | */ |
| 1326 | |
| 1327 | #define CNFG_MEDIA_TYPE_MASK 0x001e /* POS Register 3 Mask */ |
| 1328 | |
| 1329 | #define MEDIA_S10 0x0000 /* Ethernet adapter, TP. */ |
| 1330 | #define MEDIA_AUI_UTP 0x0001 /* Ethernet adapter, AUI/UTP media */ |
| 1331 | #define MEDIA_BNC 0x0002 /* Ethernet adapter, BNC media. */ |
| 1332 | #define MEDIA_AUI 0x0003 /* Ethernet Adapter, AUI media. */ |
| 1333 | #define MEDIA_STP_16 0x0004 /* TokenRing adap, 16Mbit STP. */ |
| 1334 | #define MEDIA_STP_4 0x0005 /* TokenRing adap, 4Mbit STP. */ |
| 1335 | #define MEDIA_UTP_16 0x0006 /* TokenRing adap, 16Mbit UTP. */ |
| 1336 | #define MEDIA_UTP_4 0x0007 /* TokenRing adap, 4Mbit UTP. */ |
| 1337 | #define MEDIA_UTP 0x0008 /* Ethernet adapter, UTP media (no AUI) |
| 1338 | */ |
| 1339 | #define MEDIA_BNC_UTP 0x0010 /* Ethernet adapter, BNC/UTP media */ |
| 1340 | #define MEDIA_UTPFD 0x0011 /* Ethernet adapter, TP full duplex */ |
| 1341 | #define MEDIA_UTPNL 0x0012 /* Ethernet adapter, TP with link integrity test disabled */ |
| 1342 | #define MEDIA_AUI_BNC 0x0013 /* Ethernet adapter, AUI/BNC media */ |
| 1343 | #define MEDIA_AUI_BNC_UTP 0x0014 /* Ethernet adapter, AUI_BNC/UTP */ |
| 1344 | #define MEDIA_UTPA 0x0015 /* Ethernet UTP-10Mbps Ports A */ |
| 1345 | #define MEDIA_UTPB 0x0016 /* Ethernet UTP-10Mbps Ports B */ |
| 1346 | #define MEDIA_STP_16_UTP_16 0x0017 /* Token Ring STP-16Mbps/UTP-16Mbps */ |
| 1347 | #define MEDIA_STP_4_UTP_4 0x0018 /* Token Ring STP-4Mbps/UTP-4Mbps */ |
| 1348 | |
| 1349 | #define MEDIA_STP100_UTP100 0x0020 /* Ethernet STP-100Mbps/UTP-100Mbps */ |
| 1350 | #define MEDIA_UTP100FD 0x0021 /* Ethernet UTP-100Mbps, full duplex */ |
| 1351 | #define MEDIA_UTP100 0x0022 /* Ethernet UTP-100Mbps */ |
| 1352 | |
| 1353 | |
| 1354 | #define MEDIA_UNKNOWN 0xFFFF /* Unknown adapter/media type */ |
| 1355 | |
| 1356 | /* |
| 1357 | * Definitions for the field: |
| 1358 | * media_type2 |
| 1359 | */ |
| 1360 | #define MEDIA_TYPE_MII 0x0001 |
| 1361 | #define MEDIA_TYPE_UTP 0x0002 |
| 1362 | #define MEDIA_TYPE_BNC 0x0004 |
| 1363 | #define MEDIA_TYPE_AUI 0x0008 |
| 1364 | #define MEDIA_TYPE_S10 0x0010 |
| 1365 | #define MEDIA_TYPE_AUTO_SENSE 0x1000 |
| 1366 | #define MEDIA_TYPE_AUTO_DETECT 0x4000 |
| 1367 | #define MEDIA_TYPE_AUTO_NEGOTIATE 0x8000 |
| 1368 | |
| 1369 | /* |
| 1370 | * Definitions for the field: |
| 1371 | * line_speed |
| 1372 | */ |
| 1373 | #define LINE_SPEED_UNKNOWN 0x0000 |
| 1374 | #define LINE_SPEED_4 0x0001 |
| 1375 | #define LINE_SPEED_10 0x0002 |
| 1376 | #define LINE_SPEED_16 0x0004 |
| 1377 | #define LINE_SPEED_100 0x0008 |
| 1378 | #define LINE_SPEED_T4 0x0008 /* 100BaseT4 aliased for 9332BVT */ |
| 1379 | #define LINE_SPEED_FULL_DUPLEX 0x8000 |
| 1380 | |
| 1381 | /* |
| 1382 | * Definitions for the field: |
| 1383 | * bic_type (Bus interface chip type) |
| 1384 | */ |
| 1385 | #define BIC_NO_CHIP 0x0000 /* Bus interface chip not implemented */ |
| 1386 | #define BIC_583_CHIP 0x0001 /* 83C583 bus interface chip */ |
| 1387 | #define BIC_584_CHIP 0x0002 /* 83C584 bus interface chip */ |
| 1388 | #define BIC_585_CHIP 0x0003 /* 83C585 bus interface chip */ |
| 1389 | #define BIC_593_CHIP 0x0004 /* 83C593 bus interface chip */ |
| 1390 | #define BIC_594_CHIP 0x0005 /* 83C594 bus interface chip */ |
| 1391 | #define BIC_564_CHIP 0x0006 /* PCMCIA Bus interface chip */ |
| 1392 | #define BIC_790_CHIP 0x0007 /* 83C790 bus i-face/Ethernet NIC chip */ |
| 1393 | #define BIC_571_CHIP 0x0008 /* 83C571 EISA bus master i-face */ |
| 1394 | #define BIC_587_CHIP 0x0009 /* Token Ring AT bus master i-face */ |
| 1395 | #define BIC_574_CHIP 0x0010 /* FEAST bus interface chip */ |
| 1396 | #define BIC_8432_CHIP 0x0011 /* 8432 bus i-face/Ethernet NIC(DEC PCI) */ |
| 1397 | #define BIC_9332_CHIP 0x0012 /* 9332 bus i-face/100Mbps Ether NIC(DEC PCI) */ |
| 1398 | #define BIC_8432E_CHIP 0x0013 /* 8432 Enhanced bus iface/Ethernet NIC(DEC) */ |
| 1399 | #define BIC_EPIC100_CHIP 0x0014 /* EPIC/100 10/100 Mbps Ethernet BIC/NIC */ |
| 1400 | #define BIC_C94_CHIP 0x0015 /* 91C94 bus i-face in PCMCIA mode */ |
| 1401 | #define BIC_X8020_CHIP 0x0016 /* Xilinx PCMCIA multi-func i-face */ |
| 1402 | |
| 1403 | /* |
| 1404 | * Definitions for the field: |
| 1405 | * nic_type (Bus interface chip type) |
| 1406 | */ |
| 1407 | #define NIC_UNK_CHIP 0x0000 /* Unknown NIC chip */ |
| 1408 | #define NIC_8390_CHIP 0x0001 /* DP8390 Ethernet NIC */ |
| 1409 | #define NIC_690_CHIP 0x0002 /* 83C690 Ethernet NIC */ |
| 1410 | #define NIC_825_CHIP 0x0003 /* 83C825 Token Ring NIC */ |
| 1411 | /* #define NIC_???_CHIP 0x0004 */ /* Not used */ |
| 1412 | /* #define NIC_???_CHIP 0x0005 */ /* Not used */ |
| 1413 | /* #define NIC_???_CHIP 0x0006 */ /* Not used */ |
| 1414 | #define NIC_790_CHIP 0x0007 /* 83C790 bus i-face/Ethernet NIC chip */ |
| 1415 | #define NIC_C100_CHIP 0x0010 /* FEAST 100Mbps Ethernet NIC */ |
| 1416 | #define NIC_8432_CHIP 0x0011 /* 8432 bus i-face/Ethernet NIC(DEC PCI) */ |
| 1417 | #define NIC_9332_CHIP 0x0012 /* 9332 bus i-face/100Mbps Ether NIC(DEC PCI) */ |
| 1418 | #define NIC_8432E_CHIP 0x0013 /* 8432 enhanced bus iface/Ethernet NIC(DEC) */ |
| 1419 | #define NIC_EPIC100_CHIP 0x0014 /* EPIC/100 10/100 Mbps Ethernet BIC/NIC */ |
| 1420 | #define NIC_C94_CHIP 0x0015 /* 91C94 PC Card with multi func */ |
| 1421 | |
| 1422 | /* |
| 1423 | * Definitions for the field: |
| 1424 | * adapter_type The adapter_type field describes the adapter/bus |
| 1425 | * configuration. |
| 1426 | */ |
| 1427 | #define BUS_ISA16_TYPE 0x0001 /* 16 bit adap in 16 bit (E)ISA slot */ |
| 1428 | #define BUS_ISA8_TYPE 0x0002 /* 8/16b adap in 8 bit XT/(E)ISA slot */ |
| 1429 | #define BUS_MCA_TYPE 0x0003 /* Micro Channel adapter */ |
| 1430 | |
| 1431 | /* |
| 1432 | * Receive Mask definitions |
| 1433 | */ |
| 1434 | #define ACCEPT_MULTICAST 0x0001 |
| 1435 | #define ACCEPT_BROADCAST 0x0002 |
| 1436 | #define PROMISCUOUS_MODE 0x0004 |
| 1437 | #define ACCEPT_SOURCE_ROUTING 0x0008 |
| 1438 | #define ACCEPT_ERR_PACKETS 0x0010 |
| 1439 | #define ACCEPT_ATT_MAC_FRAMES 0x0020 |
| 1440 | #define ACCEPT_MULTI_PROM 0x0040 |
| 1441 | #define TRANSMIT_ONLY 0x0080 |
| 1442 | #define ACCEPT_EXT_MAC_FRAMES 0x0100 |
| 1443 | #define EARLY_RX_ENABLE 0x0200 |
| 1444 | #define PKT_SIZE_NOT_NEEDED 0x0400 |
| 1445 | #define ACCEPT_SOURCE_ROUTING_SPANNING 0x0808 |
| 1446 | |
| 1447 | #define ACCEPT_ALL_MAC_FRAMES 0x0120 |
| 1448 | |
| 1449 | /* |
| 1450 | * config_mode defs |
| 1451 | */ |
| 1452 | #define STORE_EEROM 0x0001 /* Store config in EEROM. */ |
| 1453 | #define STORE_REGS 0x0002 /* Store config in register set. */ |
| 1454 | |
| 1455 | /* |
| 1456 | * equates for lmac_flags in adapter structure (Ethernet) |
| 1457 | */ |
| 1458 | #define MEM_DISABLE 0x0001 |
| 1459 | #define RX_STATUS_POLL 0x0002 |
| 1460 | #define USE_RE_BIT 0x0004 |
| 1461 | /*#define RESERVED 0x0008 */ |
| 1462 | /*#define RESERVED 0x0010 */ |
| 1463 | /*#define RESERVED 0x0020 */ |
| 1464 | /*#define RESERVED 0x0040 */ |
| 1465 | /*#define RESERVED 0x0080 */ |
| 1466 | /*#define RESERVED 0x0100 */ |
| 1467 | /*#define RESERVED 0x0200 */ |
| 1468 | /*#define RESERVED 0x0400 */ |
| 1469 | /*#define RESERVED 0x0800 */ |
| 1470 | /*#define RESERVED 0x1000 */ |
| 1471 | /*#define RESERVED 0x2000 */ |
| 1472 | /*#define RESERVED 0x4000 */ |
| 1473 | /*#define RESERVED 0x8000 */ |
| 1474 | |
| 1475 | /* media_opts & media_set Fields bit defs for Ethernet ... */ |
| 1476 | #define MED_OPT_BNC 0x01 |
| 1477 | #define MED_OPT_UTP 0x02 |
| 1478 | #define MED_OPT_AUI 0x04 |
| 1479 | #define MED_OPT_10MB 0x08 |
| 1480 | #define MED_OPT_100MB 0x10 |
| 1481 | #define MED_OPT_S10 0x20 |
| 1482 | |
| 1483 | /* media_opts & media_set Fields bit defs for Token Ring ... */ |
| 1484 | #define MED_OPT_4MB 0x08 |
| 1485 | #define MED_OPT_16MB 0x10 |
| 1486 | #define MED_OPT_STP 0x40 |
| 1487 | |
| 1488 | #define MAX_8023_SIZE 1500 /* Max 802.3 size of frame. */ |
| 1489 | #define DEFAULT_ERX_VALUE 4 /* Number of 16-byte blocks for 790B early Rx. */ |
| 1490 | #define DEFAULT_ETX_VALUE 32 /* Number of bytes for 790B early Tx. */ |
| 1491 | #define DEFAULT_TX_RETRIES 3 /* Number of transmit retries */ |
| 1492 | #define LPBK_FRAME_SIZE 1024 /* Default loopback frame for Rx calibration test. */ |
| 1493 | #define MAX_LOOKAHEAD_SIZE 252 /* Max lookahead size for ethernet. */ |
| 1494 | |
| 1495 | #define RW_MAC_STATE 0x1101 |
| 1496 | #define RW_SA_OF_LAST_AMP_OR_SMP 0x2803 |
| 1497 | #define RW_PHYSICAL_DROP_NUMBER 0x3B02 |
| 1498 | #define RW_UPSTREAM_NEIGHBOR_ADDRESS 0x3E03 |
| 1499 | #define RW_PRODUCT_INSTANCE_ID 0x4B09 |
| 1500 | |
| 1501 | #define RW_TRC_STATUS_BLOCK 0x5412 |
| 1502 | |
| 1503 | #define RW_MAC_ERROR_COUNTERS_NO_CLEAR 0x8006 |
| 1504 | #define RW_MAC_ERROR_COUNTER_CLEAR 0x7A06 |
| 1505 | #define RW_CONFIG_REGISTER_0 0xA001 |
| 1506 | #define RW_CONFIG_REGISTER_1 0xA101 |
| 1507 | #define RW_PRESCALE_TIMER_THRESHOLD 0xA201 |
| 1508 | #define RW_TPT_THRESHOLD 0xA301 |
| 1509 | #define RW_TQP_THRESHOLD 0xA401 |
| 1510 | #define RW_TNT_THRESHOLD 0xA501 |
| 1511 | #define RW_TBT_THRESHOLD 0xA601 |
| 1512 | #define RW_TSM_THRESHOLD 0xA701 |
| 1513 | #define RW_TAM_THRESHOLD 0xA801 |
| 1514 | #define RW_TBR_THRESHOLD 0xA901 |
| 1515 | #define RW_TER_THRESHOLD 0xAA01 |
| 1516 | #define RW_TGT_THRESHOLD 0xAB01 |
| 1517 | #define RW_THT_THRESHOLD 0xAC01 |
| 1518 | #define RW_TRR_THRESHOLD 0xAD01 |
| 1519 | #define RW_TVX_THRESHOLD 0xAE01 |
| 1520 | #define RW_INDIVIDUAL_MAC_ADDRESS 0xB003 |
| 1521 | |
| 1522 | #define RW_INDIVIDUAL_GROUP_ADDRESS 0xB303 /* all of group addr */ |
| 1523 | #define RW_INDIVIDUAL_GROUP_ADDR_WORD_0 0xB301 /* 1st word of group addr */ |
| 1524 | #define RW_INDIVIDUAL_GROUP_ADDR 0xB402 /* 2nd-3rd word of group addr */ |
| 1525 | #define RW_FUNCTIONAL_ADDRESS 0xB603 /* all of functional addr */ |
| 1526 | #define RW_FUNCTIONAL_ADDR_WORD_0 0xB601 /* 1st word of func addr */ |
| 1527 | #define RW_FUNCTIONAL_ADDR 0xB702 /* 2nd-3rd word func addr */ |
| 1528 | |
| 1529 | #define RW_BIT_SIGNIFICANT_GROUP_ADDR 0xB902 |
| 1530 | #define RW_SOURCE_RING_BRIDGE_NUMBER 0xBB01 |
| 1531 | #define RW_TARGET_RING_NUMBER 0xBC01 |
| 1532 | |
| 1533 | #define RW_HIC_INTERRUPT_MASK 0xC601 |
| 1534 | |
| 1535 | #define SOURCE_ROUTING_SPANNING_BITS 0x00C0 /* Spanning Tree Frames */ |
| 1536 | #define SOURCE_ROUTING_EXPLORER_BIT 0x0040 /* Explorer and Single Route */ |
| 1537 | |
| 1538 | /* write */ |
| 1539 | |
| 1540 | #define CSR_MSK_ALL 0x80 // Bic 587 Only |
| 1541 | #define CSR_MSKTINT 0x20 |
| 1542 | #define CSR_MSKCBUSY 0x10 |
| 1543 | #define CSR_CLRTINT 0x08 |
| 1544 | #define CSR_CLRCBUSY 0x04 |
| 1545 | #define CSR_WCSS 0x02 |
| 1546 | #define CSR_CA 0x01 |
| 1547 | |
| 1548 | /* read */ |
| 1549 | |
| 1550 | #define CSR_TINT 0x20 |
| 1551 | #define CSR_CINT 0x10 |
| 1552 | #define CSR_TSTAT 0x08 |
| 1553 | #define CSR_CSTAT 0x04 |
| 1554 | #define CSR_FAULT 0x02 |
| 1555 | #define CSR_CBUSY 0x01 |
| 1556 | |
| 1557 | #define LAAR_MEM16ENB 0x80 |
| 1558 | #define Zws16 0x20 |
| 1559 | |
| 1560 | #define IRR_IEN 0x80 |
| 1561 | #define Zws8 0x01 |
| 1562 | |
| 1563 | #define IMCCR_EIL 0x04 |
| 1564 | |
| 1565 | typedef struct { |
| 1566 | __u8 ac; /* Access Control */ |
| 1567 | __u8 fc; /* Frame Control */ |
| 1568 | __u8 da[6]; /* Dest Addr */ |
| 1569 | __u8 sa[6]; /* Source Addr */ |
| 1570 | |
| 1571 | __u16 vl; /* Vector Length */ |
| 1572 | __u8 dc_sc; /* Dest/Source Class */ |
| 1573 | __u8 vc; /* Vector Code */ |
| 1574 | } MAC_HEADER; |
| 1575 | |
| 1576 | #define MAX_SUB_VECTOR_INFO (RX_DATA_BUFFER_SIZE - sizeof(MAC_HEADER) - 2) |
| 1577 | |
| 1578 | typedef struct |
| 1579 | { |
| 1580 | __u8 svl; /* Sub-vector Length */ |
| 1581 | __u8 svi; /* Sub-vector Code */ |
| 1582 | __u8 svv[MAX_SUB_VECTOR_INFO]; /* Sub-vector Info */ |
| 1583 | } MAC_SUB_VECTOR; |
| 1584 | |
| 1585 | #endif /* __KERNEL__ */ |
| 1586 | #endif /* __LINUX_SMCTR_H */ |