Messages in this thread | | | Date | Mon, 23 Oct 2023 14:42:29 +0700 | From | Bagas Sanjaya <> | Subject | Re: phy: fixed link 1000 or 100 set with autoneg off |
| |
On Mon, Oct 23, 2023 at 03:01:10PM +0800, Jia, Fang wrote: > Hi Experts, > > 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 > > 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. >
Thanks for the regression report. I'm adding it to regzbot
#regzbot ^introduced: 726097d6d6d8e9
-- An old man doll... just what I always wanted! - Clara [unhandled content-type:application/pgp-signature] | |