Macros | Functions
3c509.h File Reference
#include "nic.h"

Go to the source code of this file.


#define TX_INIT_RATE   16
#define TX_INIT_MAX_RATE   64
#define RX_INIT_LATENCY   64
#define MIN_RX_EARLY_THRESHF   16 /* not less than ether_header */
#define EEPROMSIZE   0x40
#define MAX_EEPROMBUSY   1000
#define EP_ID_PORT_START   0x110 /* avoid 0x100 to avoid conflict with SB16 */
#define EP_ID_PORT_INC   0x10
#define EP_ID_PORT_END   0x200
#define EP_TAG_MAX   0x7 /* must be 2^n - 1 */
#define EEPROM_CMD_RD   0x0080 /* Read: Address required (5 bits) */
#define EEPROM_CMD_WR   0x0040 /* Write: Address required (5 bits) */
#define EEPROM_CMD_ERASE   0x00c0 /* Erase: Address required (5 bits) */
#define EEPROM_CMD_EWEN   0x0030 /* Erase/Write Enable: No data required */
#define EEPROM_BUSY   (1<<15)
#define EEPROM_TST_MODE   (1<<14)
#define is_eeprom_busy(b)   (inw((b)+EP_W0_EEPROM_COMMAND)&EEPROM_BUSY)
#define GO_WINDOW(b, x)   outw(WINDOW_SELECT|(x), (b)+EP_COMMAND)
#define EEPROM_NODE_ADDR_0   0x0 /* Word */
#define EEPROM_NODE_ADDR_1   0x1 /* Word */
#define EEPROM_NODE_ADDR_2   0x2 /* Word */
#define EEPROM_PROD_ID   0x3 /* 0x9[0-f]50 */
#define EEPROM_MFG_ID   0x7 /* 0x6d50 */
#define EEPROM_ADDR_CFG   0x8 /* Base addr */
#define EEPROM_RESOURCE_CFG   0x9 /* IRQ. Bits 12-15 */
#define EP_COMMAND
#define EP_STATUS
#define EP_WINDOW
#define EP_W0_EEPROM_DATA   0x0c
#define EP_W0_EEPROM_COMMAND   0x0a
#define EP_W0_RESOURCE_CFG   0x08
#define EP_W0_ADDRESS_CFG   0x06
#define EP_W0_CONFIG_CTRL   0x04
#define EP_W0_PRODUCT_ID   0x02
#define EP_W0_MFG_ID   0x00
#define EP_W1_TX_PIO_WR_2   0x02
#define EP_W1_TX_PIO_WR_1   0x00
#define EP_W1_FREE_TX   0x0c
#define EP_W1_TX_STATUS   0x0b /* byte */
#define EP_W1_TIMER   0x0a /* byte */
#define EP_W1_RX_STATUS   0x08
#define EP_W1_RX_PIO_RD_2   0x02
#define EP_W1_RX_PIO_RD_1   0x00
#define EP_W2_ADDR_5   0x05
#define EP_W2_ADDR_4   0x04
#define EP_W2_ADDR_3   0x03
#define EP_W2_ADDR_2   0x02
#define EP_W2_ADDR_1   0x01
#define EP_W2_ADDR_0   0x00
#define EP_W3_FREE_TX   0x0c
#define EP_W3_FREE_RX   0x0a
#define EP_W4_MEDIA_TYPE   0x0a
#define EP_W4_CTRLR_STATUS   0x08
#define EP_W4_NET_DIAG   0x06
#define EP_W4_FIFO_DIAG   0x04
#define EP_W4_HOST_DIAG   0x02
#define EP_W4_TX_DIAG   0x00
#define EP_W5_READ_0_MASK   0x0c
#define EP_W5_INTR_MASK   0x0a
#define EP_W5_RX_FILTER   0x08
#define EP_W5_RX_EARLY_THRESH   0x06
#define EP_W5_TX_AVAIL_THRESH   0x02
#define EP_W5_TX_START_THRESH   0x00
#define TX_TOTAL_OK   0x0c
#define RX_TOTAL_OK   0x0a
#define TX_DEFERRALS   0x08
#define RX_FRAMES_OK   0x07
#define TX_FRAMES_OK   0x06
#define RX_OVERRUNS   0x05
#define TX_COLLISIONS   0x04
#define TX_AFTER_1_COLLISION   0x03
#define TX_AFTER_X_COLLISIONS   0x02
#define TX_NO_SQE   0x01
#define TX_CD_LOST   0x00
#define WINDOW_SELECT   (unsigned short) (0x1<<11)
#define RX_DISABLE
#define RX_ENABLE   (unsigned short) (0x4<<11)
#define RX_RESET   (unsigned short) (0x5<<11)
#define RX_DISCARD_TOP_PACK   (unsigned short) (0x8<<11)
#define TX_ENABLE   (unsigned short) (0x9<<11)
#define TX_DISABLE   (unsigned short) (0xa<<11)
#define TX_RESET   (unsigned short) (0xb<<11)
#define REQ_INTR   (unsigned short) (0xc<<11)
#define SET_INTR_MASK   (unsigned short) (0xe<<11)
#define SET_RD_0_MASK   (unsigned short) (0xf<<11)
#define SET_RX_FILTER   (unsigned short) (0x10<<11)
#define FIL_INDIVIDUAL   (unsigned short) (0x1)
#define FIL_GROUP   (unsigned short) (0x2)
#define FIL_BRDCST   (unsigned short) (0x4)
#define FIL_ALL   (unsigned short) (0x8)
#define SET_RX_EARLY_THRESH   (unsigned short) (0x11<<11)
#define SET_TX_AVAIL_THRESH   (unsigned short) (0x12<<11)
#define SET_TX_START_THRESH   (unsigned short) (0x13<<11)
#define STATS_ENABLE   (unsigned short) (0x15<<11)
#define STATS_DISABLE   (unsigned short) (0x16<<11)
#define STOP_TRANSCEIVER   (unsigned short) (0x17<<11)
#define ACK_INTR   (unsigned short) (0x6800)
#define C_INTR_LATCH   (unsigned short) (ACK_INTR|0x1)
#define C_CARD_FAILURE   (unsigned short) (ACK_INTR|0x2)
#define C_TX_COMPLETE   (unsigned short) (ACK_INTR|0x4)
#define C_TX_AVAIL   (unsigned short) (ACK_INTR|0x8)
#define C_RX_COMPLETE   (unsigned short) (ACK_INTR|0x10)
#define C_RX_EARLY   (unsigned short) (ACK_INTR|0x20)
#define C_INT_RQD   (unsigned short) (ACK_INTR|0x40)
#define C_UPD_STATS   (unsigned short) (ACK_INTR|0x80)
#define S_INTR_LATCH   (unsigned short) (0x1)
#define S_CARD_FAILURE   (unsigned short) (0x2)
#define S_TX_COMPLETE   (unsigned short) (0x4)
#define S_TX_AVAIL   (unsigned short) (0x8)
#define S_RX_COMPLETE   (unsigned short) (0x10)
#define S_RX_EARLY   (unsigned short) (0x20)
#define S_INT_RQD   (unsigned short) (0x40)
#define S_UPD_STATS   (unsigned short) (0x80)
#define S_5_INTS
#define S_COMMAND_IN_PROGRESS   (unsigned short) (0x1000)
#define ERR_RX_INCOMPLETE   (unsigned short) (0x1<<15)
#define ERR_RX   (unsigned short) (0x1<<14)
#define ERR_RX_OVERRUN   (unsigned short) (0x8<<11)
#define ERR_RX_RUN_PKT   (unsigned short) (0xb<<11)
#define ERR_RX_ALIGN   (unsigned short) (0xc<<11)
#define ERR_RX_CRC   (unsigned short) (0xd<<11)
#define ERR_RX_OVERSIZE   (unsigned short) (0x9<<11)
#define ERR_RX_DRIBBLE   (unsigned short) (0x2<<11)
#define TXS_COMPLETE   0x80
#define TXS_SUCCES_INTR_REQ   0x40
#define TXS_JABBER   0x20
#define TXS_UNDERRUN   0x10
#define TXS_MAX_COLLISION   0x8
#define IS_AUI   (1<<13)
#define IS_BNC   (1<<12)
#define IS_UTP   (1<<9)
#define ENABLE_DRQ_IRQ   0x0001
#define W0_P4_CMD_RESET_ADAPTER   0x4
#define W0_P4_CMD_ENABLE_ADAPTER   0x1
#define ENABLE_UTP   0xc0
#define DISABLE_UTP   0x0
#define SET_IRQ(i)   ( ((i)<<12) | 0xF00) /* set IRQ i */
#define RX_BYTES_MASK   (unsigned short) (0x07ff)
#define RX_ERROR   0x4000
#define RX_INCOMPLETE   0x8000
#define MFG_ID   0x6d50 /* in EEPROM and W0 ADDR_CONFIG */
#define PROD_ID   0x9150
#define AUI   0x1
#define BNC   0x2
#define UTP   0x4
#define RX_BYTES_MASK   (unsigned short) (0x07ff)


