Thread 中讨论的其他器件: TMDS64EVM、 SK-AM64B
工具/软件:
我使用的是 AM6422和 u-boot2024.04
在设备树中定义的以太网端口1在 u-boot 下运行良好。
我想在 u-boot 下启用以太网端口2以进行硬件测试。
我知道我必须修改以太网端口2的 DTS。 还有什么需要呢?
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.
您好:
首先、您计划启用哪种类型的以太网? 即 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 端口?
-道林
您好:
我刚才检查了 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 端口是否有任何差异。
如果您有后续问题、请告知我们
-道林
它是工作的,非常感谢!
除了更改主器件树源(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
=>