This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] TDA4VM-Q1:J721e 是否在原生以太网驱动程序中支持 SGMII MAC 端口?

Guru**** 2478835 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1456043/tda4vm-q1-does-j721e-support-sgmii-mac-port-in-native-ethernet-driver

器件型号:TDA4VM-Q1

工具与软件:

您好、专家

https://software-dl.ti.com/jacinto7/esd/processor-sdk-linux-jacinto7/10_01_00_04/exports/docs/linux/Foundational_Components Network/CPSWng-Native-Ethernet.html#enabling-cpswng-native-ethernet-for-linux Kernel_Drivers


我之前在最新的 Processor SDK (10.01.00.04)中查看了用于 Linux 的 CPSWng 本机以太网的文档、发现 J721e SoC 仅列为支持 RGMII QSGMII 切换。 提供了这些模式的覆盖文件(k3-j721e-evm-gesi-exp-board.dtbok3-j721e-evm-quad-port-eth-exp.dtbo)。 不过,这似乎是 SGMII 支持标记为"覆盖不是 SDK 的一部分"。

请您确认是否 J721e 在当前 SDK 中支持 SGMII MAC 端口? 如果不直接支持它、是否有任何未来支持计划、或者我是否需要自定义设备树和驱动程序来启用它?

提前感谢您的帮助!



