3c509.h File Reference

#include "nic.h"

Go to the source code of this file.

Defines

#define TX_INIT_RATE   16
#define TX_INIT_MAX_RATE   64
#define RX_INIT_LATENCY   64
#define RX_INIT_EARLY_THRESH   64
#define MIN_RX_EARLY_THRESHF   16
#define MIN_RX_EARLY_THRESHL   4
#define EEPROMSIZE   0x40
#define MAX_EEPROMBUSY   1000
#define EP_ID_PORT_START   0x110
#define EP_ID_PORT_INC   0x10
#define EP_ID_PORT_END   0x200
#define EP_TAG_MAX   0x7
#define EEPROM_CMD_RD   0x0080
#define EEPROM_CMD_WR   0x0040
#define EEPROM_CMD_ERASE   0x00c0
#define EEPROM_CMD_EWEN   0x0030
#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
#define EEPROM_NODE_ADDR_1   0x1
#define EEPROM_NODE_ADDR_2   0x2
#define EEPROM_PROD_ID   0x3
#define EEPROM_MFG_ID   0x7
#define EEPROM_ADDR_CFG   0x8
#define EEPROM_RESOURCE_CFG   0x9
#define EP_COMMAND   0x0e
#define EP_STATUS   0x0e
#define EP_WINDOW   0x0f
#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
#define EP_W1_TIMER   0x0a
#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 GLOBAL_RESET   (unsigned short) 0x0000
#define WINDOW_SELECT   (unsigned short) (0x1<<11)
#define START_TRANSCEIVER   (unsigned short) (0x2<<11)
#define RX_DISABLE   (unsigned short) (0x3<<11)
#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 TXS_STATUS_OVERFLOW   0x4
#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)
#define RX_BYTES_MASK   (unsigned short) (0x07ff)
#define RX_ERROR   0x4000
#define RX_INCOMPLETE   0x8000
#define MFG_ID   0x6d50
#define PROD_ID   0x9150
#define AUI   0x1
#define BNC   0x2
#define UTP   0x4
#define RX_BYTES_MASK   (unsigned short) (0x07ff)

Functions

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


Define 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.

#define RX_INIT_EARLY_THRESH   64

Definition at line 48 of file 3c509.h.

#define MIN_RX_EARLY_THRESHF   16

Definition at line 49 of file 3c509.h.

#define MIN_RX_EARLY_THRESHL   4

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.

Referenced by eeprom_rdy().

#define EP_ID_PORT_START   0x110

Definition at line 54 of file 3c509.h.

Referenced by t509_find_id_port().

#define EP_ID_PORT_INC   0x10

Definition at line 55 of file 3c509.h.

Referenced by t509_find_id_port().

#define EP_ID_PORT_END   0x200

Definition at line 56 of file 3c509.h.

Referenced by t509_find_id_port().

#define EP_TAG_MAX   0x7

Definition at line 57 of file 3c509.h.

#define EEPROM_CMD_RD   0x0080

Definition at line 63 of file 3c509.h.

Referenced by get_e().

#define EEPROM_CMD_WR   0x0040

Definition at line 64 of file 3c509.h.

#define EEPROM_CMD_ERASE   0x00c0

Definition at line 65 of file 3c509.h.

#define EEPROM_CMD_EWEN   0x0030

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.

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

Definition at line 74 of file 3c509.h.

Referenced by eeprom_rdy().

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

#define EEPROM_NODE_ADDR_0   0x0

Definition at line 87 of file 3c509.h.

#define EEPROM_NODE_ADDR_1   0x1

Definition at line 88 of file 3c509.h.

#define EEPROM_NODE_ADDR_2   0x2

Definition at line 89 of file 3c509.h.

#define EEPROM_PROD_ID   0x3

Definition at line 90 of file 3c509.h.

Referenced by t5x9_probe().

#define EEPROM_MFG_ID   0x7

Definition at line 91 of file 3c509.h.

Referenced by t509_isolate().

#define EEPROM_ADDR_CFG   0x8

Definition at line 92 of file 3c509.h.

Referenced by t509bus_probe().

#define EEPROM_RESOURCE_CFG   0x9

Definition at line 93 of file 3c509.h.

#define EP_COMMAND   0x0e

