lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Message-ID: <d7aa45f8-adf8-ff9a-b2c4-04b0f2cc3c06@windriver.com> Date: Mon, 23 Oct 2023 15:01:10 +0800 From: "Jia, Fang" <fang.jia@...driver.com> To: Andrew Lunn <andrew@...n.ch>, Florian Fainelli <f.fainelli@...il.com>, Heiner Kallweit <hkallweit1@...il.com>, "David S. Miller" <davem@...emloft.net> Cc: netdev@...r.kernel.org, linux-kernel@...r.kernel.org Subject: phy: fixed link 1000 or 100 set with autoneg off 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. Could you please take a look it ? Can we revert this commit, is there any side impact ? Best Regards, Fang
Powered by blists - more mailing lists