BR
Jay

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    更新问题:
    原生 Linux SDK 的 PC 上运行 、它是否支持配置 三个 SGMII 端口 打开 CPSW9G 以太网交换机?


  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    用于 原生 Linux SDK 的 PC 上运行 、它是否支持配置 三个 SGMII 端口 在 CPSW9G 以太网交换机上?[/QUOT]

    是的、SDK 支持 SGMII 模式的 CPSW 驱动程序 am65-cpsw-nuss、但是、对于在 SGMII 中配置 cpsw 端口和 SerDes、SDK 中不存在器件树叠加。

    如果要启用 SGMII、需要更新 SGMII 的 CPSW 端口和串行器/解串器。

    此致、
    Sudheer

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的  Sudheer:

    是的、我需要启用三个 SGMII 端口、如下面的拓扑所示。 请分享如何完成 SGMII 的 CPSW 端口和串行器/解串器更新?

    BR
    Jay

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    请参阅其他串行器/解串器节点、了解如何在 j721e-common-proc-board.dts 文件中配置这些节点。

    请参阅以下参考、以在通道0、1、2上启用 SGMII 的串行器/解串器4。

    &serdes_ln_ctrl {
    	idle-states = <J721E_SERDES0_LANE0_QSGMII_LANE1>, <J721E_SERDES0_LANE1_QSGMII_LANE2>,	/* port1, port2 */
    		      <J721E_SERDES1_LANE0_PCIE1_LANE0>, <J721E_SERDES1_LANE1_PCIE1_LANE1>,
    		      <J721E_SERDES2_LANE0_IP1_UNUSED>, <J721E_SERDES2_LANE1_USB3_1>,
    		      <J721E_SERDES3_LANE0_IP1_UNUSED>, <J721E_SERDES3_LANE1_IP1_UNUSED>,
    		      <J721E_SERDES4_LANE0_QSGMII_LANE5>, <J721E_SERDES4_LANE1_QSGMII_LANE6>,
    		      <J721E_SERDES4_LANE2_QSGMII_LANE7>, <J721E_SERDES4_LANE3_QSGMII_LANE8>;	/* port 8 */
    };
    
    
    &serdes4 {
    	status = "okay";
    	assigned-clocks = <&serdes4 CDNS_SIERRA_PLL_CMNLC>;
    	assigned-clock-parents = <&wiz4_pll0_refclk>;
    	
    	serdes4_sgmii_link: phy@0 {
    		reg = <0>;
    		cdns,num-lanes = <3>;
    		#phy-cells = <0>;
    		cdns,phy-type = <PHY_TYPE_SGMII>;
    		resets = <&serdes_wiz4 1>, <&serdes_wiz4 2>, <&serdes_wiz4 3>;
    	};
    };

    已在 SGMII 中启用 CPSW 端口8作为参考、请按类似方式配置所需端口。

    &cpsw0_port8 {
    	phy-handle = <&cpsw9g_phy6>;
        phy-mode = "sgmii";
    	mac-address = [00 00 00 00 00 00];
    	phys = <&cpsw0_phy_gmii_sel 8>, <&serdes4_sgmii_link>;
    	phy-names = "portmode", "serdes";
    };


    SerDES4默认支持 SGMII 配置、无需对串行器/解串器驱动器进行任何更改
    但是、需要更新 SerDes4的器件树、即、处理以下问题。

    您需要按如下所示 从"k3-j721e-main.dtsi"文件更改串行器/解串器4的兼容名称和父时钟。

    1. 使兼容 字符串 forserdes_fiz4节点为:"ti,j721e-wiz-10g"
    2. 将串行器/解串器的兼容字符串设置为"ti,j721e-serdes-10g"
    3. 将分配的时钟父级更改为"ASSIGNED-CLOCKDNED =<&K3_CLKS 297 13>;"
    4. 从"SerDes_fiz4"节点注释掉"Assigned-clock-rates =<19200000>;"。

    按如下所示更新了串行器/解串器4。

    	serdes_wiz4: wiz@5050000 {
    		compatible = "ti,j721e-wiz-10g";
    		#address-cells = <1>;
    		#size-cells = <1>;
    		power-domains = <&k3_pds 297 TI_SCI_PD_EXCLUSIVE>;
    		clocks = <&k3_clks 297 1>, <&k3_clks 297 9>, <&cmn_refclk>;
    		clock-names = "fck", "core_ref_clk", "ext_ref_clk";
    		assigned-clocks = <&k3_clks 297 9>;
    		assigned-clock-parents = <&k3_clks 297 13>;
    		num-lanes = <4>;
    		#reset-cells = <1>;
    		ranges = <0x5050000 0x0 0x5050000 0x10000>,
    			<0xa030a00 0x0 0xa030a00 0x40>;
    
    		wiz4_pll0_refclk: pll0-refclk {
    			clocks = <&k3_clks 297 9>, <&cmn_refclk>;
    			clock-output-names = "wiz4_pll0_refclk";
    			#clock-cells = <0>;
    			assigned-clocks = <&wiz4_pll0_refclk>;
    			assigned-clock-parents = <&k3_clks 297 9>;
    		};
    
    		wiz4_pll1_refclk: pll1-refclk {
    			clocks = <&k3_clks 297 9>, <&cmn_refclk>;
    			clock-output-names = "wiz4_pll1_refclk";
    			#clock-cells = <0>;
    			assigned-clocks = <&wiz4_pll1_refclk>;
    			assigned-clock-parents = <&k3_clks 297 9>;
    		};
    
    		wiz4_refclk_dig: refclk-dig {
    			clocks = <&k3_clks 297 9>, <&cmn_refclk>;
    			clock-output-names = "wiz4_refclk_dig";
    			#clock-cells = <0>;
    			assigned-clocks = <&wiz4_refclk_dig>;
    			assigned-clock-parents = <&k3_clks 297 9>;
    		};
    
    		wiz4_cmn_refclk_dig_div: cmn-refclk-dig-div {
    			clocks = <&wiz4_refclk_dig>;
    			#clock-cells = <0>;
    		};
    
    		wiz4_cmn_refclk1_dig_div: cmn-refclk1-dig-div {
    			clocks = <&wiz4_pll1_refclk>;
    			#clock-cells = <0>;
    		};
    
    		serdes4: serdes@5050000 {
    			/*
    			 * Note: we also map DPTX PHY registers as the Torrent
    			 * needs to manage those.
    			 */
    			compatible = "ti,j721e-serdes-10g";
    			reg = <0x5050000 0x10000>,
    			      <0xa030a00 0x40>; /* DPTX PHY */
    			reg-names = "torrent_phy", "dptx_phy";
    
    			resets = <&serdes_wiz4 0>;
    			reset-names = "torrent_reset";
    			clocks = <&wiz4_pll0_refclk>;
    			clock-names = "refclk";
    			#address-cells = <1>;
    			#size-cells = <0>;
    		};



    此外、请确保仅从原生 Linux 驱动程序启用 CPSW9、并在 MCU2_0内核上禁用 ETHFW。

    有关更多详细信息、请参阅以下常见问题解答。
    https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1264445/faq-how-do-i-bring-brought-up-ethernet-interfaces-for-main-domain-cpswng-in-linux-from-sdk-version-9-0-and-above


    此致、
    Sudheer

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的  Sudheer:

    我根据您提到的步骤修改"j721e-common-proc-board.dts"和"k3-j721e-main.dtsi"后、我能否确认 J721e EVM 上的配置是否正确? 目前、我只能看到 eth0显示。
    此外、我是否需要在 uEnv.txt 中启用 overlay?

    此致、

    Jay。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    此外、我是否需要在 uEnv.txt 中启用覆盖?

    可以、如果已从覆盖层启用 CPSW 节点和端口配置。

    此致、
    Sudheer