#define EP_STATUS   0x0e

Definition at line 111 of file 3c509.h.

Referenced by t509_poll(), t509_transmit(), and t5x9_disable().

#define EP_WINDOW   0x0f

Definition at line 113 of file 3c509.h.

#define EP_W0_EEPROM_DATA   0x0c

Definition at line 119 of file 3c509.h.

Referenced by get_e().

#define EP_W0_EEPROM_COMMAND   0x0a

Definition at line 120 of file 3c509.h.

Referenced by get_e().

#define EP_W0_RESOURCE_CFG   0x08

Definition at line 121 of file 3c509.h.

Referenced by t5x9_disable().

#define EP_W0_ADDRESS_CFG   0x06

Definition at line 122 of file 3c509.h.

Referenced by t5x9_probe().

#define EP_W0_CONFIG_CTRL   0x04

Definition at line 123 of file 3c509.h.

Referenced by t509_enable(), t5x9_disable(), and t5x9_probe().

#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.

Referenced by t509_transmit().

#define EP_W1_FREE_TX   0x0c

Definition at line 135 of file 3c509.h.

Referenced by t509_transmit().

#define EP_W1_TX_STATUS   0x0b

Definition at line 136 of file 3c509.h.

Referenced by t509_enable(), and t509_transmit().

#define EP_W1_TIMER   0x0a

Definition at line 137 of file 3c509.h.

#define EP_W1_RX_STATUS   0x08

Definition at line 138 of file 3c509.h.

Referenced by t509_poll().

#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.

Referenced by t509_poll().

#define EP_W2_ADDR_5   0x05

Definition at line 146 of file 3c509.h.

#define EP_W2_ADDR_4   0x04

Definition at line 147 of file 3c509.h.

#define EP_W2_ADDR_3   0x03

Definition at line 148 of file 3c509.h.

#define EP_W2_ADDR_2   0x02

Definition at line 149 of file 3c509.h.

#define EP_W2_ADDR_1   0x01

Definition at line 150 of file 3c509.h.

#define EP_W2_ADDR_0   0x00

Definition at line 151 of file 3c509.h.

Referenced by t509_enable(), and t5x9_probe().

#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.

Referenced by t509_enable().

#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.

#define GLOBAL_RESET   (unsigned short) 0x0000

Definition at line 212 of file 3c509.h.

Referenced by t509_deactivate_and_reset_tag(), and t595_probe().

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

Definition at line 214 of file 3c509.h.

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

Definition at line 215 of file 3c509.h.

Referenced by t509_enable(), and vxsetlink().

#define RX_DISABLE   (unsigned short) (0x3<<11)

Definition at line 221 of file 3c509.h.

Referenced by t595_reset(), and t5x9_disable().

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

Definition at line 223 of file 3c509.h.

Referenced by t509_enable(), and t595_reset().

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

Definition at line 224 of file 3c509.h.

Referenced by t509_enable(), t595_reset(), and t5x9_disable().

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

Definition at line 225 of file 3c509.h.

Referenced by t509_poll(), t595_poll(), t595_reset(), and t5x9_disable().

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

Definition at line 226 of file 3c509.h.

Referenced by t509_enable(), t509_transmit(), t595_reset(), and t595_transmit().

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

Definition at line 227 of file 3c509.h.

Referenced by t595_reset(), and t5x9_disable().

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

Definition at line 228 of file 3c509.h.

Referenced by t509_enable(), t509_transmit(), t595_reset(), t595_transmit(), and t5x9_disable().

#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.

Referenced by t509_enable(), t595_reset(), and t5x9_disable().

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

Definition at line 231 of file 3c509.h.

Referenced by t509_enable(), t595_reset(), and t5x9_disable().

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

Definition at line 232 of file 3c509.h.

Referenced by t509_enable(), t595_reset(), and t5x9_disable().

#define FIL_INDIVIDUAL   (unsigned short) (0x1)

Definition at line 233 of file 3c509.h.

Referenced by t509_enable(), and t595_reset().

#define FIL_GROUP   (unsigned short) (0x2)

Definition at line 234 of file 3c509.h.

Referenced by t509_enable().

#define FIL_BRDCST   (unsigned short) (0x4)

Definition at line 235 of file 3c509.h.