int t5x9_probe (struct nic *nic, uint16_t prod_id_check, uint16_t prod_id_mask)
void t5x9_disable (struct nic *nic)

Macro Definition Documentation


#define TX_INIT_RATE   16

Definition at line 45 of file 3c509.h.


#define TX_INIT_MAX_RATE   64

Definition at line 46 of file 3c509.h.


#define RX_INIT_LATENCY   64

Definition at line 47 of file 3c509.h.



Definition at line 48 of file 3c509.h.


#define MIN_RX_EARLY_THRESHF   16 /* not less than ether_header */

Definition at line 49 of file 3c509.h.



Definition at line 50 of file 3c509.h.


#define EEPROMSIZE   0x40

Definition at line 52 of file 3c509.h.


#define MAX_EEPROMBUSY   1000

Definition at line 53 of file 3c509.h.


#define EP_ID_PORT_START   0x110 /* avoid 0x100 to avoid conflict with SB16 */

Definition at line 54 of file 3c509.h.


#define EP_ID_PORT_INC   0x10

Definition at line 55 of file 3c509.h.


#define EP_ID_PORT_END   0x200

Definition at line 56 of file 3c509.h.


#define EP_TAG_MAX   0x7 /* must be 2^n - 1 */

Definition at line 57 of file 3c509.h.


