iPXE
|
Go to the source code of this file.
Data Structures | |
struct | mii_chip_info |
struct | mii_phy |
Macros | |
#define | txd sis900_bufs.txd |
#define | rxd sis900_bufs.rxd |
#define | txb sis900_bufs.txb |
#define | rxb sis900_bufs.rxb |
#define | eeprom_delay() inl(ee_addr) |
#define | sis900_mdio_delay() inl(mdio_addr) |
Functions | |
FILE_LICENCE (GPL_ANY) | |
static void | sis900_read_mode (struct nic *nic, int phy_addr, int *speed, int *duplex) |
static void | amd79c901_read_mode (struct nic *nic, int phy_addr, int *speed, int *duplex) |
static void | ics1893_read_mode (struct nic *nic, int phy_addr, int *speed, int *duplex) |
static void | rtl8201_read_mode (struct nic *nic, int phy_addr, int *speed, int *duplex) |
static void | vt6103_read_mode (struct nic *nic, int phy_addr, int *speed, int *duplex) |
static int | sis900_probe (struct nic *nic, struct pci_device *pci) |
static u16 | sis900_read_eeprom (int location) |
static void | sis900_mdio_reset (long mdio_addr) |
static void | sis900_mdio_idle (long mdio_addr) |
static u16 | sis900_mdio_read (int phy_id, int location) |
static void | sis900_init (struct nic *nic) |
static void | sis900_reset (struct nic *nic) |
static void | sis900_init_rxfilter (struct nic *nic) |
static void | sis900_init_txd (struct nic *nic) |
static void | sis900_init_rxd (struct nic *nic) |
static void | sis900_set_rx_mode (struct nic *nic) |
static void | sis900_check_mode (struct nic *nic) |
static void | sis900_transmit (struct nic *nic, const char *d, unsigned int t, unsigned int s, const char *p) |
static int | sis900_poll (struct nic *nic, int retrieve) |
static void | sis900_disable (struct nic *nic) |
static void | sis900_irq (struct nic *nic, irq_action_t action) |
static int | sis900_get_mac_addr (struct pci_device *pci_dev __unused, struct nic *nic) |
sis900_get_mac_addr: - Get MAC address for stand alone SiS900 model @pci_dev: the sis900 pci device @net_dev: the net device to get address for More... | |
static int | sis96x_get_mac_addr (struct pci_device *pci_dev __unused, struct nic *nic) |
sis96x_get_mac_addr: - Get MAC address for SiS962 or SiS963 model @pci_dev: the sis900 pci device @net_dev: the net device to get address for More... | |
static int | sis630e_get_mac_addr (struct pci_device *pci_dev __unused, struct nic *nic __unused) |
sis630e_get_mac_addr: - Get MAC address for SiS630E model @pci_dev: the sis900 pci device @net_dev: the net device to get address for More... | |
static int | sis635_get_mac_addr (struct pci_device *pci_dev __unused, struct nic *nic) |
sis630e_get_mac_addr: - Get MAC address for SiS630E model @pci_dev: the sis900 pci device @net_dev: the net device to get address for More... | |
static void | sis900_reset (struct nic *nic __unused) |
static void | sis900_init_txd (struct nic *nic __unused) |
static void | sis900_init_rxd (struct nic *nic __unused) |
static void | sis900_set_rx_mode (struct nic *nic __unused) |
static void | sis900_read_mode (struct nic *nic __unused, int phy_addr, int *speed, int *duplex) |
static void | amd79c901_read_mode (struct nic *nic __unused, int phy_addr, int *speed, int *duplex) |
static void | ics1893_read_mode (struct nic *nic __unused, int phy_addr, int *speed, int *duplex) |
ics1893_read_mode: - read media mode for ICS1893 PHY @net_dev: the net device to read mode for @phy_addr: mii phy address @speed: the transmit speed to be determined @duplex: the duplex mode to be determined More... | |
static void | rtl8201_read_mode (struct nic *nic __unused, int phy_addr, int *speed, int *duplex) |
rtl8201_read_mode: - read media mode for rtl8201 phy @nic: the net device to read mode for @phy_addr: mii phy address @speed: the transmit speed to be determined @duplex: the duplex mode to be determined More... | |
static void | vt6103_read_mode (struct nic *nic __unused, int phy_addr, int *speed, int *duplex) |
vt6103_read_mode: - read media mode for vt6103 phy @nic: the net device to read mode for @phy_addr: mii phy address @speed: the transmit speed to be determined @duplex: the duplex mode to be determined More... | |
static void | sis900_irq (struct nic *nic __unused, irq_action_t action __unused) |
PCI_DRIVER (sis900_driver, sis900_nics, PCI_NO_CLASS) | |
DRIVER ("SIS900", nic_driver, pci_driver, sis900_driver, sis900_probe, sis900_disable) | |
Variables | |
static struct nic_operations | sis900_operations |
static int | sis900_debug = 0 |
static unsigned short | vendor |
static unsigned short | dev_id |
static unsigned long | ioaddr |
static u8 | pci_revision |
static unsigned int | cur_phy |
static unsigned int | cur_rx |
struct { | |
BufferDesc txd | |
BufferDesc rxd [NUM_RX_DESC] | |
unsigned char txb [TX_BUF_SIZE] | |
unsigned char rxb [NUM_RX_DESC *RX_BUF_SIZE] | |
} | __shared |
static struct mii_chip_info | mii_chip_table [] |
static struct mii_phy | mii |
static struct pci_device_id | sis900_nics [] |
FILE_LICENCE | ( | GPL_ANY | ) |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
Definition at line 335 of file sis900.c.
References ACCESSMODE, adjust_pci_device(), mii_phy::chip_info, cr, cur_phy, DBG, dev_id, pci_device::device, inl(), nic::ioaddr, ioaddr, pci_device::ioaddr, nic::irqno, mii, mii_chip_table, MII_PHY_ID0, MII_PHY_ID1, MII_STATUS, mii_chip_info::name, name, mii_phy::next, nic::nic_op, NULL, outl, pci_read_config_byte(), PCI_REVISION, pci_revision, pci_write_config_dword(), mii_phy::phy_addr, mii_chip_info::phy_id1, printf(), revision, SIS630E_900_REV, sis630e_get_mac_addr(), SIS630ET_900_REV, sis635_get_mac_addr(), sis900_get_mac_addr(), sis900_init(), sis900_mdio_read(), sis900_operations, SIS96x_900_REV, sis96x_get_mac_addr(), mii_phy::status, vendor, and pci_device::vendor.
|
static |
Definition at line 463 of file sis900.c.
References EECLK, EECS, EEDI, EEDO, eeprom_delay, EEread, inl(), ioaddr, mear, outl, read_cmd, and retval.
Referenced by sis900_get_mac_addr(), and sis96x_get_mac_addr().
|
static |
Definition at line 521 of file sis900.c.
References MDC, MDDIR, MDIO, outl, and sis900_mdio_delay.
Referenced by sis900_mdio_read().
|
static |
Definition at line 513 of file sis900.c.
References MDC, MDDIR, MDIO, outl, and sis900_mdio_delay.
Referenced by sis900_mdio_read().
|
static |
Definition at line 534 of file sis900.c.
References inl(), ioaddr, MDC, MDDIR, MDIO, mear, MIIpmdShift, MIIread, MIIregShift, outl, retval, sis900_mdio_delay, sis900_mdio_idle(), and sis900_mdio_reset().
Referenced by amd79c901_read_mode(), ics1893_read_mode(), rtl8201_read_mode(), sis900_probe(), sis900_read_mode(), and vt6103_read_mode().
|
static |
Definition at line 618 of file sis900.c.
References cr, inl(), ioaddr, outl, RxENA, sis900_check_mode(), sis900_init_rxd(), sis900_init_rxfilter(), sis900_init_txd(), sis900_reset(), and sis900_set_rx_mode().
Referenced by sis900_disable(), and sis900_probe().
|
static |
Referenced by sis900_init().
|
static |
Definition at line 680 of file sis900.c.
References inl(), ioaddr, nic::node_addr, outl, printf(), RFADDR_shift, rfcr, rfdr, RFEN, sis900_debug, and u32.
Referenced by sis900_init().
|
static |
Referenced by sis900_init().
|
static |
Referenced by sis900_init().
|
static |
Referenced by sis900_init().
|
static |
Definition at line 823 of file sis900.c.
References cfg, mii_phy::chip_info, cur_phy, DMA_BURST_512, DMA_BURST_64, EDB_MASTER_EN, FDX_CAPABLE_FULL_SELECTED, HW_SPEED_10_MBPS, HW_SPEED_HOME, inl(), ioaddr, mii, outl, mii_chip_info::read_mode, RxATX, rxcfg, RxDRNT_10, RxDRNT_100, RxDRNT_shift, RxMXDMA_shift, TX_FILL_THRESH, TxATP, txcfg, TxCSI, TxDRNT_10, TxDRNT_100, TxDRNT_shift, TxFILLT_shift, TxHBI, and TxMXDMA_shift.
Referenced by sis900_init().
|
static |
Definition at line 1103 of file sis900.c.
References ABORT, cr, currticks(), DSIZE, ETH_ALEN, ETH_HLEN, ETH_ZLEN, htons, imr, inl(), ioaddr, memcpy(), nic::node_addr, outl, OWCOLL, OWN, printf(), sis900_debug, TX_TIMEOUT, txb, txd, TxDIS, txdp, TxENA, u32, UNDERRUN, and virt_to_bus().
|
static |
Definition at line 1182 of file sis900.c.
References ABORT, cr, CRC_SIZE, CRCERR, cur_rx, DSIZE, FAERR, inl(), ioaddr, isr, memcpy(), NUM_RX_DESC, outl, OVERRUN, OWN, nic::packet, nic::packetlen, printf(), RUNT, RX_BUF_SIZE, rxb, rxd, RxENA, RXISERR, sis900_debug, TOOLONG, and virt_to_bus().
|
static |
Definition at line 1241 of file sis900.c.
References cr, ier, imr, inl(), ioaddr, outl, RxDIS, sis900_init(), and TxDIS.
|
static |
|
static |
sis900_get_mac_addr: - Get MAC address for stand alone SiS900 model @pci_dev: the sis900 pci device @net_dev: the net device to get address for
Older SiS900 and friends, use EEPROM to store MAC address. MAC address is read from read_eeprom() into @net_dev->dev_addr.
Definition at line 180 of file sis900.c.
References EEPROMMACAddr, EEPROMSignature, nic::node_addr, printf(), signature, sis900_read_eeprom(), and u16.
Referenced by sis900_probe().
|
static |
sis96x_get_mac_addr: - Get MAC address for SiS962 or SiS963 model @pci_dev: the sis900 pci device @net_dev: the net device to get address for
SiS962 or SiS963 model, use EEPROM to store MAC address. And EEPROM is shared by LAN and 1394. When access EEPROM, send EEREQ signal to hardware first and wait for EEGNT. If EEGNT is ON, EEPROM is permitted to be access by LAN, otherwise is not. After MAC address is read from EEPROM, send EEDONE signal to refuse EEPROM access by LAN. The EEPROM map of SiS962 or SiS963 is different to SiS900. The signature field in SiS962 or SiS963 spec is meaningless. MAC address is read into @net_dev->dev_addr.
Definition at line 214 of file sis900.c.
References EEDONE, EEGNT, EEPROMMACAddr, EEREQ, inl(), ioaddr, mear, nic::node_addr, outl, printf(), sis900_read_eeprom(), and udelay().
Referenced by sis900_probe().
|
static |
sis630e_get_mac_addr: - Get MAC address for SiS630E model @pci_dev: the sis900 pci device @net_dev: the net device to get address for
SiS630E model, use APC CMOS RAM to store MAC address. APC CMOS RAM is accessed through ISA bridge. MAC address is read into @net_dev->dev_addr.
Definition at line 252 of file sis900.c.
References ETH_ALEN, inb(), memset(), nic::node_addr, outb, pci_read_config_byte(), pci_write_config_byte(), reg, and u.
Referenced by sis900_probe().
|
static |
sis630e_get_mac_addr: - Get MAC address for SiS630E model @pci_dev: the sis900 pci device @net_dev: the net device to get address for
SiS630E model, use APC CMOS RAM to store MAC address. APC CMOS RAM is accessed through ISA bridge. MAC address is read into @net_dev->dev_addr.
Definition at line 295 of file sis900.c.
References cr, inl(), inw(), ioaddr, nic::node_addr, outl, RELOAD, RFADDR_shift, rfcr, rfdr, and RFEN.
Referenced by sis900_probe().
Definition at line 647 of file sis900.c.
References cfg, cr, ier, imr, inl(), ioaddr, isr, outl, pci_revision, PESEL, RESET, rfcr, RND_CNT, RxRCMP, RxRESET, SIS635A_900_REV, SIS900B_900_REV, status, TxRCMP, and TxRESET.
Definition at line 719 of file sis900.c.
References inl(), ioaddr, outl, printf(), sis900_debug, txb, txd, txdp, u32, and virt_to_bus().
Definition at line 743 of file sis900.c.
References bufptr, cmdsts, cur_rx, inl(), ioaddr, link, NUM_RX_DESC, outl, printf(), RX_BUF_SIZE, rxb, rxd, rxdp, sis900_debug, u32, and virt_to_bus().
Definition at line 781 of file sis900.c.
References ioaddr, outl, pci_revision, RFAAB, RFAAM, RFADDR_shift, rfcr, rfdr, RFEN, SIS635A_900_REV, and SIS900B_900_REV.
|
static |
Definition at line 869 of file sis900.c.
References FDX_CAPABLE_FULL_SELECTED, FDX_CAPABLE_HALF_SELECTED, HW_SPEED_100_MBPS, HW_SPEED_10_MBPS, MII_CNTL_FDX, MII_CONTROL, MII_NWAY_T_FDX, MII_NWAY_TX, MII_NWAY_TX_FDX, MII_PHY_ID0, MII_PHY_ID1, MII_STSOUT, MII_STSOUT_LINK_FAIL, printf(), sis900_mdio_read(), and status.
|
static |
Definition at line 920 of file sis900.c.
References FDX_CAPABLE_FULL_SELECTED, FDX_CAPABLE_HALF_SELECTED, HW_SPEED_100_MBPS, HW_SPEED_10_MBPS, HW_SPEED_HOME, MII_STAT_CAN_AUTO, MII_STAT_LINK, MII_STATUS, MII_STATUS_SUMMARY, MII_STSSUM_DPLX, MII_STSSUM_LINK, MII_STSSUM_SPD, printf(), sis900_mdio_read(), and status.
|
static |
ics1893_read_mode: - read media mode for ICS1893 PHY @net_dev: the net device to read mode for @phy_addr: mii phy address @speed: the transmit speed to be determined @duplex: the duplex mode to be determined
ICS1893 PHY use Quick Poll Detailed Status register to determine the speed and duplex mode for sis900
Definition at line 973 of file sis900.c.
References FDX_CAPABLE_FULL_SELECTED, FDX_CAPABLE_HALF_SELECTED, HW_SPEED_100_MBPS, HW_SPEED_10_MBPS, MII_QPDSTS, MII_STSICS_DPLX, MII_STSICS_LINKSTS, MII_STSICS_SPD, printf(), sis900_mdio_read(), and status.
|
static |
rtl8201_read_mode: - read media mode for rtl8201 phy @nic: the net device to read mode for @phy_addr: mii phy address @speed: the transmit speed to be determined @duplex: the duplex mode to be determined
read MII_STATUS register from rtl8201 phy to determine the speed and duplex mode for sis900
Definition at line 1013 of file sis900.c.
References FDX_CAPABLE_FULL_SELECTED, FDX_CAPABLE_HALF_SELECTED, HW_SPEED_100_MBPS, HW_SPEED_10_MBPS, MII_STAT_CAN_T, MII_STAT_CAN_T_FDX, MII_STAT_CAN_TX, MII_STAT_CAN_TX_FDX, MII_STAT_LINK, MII_STATUS, printf(), sis900_mdio_read(), and status.
|
static |
vt6103_read_mode: - read media mode for vt6103 phy @nic: the net device to read mode for @phy_addr: mii phy address @speed: the transmit speed to be determined @duplex: the duplex mode to be determined
read MII_STATUS register from rtl8201 phy to determine the speed and duplex mode for sis900
Definition at line 1057 of file sis900.c.
References FDX_CAPABLE_FULL_SELECTED, FDX_CAPABLE_HALF_SELECTED, HW_SPEED_100_MBPS, HW_SPEED_10_MBPS, MII_STAT_CAN_T, MII_STAT_CAN_T_FDX, MII_STAT_CAN_TX, MII_STAT_CAN_TX_FDX, MII_STAT_LINK, MII_STATUS, printf(), sis900_mdio_read(), and status.
|
static |
Definition at line 1265 of file sis900.c.
References DISABLE, ENABLE, FORCE, imr, ioaddr, outl, RxERR, RxOK, RxORN, RxSOVR, TxERR, TxIDLE, and TxURN.
PCI_DRIVER | ( | sis900_driver | , |
sis900_nics | , | ||
PCI_NO_CLASS | |||
) |
DRIVER | ( | "SIS900" | , |
nic_driver | , | ||
pci_driver | , | ||
sis900_driver | , | ||
sis900_probe | , | ||
sis900_disable | |||
) |
|
static |
Definition at line 56 of file sis900.c.
Referenced by sis900_probe().
|
static |
Definition at line 58 of file sis900.c.
Referenced by sis900_init_rxd(), sis900_init_rxfilter(), sis900_init_txd(), sis900_poll(), and sis900_transmit().
|
static |
Definition at line 60 of file sis900.c.
Referenced by sis900_probe().
|
static |
Definition at line 60 of file sis900.c.
Referenced by sis900_probe().
|
static |
Definition at line 61 of file sis900.c.
Referenced by sis635_get_mac_addr(), sis900_check_mode(), sis900_disable(), sis900_init(), sis900_init_rxd(), sis900_init_rxfilter(), sis900_init_txd(), sis900_irq(), sis900_mdio_read(), sis900_poll(), sis900_probe(), sis900_read_eeprom(), sis900_reset(), sis900_set_rx_mode(), sis900_transmit(), and sis96x_get_mac_addr().
|
static |
Definition at line 62 of file sis900.c.
Referenced by sis900_probe(), sis900_reset(), and sis900_set_rx_mode().
|
static |
Definition at line 64 of file sis900.c.
Referenced by sis900_check_mode(), and sis900_probe().
|
static |
Definition at line 66 of file sis900.c.
Referenced by sis900_init_rxd(), and sis900_poll().
BufferDesc txd |
BufferDesc rxd[NUM_RX_DESC] |
unsigned char txb[TX_BUF_SIZE] |
unsigned char rxb[NUM_RX_DESC *RX_BUF_SIZE] |
struct { ... } __shared |
|
static |
Referenced by sis900_probe().
|
static |
Referenced by mii_check_link(), mii_dump(), mii_find(), mii_init(), mii_read(), mii_reset(), mii_restart(), mii_write(), pcnet32_chip_detect(), sis900_check_mode(), and sis900_probe().