Referenced by t509_enable(), and t595_reset().

#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.

Referenced by t509_enable().

#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.

Referenced by t509_enable().

#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.

Referenced by t595_disable(), t595_reset(), t5x9_disable(), and vxsetlink().

#define ACK_INTR   (unsigned short) (0x6800)

Definition at line 247 of file 3c509.h.

Referenced by t509_enable(), t509_poll(), t595_poll(), and t595_reset().

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

Definition at line 248 of file 3c509.h.

Referenced by t509_poll(), t595_poll(), t595_reset(), and t5x9_disable().

#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.

Referenced by t595_reset().

#define S_TX_COMPLETE   (unsigned short) (0x4)

Definition at line 277 of file 3c509.h.

Referenced by t595_reset().

#define S_TX_AVAIL   (unsigned short) (0x8)

Definition at line 278 of file 3c509.h.

Referenced by t595_reset().

#define S_RX_COMPLETE   (unsigned short) (0x10)

Definition at line 279 of file 3c509.h.

Referenced by t509_poll(), t595_poll(), and t595_reset().

#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.

#define S_5_INTS

Value:

Definition at line 283 of file 3c509.h.

Referenced by t509_enable(), and t509_poll().

#define S_COMMAND_IN_PROGRESS   (unsigned short) (0x1000)

Definition at line 285 of file 3c509.h.

Referenced by t509_poll(), t509_transmit(), t595_poll(), t595_transmit(), and t5x9_disable().

#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.

Referenced by t509_poll(), and t595_poll().

#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.

Referenced by t509_transmit(), and t595_transmit().

#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.

Referenced by t509_transmit(), and t595_transmit().

#define TXS_MAX_COLLISION   0x8

Definition at line 335 of file 3c509.h.

Referenced by t509_transmit(), and t595_transmit().

#define TXS_STATUS_OVERFLOW   0x4

Definition at line 336 of file 3c509.h.

Referenced by t509_transmit(), and t595_transmit().

#define IS_AUI   (1<<13)

Definition at line 343 of file 3c509.h.

Referenced by t5x9_probe().

#define IS_BNC   (1<<12)

Definition at line 344 of file 3c509.h.

Referenced by t5x9_probe().

#define IS_UTP   (1<<9)

Definition at line 345 of file 3c509.h.

Referenced by t5x9_probe().

#define ENABLE_DRQ_IRQ   0x0001

Definition at line 347 of file 3c509.h.

Referenced by t509_enable().

#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.

Referenced by t509_enable(), and vxsetlink().

#define DISABLE_UTP   0x0

Definition at line 355 of file 3c509.h.

#define SET_IRQ (  )     ( ((i)<<12) | 0xF00)

Definition at line 361 of file 3c509.h.

Referenced by t5x9_disable().

#define RX_BYTES_MASK   (unsigned short) (0x07ff)

Definition at line 381 of file 3c509.h.

Referenced by t509_poll(), t515_poll(), and t595_poll().

#define RX_ERROR   0x4000

Definition at line 368 of file 3c509.h.

Referenced by eepro_poll().

#define RX_INCOMPLETE   0x8000

Definition at line 369 of file 3c509.h.

Referenced by t509_poll(), and t595_poll().

#define MFG_ID   0x6d50

Definition at line 374 of file 3c509.h.

Referenced by t509_isolate(), and t509bus_probe().

#define PROD_ID   0x9150

Definition at line 375 of file 3c509.h.

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

#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

FILE_LICENCE ( BSD3   ) 

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

Definition at line 342 of file 3c5x9.c.

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_reset(), and utp.

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