#define EEPROM_CMD_RD   0x0080 /* Read: Address required (5 bits) */

Definition at line 63 of file 3c509.h.


#define EEPROM_CMD_WR   0x0040 /* Write: Address required (5 bits) */

Definition at line 64 of file 3c509.h.


#define EEPROM_CMD_ERASE   0x00c0 /* Erase: Address required (5 bits) */

Definition at line 65 of file 3c509.h.


#define EEPROM_CMD_EWEN   0x0030 /* Erase/Write Enable: No data required */

Definition at line 66 of file 3c509.h.


#define EEPROM_BUSY   (1<<15)

Definition at line 68 of file 3c509.h.


#define EEPROM_TST_MODE   (1<<14)

Definition at line 69 of file 3c509.h.

◆ is_eeprom_busy

#define is_eeprom_busy (   b)    (inw((b)+EP_W0_EEPROM_COMMAND)&EEPROM_BUSY)

Definition at line 74 of file 3c509.h.


#define GO_WINDOW (   b,
)    outw(WINDOW_SELECT|(x), (b)+EP_COMMAND)

Definition at line 75 of file 3c509.h.


#define EEPROM_NODE_ADDR_0   0x0 /* Word */

Definition at line 87 of file 3c509.h.


#define EEPROM_NODE_ADDR_1   0x1 /* Word */

Definition at line 88 of file 3c509.h.


#define EEPROM_NODE_ADDR_2   0x2 /* Word */

Definition at line 89 of file 3c509.h.


#define EEPROM_PROD_ID   0x3 /* 0x9[0-f]50 */

Definition at line 90 of file 3c509.h.


