Bug 173225

Summary: 3c59x driver only advertises 10BaseT-HD for 3c905C-TX adapter
Product: [Fedora] Fedora Reporter: Jan Willem Huijbers <jan.willem>
Component: kernelAssignee: John W. Linville <linville>
Status: CLOSED NOTABUG QA Contact: Brian Brock <bbrock>
Severity: medium Docs Contact:
Priority: medium    
Version: 4CC: davej, jgroves, wtogami
Target Milestone: ---   
Target Release: ---   
Hardware: i686   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2006-01-03 20:43:20 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 155837    

Description Jan Willem Huijbers 2005-11-15 11:33:21 UTC
Description of problem:
When transfering lots of data, i noticed a slow performance. I was expecting 
to use autonegotiated 100BaseTX (100 Mbps/full duplex). Investigation showed 
that the driver was using 10BaseT half duplex.

See:
[root@fedora-pc ~]# ethtool eth0
Settings for eth0:
        Supported ports: [ TP MII ]
        Supported link modes:   10baseT/Half 10baseT/Full
                                100baseT/Half 100baseT/Full
        Supports auto-negotiation: Yes
        Advertised link modes:  10baseT/Half
        Advertised auto-negotiation: Yes
        Speed: 10Mb/s
        Duplex: Half
        Port: MII
        PHYAD: 24
        Transceiver: internal
        Auto-negotiation: on
        Current message level: 0x00000001 (1)
        Link detected: yes

I noticed that the only atvertised link mode is 10 Mbps/ half duplex and not 
all the modes its capable off.



Version-Release number of selected component (if applicable):

Here some additional information. I,m using a Dell Dimension 8100 system with 
build in Network adapter. It's using Fedora Core 4 with all the released 
updates. Now some output

[root@fedora-pc ~]# lspci -v
02:0c.0 Ethernet controller: 3Com Corporation 3c905C-TX/TX-M [Tornado] (rev 78)
        Subsystem: Dell: Unknown device 00c7
        Flags: bus master, medium devsel, latency 64, IRQ 3
        I/O ports at ec00 [size=128]
        Memory at ff1fdc00 (32-bit, non-prefetchable) [size=128]
        Expansion ROM at 40000000 [disabled] [size=128K]
        Capabilities: [dc] Power Management version 2

[root@fedora-pc ~]# cat /etc/modprobe.conf
alias eth0 3c59x
alias eth1 hisax
alias snd-card-0 snd-emu10k1
options snd-card-0 index=0
options snd-emu10k1 index=0
remove snd-emu10k1 { /usr/sbin/alsactl store 0 >/dev/null 2>&1 
|| : ; }; /sbin/modprobe -r --ignore-remove snd-emu10k1
alias usb-controller uhci-hcd


[root@fedora-pc ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
BOOTPROTO=static
BROADCAST=192.168.1.255
HWADDR=00:B0:D0:BE:3A:D7
IPADDR=192.168.1.10
NETMASK=255.255.255.0
NETWORK=192.168.1.0
ONBOOT=yes
TYPE=Ethernet



How reproducible:
Alwas

Steps to Reproduce:
1. reboot
2. ifdonw eth0
3. ifup eth0
  
Actual results:


Expected results:
to connect with 100 Mbps\full duplex

Additional info:

Comment 1 John W. Linville 2005-11-30 15:40:33 UTC
The fedora-netdev kernels are available here:  
  
   http://people.redhat.com/linville/kernels/fedora-netdev/  
  
Please give those a try and post the results here...thanks! 

Comment 2 Jan Willem Huijbers 2005-11-30 21:10:04 UTC
I've downloaded and installed the netdev kernel and rebooted. The result is 
the same, only 10 Mbps/half duplex

[root@fedora-pc ~]# ethtool eth0
Settings for eth0:
        Supported ports: [ TP MII ]
        Supported link modes:   10baseT/Half 10baseT/Full
                                100baseT/Half 100baseT/Full
        Supports auto-negotiation: Yes
        Advertised link modes:  10baseT/Half
        Advertised auto-negotiation: Yes
        Speed: 10Mb/s
        Duplex: Half
        Port: MII
        PHYAD: 24
        Transceiver: internal
        Auto-negotiation: on
        Current message level: 0x00000001 (1)
        Link detected: yes

[root@fedora-pc ~]# uname -r
2.6.14-1.1644_FC4.netdev.3

Although changing the settings by hand is posible. I used: ethtool -s eth0 
speed 100 duplex half autoneg off

I chose 100 Mbps half duplex cause the system is connected to autosensing 
switch, hardcoding to 100 full duplex would lead to duplex mismatch.

It still seems like the interface is limited to 10 Mbps/half duplex. It takes 
15 minutes to copy a 700MB file. 
  


Comment 3 Jan Willem Huijbers 2005-12-31 12:41:51 UTC
Possible solution. 

I have managed to get the interface working at 100 Mbps/ full duplex 
(autonegotiated). I had to download the 3c90xcfg program of the 3com website. 
Booted the Dell 8100 of an old DOS 6.22 disk and used the 3c90xcfg program to 
show the bootrom settings.  I noticed that the bootrom settings were limited 
to 10 Mbps / half duplex. Using the same tool i was able to activate auto-
negotiation and i rebooted fedora core 4.

Now the performance is a lot better. copying the same 700MB file takes appr 4 
minutes. Ethtool displayes now:

[root@fedora-pc ~]# ethtool eth0
Settings for eth0:
        Supported ports: [ TP MII ]
        Supported link modes:   10baseT/Half 10baseT/Full
                                100baseT/Half 100baseT/Full
        Supports auto-negotiation: Yes
        Advertised link modes:  10baseT/Full
                                100baseT/Full
        Advertised auto-negotiation: Yes
        Speed: 100Mb/s
        Duplex: Full
        Port: MII
        PHYAD: 24
        Transceiver: internal
        Auto-negotiation: on
        Current message level: 0x00000001 (1)
        Link detected: yes

 
 

Comment 4 John W. Linville 2006-01-03 20:43:20 UTC
That certainly seems to have corrected the issue.  Since this appears to have 
been a hardware setup issue, I'm going to close this as NOTABUG. 
 
Thanks for reporting the resolution! 

Comment 5 Jeff Groves 2006-01-04 02:25:15 UTC
Any chance you could post the URL for the 3c90xcfg program???

Thanks,

Jeff G.

Comment 6 Jan Willem Huijbers 2006-01-04 10:21:39 UTC
The 3c90xcfg program can be found on the 3com site (www.3com.com). Search for 
the driver of the 3c905c. You wil find 2 driverdisks (3c90x1.exe and 
3c90x2.exe.

Extract the second disk and in a subdir (i think diag) the 3c90xcfg.exe file 
can be found. There are two more files staring with 3c90xcfg, i dont know if 
they are needed, but i copied all three files to a DOS disk and used this disk 
to adjust the settings of my "onboard" 3c905cc tornado ethernet NIC.

Regards,
JWH