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.

[参考译文] TDA4VH-Q1:如何在 RGMII 内以固定链路模式设置 MCU CPSW2g TX 时钟?

Guru**** 2578795 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1278876/tda4vh-q1-how-to-setup-the-mcu-cpsw2g-tx-clock-in-the-fixed-link-mode-within-rgmii

器件型号:TDA4VH-Q1
主题中讨论的其他器件:TMP75INA226

您好、TI 团队、

我们希望通过外部器件为 MCU CPSW2g 端口设置固定链路1000Mbps。 在这里、我们发现可以针对 RGMII 端口正确设置外部器件。 但我们发现、 在此模式下、通过使用 Linux 器件树配置、MCU CPSW2g 端口 TX 时钟仍然输出25 MHz 频率。 我们想知道是否有一些方法可以更改 MCU CPSW2g 端口状态、以便通过外部器件的 RGMII 设置建立?

由于这不适用于连接的两个端口的自动协商功能、因此我们仅使用1000M 的 RGMII 固定链路、因此任何一方是否应该仅驱动时钟来传输数据? 或者、我们应该为外部器件设置 Phy 模式、以使其正常工作?

欢迎提出任何建议。

谢谢。

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

    设备树配置如下所列

    mcu_cpsw: ethernet@46000000 {
    		compatible = "ti,j721e-cpsw-nuss";
    		#address-cells = <2>;
    		#size-cells = <2>;
    		reg = <0x0 0x46000000 0x0 0x200000>;
    		reg-names = "cpsw_nuss";
    		ranges = <0x0 0x0 0x0 0x46000000 0x0 0x200000>;
    		dma-coherent;
    		clocks = <&k3_clks 63 0>;
    		clock-names = "fck";
    		power-domains = <&k3_pds 63 TI_SCI_PD_EXCLUSIVE>;
    
    		dmas = <&mcu_udmap 0xf000>,
    		       <&mcu_udmap 0xf001>,
    		       <&mcu_udmap 0xf002>,
    		       <&mcu_udmap 0xf003>,
    		       <&mcu_udmap 0xf004>,
    		       <&mcu_udmap 0xf005>,
    		       <&mcu_udmap 0xf006>,
    		       <&mcu_udmap 0xf007>,
    		       <&mcu_udmap 0x7000>;
    		dma-names = "tx0", "tx1", "tx2", "tx3",
    			    "tx4", "tx5", "tx6", "tx7",
    			    "rx";
    
    		ethernet-ports {
    			#address-cells = <1>;
    			#size-cells = <0>;
    
    			mcu_cpsw_port1: port@1 {
    				reg = <1>;
    				ti,mac-only;
    				label = "port1";
    				ti,syscon-efuse = <&mcu_conf 0x200>;
    				phys = <&phy_gmii_sel 1>;
    			};
    		};
    
    		davinci_mdio: mdio@f00 {
    			compatible = "ti,cpsw-mdio","ti,davinci_mdio";
    			reg = <0x0 0xf00 0x0 0x100>;
    			#address-cells = <1>;
    			#size-cells = <0>;
    			clocks = <&k3_clks 63 0>;
    			clock-names = "fck";
    			bus_freq = <1000000>;
    		};
    
    		cpts@3d000 {
    			compatible = "ti,am65-cpts";
    			reg = <0x0 0x3d000 0x0 0x400>;
    			clocks = <&k3_clks 63 3>;
    			clock-names = "cpts";
    			interrupts-extended = <&gic500 GIC_SPI 858 IRQ_TYPE_LEVEL_HIGH>;
    			interrupt-names = "cpts";
    			ti,cpts-ext-ts-inputs = <4>;
    			ti,cpts-periodic-outputs = <2>;
    		};
    	};
    	
    
    k3-j784s4-evm.dts
    &mcu_cpsw {
    	pinctrl-names = "default";
    	pinctrl-0 = <&mcu_cpsw_pins_default &mcu_mdio_pins_default>;
    };
    
    //&davinci_mdio {
    //	mcu_phy0: ethernet-phy@0 {
    //		reg = <0>;
    //		//ti,rx-internal-delay = <DP83867_RGMIIDCTL_2_00_NS>;
    //		//ti,fifo-depth = <DP83867_PHYCR_FIFO_DEPTH_4_B_NIB>;
    //		//ti,min-output-impedance;
    //	};
    //};
    
    &mcu_cpsw_port1 {
    	phy-mode = "rgmii-rxid";
    //	phy-handle = <&mcu_phy0>;
    	fixed-link {
    		speed = <1000>;
    		full-duplex;
    	};
    };

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

    您好!

    您能否回答以下问题:

    1. 这里使用的 SDK 版本是什么?
    2. 另一侧是 PHY 还是 MAC?
    3. 请共享内核启动日志。
    4. 请共享"ethtool eth0"的输出

    使用的器件树配置正确。

    此致、
    坦迈

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

    您好!

    另一端是交换机,它有 MAC 和 phy,

    但是 MCU cpsw2g 连接到哪个接口? 是 MAC 还是 PHY?

    您能否说明以下其他事项:

    1. 这是在 EVM 上还是在定制板上?
    2. 您是否对引脚多路复用进行了任何更改?
    3. 您能确认在内核日志中看不到以下日志吗? 上面附加的日志没有它、但日志中也有从~22秒到~77秒的间隙。 从而确认。
      1. "am65-cpsw-nuss 46000000.Ethernet eth0:为固定/rgmi-rxid 链路模式配置"
    4. 当您尝试执行 Ping 操作时会出现什么情况?
    5. 连接到 MCU cpsw2g 的交换机端口中设置了什么 RGMII 延迟设置?

    此致、
    坦迈

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

    Phil、您好!

    我们已在交换机中设置了延迟。

    您只需在开关中设置 CPSW Rx 延迟。 Tx 延迟默认由 CPSW 提供。 如果需要从 CPSW 禁用 Tx 延迟、我可以帮您解决这个问题。

    您是否可以执行此处描述的 MAC 回送测试: https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1203408/faq-tda4vm-how-to-do-a-mac-loopback-test-with-cpsw-in-tda4-dra8-devices?tisearch=e2e-sitesearch&keymatch=faq%3Atrue

    您是否还可以检查在经过长时间(几分钟应该没问题) ping 测试后在"ethtool -S eth0"的输出中是否看到任何丢弃帧?

    此致、
    坦迈

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

    您好、Tanmay、

    我们找到了我们无法发送数据包的原因、感谢您的回复。

    我们现在可以使用开关器件的 PHY 模式来使用正确的时钟。

    请关闭 TT。

    谢谢。

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

    感谢 Yong 的确认。 关闭此标签。

    此致、
    坦迈