Lines Matching +full:fast +full:- +full:read

1 /* -*- Mode:C; c-basic-offset:4; -*- */
4 sis900.c: An SiS 900/7016 PCI Fast Ethernet driver for Etherboot
12 and modified by Ollie Lho and Chin-Shan Li of SiS Corporation.
19 SiS 7016 Fast Ethernet PCI Bus 10/100 Mbps LAN Controller with OnNow Support,
21 SiS 900 Fast Ethernet PCI Bus 10/100 Mbps LAN Single Chip with OnNow Support,
23 SiS 7014 Single Chip 100BASE-TX/10BASE-T Physical Layer Solution,
30 07 Dec 2003 timlegge - Enabled Multicast Support
31 06 Dec 2003 timlegge - Fixed relocation issue in 5.2
32 04 Jan 2002 Chien-Yu Chen, Doug Ambrisko, Marty Connor Patch to Etherboot 5.0.5
75 { "SiS 900 PCI Fast Ethernet", PCI_VENDOR_ID_SIS, PCI_DEVICE_ID_SIS900,
77 { "SiS 7016 PCI Fast Ethernet",PCI_VENDOR_ID_SIS, PCI_DEVICE_ID_SIS7016,
97 {"AMD 79C901 10BASE-T PHY", 0x0000, 0x35b9, amd79c901_read_mode},
157 * sis900_get_mac_addr: - Get MAC address for stand alone SiS900 model
162 * MAC address is read from read_eeprom() into @net_dev->dev_addr.
173 printf ("sis900_probe: Error EERPOM read %hX\n", signature); in sis900_get_mac_addr()
179 ((u16 *)(nic->node_addr))[i] = sis900_read_eeprom(i+EEPROMMACAddr); in sis900_get_mac_addr()
184 * sis96x_get_mac_addr: - Get MAC address for SiS962 or SiS963 model
192 * by LAN, otherwise is not. After MAC address is read from EEPROM, send
196 * MAC address is read into @net_dev->dev_addr.
201 /* long ioaddr = net_dev->base_addr; */ in sis96x_get_mac_addr()
214 ((u16 *)(nic->node_addr))[i] = sis900_read_eeprom(i+EEPROMMACAddr); in sis96x_get_mac_addr()
228 * sis630e_get_mac_addr: - Get MAC address for SiS630E model
234 * MAC address is read into @net_dev->dev_addr.
247 } while(p->driver && p->driver != &sis_bridge_driver); in sis630e_get_mac_addr()
250 if (!p->driver) in sis630e_get_mac_addr()
253 pcibios_read_config_byte(p->bus,p->devfn, 0x48, &reg); in sis630e_get_mac_addr()
254 pcibios_write_config_byte(p->bus,p->devfn, 0x48, reg | 0x40); in sis630e_get_mac_addr()
259 ((u8 *)(nic->node_addr))[i] = inb(0x71); in sis630e_get_mac_addr()
261 pcibios_write_config_byte(p->bus,p->devfn, 0x48, reg & ~0x40); in sis630e_get_mac_addr()
267 * sis630e_get_mac_addr: - Get MAC address for SiS630E model
273 * MAC address is read into @net_dev->dev_addr.
293 *( ((u16 *)nic->node_addr) + i) = inw(ioaddr + rfdr); in sis635_get_mac_addr()
325 if (pci->ioaddr == 0) in sis900_probe()
328 nic->irqno = 0; in sis900_probe()
329 nic->ioaddr = pci->ioaddr & ~3; in sis900_probe()
330 ioaddr = pci->ioaddr & ~3; in sis900_probe()
331 vendor = pci->vendor; in sis900_probe()
332 dev_id = pci->dev_id; in sis900_probe()
335 pcibios_write_config_dword(pci->bus, pci->devfn, 0x40, 0x00000000); in sis900_probe()
341 pcibios_read_config_byte(pci->bus,pci->devfn, PCI_REVISION, &revision); in sis900_probe()
361 /* 630ET : set the mii access mode as software-mode */ in sis900_probe()
366 nic->node_addr, ioaddr); in sis900_probe()
411 printf("sis900_probe: Using %s as default\n", mii.chip_info->name); in sis900_probe()
416 dev->disable = sis900_disable; in sis900_probe()
417 nic->poll = sis900_poll; in sis900_probe()
418 nic->transmit = sis900_transmit; in sis900_probe()
419 nic->irq = sis900_irq; in sis900_probe()
425 * EEPROM Routines: These functions read and write to EEPROM for
443 /* Read Serial EEPROM through EEPROM Access Register, Note that location is
457 /* Shift the read command (9) bits out. */ in sis900_read_eeprom()
458 for (i = 8; i >= 0; i--) { in sis900_read_eeprom()
468 /* read the 16-bits data in */ in sis900_read_eeprom()
469 for (i = 16; i > 0; i--) { in sis900_read_eeprom()
489 Read and write the MII management registers using software-generated
506 for (i = 31; i >= 0; i--) { in sis900_mdio_reset()
525 for (i = 15; i >= 0; i--) { in sis900_mdio_read()
533 /* Read the 16 data bits. */ in sis900_mdio_read()
534 for (i = 16; i > 0; i--) { in sis900_mdio_read()
556 for (i = 15; i >= 0; i--) {
566 for (i = 15; i >= 0; i--) {
576 for (i = 2; i > 0; i--) {
672 w = (u32) *((u16 *)(nic->node_addr)+i); in sis900_init_rxfilter()
801 mii.chip_info->read_mode(nic, cur_phy, &speed, &duplex); in sis900_check_mode()
847 /* STSOUT register is Latched on Transition, read operation updates it */ in sis900_read_mode()
872 printf("sis900_read_mode: Media Link On %s %s-duplex \n", in sis900_read_mode()
899 /* 10BASE-T PHY */ in amd79c901_read_mode()
912 printf("amd79c901_read_mode: Media Link On %s %s-duplex \n", in amd79c901_read_mode()
925 printf("amd79c901_read_mode:Media Link On 1mbps half-duplex \n"); in amd79c901_read_mode()
932 * ics1893_read_mode: - read media mode for ICS1893 PHY
933 * @net_dev: the net device to read mode for
947 /* MII_QPDSTS is Latched, read twice in succession will reflect the current state */ in ics1893_read_mode()
962 printf("ics1893_read_mode: Media Link On %s %s-duplex \n", in ics1893_read_mode()
972 * rtl8201_read_mode: - read media mode for rtl8201 phy
973 * @nic: the net device to read mode for
978 * read MII_STATUS register from rtl8201 phy
1006 printf("rtl8201_read_mode: Media Link On %s %s-duplex \n", in rtl8201_read_mode()
1016 * vt6103_read_mode: - read media mode for vt6103 phy
1017 * @nic: the net device to read mode for
1022 * read MII_STATUS register from rtl8201 phy
1050 printf("vt6103_read_mode: Media Link On %s %s-duplex \n", in vt6103_read_mode()
1065 * unsigned short s: size of the data-part of the packet.
1091 memcpy(txb + ETH_ALEN, nic->node_addr, ETH_ALEN); in sis900_transmit()
1143 * Returns (copies) the packet to the array nic->packet.
1144 * Returns the length of the packet in nic->packetlen.
1165 nic->packetlen = (rx_status & DSIZE) - CRC_SIZE; in sis900_poll()
1174 memcpy(nic->packet, (rxb + cur_rx*RX_BUF_SIZE), nic->packetlen); in sis900_poll()
1185 /* re-enable the potentially idle receive state machine */ in sis900_poll()