Latest working kernel version: Unknown Earliest failing kernel version: 2.6.22 Distribution: Debian lenny, amd64 Hardware Environment: HP MediaSmart Server Software Environment: 2.6.26 with small PHY patch Problem Description: I am unable to get the sis191 Gigabit Ethernet in my MediaSmart to talk to my Gigabit switch (Netgear GS605v2) at anything higher than 100Mbit Full Duplex. The same hardware running Windows Home Server and the latest drivers from SiS can auto-negotiate Gigabit speeds with the Netgear without issue. dmesg info: sis190 Gigabit Ethernet driver 1.2 loaded. ACPI: PCI Interrupt 0000:00:04.0[A] -> GSI 19 (level, low) -> IRQ 19 PCI: Setting latency timer of device 0000:00:04.0 to 64 0000:00:04.0: Read MAC address from EEPROM 0000:00:04.0: HP EX470 PHY transceiver at address 0. 0000:00:04.0: SiS 191 PCI Gigabit Ethernet adapter at ffffc20000320000 (IRQ: 19), 00:0a:e4:86:2a:ae eth0: RGMII mode. eth0: Enabling Auto-negotiation. ADDRCONF(NETDEV_UP): eth0: link is not ready ADDRCONF(NETDEV_UP): eth0: link is not ready eth0: mii ext = 0000. eth0: mii lpa = cde1 adv = 01e1. eth0: link on 100 Mbps Full Duplex mode. ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready ifconfig output: eth0 Link encap:Ethernet HWaddr 00:0a:e4:86:2a:ae inet addr:10.0.0.42 Bcast:10.0.0.255 Mask:255.255.255.0 inet6 addr: fe80::20a:e4ff:fe86:2aae/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:72 errors:0 dropped:0 overruns:0 frame:0 TX packets:123 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:9050 (8.8 KiB) TX bytes:19092 (18.6 KiB) Interrupt:19 Base address:0xdead ethtool output: Supported ports: [ TP MII ] Supported link modes: 10baseT/Half 10baseT/Full 100baseT/Half 100baseT/Full Supports auto-negotiation: Yes Advertised link modes: 10baseT/Half 10baseT/Full 100baseT/Half 100baseT/Full Advertised auto-negotiation: Yes Speed: 100Mb/s Duplex: Full Port: MII PHYAD: 0 Transceiver: internal Auto-negotiation: on Current message level: 0x00000037 (55) Link detected: yes Steps to reproduce: 1) Install 2.6.26 2) Add the HP's PHY info to the mii_chip_table: { "HP EX470 PHY", { 0x004d, 0xd010 }, LAN, 0 }, 3) Rebuild and reinstall module
Persists in 2.6.29-rc3
Fixed in 2.6.31-rc3, commit 1feede014bf3c58f60b35f91dcd8a2f89b3908ad (I think). Negotiated Gigabit speeds (>95 MB/s both ways via iperf). One of my Netgear switches caused the chipset to go into some sort of extended negotiation that never seemed to get to Gigabit; power-cycling the switch seemed to fix the problem. However, ethtool output remains the same: Supported ports: [ TP MII ] Supported link modes: 10baseT/Half 10baseT/Full 100baseT/Half 100baseT/Full Supports auto-negotiation: Yes Advertised link modes: 10baseT/Half 10baseT/Full 100baseT/Half 100baseT/Full Advertised auto-negotiation: Yes Speed: 100Mb/s Duplex: Full Port: MII PHYAD: 0 Transceiver: internal Auto-negotiation: on Current message level: 0x00000037 (55) Link detected: yes But dmesg reports the correct speed: [ 17.223186] ADDRCONF(NETDEV_UP): eth0: link is not ready [ 25.512014] eth0: mii ext = 0000. [ 25.536010] eth0: mii lpa=cde1 adv=01e1 exp=000f. [ 25.552007] eth0: link on 1000 Mbps Full Duplex mode. [ 25.552456] ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready