iPXE
|
Go to the source code of this file.
Data Structures | |
struct | w840_rx_desc |
struct | w840_tx_desc |
struct | winbond_private |
Macros | |
#define | USE_IO_OPS |
#define | virt_to_le32desc(addr) virt_to_bus(addr) |
#define | le32desc_to_virt(addr) bus_to_virt(addr) |
#define | TX_RING_SIZE 2 |
#define | RX_RING_SIZE 2 |
#define | TX_FIFO_SIZE (2048) |
#define | TX_BUG_FIFO_LIMIT (TX_FIFO_SIZE-1514-16) |
#define | TX_TIMEOUT (10*1000) |
#define | PKT_BUF_SZ 1536 /* Size of each temporary Rx buffer.*/ |
#define | W840_FLAGS (PCI_USES_IO | PCI_ADDR0 | PCI_USES_MASTER) |
#define | readb inb |
#define | readw inw |
#define | readl inl |
#define | writeb outb |
#define | writew outw |
#define | writel outl |
#define | PRIV_ALIGN 15 /* Required alignment mask */ |
#define | PRIV_ALIGN_BYTES 32 |
#define | PCI_VENDOR_ID_WINBOND2 0x1050 |
#define | PCI_DEVICE_ID_WINBOND2_89C840 0x0840 |
#define | PCI_VENDOR_ID_COMPEX 0x11f6 |
#define | PCI_DEVICE_ID_COMPEX_RL100ATX 0x2011 |
#define | eeprom_delay(ee_addr) readl(ee_addr) |
#define | mdio_delay(mdio_addr) readl(mdio_addr) |
#define | MDIO_WRITE0 (MDIO_EnbOutput) |
#define | MDIO_WRITE1 (MDIO_DataOut | MDIO_EnbOutput) |
Functions | |
FILE_LICENCE (GPL2_OR_LATER) | |
static int | eeprom_read (long ioaddr, int location) |
static int | mdio_read (int base_address, int phy_id, int location) |
static void | check_duplex (void) |
static void | set_rx_mode (void) |
static void | init_ring (void) |
static void | w89c840_reset (struct nic *nic) |
static int | w89c840_poll (struct nic *nic, int retrieve) |
static void | w89c840_transmit (struct nic *nic, const char *d, unsigned int t, unsigned int s, const char *p) |
static void | w89c840_disable (struct nic *nic) |
static void | w89c840_irq (struct nic *nic __unused, irq_action_t action __unused) |
PCI_DRIVER (w89c840_driver, w89c840_nics, PCI_NO_CLASS) | |
static int | w89c840_probe (struct nic *nic, struct pci_device *p) |
static void | mdio_sync (long mdio_addr) |
DRIVER ("W89C840F", nic_driver, pci_driver, w89c840_driver, w89c840_probe, w89c840_disable) | |
Variables | |
static const char * | w89c840_version = "driver Version 0.94 - December 12, 2003" |
static u32 | driver_flags = CanHaveMII | HasBrokenTx |
static struct winbond_private | w840private |
static int | ioaddr |
static unsigned short | eeprom [0x40] |
struct { | |
char rx_packet [PKT_BUF_SZ *RX_RING_SIZE] | |
char tx_packet [PKT_BUF_SZ *TX_RING_SIZE] | |
} | __shared |
static struct nic_operations | w89c840_operations |
static struct pci_device_id | w89c840_nics [] |
static char | mii_preamble_required = 1 |
#define virt_to_le32desc | ( | addr | ) | virt_to_bus(addr) |
#define le32desc_to_virt | ( | addr | ) | bus_to_virt(addr) |
#define TX_BUG_FIFO_LIMIT (TX_FIFO_SIZE-1514-16) |
#define PKT_BUF_SZ 1536 /* Size of each temporary Rx buffer.*/ |
#define W840_FLAGS (PCI_USES_IO | PCI_ADDR0 | PCI_USES_MASTER) |
#define PCI_VENDOR_ID_WINBOND2 0x1050 |
#define PCI_DEVICE_ID_WINBOND2_89C840 0x0840 |
#define PCI_VENDOR_ID_COMPEX 0x11f6 |
#define PCI_DEVICE_ID_COMPEX_RL100ATX 0x2011 |
#define MDIO_WRITE0 (MDIO_EnbOutput) |
#define MDIO_WRITE1 (MDIO_DataOut | MDIO_EnbOutput) |
Enumerator | |
---|---|
CanHaveMII | |
KendinPktDropBug | |
CanHaveMII | |
HasBrokenTx |
Definition at line 134 of file w89c840.c.
enum w840_offsets |
Definition at line 169 of file w89c840.c.
enum intr_status_bits |
Definition at line 181 of file w89c840.c.
enum rx_mode_bits |
Enumerator | |
---|---|
AcceptAllIPMulti | |
AcceptMultiHash | |
AcceptAll | |
AcceptBroadcast | |
AcceptMulticast | |
AcceptMyPhys | |
AcceptErr | |
AcceptRunt | |
AcceptBroadcast | |
AcceptMulticast | |
AcceptAllPhys | |
AcceptMyPhys |
Definition at line 190 of file w89c840.c.
enum mii_reg_bits |
Enumerator | |
---|---|
MDIO_ShiftClk | |
MDIO_Data | |
MDIO_EnbOutput | |
MDIO_ShiftClk | |
MDIO_DataIn | |
MDIO_DataOut | |
MDIO_EnbOutput | |
MDIO_EnbIn |
Definition at line 196 of file w89c840.c.
enum desc_status_bits |
Definition at line 216 of file w89c840.c.
enum EEPROM_Ctrl_Bits |
Enumerator | |
---|---|
EE_ShiftClk | |
EE_Write0 | |
EE_Write1 | |
EE_ChipSelect | |
EE_DataIn |
Definition at line 736 of file w89c840.c.
enum EEPROM_Cmds |
Enumerator | |
---|---|
EE_WriteCmd | |
EE_ReadCmd | |
EE_EraseCmd |
FILE_LICENCE | ( | GPL2_OR_LATER | ) |
|
static |
Definition at line 746 of file w89c840.c.
References addr, EE_ChipSelect, EE_DataIn, EE_ReadCmd, EE_ShiftClk, EE_Write0, EE_Write1, EECtrl, eeprom_delay, read_cmd, readl, retval, and writel.
Referenced by w89c840_probe().
|
static |
Definition at line 809 of file w89c840.c.
References MDIO_DataIn, mdio_delay, MDIO_EnbIn, MDIO_ShiftClk, mdio_sync(), MDIO_WRITE0, MDIO_WRITE1, mii_preamble_required, MIICtrl, readl, retval, and writel.
Referenced by check_duplex(), and w89c840_probe().
|
static |
Definition at line 871 of file w89c840.c.
References winbond_private::advertising, winbond_private::csr6, winbond_private::duplex_lock, winbond_private::full_duplex, ioaddr, mdio_read(), winbond_private::phys, printf(), and w840private.
Referenced by w89c840_reset().
|
static |
Definition at line 894 of file w89c840.c.
References AcceptBroadcast, AcceptMulticast, AcceptMyPhys, winbond_private::csr6, ioaddr, memset(), MulticastFilter0, MulticastFilter1, NetworkConfig, printf(), w840private, and writel.
Referenced by w89c840_reset().
|
static |
Definition at line 920 of file w89c840.c.
References w840_rx_desc::buffer1, winbond_private::cur_rx, winbond_private::cur_tx, DescEndRing, DescIntr, DescOwn, winbond_private::dirty_rx, winbond_private::dirty_tx, w840_rx_desc::length, w840_rx_desc::next_desc, PKT_BUF_SZ, winbond_private::rx_buf_sz, winbond_private::rx_head_desc, winbond_private::rx_ring, RX_RING_SIZE, w840_rx_desc::status, w840_tx_desc::status, winbond_private::tx_full, winbond_private::tx_q_bytes, winbond_private::tx_ring, TX_RING_SIZE, virt_to_le32desc, and w840private.
Referenced by w89c840_reset().
|
static |
Definition at line 301 of file w89c840.c.
References check_duplex(), winbond_private::csr6, ETH_ALEN, init_ring(), ioaddr, nic::node_addr, PCIBusCfg, printf(), winbond_private::rx_ring, RxRingPtr, RxStartDemand, set_rx_mode(), StationAddr, winbond_private::tx_ring, TxRingPtr, virt_to_bus(), w840private, writeb, and writel.
Referenced by w89c840_disable(), w89c840_poll(), and w89c840_probe().
|
static |
Definition at line 377 of file w89c840.c.
References w840_rx_desc::buffer1, winbond_private::cur_rx, desc, DescOwn, IntrStatus, ioaddr, le32desc_to_virt, memcpy(), nic::packet, nic::packetlen, pkt_len, printf(), readl, winbond_private::rx_head_desc, winbond_private::rx_ring, RX_RING_SIZE, status, w840_rx_desc::status, w840private, and w89c840_reset().
|
static |
Definition at line 482 of file w89c840.c.
References w840_tx_desc::buffer1, winbond_private::cur_tx, currticks(), DescEndRing, DescIntr, DescOwn, DescWholePkt, winbond_private::drv_flags, ETH_ALEN, ETH_HLEN, ETH_ZLEN, HasBrokenTx, ioaddr, w840_tx_desc::length, memcpy(), nic::node_addr, printf(), w840_tx_desc::status, TX_BUG_FIFO_LIMIT, winbond_private::tx_full, winbond_private::tx_q_bytes, winbond_private::tx_ring, TX_RING_SIZE, TX_TIMEOUT, TxStartDemand, u16, u32, virt_to_le32desc, w840private, and writel.
|
static |
Definition at line 582 of file w89c840.c.
References winbond_private::csr6, ioaddr, NetworkConfig, w840private, w89c840_reset(), and writel.
|
static |
PCI_DRIVER | ( | w89c840_driver | , |
w89c840_nics | , | ||
PCI_NO_CLASS | |||
) |
|
static |
Definition at line 625 of file w89c840.c.
References adjust_pci_device(), winbond_private::advertising, CanHaveMII, DBG, pci_device::device, driver_flags, eeprom_read(), ETH_ALEN, eth_ntoa(), nic::ioaddr, pci_device::ioaddr, ioaddr, nic::irqno, mdio_read(), winbond_private::mii_cnt, nic::nic_op, nic::node_addr, PCI_DEVICE_ID_COMPEX_RL100ATX, PCI_DEVICE_ID_WINBOND2_89C840, PCI_VENDOR_ID_COMPEX, PCI_VENDOR_ID_WINBOND2, PCIBusCfg, winbond_private::phys, printf(), value, pci_device::vendor, w840private, w89c840_operations, w89c840_reset(), w89c840_version, and writel.
|
static |
Definition at line 796 of file w89c840.c.
References bits, mdio_delay, MDIO_ShiftClk, MDIO_WRITE1, and writel.
Referenced by mdio_read().
DRIVER | ( | "W89C840F" | , |
nic_driver | , | ||
pci_driver | , | ||
w89c840_driver | , | ||
w89c840_probe | , | ||
w89c840_disable | |||
) |
|
static |
Definition at line 88 of file w89c840.c.
Referenced by w89c840_probe().
|
static |
Definition at line 142 of file w89c840.c.
Referenced by w89c840_probe().
|
static |
Referenced by check_duplex(), init_ring(), set_rx_mode(), w89c840_disable(), w89c840_poll(), w89c840_probe(), w89c840_reset(), and w89c840_transmit().
|
static |
Definition at line 255 of file w89c840.c.
Referenced by check_duplex(), set_rx_mode(), w89c840_disable(), w89c840_poll(), w89c840_probe(), w89c840_reset(), and w89c840_transmit().
char rx_packet[PKT_BUF_SZ *RX_RING_SIZE] |
char tx_packet[PKT_BUF_SZ *TX_RING_SIZE] |
struct { ... } __shared |
|
static |
Definition at line 607 of file w89c840.c.
Referenced by w89c840_probe().
|
static |
|
static |
Definition at line 789 of file w89c840.c.
Referenced by mdio_read().