#define EEPROM_MFG_ID   0x7 /* 0x6d50 */

Definition at line 91 of file 3c509.h.


#define EEPROM_ADDR_CFG   0x8 /* Base addr */

Definition at line 92 of file 3c509.h.


#define EEPROM_RESOURCE_CFG   0x9 /* IRQ. Bits 12-15 */

Definition at line 93 of file 3c509.h.


#define EP_COMMAND
0x0e /* Write. BASE+0x0e is always a
* command reg. */

Definition at line 109 of file 3c509.h.


#define EP_STATUS
0x0e /* Read. BASE+0x0e is always status
* reg. */

Definition at line 111 of file 3c509.h.


#define EP_WINDOW
0x0f /* Read. BASE+0x0f is always window
* reg. */

Definition at line 113 of file 3c509.h.


#define EP_W0_EEPROM_DATA   0x0c

Definition at line 119 of file 3c509.h.


#define EP_W0_EEPROM_COMMAND   0x0a

Definition at line 120 of file 3c509.h.


#define EP_W0_RESOURCE_CFG   0x08

Definition at line 121 of file 3c509.h.


#define EP_W0_ADDRESS_CFG   0x06

Definition at line 122 of file 3c509.h.


#define EP_W0_CONFIG_CTRL   0x04

Definition at line 123 of file 3c509.h.


#define EP_W0_PRODUCT_ID   0x02

Definition at line 125 of file 3c509.h.


#define EP_W0_MFG_ID   0x00

Definition at line 126 of file 3c509.h.


#define EP_W1_TX_PIO_WR_2   0x02

Definition at line 132 of file 3c509.h.


#define EP_W1_TX_PIO_WR_1   0x00

Definition at line 133 of file 3c509.h.


#define EP_W1_FREE_TX   0x0c

Definition at line 135 of file 3c509.h.


#define EP_W1_TX_STATUS   0x0b /* byte */

Definition at line 136 of file 3c509.h.


#define EP_W1_TIMER   0x0a /* byte */

Definition at line 137 of file 3c509.h.


#define EP_W1_RX_STATUS   0x08

Definition at line 138 of file 3c509.h.


#define EP_W1_RX_PIO_RD_2   0x02

Definition at line 139 of file 3c509.h.


#define EP_W1_RX_PIO_RD_1   0x00

Definition at line 140 of file 3c509.h.

◆ EP_W2_ADDR_5

#define EP_W2_ADDR_5   0x05

Definition at line 146 of file 3c509.h.

◆ EP_W2_ADDR_4

#define EP_W2_ADDR_4   0x04

Definition at line 147 of file 3c509.h.

◆ EP_W2_ADDR_3

#define EP_W2_ADDR_3   0x03

Definition at line 148 of file 3c509.h.

◆ EP_W2_ADDR_2

#define EP_W2_ADDR_2   0x02

Definition at line 149 of file 3c509.h.

◆ EP_W2_ADDR_1

#define EP_W2_ADDR_1   0x01

Definition at line 150 of file 3c509.h.

◆ EP_W2_ADDR_0

#define EP_W2_ADDR_0   0x00

Definition at line 151 of file 3c509.h.


#define EP_W3_FREE_TX   0x0c

Definition at line 157 of file 3c509.h.


#define EP_W3_FREE_RX   0x0a

Definition at line 158 of file 3c509.h.


#define EP_W4_MEDIA_TYPE   0x0a

Definition at line 164 of file 3c509.h.


#define EP_W4_CTRLR_STATUS   0x08

Definition at line 165 of file 3c509.h.


#define EP_W4_NET_DIAG   0x06

Definition at line 166 of file 3c509.h.


#define EP_W4_FIFO_DIAG   0x04

Definition at line 167 of file 3c509.h.


#define EP_W4_HOST_DIAG   0x02

Definition at line 168 of file 3c509.h.


#define EP_W4_TX_DIAG   0x00

Definition at line 169 of file 3c509.h.


#define EP_W5_READ_0_MASK   0x0c

Definition at line 175 of file 3c509.h.


#define EP_W5_INTR_MASK   0x0a

