Ls1046a 1000Base-KX/10gBase-KR Linux support

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

Ls1046a 1000Base-KX/10gBase-KR Linux support

Jump to solution
6,195 Views
renaud
Contributor IV

We have a board using with two 10G (1000Base-KR) and one 1000Base-KX connection on Serdes 1. Protocol is 1133

We are using Linux 6.4 and soon 6.11.x

My understanding is that the 1000Base-KX support is not found in the kernel.org as per comment in fman_memac.:

/* TODO: The following interface modes are supported by (some) hardware
* but not by this driver:
* - 1000BASE-KX

 

but can be found in nxp qoirq Linux support:  https://github.com/nxp-qoriq/linux.git

in branch lf-6.6.y.

Also i found: https://community.nxp.com/t5/QorIQ/Eval-Board-for-1000Base-KX-LS1046A/m-p/1178936 which shows what needs to be initialized by the boot loader and Linux.

So could you confirm the following:

1. The upstream Linux support cannot be used to support 1000Base-KX and/or 1000Base-KR on the LS1046A.

2. In the link above, there is mention to configure SGMII_IF_MODE. Which part of Linux does that?

3. Can you show me what the node should look like for the 10Gbase-kr and 1000Base-KX.

4. What is the latest U-boot/Linux to support the LS1046a and specially is there code in U-boot to do the initialization of 1000Base-kr and  1000Base-kx. I guess the link above is the init sequence.

 

Otherwise, If I am wrong about not being able to use upstream kernel (kernel.org), I would appreciate a summary of what I have to do.

 

Cheers,

Renaud 

 

 

 

 

0 Kudos
Reply
1 Solution
5,827 Views
renaud
Contributor IV

Eventually found the error on the 1000base-KX. There a few more bits to set along with clearing the AMP_RED field

View solution in original post

0 Kudos
Reply
7 Replies
5,828 Views
renaud
Contributor IV

Eventually found the error on the 1000base-KX. There a few more bits to set along with clearing the AMP_RED field

0 Kudos
Reply
6,158 Views
LFGP
NXP TechSupport
NXP TechSupport
this is an example how to look like a node for the 1000Base-KX
enet4: ethernet@4 {
compatible = "fsl,fman-memac";
reg = <0x4000 0x1000>;
phy-mode = "1000base-kx";
fixed-link = <4 1 1000 0 0>; // fixed link to 1 Gbps
status = "okay";
};
additionally, you have to follow the steps described in the subject "31.8.1.3 1000Base-KX" in the LS1046ARM.
The LLDP 6.1.55 uses the U-boot release 2023.04
Nothing to config at U-boot
0 Kudos
Reply
6,045 Views
renaud
Contributor IV
A bit confusing when you nothing to config at U-boot. Where do you do the config from 31.8.1.3. I supposed it is split between U-boot and Linux
0 Kudos
Reply
6,065 Views
renaud
Contributor IV

Let's turn to the 10gbase-kr. I saw that there is LANnTECR0  to set up.

I see two DTS include files:

arch/arm64/boot/dts/freescale/fsl-ls1046a-sd1-1133-lane-c-backplane-phylib.dtsi
arch/arm64/boot/dts/freescale/fsl-ls1046a-sd1-1133-lane-c-backplane.dtsi

Should I include any of them? or keep it simpler.

For some reason I have included the latter and there are some probing errors.

 

0 Kudos
Reply
6,078 Views
renaud
Contributor IV
What about the pcsphy4? Any modification needed to the part of the device tree?
The 1000Base-KX go through the backplane then a media converter (to 1000baseT). The MDIO bus is not connected trough the backplane.
0 Kudos
Reply
6,147 Views
renaud
Contributor IV

This is what I have:


ethernet@e8000 {
status = "okay";
phy-mode = "1000base-kx";
fixed-link {
speed = <1000>;
full-duplex;
};
};

ethernet eth1: Link is Up - 1Gbps/Full - flow control off

"fsl_dpaa_mac 1ae8000.ethernet eth1: major config 1000base-kx"

 

What seems to be missing is the last three steps of 31.8.1.3. in Linux. I am using the NXP qoirq Liunx branch lf-6.6.y

Trying to add them in drivers/net/pcs/pcs-lynx.c. Though, I never see pcs_config being called.  Debugging I see in drivers/net/phy/phylink.c:

phylink_pcs_config pcs = 0000000000000000. 

Would that not mean I cannot access the MDIO KX and MDIO KX AN?

0 Kudos
Reply
6,173 Views
renaud
Contributor IV

I think I got the answer for 1 and 2 but cannot get either 1000Kx or 10base-KR to work

0 Kudos
Reply