[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <eae8e09c-f571-4016-b11d-88611a2b368f@lunn.ch>
Date: Wed, 12 Mar 2025 14:05:56 +0100
From: Andrew Lunn <andrew@...n.ch>
To: Hamish Martin <hamish.martin@...iedtelesis.co.nz>
Cc: anthony.l.nguyen@...el.com, przemyslaw.kitszel@...el.com,
intel-wired-lan@...ts.osuosl.org, netdev@...r.kernel.org
Subject: Re: [PATCH net] igb: Prevent IPCFGN write resetting autoneg
advertisement register
On Wed, Mar 12, 2025 at 04:22:50PM +1300, Hamish Martin wrote:
> An issue is observed on the i210 when autonegotiation advertisement is set
> to a specific subset of the supported speeds but the requested settings
> are not correctly set in the Copper Auto-Negotiation Advertisement Register
> (Page 0, Register 4).
> Initially, the advertisement register is correctly set by the driver code
> (in igb_phy_setup_autoneg()) but this register's contents are modified as a
> result of a later write to the IPCNFG register in igb_set_eee_i350(). It is
> unclear what the mechanism is for the write of the IPCNFG register to lead
> to the change in the autoneg advertisement register.
> The issue can be observed by, for example, restricting the advertised speed
> to just 10MFull. The expected result would be that the link would come up
> at 10MFull, but actually the phy ends up advertising a full suite of speeds
> and the link will come up at 100MFull.
>
> The problem is avoided by ensuring that the write to the IPCNFG register
> occurs before the write to the autoneg advertisement register.
When you set the advertisement for only 10BaseT Full, what EEE
settings are applied? It could be that calling igb_set_eee_i350() to
advertise EEE for 100BaseT Full and 1000BaseT Full, while only
advertising link mode 10BaseT causes the change to the autoneg
register.
Please try only advertising EEE modes which fit with the basic link
mode advertising.
Andrew
Powered by blists - more mailing lists