81#define VORTEX_BUS_MASTER
85#define TX_RING_SIZE 16
86#define RX_RING_SIZE 16
87#define PKT_BUF_SZ 1536
97#define CORKSCREW_ID 10
99#define EL3WINDOW(win_num) \
100 outw(SelectWindow + (win_num), nic->ioaddr + EL3_CMD)
102#define EL3_STATUS 0x0e
103#define RX_BYTES_MASK (unsigned short) (0x07ff)
145#if defined(CORKSCREW)
239#define vp NIC_FAKE_BSS_PTR ( struct corkscrew_private )
304 if (
vp->media_override != 7) {
305 DBG (
"Media override to transceiver %d (%s).\n",
309 }
else if (
vp->autoselect) {
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++)
379 if (
vp->full_bus_master_rx) {
380 printf(
"FIXME: Is this if necessary");
381 vp->cur_rx =
vp->dirty_rx = 0;
382 DBG (
" Filling in the Rx ring.\n" );
384 printf(
"FIXME: Is this if necessary");
387 if (
vp->full_bus_master_tx) {
388 vp->cur_tx =
vp->dirty_tx = 0;
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",
660 vp->product_name =
"3c515";
668 vp->media_override = 7;
688 for (i = 0; i < 0x18; i++) {
710 if (
eeprom[16] == 0x11c7) {
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",
736 vp->default_media = config.
u.
xcvr;
739 if (
vp->media_override != 7) {
740 printf(
" Media override to transceiver type %d (%s).\n",
747 vp->full_bus_master_tx = (
vp->capabilities & 0x20) ? 1 : 0;
750 vp->full_bus_master_rx = (
vp->capabilities & 0x20) ? 1 : 0;
764ISA_ROM (
"3c515",
"3c515 Fast EtherLink ISAPnP" );
static int corkscrew_probe1(int ioaddr, int irq, int product_index, struct nic *nic)
static void t515_reset(struct nic *nic)
static void t515_disable(struct nic *nic, struct isapnp_device *isapnp)
static int t515_poll(struct nic *nic, int retrieve)
static struct nic_operations t515_operations
static void t515_transmit(struct nic *nic, const char *d, unsigned int t, unsigned int s, const char *p)
static void t515_irq(struct nic *nic __unused, irq_action_t action __unused)
static struct isapnp_device_id t515_adapters[]
static int t515_probe(struct nic *nic, struct isapnp_device *isapnp)
static int corkscrew_found_device(int ioaddr, int irq, int product_index, int options, struct nic *nic)
static void t3c515_wait(unsigned int nticks)
#define EL3WINDOW(win_num)
static struct media_table media_tbl[]
#define NULL
NULL pointer (VOID *)
static unsigned long ioaddr
union @104331263140136355135267063077374276003064103115 u
uint32_t type
Operating system type.
const char * eth_ntoa(const void *ll_addr)
Transcribe Ethernet address.
#define __unused
Declare a variable or data structure as unused.
#define DBG(...)
Print a debugging message.
#define FILE_LICENCE(_licence)
Declare a particular licence as applying to a file.
#define outb(data, io_addr)
#define outw(data, io_addr)
#define insw(io_addr, data, count)
#define outl(data, io_addr)
#define outsw(io_addr, data, count)
#define ISA_ROM(IMAGE, DESCRIPTION)
#define ISAPNP_VENDOR(a, b, c)
static void deactivate_isapnp_device(struct isapnp_device *isapnp)
Deactivate ISAPnP device.
static void activate_isapnp_device(struct isapnp_device *isapnp)
Activate ISAPnP device.
int dummy_connect(struct nic *nic __unused)
#define DRIVER(_name_text, _unused2, _unused3, _name, _probe, _disable, _fake_bss)
#define ISAPNP_DRIVER(_name, _ids)
uint8_t checksum
Checksum.
struct boom_tx_desc tx_ring[TX_RING_SIZE]
struct sk_buff * tx_skbuff[TX_RING_SIZE]
unsigned int default_media
unsigned int full_bus_master_tx
struct boom_rx_desc rx_ring[RX_RING_SIZE]
unsigned int available_media
struct sk_buff * rx_skbuff[RX_RING_SIZE]
const char * product_name
struct net_device * next_module
unsigned int full_bus_master_rx
unsigned int media_override
An ISAPnP device ID list entry.
uint16_t ioaddr
I/O address.
uint8_t irqno
Interrupt number.
void(* irq)(struct nic *, irq_action_t)
unsigned char * node_addr
struct nic_operations * nic_op
unsigned long currticks(void)
Get current system time in ticks.
void udelay(unsigned long usecs)
Delay for a fixed number of microseconds.
struct wn3_config::w3_config_fields u
int printf(const char *fmt,...)
Write a formatted string to the console.