Definition at line 176 of file 3c509.h.


#define EP_W5_RX_FILTER   0x08

Definition at line 177 of file 3c509.h.


#define EP_W5_RX_EARLY_THRESH   0x06

Definition at line 178 of file 3c509.h.


#define EP_W5_TX_AVAIL_THRESH   0x02

Definition at line 179 of file 3c509.h.


#define EP_W5_TX_START_THRESH   0x00

Definition at line 180 of file 3c509.h.


#define TX_TOTAL_OK   0x0c

Definition at line 186 of file 3c509.h.


#define RX_TOTAL_OK   0x0a

Definition at line 187 of file 3c509.h.


#define TX_DEFERRALS   0x08

Definition at line 188 of file 3c509.h.


#define RX_FRAMES_OK   0x07

Definition at line 189 of file 3c509.h.


#define TX_FRAMES_OK   0x06

Definition at line 190 of file 3c509.h.


#define RX_OVERRUNS   0x05

Definition at line 191 of file 3c509.h.


#define TX_COLLISIONS   0x04

Definition at line 192 of file 3c509.h.


#define TX_AFTER_1_COLLISION   0x03

Definition at line 193 of file 3c509.h.


#define TX_AFTER_X_COLLISIONS   0x02

Definition at line 194 of file 3c509.h.


#define TX_NO_SQE   0x01

Definition at line 195 of file 3c509.h.


#define TX_CD_LOST   0x00

Definition at line 196 of file 3c509.h.


(unsigned short) 0x0000 /* Wait at least 1ms
* after issuing */

Definition at line 212 of file 3c509.h.


#define WINDOW_SELECT   (unsigned short) (0x1<<11)

Definition at line 214 of file 3c509.h.


(unsigned short) (0x2<<11) /* Read ADDR_CFG reg to
* determine whether
* this is needed. If
* so; wait 800 uSec
* before using trans-
* ceiver. */

Definition at line 215 of file 3c509.h.


#define RX_DISABLE
(unsigned short) (0x3<<11) /* state disabled on
* power-up */

Definition at line 221 of file 3c509.h.


#define RX_ENABLE   (unsigned short) (0x4<<11)

Definition at line 223 of file 3c509.h.


#define RX_RESET   (unsigned short) (0x5<<11)

Definition at line 224 of file 3c509.h.


#define RX_DISCARD_TOP_PACK   (unsigned short) (0x8<<11)

Definition at line 225 of file 3c509.h.


#define TX_ENABLE   (unsigned short) (0x9<<11)

Definition at line 226 of file 3c509.h.


#define TX_DISABLE   (unsigned short) (0xa<<11)

Definition at line 227 of file 3c509.h.


#define TX_RESET   (unsigned short) (0xb<<11)

Definition at line 228 of file 3c509.h.


#define REQ_INTR   (unsigned short) (0xc<<11)

Definition at line 229 of file 3c509.h.


#define SET_INTR_MASK   (unsigned short) (0xe<<11)

Definition at line 230 of file 3c509.h.


#define SET_RD_0_MASK   (unsigned short) (0xf<<11)

Definition at line 231 of file 3c509.h.


#define SET_RX_FILTER   (unsigned short) (0x10<<11)

Definition at line 232 of file 3c509.h.


#define FIL_INDIVIDUAL   (unsigned short) (0x1)

Definition at line 233 of file 3c509.h.


#define FIL_GROUP   (unsigned short) (0x2)

Definition at line 234 of file 3c509.h.


#define FIL_BRDCST   (unsigned short) (0x4)

Definition at line 235 of file 3c509.h.


#define FIL_ALL   (unsigned short) (0x8)

Definition at line 236 of file 3c509.h.


#define SET_RX_EARLY_THRESH   (unsigned short) (0x11<<11)

Definition at line 237 of file 3c509.h.


#define SET_TX_AVAIL_THRESH   (unsigned short) (0x12<<11)

Definition at line 238 of file 3c509.h.


#define SET_TX_START_THRESH   (unsigned short) (0x13<<11)

