82 #define VORTEX_BUS_MASTER 86 #define TX_RING_SIZE 16 87 #define RX_RING_SIZE 16 88 #define PKT_BUF_SZ 1536 92 #define DRIVER_DEBUG 1 98 #define CORKSCREW_ID 10 100 #define EL3WINDOW(win_num) \ 101 outw(SelectWindow + (win_num), nic->ioaddr + EL3_CMD) 103 #define EL3_STATUS 0x0e 104 #define RX_BYTES_MASK (unsigned short) (0x07ff) 146 #if defined(CORKSCREW) 305 DBG (
"Media override to transceiver %d (%s).\n",
315 DBG (
"Initial media type %s.\n",
323 DBG (
"corkscrew_open() InternalConfig 0x%hX.\n",
327 for (
i = 20;
i >= 0;
i--)
333 for (
i = 20;
i >= 0;
i--)
341 DBG (
"FIXME: fix print for irq, not 9" );
342 DBG (
"corkscrew_open() irq %d media status 0x%hX.\n",
348 for (
i = 0;
i < 6;
i++)
350 for (;
i < 12;
i += 2)
363 for (
i = 0;
i < 10;
i++)
380 printf(
"FIXME: Is this if necessary");
382 DBG (
" Filling in the Rx ring.\n" );
384 printf(
"FIXME: Is this if necessary");
421 register short rx_fifo;
447 if ( ! retrieve )
return 1;
449 DBG (
"[l=%d", rx_fifo );
467 DBG (
"+%d", rx_fifo );
481 unsigned short type = 0;
625 DBG (
"3c515 ioaddr mismatch\n" );
640 DBG (
"3c515 read incorrect vendor ID from EEPROM" );
645 DBG (
"3c515 Resource configuration register 0x%X, DCR 0x%hX.\n",
688 for (i = 0; i < 0x18; i++) {
710 if (
eeprom[16] == 0x11c7) {
715 if ( (irq <= 0 || irq > 15) ) {
716 DBG (
" *** Warning: this IRQ is unlikely to work! ***\n" );
720 char *ram_split[] = {
"5:3",
"3:1",
"1:1",
"3:5" };
725 DBG (
" Internal config register is %4.4x, " 726 "transceivers 0x%hX.\n",
729 (
" %dK %s-wide RAM %s Rx:Tx split, %s%s interface.\n",
740 printf(
" Media override to transceiver type %d (%s).\n",
764 ISA_ROM (
"3c515",
"3c515 Fast EtherLink ISAPnP" );
struct sk_buff * tx_skbuff[TX_RING_SIZE]
static void t515_irq(struct nic *nic __unused, irq_action_t action __unused)
uint8_t checksum
Checksum.
struct boom_tx_desc tx_ring[TX_RING_SIZE]
int printf(const char *fmt,...)
Write a formatted string to the console.
uint16_t inw(volatile uint16_t *io_addr)
Read 16-bit word from I/O-mapped device.
static void deactivate_isapnp_device(struct isapnp_device *isapnp)
Deactivate ISAPnP device.
const char * product_name
#define outw(data, io_addr)
An ISAPnP device ID list entry.
unsigned int full_bus_master_rx
uint32_t type
Operating system type.
static int corkscrew_probe1(int ioaddr, int irq, int product_index, struct nic *nic)
void outsw(volatile uint16_t *io_addr, const uint16_t *data, unsigned int count)
Write 16-bit words to I/O-mapped device.
void(* irq)(struct nic *, irq_action_t)
uint16_t ioaddr
I/O address.
int dummy_connect(struct nic *nic __unused)
static int t515_probe(struct nic *nic, struct isapnp_device *isapnp)
unsigned int available_media
FILE_LICENCE(GPL2_OR_LATER)
static void t515_disable(struct nic *nic, struct isapnp_device *isapnp)
static unsigned long ioaddr
struct sk_buff * rx_skbuff[RX_RING_SIZE]
struct boom_rx_desc rx_ring[RX_RING_SIZE]
static struct nic_operations t515_operations
#define __unused
Declare a variable or data structure as unused.
static void t515_transmit(struct nic *nic, const char *d, unsigned int t, unsigned int s, const char *p)
void udelay(unsigned long usecs)
Delay for a fixed number of microseconds.
#define EL3WINDOW(win_num)
unsigned int default_media
static void t3c515_wait(unsigned int nticks)
#define ISAPNP_VENDOR(a, b, c)
#define outl(data, io_addr)
const char * eth_ntoa(const void *ll_addr)
Transcribe Ethernet address.
void insw(volatile uint16_t *io_addr, uint16_t *data, unsigned int count)
Read 16-bit words from I/O-mapped device.
uint8_t inb(volatile uint8_t *io_addr)
Read byte from I/O-mapped device.
static struct isapnp_device_id t515_adapters[]
struct net_device * next_module
struct wn3_config::w3_config_fields u
static struct corkscrew_private * vp
uint8_t irqno
Interrupt number.
unsigned char * node_addr
#define outb(data, io_addr)
static void t515_reset(struct nic *nic)
static void activate_isapnp_device(struct isapnp_device *isapnp)
Activate ISAPnP device.
static struct timer * timer
Current timer.
uint32_t inl(volatile uint32_t *io_addr)
Read 32-bit dword from I/O-mapped device.
unsigned int full_bus_master_tx
static int t515_poll(struct nic *nic, int retrieve)
unsigned int media_override
unsigned long currticks(void)
Get current system time in ticks.
#define DBG(...)
Print a debugging message.
struct nic_operations * nic_op
int(* connect)(struct nic *)
#define NULL
NULL pointer (VOID *)
static struct media_table media_tbl[]
static int corkscrew_found_device(int ioaddr, int irq, int product_index, int options, struct nic *nic)
ISAPNP_DRIVER(t515_driver, t515_adapters)
if(natsemi->flags &NATSEMI_64BIT) return 1
DRIVER("3c515", nic_driver, isapnp_driver, t515_driver, t515_probe, t515_disable)
ISA_ROM("3c515", "3c515 Fast EtherLink ISAPnP")