After forcing tg3 duplex settings with mii-tool, ethtool and mii-tool give
# mii-tool -F 100baseTx-HD eth0
# mii-tool eth0
eth0: 100 Mbit, half duplex, link ok
Settings for eth0:
Supported ports: [ MII ]
Supported link modes: 10baseT/Half 10baseT/Full
Supports auto-negotiation: Yes
Advertised link modes: Not reported
Advertised auto-negotiation: No
Duplex: Full <-------- Should be Half
Port: Twisted Pair
Supports Wake-on: g
Current message level: 0x000000ff (255)
Link detected: yes
Version-Release number of selected component (if applicable):
All broaadcom cards tested so far show this behavior.
Steps to Reproduce:
1. Force NIC speed/duplex settings with mii-tool
2. Inspect settings with mii-tool/ethtool
3. ethtool shows the old settings
Changes made with mii-tool are not reported by ethtool.
Changes made with either tool are reflected by the other.
Attempting to reproduce this on an Intel e1000 device produced a different
problem - ethtool & mii-tool were consistent, but mii-tool setting were ignored
FYI, this problem was originally reported by the customerr on RHEL3. I have been
able to reproduce the symptoms in RHEL4 and FC5 also.
Hmmm...not sure what the right answer is here...
The problem is caused by the fact that the mii-tool interface allows the user
to directly pound on the hardware registers, while the ethtool interface
believes it knows the state. So the ethtool handler doesn't query that actual
While it may seem obvious to make ethtool query the hardware, that kinda
breaks the model pictured for the ethtool API (i.e. the driver should control
the hardware w/o the user messing behind its back). The mii-tool and ethtool
interfaces are fundamentally incompatible, with the mii-tool interface being
Obviously, I advise that you do NOT use mii-tool with your device if at all
possible. The "right" answer may be to disable mii-tool support in tg3 (and
it sounds like e1000 as well).
I'll mull this over...
I don't see any reasonable way to fix this, given the nature of the two APIs.
And, removing mii-tool support is out of the question because it breaks the
RHEL support model and because there potentially are responsible uses for the
So, the only reasonable disposition for this is WONTFIX. I'm sorry. Please
avoid using mii-tool (in favor of ethool) whenever possible.