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

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 
已解决

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

跳至解决方案
6,640 次查看
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 项奖励
回复
1 解答
6,272 次查看
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 项奖励
回复
7 回复数
6,273 次查看
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 项奖励
回复
6,603 次查看
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 项奖励
回复
6,490 次查看
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 项奖励
回复
6,510 次查看
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 项奖励
回复
6,523 次查看
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 项奖励
回复
6,592 次查看
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 项奖励
回复
6,618 次查看
renaud
Contributor IV

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

0 项奖励
回复
%3CLINGO-SUB%20id%3D%22lingo-sub-2035088%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3ELS1046a%201000Base-KX%2F10gBase-KR%20Linux%E6%94%AF%E6%8C%81%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2035088%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%E6%88%91%E4%BB%AC%E6%9C%89%E4%B8%80%E5%9D%97%E7%94%B5%E8%B7%AF%E6%9D%BF%EF%BC%8C%E5%9C%A8%20Serdes%201%20%E4%B8%8A%E4%BD%BF%E7%94%A8%E4%B8%A4%E4%B8%AA%2010G%EF%BC%881000Base-KR%EF%BC%89%E5%92%8C%E4%B8%80%E4%B8%AA%201000Base-KX%20%E8%BF%9E%E6%8E%A5%E3%80%82%E5%8D%8F%E8%AE%AE%E6%98%AF%201133%3C%2FP%3E%3CP%3E%E6%88%91%E4%BB%AC%E6%AD%A3%E5%9C%A8%E4%BD%BF%E7%94%A8%20Linux%206.4%EF%BC%8C%E5%BE%88%E5%BF%AB%E4%BC%9A%E4%BD%BF%E7%94%A8%206.11.x%3C%2FP%3E%3CP%3E%E6%88%91%E7%9A%84%E7%90%86%E8%A7%A3%E6%98%AF%EF%BC%8C%E6%A0%B9%E6%8D%AE%20fman_memac%20%E4%B8%AD%E7%9A%84%E8%AF%84%E8%AE%BA%EF%BC%8C%E5%9C%A8%20kernel.org%20%E4%B8%AD%E6%89%BE%E4%B8%8D%E5%88%B0%201000Base-KX%20%E6%94%AF%E6%8C%81%EF%BC%9A%3C%2FP%3E%3CP%3E%2F*%20TODO%EF%BC%9A%EF%BC%88%E6%9F%90%E4%BA%9B%EF%BC%89%E7%A1%AC%E4%BB%B6%E6%94%AF%E6%8C%81%E4%BB%A5%E4%B8%8B%E6%8E%A5%E5%8F%A3%E6%A8%A1%E5%BC%8F%3CBR%20%2F%3E*%20%E4%BD%86%E4%B8%8D%E6%98%AF%E8%BF%99%E4%B8%AA%E9%A9%B1%E5%8A%A8%E7%A8%8B%E5%BA%8F%EF%BC%9A%3CBR%20%2F%3E%20*%20-%201000BASE-KX%3C%2FP%3E%3CBR%20%2F%3E%3CP%3E%E4%BD%86%E5%8F%AF%E4%BB%A5%E5%9C%A8%20nxp%20qoirq%20Linux%20%E6%94%AF%E6%8C%81%E4%B8%AD%E6%89%BE%E5%88%B0%EF%BC%9A%20%3CA%20href%3D%22https%3A%2F%2Fgithub.com%2Fnxp-qoriq%2Flinux.git%22%20target%3D%22_blank%22%20rel%3D%22nofollow%20noopener%20noreferrer%22%3Ehttps%3A%2F%2Fgithub.com%2Fnxp-qoriq%2Flinux.git%3C%2FA%3E%3C%2FP%3E%3CP%3E%E5%9C%A8%E5%88%86%E6%94%AF%20lf-6.6.y%20%E4%B8%AD%E3%80%82%3C%2FP%3E%3CP%3E%E6%88%91%E8%BF%98%E5%8F%91%E7%8E%B0%EF%BC%9A%20%3CA%20href%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2FQorIQ%2FEval-Board-for-1000Base-KX-LS1046A%2Fm-p%2F1178936%22%20target%3D%22_blank%22%3Ehttps%3C%2FA%3E%20%3A%2F%2Fcommunity.nxp.com%2Ft5%2FQorIQ%2FEval-Board-for-1000Base-KX-LS1046A%2Fmp%2F1178936%20%E6%98%BE%E7%A4%BA%E4%BA%86%E5%BC%95%E5%AF%BC%E5%8A%A0%E8%BD%BD%E7%A8%8B%E5%BA%8F%E5%92%8C%20Linux%20%E9%9C%80%E8%A6%81%E5%88%9D%E5%A7%8B%E5%8C%96%E7%9A%84%E5%86%85%E5%AE%B9%E3%80%82%3C%2FP%3E%3CP%3E%E9%82%A3%E4%B9%88%E4%BD%A0%E8%83%BD%E5%90%A6%E7%A1%AE%E8%AE%A4%E4%BB%A5%E4%B8%8B%E5%87%A0%E7%82%B9%EF%BC%9A%3C%2FP%3E%3CP%3E1.%E4%B8%8A%E6%B8%B8%20Linux%20%E6%94%AF%E6%8C%81%E4%B8%8D%E8%83%BD%E7%94%A8%E4%BA%8E%E6%94%AF%E6%8C%81%20LS1046A%20%E4%B8%8A%E7%9A%84%201000Base-KX%20%E5%92%8C%2F%E6%88%96%201000Base-KR%E3%80%82%3C%2FP%3E%3CP%3E2.%20%E4%B8%8A%E9%9D%A2%E7%9A%84%E9%93%BE%E6%8E%A5%E4%B8%AD%E6%8F%90%E5%88%B0%E9%85%8D%E7%BD%AESGMII_IF_MODE%E3%80%82Linux%20%E7%9A%84%E5%93%AA%E4%B8%AA%E9%83%A8%E5%88%86%E5%8F%AF%E4%BB%A5%E5%81%9A%E5%88%B0%E8%BF%99%E4%B8%80%E7%82%B9%EF%BC%9F%3C%2FP%3E%3CP%3E3.%20%E6%82%A8%E8%83%BD%E5%91%8A%E8%AF%89%E6%88%91%2010Gbase-kr%20%E5%92%8C%201000Base-KX%20%E7%9A%84%E8%8A%82%E7%82%B9%E5%BA%94%E8%AF%A5%E6%98%AF%E4%BB%80%E4%B9%88%E6%A0%B7%E7%9A%84%E5%90%97%EF%BC%9F%3C%2FP%3E%3CP%3E4.%E6%94%AF%E6%8C%81%20LS1046a%20%E7%9A%84%E6%9C%80%E6%96%B0%20U-boot%2FLinux%20%E6%98%AF%E4%BB%80%E4%B9%88%EF%BC%8C%E7%89%B9%E5%88%AB%E6%98%AF%20U-boot%20%E4%B8%AD%E6%98%AF%E5%90%A6%E6%9C%89%E4%BB%A3%E7%A0%81%E5%8F%AF%E4%BB%A5%E5%88%9D%E5%A7%8B%E5%8C%96%201000Base-kr%20%E5%92%8C%201000Base-kx%E3%80%82%E6%88%91%E7%8C%9C%E4%B8%8A%E9%9D%A2%E7%9A%84%E9%93%BE%E6%8E%A5%E6%98%AF%E5%88%9D%E5%A7%8B%E5%8C%96%E5%BA%8F%E5%88%97%E3%80%82%3C%2FP%3E%3CBR%20%2F%3E%3CP%3E%E5%90%A6%E5%88%99%EF%BC%8C%E5%A6%82%E6%9E%9C%E6%88%91%E5%85%B3%E4%BA%8E%E6%97%A0%E6%B3%95%E4%BD%BF%E7%94%A8%E4%B8%8A%E6%B8%B8%E5%86%85%E6%A0%B8%EF%BC%88kernel.org%EF%BC%89%E7%9A%84%E8%AF%B4%E6%B3%95%E6%98%AF%E9%94%99%E8%AF%AF%E7%9A%84%EF%BC%8C%E6%88%91%E5%B0%86%E9%9D%9E%E5%B8%B8%E6%84%9F%E6%BF%80%E6%82%A8%E8%83%BD%E5%AF%B9%E6%88%91%E6%89%80%E8%A6%81%E5%81%9A%E7%9A%84%E4%BA%8B%E6%83%85%E8%BF%9B%E8%A1%8C%E6%80%BB%E7%BB%93%E3%80%82%3C%2FP%3E%3CBR%20%2F%3E%3CP%3E%E5%B9%B2%E6%9D%AF%EF%BC%8C%3C%2FP%3E%3CP%3E%E9%9B%B7%E8%AF%BA%3C%2FP%3E%3CBR%20%2F%3E%3CBR%20%2F%3E%3CBR%20%2F%3E%3CBR%20%2F%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2053239%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%E5%9B%9E%E5%A4%8D%EF%BC%9ALS1046a%201000Base-KX%2F10gBase-KR%20Linux%20%E6%94%AF%E6%8C%81%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2053239%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%E6%9C%80%E7%BB%88%E5%9C%A8%201000base-KX%20%E4%B8%8A%E5%8F%91%E7%8E%B0%E4%BA%86%E9%94%99%E8%AF%AF%E3%80%82%E9%99%A4%E4%BA%86%E6%B8%85%E9%99%A4%20AMP_RED%20%E5%AD%97%E6%AE%B5%E5%A4%96%EF%BC%8C%E8%BF%98%E6%9C%89%E4%B8%80%E4%BA%9B%E4%BD%8D%E9%9C%80%E8%A6%81%E8%AE%BE%E7%BD%AE%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2038445%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%E5%9B%9E%E5%A4%8D%EF%BC%9ALS1046a%201000Base-KX%2F10gBase-KR%20Linux%20%E6%94%AF%E6%8C%81%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2038445%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%E5%BD%93%E4%BD%A0%E5%9C%A8%20U-boot%20%E4%B8%8A%E6%B2%A1%E6%9C%89%E9%9C%80%E8%A6%81%E9%85%8D%E7%BD%AE%E7%9A%84%E4%B8%9C%E8%A5%BF%E6%97%B6%EF%BC%8C%E4%BC%9A%E6%9C%89%E7%82%B9%E5%9B%B0%E6%83%91%E3%80%82%E6%82%A8%E4%BB%8E%2031.8.1.3%20%E5%9C%A8%E5%93%AA%E9%87%8C%E8%BF%9B%E8%A1%8C%E9%85%8D%E7%BD%AE%E3%80%82%E6%88%91%E8%AE%A4%E4%B8%BA%E5%AE%83%E6%98%AF%E5%9C%A8%20U-boot%20%E5%92%8C%20Linux%20%E4%B9%8B%E9%97%B4%E5%88%92%E5%88%86%E7%9A%84%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2038075%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%E5%9B%9E%E5%A4%8D%EF%BC%9ALS1046a%201000Base-KX%2F10gBase-KR%20Linux%20%E6%94%AF%E6%8C%81%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2038075%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%E8%AE%A9%E6%88%91%E4%BB%AC%E8%BD%AC%E5%90%9110gbase-kr%E3%80%82%E6%88%91%E7%9C%8B%E5%88%B0%E6%9C%89%20LANnTECR0%20%E9%9C%80%E8%A6%81%E8%AE%BE%E7%BD%AE%E3%80%82%3C%2FP%3E%3CP%3E%E6%88%91%E7%9C%8B%E5%88%B0%E4%B8%A4%E4%B8%AA%20DTS%20%E5%8C%85%E5%90%AB%E6%96%87%E4%BB%B6%EF%BC%9A%3C%2FP%3E%3CP%3E%E6%8B%B1%2Farm64%2F%E5%90%AF%E5%8A%A8%2Fdts%2F%E9%A3%9E%E6%80%9D%E5%8D%A1%E5%B0%94%2Ffsl-ls1046a-sd1-1133-lane-c-%E8%83%8C%E6%9D%BF-phylib.dtsi%3CBR%20%2F%3E%E6%8B%B1%2Farm64%2F%E5%90%AF%E5%8A%A8%2Fdts%2F%E9%A3%9E%E6%80%9D%E5%8D%A1%E5%B0%94%2Ffsl-ls1046a-sd1-1133-lane-c-backplane.dtsi%3C%2FP%3E%3CP%3E%E6%88%91%E5%BA%94%E8%AF%A5%E5%8C%85%E6%8B%AC%E5%85%B6%E4%B8%AD%E4%BB%BB%E4%BD%95%E4%B8%80%E4%B8%AA%E5%90%97%EF%BC%9F%E6%88%96%E8%80%85%E8%AE%A9%E5%AE%83%E6%9B%B4%E7%AE%80%E5%8D%95%E4%B8%80%E4%BA%9B%E3%80%82%3C%2FP%3E%3CP%3E%E7%94%B1%E4%BA%8E%E6%9F%90%E7%A7%8D%E5%8E%9F%E5%9B%A0%EF%BC%8C%E6%88%91%E5%8C%85%E5%90%AB%E4%BA%86%E5%90%8E%E8%80%85%EF%BC%8C%E4%BD%86%E5%AD%98%E5%9C%A8%E4%B8%80%E4%BA%9B%E6%8E%A2%E6%B5%8B%E9%94%99%E8%AF%AF%E3%80%82%3C%2FP%3E%3CBR%20%2F%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2037664%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%E5%9B%9E%E5%A4%8D%EF%BC%9ALS1046a%201000Base-KX%2F10gBase-KR%20Linux%20%E6%94%AF%E6%8C%81%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2037664%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3Epcsphy4%20%E6%80%8E%E4%B9%88%E6%A0%B7%EF%BC%9F%E8%AE%BE%E5%A4%87%E6%A0%91%E7%9A%84%E9%83%A8%E5%88%86%E9%9C%80%E8%A6%81%E4%BF%AE%E6%94%B9%E5%90%97%EF%BC%9F%3CBR%20%2F%3E1000Base-KX%20%E7%A9%BF%E8%BF%87%E8%83%8C%E6%9D%BF%EF%BC%8C%E7%84%B6%E5%90%8E%E7%BB%8F%E8%BF%87%E5%AA%92%E4%BD%93%E8%BD%AC%E6%8D%A2%E5%99%A8%EF%BC%88%E5%88%B0%201000baseT%EF%BC%89%E3%80%82MDIO%20%E6%80%BB%E7%BA%BF%E6%9C%AA%E9%80%9A%E8%BF%87%E8%83%8C%E6%9D%BF%E8%BF%9E%E6%8E%A5%E3%80%82%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2036389%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%E5%9B%9E%E5%A4%8D%EF%BC%9ALS1046a%201000Base-KX%2F10gBase-KR%20Linux%20%E6%94%AF%E6%8C%81%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2036389%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%E8%BF%99%E6%98%AF%E4%B8%80%E4%B8%AA%E7%9C%8B%E8%B5%B7%E6%9D%A5%E5%83%8F%201000Base-KX%20%E8%8A%82%E7%82%B9%E7%9A%84%E7%A4%BA%E4%BE%8B%3CBR%20%2F%3Eenet4%EF%BC%9A%E4%BB%A5%E5%A4%AA%E7%BD%91%404%20%7B%3CBR%20%2F%3E%E5%85%BC%E5%AE%B9%3D%E2%80%9Cfsl%EF%BC%8Cfman%20memac%E2%80%9D%EF%BC%9B%3CBR%20%2F%3E%20reg%20%3D%20%26lt%3B0x4000%200x1000%26gt%3B%3B%3CBR%20%2F%3E%20phy%E6%A8%A1%E5%BC%8F%3D%E2%80%9C1000base-kx%E2%80%9D%EF%BC%9B%3CBR%20%2F%3E%E5%9B%BA%E5%AE%9A%E9%93%BE%E8%B7%AF%20%3D%20%26lt%3B4%201%201000%200%200%26gt%3B%3B%20%2F%2F%E5%9B%BA%E5%AE%9A%E9%93%BE%E8%B7%AF%E8%87%B3%201%20Gbps%3CBR%20%2F%3E%E7%8A%B6%E6%80%81%20%3D%20%E2%80%9C%E5%A5%BD%E7%9A%84%E2%80%9D%3B%3CBR%20%2F%3E%20%7D%3B%3CBR%20%2F%3E%E6%AD%A4%E5%A4%96%EF%BC%8C%E6%82%A8%E8%BF%98%E5%BF%85%E9%A1%BB%E6%8C%89%E7%85%A7%E4%B8%BB%E9%A2%98%E2%80%9C31.8.1.3LS1046ARM%20%E4%B8%AD%E7%9A%84%E2%80%9C1000Base-KX%E2%80%9D%E3%80%82%3CBR%20%2F%3ELLDP%206.1.55%E4%BD%BF%E7%94%A8%20U-boot%20%E7%89%88%E6%9C%AC%202023.04%3CBR%20%2F%3EU-boot%20%E6%97%A0%E9%9C%80%E9%85%8D%E7%BD%AE%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2036266%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%E5%9B%9E%E5%A4%8D%EF%BC%9ALS1046a%201000Base-KX%2F10gBase-KR%20Linux%20%E6%94%AF%E6%8C%81%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2036266%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%E6%88%91%E6%83%B3%E6%88%91%E6%89%BE%E5%88%B0%E4%BA%86%201%20%E5%92%8C%202%20%E7%9A%84%E7%AD%94%E6%A1%88%EF%BC%8C%E4%BD%86%E6%97%A0%E6%B3%95%E8%AE%A9%201000Kx%20%E6%88%96%2010base-KR%20%E5%B7%A5%E4%BD%9C%3C%2FP%3E%3C%2FLINGO-BODY%3E