CAUTION: This email comes from a non Wind River email account!
Do not click links or open attachments unless you recognize the sender and know the content is safe.
On 23.10.2023 09:01, Jia, Fang wrote:
Hi Experts,Why do you set aneg to off? Leave aneg on, that's the only supported
We use NXP LS1046 board and face an issue about the eth interface speed.
1) Scenario
we set fixed link 1000Mb/s in device tree.
However, after we set the auto-neg off, then the eth1's speed changed to 10M and Duplex changed to Half.
The value of /sys/class/net/eth1/speed is 10 and /sys/class/net/eth1/duplex is half
mode in swphy. 1000Mbps requires aneg anyway per standard.
2) Log is as following.
# ifconfig eth1 up
# ethtool eth1
Settings for eth1:
Supported ports: [ MII ]
Supported link modes: 1000baseT/Full
Supported pause frame use: Symmetric Receive-only
Supports auto-negotiation: Yes
Supported FEC modes: Not reported
Advertised link modes: 1000baseT/Full
Advertised pause frame use: Symmetric Receive-only
Advertised auto-negotiation: Yes
Advertised FEC modes: Not reported
Speed: 1000Mb/s
Duplex: Full
Port: MII
PHYAD: 1
Transceiver: internal
Auto-negotiation: on
Supports Wake-on: d
Wake-on: d
Current message level: 0xffffffff (-1)
drv probe link timer ifdown ifup rx_err tx_err tx_queued intr tx_done rx_status pktdata hw wol 0xffff8000
Link detected: yes
# ethtool -s eth1 autoneg off
# ethtool eth1
Settings for eth1:
Supported ports: [ MII ]
Supported link modes: 1000baseT/Full
Supported pause frame use: Symmetric Receive-only
Supports auto-negotiation: Yes
Supported FEC modes: Not reported
Advertised link modes: 1000baseT/Full
Advertised pause frame use: Symmetric Receive-only
Advertised auto-negotiation: No
Advertised FEC modes: Not reported
Speed: 10Mb/s
Duplex: Half
Port: MII
PHYAD: 1
Transceiver: internal
Auto-negotiation: off
Supports Wake-on: d
Wake-on: d
Current message level: 0xffffffff (-1)
drv probe link timer ifdown ifup rx_err tx_err tx_queued intr tx_done rx_status pktdata hw wol 0xffff8000
Link detected: yes
3) After code tracing, we found that:
phy_state_machine()
state PHY_RUNNING: phy_check_link_status()
phy_read_status()
genphy_read_status()
genphy_read_status_fixed()
In genphy_read_status_fixed(), the speed and duplex changed.
It seems like the bmcr value is always 0x1000 from swphy_read_reg().
After revert the commit 726097d6d6d(net: phy: improve auto-neg emulation in swphy), then the Speed and Duplex shown comes back to 1000M and Full.
Could you please take a look it ? Can we revert this commit, is there any side impact ?
Best Regards,
Fang