Definition at line 239 of file 3c509.h.


#define STATS_ENABLE   (unsigned short) (0x15<<11)

Definition at line 240 of file 3c509.h.


#define STATS_DISABLE   (unsigned short) (0x16<<11)

Definition at line 241 of file 3c509.h.


#define STOP_TRANSCEIVER   (unsigned short) (0x17<<11)

Definition at line 242 of file 3c509.h.


#define ACK_INTR   (unsigned short) (0x6800)

Definition at line 247 of file 3c509.h.


#define C_INTR_LATCH   (unsigned short) (ACK_INTR|0x1)

Definition at line 248 of file 3c509.h.


#define C_CARD_FAILURE   (unsigned short) (ACK_INTR|0x2)

Definition at line 249 of file 3c509.h.


#define C_TX_COMPLETE   (unsigned short) (ACK_INTR|0x4)

Definition at line 250 of file 3c509.h.


#define C_TX_AVAIL   (unsigned short) (ACK_INTR|0x8)

Definition at line 251 of file 3c509.h.


#define C_RX_COMPLETE   (unsigned short) (ACK_INTR|0x10)

Definition at line 252 of file 3c509.h.


#define C_RX_EARLY   (unsigned short) (ACK_INTR|0x20)

Definition at line 253 of file 3c509.h.


#define C_INT_RQD   (unsigned short) (ACK_INTR|0x40)

Definition at line 254 of file 3c509.h.


#define C_UPD_STATS   (unsigned short) (ACK_INTR|0x80)

Definition at line 255 of file 3c509.h.


#define S_INTR_LATCH   (unsigned short) (0x1)

Definition at line 275 of file 3c509.h.


#define S_CARD_FAILURE   (unsigned short) (0x2)

Definition at line 276 of file 3c509.h.


#define S_TX_COMPLETE   (unsigned short) (0x4)

Definition at line 277 of file 3c509.h.


#define S_TX_AVAIL   (unsigned short) (0x8)

Definition at line 278 of file 3c509.h.


#define S_RX_COMPLETE   (unsigned short) (0x10)

Definition at line 279 of file 3c509.h.


#define S_RX_EARLY   (unsigned short) (0x20)

Definition at line 280 of file 3c509.h.


#define S_INT_RQD   (unsigned short) (0x40)

Definition at line 281 of file 3c509.h.


#define S_UPD_STATS   (unsigned short) (0x80)

Definition at line 282 of file 3c509.h.

◆ S_5_INTS

#define S_5_INTS
#define S_RX_EARLY
Definition: 3c509.h:280
Definition: 3c509.h:279
Definition: 3c509.h:277
Definition: 3c509.h:276

Definition at line 283 of file 3c509.h.


#define S_COMMAND_IN_PROGRESS   (unsigned short) (0x1000)

Definition at line 285 of file 3c509.h.


#define ERR_RX_INCOMPLETE   (unsigned short) (0x1<<15)

Definition at line 304 of file 3c509.h.


#define ERR_RX   (unsigned short) (0x1<<14)

Definition at line 305 of file 3c509.h.


#define ERR_RX_OVERRUN   (unsigned short) (0x8<<11)

Definition at line 306 of file 3c509.h.


#define ERR_RX_RUN_PKT   (unsigned short) (0xb<<11)

Definition at line 307 of file 3c509.h.


#define ERR_RX_ALIGN   (unsigned short) (0xc<<11)

Definition at line 308 of file 3c509.h.


#define ERR_RX_CRC   (unsigned short) (0xd<<11)

Definition at line 309 of file 3c509.h.


#define ERR_RX_OVERSIZE   (unsigned short) (0x9<<11)

Definition at line 310 of file 3c509.h.


#define ERR_RX_DRIBBLE   (unsigned short) (0x2<<11)

Definition at line 311 of file 3c509.h.


#define TXS_COMPLETE   0x80

Definition at line 331 of file 3c509.h.


#define TXS_SUCCES_INTR_REQ   0x40

Definition at line 332 of file 3c509.h.


#define TXS_JABBER   0x20