00343                                                                  {
00344         uint16_t prod_id;
00345         int i,j;
00346         unsigned short *p;
00347         
00348         /* Check product ID */
00349         prod_id = get_e ( nic->ioaddr, EEPROM_PROD_ID );
00350         if ( ( prod_id & prod_id_mask ) != prod_id_check ) {
00351                 printf ( "EEPROM Product ID is incorrect (%hx & %hx != %hx)\n",
00352                          prod_id, prod_id_mask, prod_id_check );
00353                 return 0;
00354         }
00355 
00356         /* test for presence of connectors */
00357         GO_WINDOW(nic->ioaddr,0);
00358         i = inw(nic->ioaddr + EP_W0_CONFIG_CTRL);
00359         j = (inw(nic->ioaddr + EP_W0_ADDRESS_CFG) >> 14) & 0x3;
00360 
00361         switch(j) {
00362         case 0:
00363                 if (i & IS_UTP) {
00364                         printf("10baseT\n");
00365                         connector = utp;
00366                 } else {
00367                         printf("10baseT not present\n");
00368                         return 0;
00369                 }
00370                 break;
00371         case 1:
00372                 if (i & IS_AUI) {
00373                         printf("10base5\n");
00374                 } else {
00375                         printf("10base5 not present\n");
00376                         return 0;
00377                 }
00378                 break;
00379         case 3:
00380                 if (i & IS_BNC) {
00381                         printf("10base2\n");
00382                         connector = bnc;
00383                 } else {
00384                         printf("10base2 not present\n");
00385                         return 0;
00386                 }
00387                 break;
00388         default:
00389                 printf("unknown connector\n");
00390                 return 0;
00391         }
00392 
00393         /*
00394         * Read the station address from the eeprom
00395         */
00396         p = (unsigned short *) nic->node_addr;
00397         for (i = 0; i < ETH_ALEN / 2; i++) {
00398                 p[i] = htons(get_e(nic->ioaddr,i));
00399                 GO_WINDOW(nic->ioaddr,2);
00400                 outw(ntohs(p[i]), nic->ioaddr + EP_W2_ADDR_0 + (i * 2));
00401         }
00402 
00403         DBG ( "Ethernet Address: %s\n", eth_ntoa ( nic->node_addr ) );
00404 
00405         t509_reset(nic);
00406 
00407         nic->nic_op = &t509_operations;
00408         return 1;
00409 
00410 }

void t5x9_disable ( struct nic nic  ) 

Definition at line 40 of file 3c5x9.c.

References C_INTR_LATCH, EP_COMMAND, EP_STATUS, EP_W0_CONFIG_CTRL, EP_W0_RESOURCE_CFG, GO_WINDOW, inw, nic::ioaddr, outw, RX_DISABLE, RX_DISCARD_TOP_PACK, RX_RESET, S_COMMAND_IN_PROGRESS, SET_INTR_MASK, SET_IRQ, SET_RD_0_MASK, SET_RX_FILTER, STOP_TRANSCEIVER, TX_DISABLE, TX_RESET, and udelay().

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

00040                                       {
00041         /* stop card */
00042         outw(RX_DISABLE, nic->ioaddr + EP_COMMAND);
00043         outw(RX_DISCARD_TOP_PACK, nic->ioaddr + EP_COMMAND);
00044         while (inw(nic->ioaddr + EP_STATUS) & S_COMMAND_IN_PROGRESS)
00045                 ;
00046         outw(TX_DISABLE, nic->ioaddr + EP_COMMAND);
00047         outw(STOP_TRANSCEIVER, nic->ioaddr + EP_COMMAND);
00048         udelay(1000);
00049         outw(RX_RESET, nic->ioaddr + EP_COMMAND);
00050         outw(TX_RESET, nic->ioaddr + EP_COMMAND);
00051         outw(C_INTR_LATCH, nic->ioaddr + EP_COMMAND);
00052         outw(SET_RD_0_MASK, nic->ioaddr + EP_COMMAND);
00053         outw(SET_INTR_MASK, nic->ioaddr + EP_COMMAND);
00054         outw(SET_RX_FILTER, nic->ioaddr + EP_COMMAND);
00055 
00056         /*
00057          * wait for reset to complete
00058          */
00059         while (inw(nic->ioaddr + EP_STATUS) & S_COMMAND_IN_PROGRESS)
00060                 ;
00061 
00062         GO_WINDOW(nic->ioaddr,0);
00063 
00064         /* Disable the card */
00065         outw(0, nic->ioaddr + EP_W0_CONFIG_CTRL);
00066 
00067         /* Configure IRQ to none */
00068         outw(SET_IRQ(0), nic->ioaddr + EP_W0_RESOURCE_CFG);
00069 }


Generated on Tue Apr 6 20:01:18 2010 for gPXE by  doxygen 1.5.7.1