ClearFog GT 8K not initialising SFP-H10GB-CU1M transceiver on 5.4.150
Jordan Vrtanoski
jordan.vrtanoski at gmail.com
Tue Nov 16 02:11:54 PST 2021
Hi,
I am trying to build kernel 5.4.150 for SolidRun ClearFog GT 8K. The kernel is stable and I had not experiance any stability issue. The only issue I am facing is with enabling the support for the SFP+ module.
I am using SFP-H10GB-CU1M direct coper cable module. The module works on earlier version of the kernel 5.1.x (verified on the same hardware), however once the device is booted under 5.4.150, the transceiver is not recognised and the interface remains down. There are no error messages reported by the kernel.
The 5.1.0 is the kernel that is distributed by SolidRun and is available in the SolidRun image repository as the standard Debian image. The 5.4.150 is vanilla (no patches are applied) and was build on the device under Ubuntu20.04.
I have enabled debug on SFP and MVPP2 modules on both kernels and compared the message:
echo 'module sfp +pfl' > /sys/kernel/debug/dynamic_debug/control
echo 'module mvpp2 +pfl' > /sys/kernel/debug/dynamic_debug/control
echo 'module phylink +pfl' > /sys/kernel/debug/dynamic_debug/control
echo 'module marvell +pfl' > /sys/kernel/debug/dynamic_debug/control
echo 'module marvell10g +pfl' > /sys/kernel/debug/dynamic_debug/control
Following are the messages in both cases
5.1.0
---------------
[ 131.008032] sfp_check_state:1729: sfp sfp-cp0-eth0: mod-def0 0 -> 1
[ 131.008038] sfp_sm_event:1489: sfp sfp-cp0-eth0: SM: enter empty:up:down event insert
[ 131.008041] sfp_module_tx_disable:1138: sfp sfp-cp0-eth0: tx disable 1 -> 1
[ 131.008054] sfp_sm_event:1623: sfp sfp-cp0-eth0: SM: exit probe:up:down
[ 131.328672] sfp_sm_event:1489: sfp sfp-cp0-eth0: SM: enter probe:up:down event timeout
[ 131.340025] sfp sfp-cp0-eth0: module OEM SFP-H10GB-CU1M rev R sn CSC200902040339 dc 200918
[ 131.350180] phylink_sfp_module_insert:1630: mvpp2 f2000000.ethernet eth0: requesting link mode inband/10gbase-kr with support 0,00000600,0000e040
[ 131.350184] sfp_module_tx_enable:1146: sfp sfp-cp0-eth0: tx disable 1 -> 0
[ 131.350195] sfp_sm_event:1623: sfp sfp-cp0-eth0: SM: exit present:up:init
[ 131.680671] sfp_sm_event:1489: sfp sfp-cp0-eth0: SM: enter present:up:init event timeout
[ 131.680676] sfp_sm_event:1623: sfp sfp-cp0-eth0: SM: exit present:up:link_up
[ 131.680695] mvpp2 f2000000.ethernet eth0: Link is Up - 10Gbps/Full - flow control off
5.4.150
---------------
[ 135.613202] sfp_check_state:1795: sfp sfp-cp0-eth0: mod-def0 0 -> 1
[ 135.613210] sfp_sm_event:1551: sfp sfp-cp0-eth0: SM: enter empty:up:down event insert
[ 135.613214] sfp_module_tx_disable:1203: sfp sfp-cp0-eth0: tx disable 1 -> 1
[ 135.613228] sfp_sm_event:1686: sfp sfp-cp0-eth0: SM: exit probe:up:down
[ 135.935898] sfp_sm_event:1551: sfp sfp-cp0-eth0: SM: enter probe:up:down event timeout
[ 135.947254] sfp sfp-cp0-eth0: module OEM SFP-H10GB-CU1M rev R sn CSC200902040339 dc 200918
[ 135.947264] phylink_sfp_module_insert:1749: mvpp2 f2000000.ethernet eth0: requesting link mode inband/10gbase-kr with support 00,00000600,00008040
[ 135.947269] sfp_module_tx_enable:1211: sfp sfp-cp0-eth0: tx disable 1 -> 0
[ 135.947280] sfp_sm_event:1686: sfp sfp-cp0-eth0: SM: exit present:up:init
[ 136.255901] sfp_sm_event:1551: sfp sfp-cp0-eth0: SM: enter present:up:init event timeout
[ 136.255910] sfp_sm_event:1686: sfp sfp-cp0-eth0: SM: exit present:up:link_up
I can notice that the SFP module is sending the link_up event, but in case of the 5.4.150 the message "mvpp2 f2000000.ethernet eth0: Link is Up - 10Gbps/Full - flow control off" is missing.
Comparison of the device tree for both kernels shows minor changes not related to the SFP module. The 5.4.150 device tree is from the kernel source (not patched).
“lshw” shows some differences, but I am not sure if this is relevant for the issue.
5.1.0
----------------
*-network:6
description: Ethernet interface
physical id: 7
logical name: eth0
serial: 76:28:b3:7e:9e:00
size: 10Gbit/s
capabilities: ethernet physical autonegotiation
configuration: autonegotiation=on broadcast=yes driver=mvpp2 driverversion=1.0 duplex=full ip=10.0.1.188 link=yes multicast=yes speed=10Gbit/s
5.4.150
-----------------
*-network:8
description: Ethernet interface
physical id: d
logical name: eth0
serial: be:a2:a4:8a:82:7b
size: 10Gbit/s
capabilities: ethernet physical 2500bt-fd autonegotiation
configuration: autonegotiation=on broadcast=yes driver=mvpp2 driverversion=1.0 duplex=full link=no multicast=yes speed=10Gbit/s
ethtool on 5.4.150 shows that the module is identified by I2C bus and the EPROM can be read:
root at cdev-desktop:~# ethtool -m eth0
Identifier : 0x03 (SFP)
Extended identifier : 0x04 (GBIC/SFP defined by 2-wire interface ID)
Connector : 0x21 (Copper pigtail)
Transceiver codes : 0x00 0x00 0x00 0x00 0x00 0x04 0x00 0x00 0x00
Transceiver type : Passive Cable
Encoding : 0x00 (unspecified)
BR, Nominal : 10300MBd
Rate identifier : 0x00 (unspecified)
Length (SMF,km) : 0km
Length (SMF) : 0m
Length (50um) : 0m
Length (62.5um) : 0m
Length (Copper) : 1m
Length (OM3) : 0m
Passive Cu cmplnce. : 0x01 (SFF-8431 appendix E) [SFF-8472 rev10.4 only]
Vendor name : OEM
Vendor OUI : 00:40:20
Vendor PN : SFP-H10GB-CU1M
Vendor rev : R
Option values : 0x00 0x00
BR margin, max : 0%
BR margin, min : 0%
Vendor SN : CSC200902040339
Date code : 200918
root at cdev-desktop:~# ethtool eth0
Settings for eth0:
Supported ports: [ ]
Supported link modes: 2500baseX/Full
1000baseX/Full
10000baseCR/Full
Supported pause frame use: No
Supports auto-negotiation: Yes
Supported FEC modes: Not reported
Advertised link modes: 2500baseX/Full
1000baseX/Full
10000baseCR/Full
Advertised pause frame use: No
Advertised auto-negotiation: Yes
Advertised FEC modes: Not reported
Speed: 10000Mb/s
Duplex: Full
Port: Direct Attach Copper
PHYAD: 0
Transceiver: internal
Auto-negotiation: on
Link detected: no
root at cdev-desktop:~# ip link
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: bond0: <BROADCAST,MULTICAST,MASTER> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000
link/ether 4e:ad:1d:fa:a5:d9 brd ff:ff:ff:ff:ff:ff
3: dummy0: <BROADCAST,NOARP> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000
link/ether 6a:8d:f8:e0:8c:d7 brd ff:ff:ff:ff:ff:ff
4: eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN mode DEFAULT group default qlen 2048
link/ether be:a2:a4:8a:82:7b brd ff:ff:ff:ff:ff:ff
5: eth1: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN mode DEFAULT group default qlen 2048
link/ether 22:1a:5f:3a:5b:f7 brd ff:ff:ff:ff:ff:ff
6: eth2: <BROADCAST,MULTICAST> mtu 1508 qdisc noop state DOWN mode DEFAULT group default qlen 2048
link/ether 3a:9f:d4:6d:7d:d8 brd ff:ff:ff:ff:ff:ff
7: lan2 at eth2: <BROADCAST,MULTICAST,M-DOWN> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000
link/ether 3a:9f:d4:6d:7d:d8 brd ff:ff:ff:ff:ff:ff
8: lan1 at eth2: <BROADCAST,MULTICAST,M-DOWN> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000
link/ether 3a:9f:d4:6d:7d:d8 brd ff:ff:ff:ff:ff:ff
9: lan4 at eth2: <BROADCAST,MULTICAST,M-DOWN> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000
link/ether 3a:9f:d4:6d:7d:d8 brd ff:ff:ff:ff:ff:ff
10: lan3 at eth2: <BROADCAST,MULTICAST,M-DOWN> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000
link/ether 3a:9f:d4:6d:7d:d8 brd ff:ff:ff:ff:ff:ff
The kernel is compiled with following configurations switched to “y"
CONFIG_NET_VENDOR_MARVELL=y
CONFIG_MVMDIO=y
CONFIG_MVPP2=y
CONFIG_MDIO_DEVICE=y
CONFIG_MDIO_BUS=y
CONFIG_MDIO_BITBANG=y
CONFIG_MDIO_BUS_MUX=y
CONFIG_MDIO_BUS_MUX_MMIOREG=y
CONFIG_MDIO_BUS_MUX_MULTIPLEXER=y
CONFIG_MDIO_I2C=y
CONFIG_PHYLINK=y
CONFIG_PHYLIB=y
CONFIG_SWPHY=y
CONFIG_SFP=y
CONFIG_FIXED_PHY=y
CONFIG_MARVELL_PHY=y
CONFIG_MARVELL_10G_PHY=y
The boot messages related to MVPP2, SFP and PHY are:
[ 0.000000] Booting Linux on physical CPU 0x0000000000 [0x410fd081]
[ 0.000000] arch_timer: cp15 timer(s) running at 25.00MHz (phys).
[ 1.620372] ahci f4540000.sata: f4540000.sata supply phy not found, using dummy regulator
[ 1.704302] libphy: Fixed MDIO Bus: probed
[ 1.783828] libphy: orion_mdio_bus: probed
[ 1.821979] mvpp2 f2000000.ethernet: using 8 per-cpu buffers
[ 1.834108] mvpp2 f4000000.ethernet: using 8 per-cpu buffers
[ 3.983502] ahci f4540000.sata: f4540000.sata supply phy not found, using dummy regulator
[ 4.060353] libphy: SFP I2C Bus: probed
[ 4.064268] sfp sfp-cp0-eth0: Host maximum power 2.0W
[ 4.070274] mvpp2 f2000000.ethernet: using 8 per-cpu buffers
[ 4.085370] mvpp2 f2000000.ethernet eth0: Using random mac address e2:b6:4b:8e:ff:2d
[ 4.105582] mvpp2 f4000000.ethernet: using 8 per-cpu buffers
[ 4.123359] mvpp2 f4000000.ethernet eth1: Using random mac address 72:03:f1:90:06:3a
[ 4.132815] mvpp2 f4000000.ethernet eth2: Using random mac address 1e:77:ca:54:86:1b
[ 4.430625] sfp sfp-cp0-eth0: module OEM SFP-H10GB-CU1M rev R sn CSC200902040339 dc 200918
[ 27.205578] libphy: mdio: probed
[ 27.364802] mvpp2 f2000000.ethernet eth0: configuring for inband/10gbase-kr link mode
[ 27.473516] mvpp2 f4000000.ethernet eth1: PHY [f412a200.mdio-mii:00] driver [Marvell 88E1510]
[ 27.474724] mvpp2 f4000000.ethernet eth1: configuring for phy/sgmii link mode
[ 27.947046] mvpp2 f4000000.ethernet: all ports have a low MTU, switching to per-cpu buffers
[ 27.982011] mvpp2 f4000000.ethernet: using 8 per-cpu buffers
[ 28.000887] mvpp2 f4000000.ethernet eth1: PHY [f412a200.mdio-mii:00] driver [Marvell 88E1510]
[ 28.002071] mvpp2 f4000000.ethernet eth1: configuring for phy/sgmii link mode
It looks to me like the MVPP2 is not bringing the interface up, but I was not able to find anything that can help me to further debug the problem.
I need help to identify the problem and fix it. Is there anything else I need to enable on debug?
Thanks,
Jordan
More information about the linux-arm-kernel
mailing list