|
iPXE
|
Go to the source code of this file.
Data Structures | |
| struct | sis900_bss |
| struct | mii_chip_info |
| struct | mii_phy |
Macros | |
| #define | sis900_bufs NIC_FAKE_BSS ( struct sis900_bss ) |
| #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, void *hwdev) |
| 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_disable (struct nic *nic, void *hwdev __unused) |
| 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, sis900_bufs) | |
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 |
| static struct mii_chip_info | mii_chip_table [] |
| static struct mii_phy | mii |
| static struct pci_device_id | sis900_nics [] |
| #define sis900_bufs NIC_FAKE_BSS ( struct sis900_bss ) |
| FILE_LICENCE | ( | GPL_ANY | ) |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
Definition at line 336 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 464 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 522 of file sis900.c.
References MDC, MDDIR, MDIO, outl, and sis900_mdio_delay.
Referenced by sis900_mdio_read().
|
static |
Definition at line 514 of file sis900.c.
References MDC, MDDIR, MDIO, outl, and sis900_mdio_delay.
Referenced by sis900_mdio_read().
|
static |
Definition at line 535 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 619 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 681 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 824 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 1104 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 1183 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 |
|
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 181 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 215 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 253 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 296 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 648 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 720 of file sis900.c.
References inl(), ioaddr, outl, printf(), sis900_debug, txb, txd, txdp, u32, and virt_to_bus().
Definition at line 744 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 782 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 870 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 921 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 974 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 1014 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 1058 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 1242 of file sis900.c.
References cr, ier, imr, inl(), ioaddr, outl, RxDIS, sis900_init(), and TxDIS.
|
static |
Definition at line 1266 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 | , | ||
| sis900_bufs | |||
| ) |
|
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().
|
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().
1.8.15