[FSL P50x0] DPAA Ethernet issue

Sean Anderson seanga2 at gmail.com
Mon Jan 2 05:11:07 AEDT 2023


Hi Christian,

+CC netdev folks

> Hi All,
> 
> The DPAA Ethernet doesn’t work anymore on our FSL P5020/P5040 boards [1] 
> since the first updates after the final kernel 6.1 [2].
> We bisected yesterday [3] and found the problematic commit [4]. I was 
> able to revert it. After that the DPAA Ethernet works again. I created a 
> patch for reverting the commit [4]. After patching and compiling, the 
> DPAA Ethernet also works again.

Thank you for testing this. Unfortunately, I have no P-series hardware,
so I was unable to test the 10gec/dtsec parts of this conversion. I had
hoped that this would get tested by someone with the hardware (at NXP)
before now, but it seems you get to be the "lucky" first user.

I see you have labeled one of your kernels as supporting QEMU.  Do you
happen to have instructions for running Linux on QEMU?

> It seems, that the new driver doesn’t work with our onboard DPAA network 
> interfaces.
> 
> Could you please check your commit? [4]

Can you try the following patch. I think my mail client will mangle it,
so I have also attached it to this email.

 From 3898c62106025209b26527ad1516b339eebb62f1 Mon Sep 17 00:00:00 2001
From: Sean Anderson <seanga2 at gmail.com>
Date: Sun, 1 Jan 2023 13:00:21 -0500
Subject: [PATCH] net: dpaa: Fix dtsec check for PCS availability

We want to fail if the PCS is not available, not if it is available. Fix
this condition.

Fixes: 5d93cfcf7360 ("net: dpaa: Convert to phylink")
Reported-by: Christian Zigotzky <info at xenosoft.de>
Signed-off-by: Sean Anderson <seanga2 at gmail.com>
---
  drivers/net/ethernet/freescale/fman/fman_dtsec.c | 2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/net/ethernet/freescale/fman/fman_dtsec.c b/drivers/net/ethernet/freescale/fman/fman_dtsec.c
index 3c87820ca202..3462f2b78680 100644
--- a/drivers/net/ethernet/freescale/fman/fman_dtsec.c
+++ b/drivers/net/ethernet/freescale/fman/fman_dtsec.c
@@ -1431,7 +1431,7 @@ int dtsec_initialization(struct mac_device *mac_dev,
  	dtsec->dtsec_drv_param->tx_pad_crc = true;
  
  	phy_node = of_parse_phandle(mac_node, "tbi-handle", 0);
-	if (!phy_node || of_device_is_available(phy_node)) {
+	if (!phy_node || !of_device_is_available(phy_node)) {
  		of_node_put(phy_node);
  		err = -EINVAL;
  		dev_err_probe(mac_dev->dev, err,
-- 
2.37.1
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-net-dpaa-Fix-dtsec-check-for-PCS-availability.patch
Type: text/x-patch
Size: 1213 bytes
Desc: not available
URL: <http://lists.ozlabs.org/pipermail/linuxppc-dev/attachments/20230101/a1a4761a/attachment.bin>


More information about the Linuxppc-dev mailing list