>-----Original Message----- >From: Intel-wired-lan <intel-wired-lan-boun...@osuosl.org> On Behalf Of >xiao33...@qq.com >Sent: piÄ…tek, 9 kwietnia 2021 11:18 >To: Brandeburg, Jesse <jesse.brandeb...@intel.com>; Nguyen, Anthony L ><anthony.l.ngu...@intel.com> >Cc: netdev@vger.kernel.org; xiaolinkui <xiaolin...@kylinos.cn>; >linux-ker...@vger.kernel.org; intel-wired-...@lists.osuosl.org; >k...@kernel.org; da...@davemloft.net >Subject: [Intel-wired-lan] [PATCH] i40e: The state of phy may not be correct >during power-on > >From: xiaolinkui <xiaolin...@kylinos.cn> > >Sometimes the power on state of the x710 network card indicator is not right, >and the indicator shows orange. At this time, the network card speed is >Gigabit.
By "power on state" you mean that it happens after power-up of the server? > >After entering the system, check the network card status through the ethtool >command as follows: > >[root@localhost ~]# ethtool enp132s0f0 >Settings for enp132s0f0: > Supported ports: [ FIBRE ] > Supported link modes: 1000baseX/Full > 10000baseSR/Full > Supported pause frame use: Symmetric > Supports auto-negotiation: Yes > Supported FEC modes: Not reported > Advertised link modes: 1000baseX/Full > 10000baseSR/Full > Advertised pause frame use: No > Advertised auto-negotiation: Yes > Advertised FEC modes: Not reported > Speed: 1000Mb/s > Duplex: Full > Port: FIBRE > PHYAD: 0 > Transceiver: internal > Auto-negotiation: off > Supports Wake-on: d > Wake-on: d > Current message level: 0x00000007 (7) > drv probe link > Link detected: yes > >We can see that the speed is 1000Mb/s. > >If you unplug and plug in the optical cable, it can be restored to 10g. >After this operation, the rate is as follows: > >[root@localhost ~]# ethtool enp132s0f0 >Settings for enp132s0f0: > Supported ports: [ FIBRE ] > Supported link modes: 1000baseX/Full > 10000baseSR/Full > Supported pause frame use: Symmetric > Supports auto-negotiation: Yes > Supported FEC modes: Not reported > Advertised link modes: 1000baseX/Full > 10000baseSR/Full > Advertised pause frame use: No > Advertised auto-negotiation: Yes > Advertised FEC modes: Not reported > Speed: 10000Mb/s > Duplex: Full > Port: FIBRE > PHYAD: 0 > Transceiver: internal > Auto-negotiation: off > Supports Wake-on: d > Wake-on: d > Current message level: 0x00000007 (7) > drv probe link > Link detected: yes > >Calling i40e_aq_set_link_restart_an can also achieve this function. >So we need to do a reset operation for the network card when the network card >status is abnormal. Can't say much about the root cause of the issue right now, but I don't think it is good idea for the fix. This leads to braking existing link each time i40e_aq_get_link_info is called on 1 Gigabit PHY. For example 'ethtool -m <dev>' does that. Have you tried reloading the driver? Thanks! > >Signed-off-by: xiaolinkui <xiaolin...@kylinos.cn> >--- > drivers/net/ethernet/intel/i40e/i40e_common.c | 4 ++++ > 1 file changed, 4 insertions(+) > >diff --git a/drivers/net/ethernet/intel/i40e/i40e_common.c >b/drivers/net/ethernet/intel/i40e/i40e_common.c >index ec19e18305ec..dde0224776ac 100644 >--- a/drivers/net/ethernet/intel/i40e/i40e_common.c >+++ b/drivers/net/ethernet/intel/i40e/i40e_common.c >@@ -1866,6 +1866,10 @@ i40e_status i40e_aq_get_link_info(struct i40e_hw *hw, > hw_link_info->max_frame_size = le16_to_cpu(resp->max_frame_size); > hw_link_info->pacing = resp->config & I40E_AQ_CONFIG_PACING_MASK; > >+ if (hw_link_info->phy_type == I40E_PHY_TYPE_1000BASE_SX && >+ hw->mac.type == I40E_MAC_XL710) >+ i40e_aq_set_link_restart_an(hw, true, NULL); >+ > /* update fc info */ > tx_pause = !!(resp->an_info & I40E_AQ_LINK_PAUSE_TX); > rx_pause = !!(resp->an_info & I40E_AQ_LINK_PAUSE_RX); >-- >2.17.1 > >_______________________________________________ >Intel-wired-lan mailing list >intel-wired-...@osuosl.org >https://lists.osuosl.org/mailman/listinfo/intel-wired-lan >