Definition at line 333 of file 3c509.h.


#define TXS_UNDERRUN   0x10

Definition at line 334 of file 3c509.h.


#define TXS_MAX_COLLISION   0x8

Definition at line 335 of file 3c509.h.



Definition at line 336 of file 3c509.h.


#define IS_AUI   (1<<13)

Definition at line 343 of file 3c509.h.


#define IS_BNC   (1<<12)

Definition at line 344 of file 3c509.h.


#define IS_UTP   (1<<9)

Definition at line 345 of file 3c509.h.


#define ENABLE_DRQ_IRQ   0x0001

Definition at line 347 of file 3c509.h.


#define W0_P4_CMD_RESET_ADAPTER   0x4

Definition at line 348 of file 3c509.h.


#define W0_P4_CMD_ENABLE_ADAPTER   0x1

Definition at line 349 of file 3c509.h.


#define ENABLE_UTP   0xc0

Definition at line 354 of file 3c509.h.


#define DISABLE_UTP   0x0

Definition at line 355 of file 3c509.h.


#define SET_IRQ (   i)    ( ((i)<<12) | 0xF00) /* set IRQ i */

Definition at line 361 of file 3c509.h.


#define RX_BYTES_MASK   (unsigned short) (0x07ff)

Definition at line 381 of file 3c509.h.


#define RX_ERROR   0x4000

Definition at line 368 of file 3c509.h.


#define RX_INCOMPLETE   0x8000

Definition at line 369 of file 3c509.h.


#define MFG_ID   0x6d50 /* in EEPROM and W0 ADDR_CONFIG */

Definition at line 374 of file 3c509.h.


#define PROD_ID   0x9150

Definition at line 375 of file 3c509.h.


#define AUI   0x1

Definition at line 377 of file 3c509.h.


#define BNC   0x2

Definition at line 378 of file 3c509.h.


#define UTP   0x4

Definition at line 379 of file 3c509.h.


#define RX_BYTES_MASK   (unsigned short) (0x07ff)

Definition at line 381 of file 3c509.h.

Function Documentation



◆ t5x9_probe()

int t5x9_probe ( struct nic nic,
uint16_t  prod_id_check,
uint16_t  prod_id_mask 

Definition at line 342 of file 3c5x9.c.

343  {
344  uint16_t prod_id;
345  int i,j;
346  unsigned short *p;
348  /* Check product ID */
349  prod_id = get_e ( nic->ioaddr, EEPROM_PROD_ID );
350  if ( ( prod_id & prod_id_mask ) != prod_id_check ) {
351  printf ( "EEPROM Product ID is incorrect (%hx & %hx != %hx)\n",
352  prod_id, prod_id_mask, prod_id_check );
353  return 0;
354  }
356  /* test for presence of connectors */
357  GO_WINDOW(nic->ioaddr,0);
359  j = (inw(nic->ioaddr + EP_W0_ADDRESS_CFG) >> 14) & 0x3;
361  switch(j) {
362  case 0:
363  if (i & IS_UTP) {
364  printf("10baseT\n");
365  connector = utp;
366  } else {
367  printf("10baseT not present\n");
368  return 0;
369  }
370  break;
371  case 1:
372  if (i & IS_AUI) {
373  printf("10base5\n");
374  } else {
375  printf("10base5 not present\n");
376  return 0;
377  }
378  break;
379  case 3:
380  if (i & IS_BNC) {
381  printf("10base2\n");
382  connector = bnc;
383  } else {
384  printf("10base2 not present\n");
385  return 0;
386  }
387  break;
388  default:
389  printf("unknown connector\n");
390  return 0;
391  }
393  /*
394  * Read the station address from the eeprom
395  */
396  p = (unsigned short *) nic->node_addr;
397  for (i = 0; i < ETH_ALEN / 2; i++) {
398  p[i] = htons(get_e(nic->ioaddr,i));
399  GO_WINDOW(nic->ioaddr,2);
400  outw(ntohs(p[i]), nic->ioaddr + EP_W2_ADDR_0 + (i * 2));
401  }
403  DBG ( "Ethernet Address: %s\n", eth_ntoa ( nic->node_addr ) );
405  t509_reset(nic);
408  return 1;
410 }
unsigned short uint16_t
Definition: stdint.h:11
int printf(const char *fmt,...)
Write a formatted string to the console.
Definition: vsprintf.c:464
uint16_t inw(volatile uint16_t *io_addr)
Read 16-bit word from I/O-mapped device.
Definition: 3c509.h:90
#define outw(data, io_addr)
Definition: io.h:319
static void t509_reset(struct nic *nic)
Definition: 3c5x9.c:124
#define ntohs(value)
Definition: byteswap.h:136
static struct nic_operations t509_operations
Definition: 3c5x9.c:332
#define IS_AUI
Definition: 3c509.h:343
#define IS_BNC
Definition: 3c509.h:344
unsigned int ioaddr
Definition: nic.h:55
Definition: 3c509.h:122
Definition: 3c5x9.c:35
const char * eth_ntoa(const void *ll_addr)
Transcribe Ethernet address.
Definition: ethernet.c:175
static int get_e(uint16_t ioaddr, int offset)
Definition: 3c5x9.c:322
Definition: 3c509.h:123
#define EP_W2_ADDR_0
Definition: 3c509.h:151
#define ETH_ALEN
Definition: if_ether.h:8
Definition: nic.h:49
unsigned char * node_addr
Definition: nic.h:52
static enum @8 connector
#define GO_WINDOW(b, x)
Definition: 3c509.h:75
#define DBG(...)
Print a debugging message.
Definition: compiler.h:498
struct nic_operations * nic_op
Definition: nic.h:50
#define htons(value)
Definition: byteswap.h:135
#define IS_UTP
Definition: 3c509.h:345
Definition: 3c5x9.c:35

References bnc, connector, DBG, EEPROM_PROD_ID, EP_W0_ADDRESS_CFG, EP_W0_CONFIG_CTRL, EP_W2_ADDR_0, ETH_ALEN, eth_ntoa(), get_e(), GO_WINDOW, htons, inw(), nic::ioaddr, IS_AUI, IS_BNC, IS_UTP, nic::nic_op, nic::node_addr, ntohs, outw, printf(), t509_operations, t509_reset(), and utp.

Referenced by el3_eisa_probe(), legacy_t509_probe(), and t529_probe().

◆ t5x9_disable()

void t5x9_disable ( struct nic nic)

Definition at line 40 of file 3c5x9.c.

40  {
41  /* stop card */
45  ;
48  udelay(1000);
56  /*
57  * wait for reset to complete
58  */
60  ;
62  GO_WINDOW(nic->ioaddr,0);
64  /* Disable the card */
67  /* Configure IRQ to none */
69 }
Definition: 3c509.h:225
uint16_t inw(volatile uint16_t *io_addr)
Read 16-bit word from I/O-mapped device.
#define RX_DISABLE
Definition: 3c509.h:221
#define outw(data, io_addr)
Definition: io.h:319
#define RX_RESET
Definition: 3c509.h:224
#define EP_STATUS
Definition: 3c509.h:111
Definition: 3c509.h:285
#define TX_RESET
Definition: 3c509.h:228
Definition: 3c509.h:121
unsigned int ioaddr
Definition: nic.h:55
#define TX_DISABLE
Definition: 3c509.h:227
void udelay(unsigned long usecs)
Delay for a fixed number of microseconds.
Definition: timer.c:60
#define SET_RD_0_MASK
Definition: 3c509.h:231
Definition: 3c509.h:232
Definition: 3c509.h:230
#define C_INTR_LATCH
Definition: 3c509.h:248
#define SET_IRQ(i)
Definition: 3c509.h:361
Definition: 3c509.h:123
Definition: nic.h:49
#define GO_WINDOW(b, x)
Definition: 3c509.h:75
#define EP_COMMAND
Definition: 3c509.h:109
Definition: 3c509.h:242


Referenced by el3_eisa_disable(), legacy_t509_disable(), t509_reset(), and t529_disable().