Patch "ixgbe: set X550 MDIO speed before talking to PHY" has been added to the 5.10-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

    ixgbe: set X550 MDIO speed before talking to PHY

to the 5.10-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     ixgbe-set-x550-mdio-speed-before-talking-to-phy.patch
and it can be found in the queue-5.10 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit eda5a17f58d998da666787d439e9d071438a04c9
Author: Cyril Novikov <cnovikov@xxxxxxxx>
Date:   Mon Nov 1 18:39:36 2021 -0700

    ixgbe: set X550 MDIO speed before talking to PHY
    
    [ Upstream commit bf0a375055bd1afbbf02a0ef45f7655da7b71317 ]
    
    The MDIO bus speed must be initialized before talking to the PHY the first
    time in order to avoid talking to it using a speed that the PHY doesn't
    support.
    
    This fixes HW initialization error -17 (IXGBE_ERR_PHY_ADDR_INVALID) on
    Denverton CPUs (a.k.a. the Atom C3000 family) on ports with a 10Gb network
    plugged in. On those devices, HLREG0[MDCSPD] resets to 1, which combined
    with the 10Gb network results in a 24MHz MDIO speed, which is apparently
    too fast for the connected PHY. PHY register reads over MDIO bus return
    garbage, leading to initialization failure.
    
    Reproduced with Linux kernel 4.19 and 5.15-rc7. Can be reproduced using
    the following setup:
    
    * Use an Atom C3000 family system with at least one X552 LAN on the SoC
    * Disable PXE or other BIOS network initialization if possible
      (the interface must not be initialized before Linux boots)
    * Connect a live 10Gb Ethernet cable to an X550 port
    * Power cycle (not reset, doesn't always work) the system and boot Linux
    * Observe: ixgbe interfaces w/ 10GbE cables plugged in fail with error -17
    
    Fixes: e84db7272798 ("ixgbe: Introduce function to control MDIO speed")
    Signed-off-by: Cyril Novikov <cnovikov@xxxxxxxx>
    Reviewed-by: Andrew Lunn <andrew@xxxxxxx>
    Signed-off-by: Tony Nguyen <anthony.l.nguyen@xxxxxxxxx>
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_x550.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_x550.c
index 5e339afa682a6..37f2bc6de4b65 100644
--- a/drivers/net/ethernet/intel/ixgbe/ixgbe_x550.c
+++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_x550.c
@@ -3405,6 +3405,9 @@ static s32 ixgbe_reset_hw_X550em(struct ixgbe_hw *hw)
 	/* flush pending Tx transactions */
 	ixgbe_clear_tx_pending(hw);
 
+	/* set MDIO speed before talking to the PHY in case it's the 1st time */
+	ixgbe_set_mdio_speed(hw);
+
 	/* PHY ops must be identified and initialized prior to reset */
 	status = hw->phy.ops.init(hw);
 	if (status == IXGBE_ERR_SFP_NOT_SUPPORTED ||



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux