Linux kernel v5.10.35 on QorIQ LS1046A has eth0 with DOWN status

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Linux kernel v5.10.35 on QorIQ LS1046A has eth0 with DOWN status

Jump to solution
2,078 Views
javier_tia
Contributor III

Hi,

After upgrading to Linux kernel v5.10.35 and LSDK v2108 on the LS1046A board, the eth0 interface always has a NO-CARRIER and DOWN status:

$ ip link show eth0
3: eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN mode DEFAULT group default qlen 1000
link/ether 8c:85:c1:f1:83:81 brd ff:ff:ff:ff:ff:ff

The kernel driver is loaded:

kernel: fsl_dpaa_mac 1ae8000.ethernet eth0: Probed interface eth0

but eth0 details are unable to be read:

$ ethtool eth0
Settings for eth0:
Supported ports: [ MII ]
Supported link modes: Not reported
Supported pause frame use: Symmetric Receive-only
Supports auto-negotiation: No
Supported FEC modes: Not reported
Advertised link modes: Not reported
Advertised pause frame use: Symmetric Receive-only
Advertised auto-negotiation: No
Advertised FEC modes: Not reported
Speed: 10Mb/s
Duplex: Half
Port: MII
PHYAD: 3
Transceiver: internal
Auto-negotiation: off
Current message level: 0x00002037 (8247)
drv probe link ifdown ifup hw
Link detected: no

Setting eth0 up doesn't work, and no error is reported:

ip link set eth0 up

Kernel was built with:

CONFIG_FSL_DPAA=y
CONFIG_FSL_FMAN=y
CONFIG_FSL_DPAA_ETH=y
CONFIG_FSL_XGMAC_MDIO=y 

 This problem is not happening with Linux kernel v5.4.47

0 Kudos
1 Solution
1,967 Views
javier_tia
Contributor III

@yipingwang finally, we found the problem. In our custom LS1046A board, there is a Broadcom PHY driver (BCM54210S), and NXP nor Linux upstream has this driver code. We managed to put it for Linux v5.10.

View solution in original post

0 Kudos
7 Replies
2,066 Views
yipingwang
NXP TechSupport
NXP TechSupport

Please enable the follow Kernel configurations.

CONFIG_FSL_SDK_DPAA_ETH=y

CONFIG_FSL_SDK_FMAN=y

CONFIG_FSL_SDK_DPA=y

CONFIG_FSL_SDK_BMAN=y

CONFIG_FSL_SDK_QMAN=y

to replace your Kernel configuration as the following.

CONFIG_FSL_DPAA=y
CONFIG_FSL_FMAN=y
CONFIG_FSL_DPAA_ETH=y

Please configure Linux kernel v5.10.35 based on the attached Kernel configuration file.

Tags (1)
0 Kudos
2,061 Views
javier_tia
Contributor III

@yipingwang thank you for the quick response.

Sadly, the problem is still the same with the above kernel configuration. The eth0 interface cannot be set up with a physical connection.

sudo ethtool eth0
Settings for eth0:
Supported ports: [ ]
Supported link modes: Not reported
Supported pause frame use: Symmetric Receive-only
Supports auto-negotiation: Yes
Supported FEC modes: Not reported
Advertised link modes: Not reported
Advertised pause frame use: Symmetric Receive-only
Advertised auto-negotiation: Yes
Advertised FEC modes: Not reported
Speed: Unknown!
Duplex: Unknown! (255)
Port: MII
PHYAD: 0
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: no

What else could be done?

Thanks,

Javier 

0 Kudos
2,056 Views
javier_tia
Contributor III

As a clarification, the problem is around physical detection. Which, in this case, is not detecting the wired cable connected to the eth0 interface.  

0 Kudos
2,046 Views
yipingwang
NXP TechSupport
NXP TechSupport

Have you enabled your specified PHY driver in the Kernel configuration file?

Have you diff kernel v5.10.35 and Kernel v5.4.47 Kernel configuration file to find out the missing configuration?

Would you please provide your whole Linux Kernel booting up log to me to do more investigation?

0 Kudos
2,024 Views
javier_tia
Contributor III

According to your comments and logs, the Ethernet PHY driver is enabled with CONFIG_FSL_SDK_DPA. I am providing the used Kernel configuration; file 510.config.

Yes, I did a diff from the two kernel configurations. I have enabled all the CONFIG_FSL* configurations. Take a look at the 510.config file.

Attached are two logs—one (54.good.log) with kernel 5.4 which is working fine, and the kernel 5.10 (510.bad.log) with the bad eth0 interface.

@yipingwang I noticed we are using an old dts (ppa_ls1046a_lsdk18_06). Which dts file should be used from LSDK v5.10? 

0 Kudos
2,003 Views
yipingwang
NXP TechSupport
NXP TechSupport
Please use dts arch/arm64/boot/dts/freescale/fsl-ls1046a-rdb-sdk.dts in Kernel 5.10 source code flexbuild_lsdk2108/components/linux/linux to boot up Linux Kernel. You need to modify &fman0 device node in arch/arm64/boot/dts/freescale/fsl-ls1046a-rdb.dts, please modify Ethernet configuration and PHY handle definition in mdio@fc000 and mdio@fd000, please modify the PHY type and number according to your target board.
0 Kudos
1,968 Views
javier_tia
Contributor III

@yipingwang finally, we found the problem. In our custom LS1046A board, there is a Broadcom PHY driver (BCM54210S), and NXP nor Linux upstream has this driver code. We managed to put it for Linux v5.10.

0 Kudos