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.

[参考译文] AM6422:u-boot2024.04是否支持启用2个以太网端口?

Guru**** 2379820 points
Other Parts Discussed in Thread: AM6422, TMDS64EVM, SK-AM64B
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1501847/am6422-does-u-boot2024-04-support-to-enable-2-ethernet-ports

器件型号:AM6422
Thread 中讨论的其他器件: TMDS64EVMSK-AM64B

工具/软件:

我使用的是  AM6422和 u-boot2024.04

在设备树中定义的以太网端口1在 u-boot 下运行良好。

我想在 u-boot 下启用以太网端口2以进行硬件测试。

我知道我必须修改以太网端口2的 DTS。  还有什么需要呢?

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

    您好:

    首先、您计划启用哪种类型的以太网? 即 CPSW 或 PRU_ICSSG 以太网?

    如果您使用的是 u-boot2024.04、您是否使用 Linux SDK 10.1? 请告知我们您正在使用的 SDK 版本。

    您目前是使用 AM6422或 AM64x EVM 在定制电路板上进行开发吗?

    过去、我只需更改 DTS、便可在 AM62x 上启用第二个 CPSW 以太网端口。 这又回到了 uboot2023.04中。 我以前没有尝试过 u-boot2024.04和 AM64x 器件。 最好先更改 U-boot dts、看看是否有问题。

    我参考了我为在 AM62x 上启用第二个 CPSW 以太网端口而进行的 DTS 更改、作为您计划在 AM64x 电路板上启用 CPSW 以太网的参考。  

     arch/arm/dts/k3-am62x-sk-common-u-boot.dtsi | 35 +++++++++++++++++++--
     1 file changed, 33 insertions(+), 2 deletions(-)
    
    diff --git a/arch/arm/dts/k3-am62x-sk-common-u-boot.dtsi b/arch/arm/dts/k3-am62x-sk-common-u-boot.dtsi
    index 4265b434..0b093edb 100644
    --- a/arch/arm/dts/k3-am62x-sk-common-u-boot.dtsi
    +++ b/arch/arm/dts/k3-am62x-sk-common-u-boot.dtsi
    @@ -146,7 +146,7 @@
     	reg-names = "cpsw_nuss", "mac_efuse";
     	/delete-property/ ranges;
     	/* This is WA because MDIO driver is not DM enabled */
    -	pinctrl-0 = <&main_mdio1_pins_default &main_rgmii1_pins_default>;
    +	pinctrl-0 = <&main_mdio1_pins_default &main_rgmii1_pins_default &main_rgmii2_pins_default>;
     	bootph-pre-ram;
     
     	cpsw-phy-sel@04044 {
    @@ -157,9 +157,40 @@
     };
     
     &cpsw_port2 {
    -	status = "disabled";
    +	phy-mode = "rgmii-rxid";
    +	phy-handle = <&cpsw3g_phy1>;
    +	bootph-pre-ram;
     };
     
    +&cpsw3g_mdio {
    +	cpsw3g_phy1: ethernet-phy@1 {
    +		reg = <1>;
    +		ti,rx-internal-delay = <DP83867_RGMIIDCTL_2_00_NS>;
    +		ti,fifo-depth = <DP83867_PHYCR_FIFO_DEPTH_4_B_NIB>;
    +		ti,min-output-impedance;
    +	};
    +};
    +
    +&main_pmx0 {
    +	main_rgmii2_pins_default: main-rgmii2-pins-default {
    +		pinctrl-single,pins = <
    +			AM62X_IOPAD(0x184, PIN_INPUT, 0) /* (AE23) RGMII2_RD0 */
    +			AM62X_IOPAD(0x188, PIN_INPUT, 0) /* (AB20) RGMII2_RD1 */
    +			AM62X_IOPAD(0x18c, PIN_INPUT, 0) /* (AC21) RGMII2_RD2 */
    +			AM62X_IOPAD(0x190, PIN_INPUT, 0) /* (AE22) RGMII2_RD3 */
    +			AM62X_IOPAD(0x180, PIN_INPUT, 0) /* (AD23) RGMII2_RXC */
    +			AM62X_IOPAD(0x17c, PIN_INPUT, 0) /* (AD22) RGMII2_RX_CTL */
    +			AM62X_IOPAD(0x16c, PIN_OUTPUT, 0) /* (Y18) RGMII2_TD0 */
    +			AM62X_IOPAD(0x170, PIN_OUTPUT, 0) /* (AA18) RGMII2_TD1 */
    +			AM62X_IOPAD(0x174, PIN_OUTPUT, 0) /* (AD21) RGMII2_TD2 */
    +			AM62X_IOPAD(0x178, PIN_OUTPUT, 0) /* (AC20) RGMII2_TD3 */
    +			AM62X_IOPAD(0x168, PIN_OUTPUT, 0) /* (AE21) RGMII2_TXC */
    +			AM62X_IOPAD(0x164, PIN_OUTPUT, 0) /* (AA19) RGMII2_TX_CTL */
    +		>;
    +	};
    +};
    +
    +
     &main_bcdma {
     	bootph-pre-ram;
     	reg = <0x00 0x485c0100 0x00 0x100>,
    -- 
    2.34.1
    

    -道林

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

    尊敬的 Daolin:

    1.我要启用2个 CPSW 以太网端口。 第一个 CPSW 在 u-boot 中运行良好。  

    2.我使用 的是 u-boot2024.04、但没有使用  Linux SDK 10.1。  我使用的是 VxWorks7、而不是 Linux。

    3.我们目前正在使用 AM6422的定制电路板上进行开发。 我们进一步介绍了 AM64x EVM 板(TMDS64EVM)和 SK-AM64B 的硬件开发

    4.指 我已完成 DTS 更改作为流,但第二个 cpsw 不会通过"dm tree"命令信息进行探测。

    &cpsw_port2{
    + bootph-全部;
    PHY-MODE ="rgmii-rxid";
    - phy-handle =<&cpsw3g_phy3>;
    + phy-handle =<&cpsw3g_phy1>;
    };

    &cpsw3g_mdio{
    @@Ω-662、6 +512、@@μ F
    TI、rx-internal-delay = ;
    TI、fifo-depth = ;
    };
    +
    +  
    + cpsw3g_phy1:ethernet-phy@1{
    + bootph-全部;
    + reg =<1>;
    + ti、rx-internal-delay = ;
    + ti、fifo-depth = ;
    +};
    };

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

    您好:  

    - phy-handle =<&cpsw3g_phy3>;
    + phy-handle =<&cpsw3g_phy1>;
    + cpsw3g_phy1:Ethernet-phy@1{
    + bootph-全部;
    + reg =<1>;

    在您的定制电路板中、第二个 CPSW 端口1或3的以太网 PHY 地址是什么? 请注意、在 TMDS64EVM 上、如果我记得正确、第二个 CPSW 端口上的 PHY 实际上位于地址3。

    您是否能够在 U-Boot 中使用"net list"命令查看第2个 CPSW 端口?

    -道林

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

    您是否能够在 U-Boot 中使用"net list"命令查看第2个 CPSW 端口? "不会的

    在我的定制电路板中、第一个 CPSW 端口为1、第二个端口为2。

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

    您好:

    我刚才检查了 SK-AM64B EVM 以查看其 DTS 是否支持第2个 CPSW 以太网端口、以及它是否在 U-boot (v2024.04)中工作。  

    SK-AM64B 的 DTS (k3-am642-sk.dts)已经在 U-Boot 中启用了第二个 CPSW 以太网端口、我通过检查是否检测到第二个 CPSW 端口、是否可以获取 IP 地址并将数据包发送到连接的主机 PC 来验证这一点。 请参阅以下日志:

    U-Boot 2024.04-ti-g29d0c23d67ee (Nov 29 2024 - 11:41:54 +0000)
    
    SoC:  AM64X SR2.0 HS-FS
    Model: Texas Instruments AM642 SK
    Board: AM64B-SKEVM rev A
    DRAM: 2 GiB
    Core: 89 devices, 31 uclasses, devicetree: separate
    NAND: 0 MiB
    MMC:  mmc@fa00000: 1
    Loading Environment from nowhere... OK
    In:   serial@2800000
    Out:  serial@2800000
    Err:  serial@2800000
    Failed to probe prueth driver
    Net:  eth0: ethernet@8000000port@1, eth1: ethernet@8000000port@2
    Hit any key to stop autoboot: 0 
    => net list
    eth0 : ethernet@8000000port@1 1c:63:49:1a:d2:a9 active
    eth1 : ethernet@8000000port@2 70:ff:76:1f:42:ef 
    => setenv autoload n
    => dhcp
    ethernet@8000000port@1 Waiting for PHY auto negotiation to complete......... TIMEOUT !
    am65_cpsw_nuss_port ethernet@8000000port@1: phy_startup failed
    am65_cpsw_nuss_port ethernet@8000000port@1: am65_cpsw_start end error
    link up on port 2, speed 1000, full duplex
    BOOTP broadcast 1
    BOOTP broadcast 2
    BOOTP broadcast 3
    DHCP client bound to address 172.168.1.21 (1047 ms)
    => net list
    eth0 : ethernet@8000000port@1 1c:63:49:1a:d2:a9 
    eth1 : ethernet@8000000port@2 70:ff:76:1f:42:ef active
    => ping 172.168.1.1
    link up on port 2, speed 1000, full duplex
    Using ethernet@8000000port@2 device
    host 172.168.1.1 is alive
    =>

    我建议将定制电路板的 DTS 与 SK-AM64B 定制电路板进行比较、以查看配置 CPSW 端口是否有任何差异。  

    如果您有后续问题、请告知我们

    -道林

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

    太好了、非常感谢、我会比较 DTS。 如果我有任何疑问、我会与您联系。

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

    它是工作的,非常感谢!

    除了更改主器件树源(k3-am642-evm.dts)外、我还更新了中的 U-Boot 特定配置  k3-am642-evm-u-boot.dtsi. And then the second CPSW port2 is detected.

    eg005692@9151fb7f3cb0:/opt/tisdk/board-support/ti-u-boot-2024.04 +git$ git diff arch/arm/dts/k3-am642-evm-u-boot.dtsi
    diff -git a/arch/arm/dts/k3-am642-evm-u-boot.dtsi b/arch/arm/dts/k3-am642-evm-u-boot.dtsi
    索引5d7cbe04..ad30ab 100644
    -- A/arch/arm/dts/k3-am642-evm-u-boot.dtsi
    ++ b/arch/arm/dts/k3-am642-evm-u-boot.dtsi
    @@-137、6 +137、10 @@
           全部引导;
    };

    +&cpsw3g_phy1{
    +      bootph-全部;
    +};
    +
    &rgmii1_pins_default{
           全部引导;
    };
    @@-162、7 + 166、7 @@
    };

    &cpsw_port2{
    -      status ="disabled";
    +      bootph-全部;
    };

    &gpmc0{

    => net list
    eth0 : ethernet@8000000port@1 1c:63:49:1d:2e:cd active
    eth1 : ethernet@8000000port@2 5e:3e:57:22:3b:78
    => printenv ethact
    ethact=ethernet@8000000port@1
    => setenv ethact ethernet@8000000port@2
    => net list
    eth0 : ethernet@8000000port@1 1c:63:49:1d:2e:cd active
    eth1 : ethernet@8000000port@2 5e:3e:57:22:3b:78
    => saveenv
    Saving Environment to MMC... Writing to MMC(0)... OK
    => dhcp
    link up on port 2, speed 1000, full duplex
    BOOTP broadcast 1
    BOOTP broadcast 2
    BOOTP broadcast 3
    DHCP client bound to address 10.0.1.245 (1005 ms)
    Using ethernet@8000000port@2 device
    TFTP from server 10.0.1.1; our IP address is 10.0.1.245
    Filename 'pxelinux.0'.
    Load address: 0x82000000
    Loading: T ################################################## 25.9 KiB
    4.9 KiB/s
    done
    Bytes transferred = 26478 (676e hex)
    => net list
    eth0 : ethernet@8000000port@1 1c:63:49:1d:2e:cd
    eth1 : ethernet@8000000port@2 5e:3e:57:22:3b:78 active
    => ping 10.0.1.1
    link up on port 2, speed 1000, full duplex
    Using ethernet@8000000port@2 device
    host 10.0.1.1 is alive
    =>