工具/软件:
香榭丽舍大街
客户将 RGMII 直接连接到具有自己 PHY 的开关芯片、因此不使用 MDIO。 在本例中、将 RGMII 与 PHY 分离的最佳方法是什么?
谢谢你
Michael
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.
工具/软件:
香榭丽舍大街
客户将 RGMII 直接连接到具有自己 PHY 的开关芯片、因此不使用 MDIO。 在本例中、将 RGMII 与 PHY 分离的最佳方法是什么?
谢谢你
Michael
您好、Michael:
网络已经超出了我的专业知识、但提到其他类似的工作、似乎只需从 CPSW 节点中移除 PHY 节点、即可在 Linux 中实现 Mac 转 Mac。 以下是供参考的内核器件树补丁。
diff --git a/arch/arm64/boot/dts/ti/k3-am62d2-evm.dts b/arch/arm64/boot/dts/ti/k3-am62d2-evm.dts
index e766b8a9583f..861950e417f9 100644
--- a/arch/arm64/boot/dts/ti/k3-am62d2-evm.dts
+++ b/arch/arm64/boot/dts/ti/k3-am62d2-evm.dts
@@ -640,35 +640,11 @@ cpts@3d000 {
&cpsw_port1 {
status = "okay";
phy-mode = "rgmii-rxid";
- phy-handle = <&cpsw3g_phy0>;
};
&cpsw_port2 {
status = "okay";
phy-mode = "rgmii-rxid";
- phy-handle = <&cpsw3g_phy1>;
-};
-
-&cpsw3g_mdio {
- status = "okay";
- #address-cells = <1>;
- #size-cells = <0>;
- pinctrl-names = "default";
- pinctrl-0 = <&main_mdio0_pins_default>;
-
- cpsw3g_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;
- };
-
- cpsw3g_phy1: ethernet-phy@3 {
- reg = <3>;
- ti,rx-internal-delay = <DP83867_RGMIIDCTL_2_00_NS>;
- ti,fifo-depth = <DP83867_PHYCR_FIFO_DEPTH_4_B_NIB>;
- ti,min-output-impedance;
- };
};
/* main_rti4 is used by C7x DSP */是的、它关于没有 phy 和 MDIO 的 CPSW MAC 到 MAC 接口。 我们知道器件树发生了变化、但这还不够、由于 MDIO 和 PHY 驱动程序与 TI 的 CPSW 以太网驱动程序一起拧紧、因此您将看到以下日志和以太网未启动且无法正常工作。
[ 1.392907] davinci_mdio 8000f00.mdio:DaVinci MDIO 修订版 9.7、总线频率 1000000
[ 1.392921] davinci_mdio 8000f00.mdio:无实时 phy、全部扫描
[ 1.493074] davinci_mdio 8000f00.mdio:等待用户访问超时
[ 1.593454] davinci_mdio 8000f00.mdio:等待空闲超时
[ 1.593467] davinci_mdio 8000f00.mdio:使用驱动程序 davinci_mdio 探测失败、错误–5
[1.593568] am65-cpsw-Nuss 8000000.ethernet:初始化 am65 cpsw Nuss 版本 0x6BA01103、cpsw 版本 0x6BA81103 端口:3 quirks:00000006
[ 1.594027] am65-cpsw-Nuss 8000000.ethernet:/bus@f0000/Ethernet@8000000/Ethernet-ports/port@2 读取 phy-mode err-22
[1.594355 ] am65-cpsw-Nuss 8000000.Ethernet:带有驱动程序 am65-cpsw-Nuss 的探测器失败、错误为–22
从 Ethernet/ti/Kconfig:
配置 TI_K3_AM65_CPSW_NUSS
三态“TI K3 AM654x/J721E CPSW 以太网驱动程序“
取决于&& TI_K3_UDMA_GUSE_LAYER 的 arch_k3 &&
选择“NET_DevLink"</s>“
选择 TI_DaVinci MDIO
选择 PHYLINK
选择 page_pool
选择 TI_K3_CPPI_DESC_POOL
暗示 PHY_TI_GMII_SEL
取决于 TI_K3_AM65_CPTS ||!TI_K3_AM65_CPTS
如果我在 Kconfig 中强制禁用 PHY 和 MDIO、则会出现很多编译错误。
谢谢爱平
尊敬的爱平:
我不像前一个补丁中那样删除“&cpsw3g_mdio"节点“节点、而是将其状态更改为“disabled",“,如、如下面的补丁中所示。
diff --git a/arch/arm64/boot/dts/ti/k3-am62d2-evm.dts b/arch/arm64/boot/dts/ti/k3-am62d2-evm.dts
index e766b8a9583f..dba85ccca7a9 100644
--- a/arch/arm64/boot/dts/ti/k3-am62d2-evm.dts
+++ b/arch/arm64/boot/dts/ti/k3-am62d2-evm.dts
@@ -640,17 +640,15 @@ cpts@3d000 {
&cpsw_port1 {
status = "okay";
phy-mode = "rgmii-rxid";
- phy-handle = <&cpsw3g_phy0>;
};
&cpsw_port2 {
status = "okay";
phy-mode = "rgmii-rxid";
- phy-handle = <&cpsw3g_phy1>;
};
&cpsw3g_mdio {
- status = "okay";
+ status = "disabled";
#address-cells = <1>;
#size-cells = <0>;
pinctrl-names = "default";
我在内核启动日志中看不到任何故障。 您能否用新补丁进行测试、并告诉我它是否可以让 CPSW 在您的电路板上运行?
root@am62dxx-evm:~# dmesg|grep mdio root@am62dxx-evm:~# dmesg|grep nuss [ 1.654354] am65-cpsw-nuss 8000000.ethernet: initializing am65 cpsw nuss version 0x6BA01103, cpsw version 0x6BA81103 Ports: 3 quirks:00000 006 [ 1.654858] am65-cpsw-nuss 8000000.ethernet: Use random MAC address [ 1.654943] am65-cpsw-nuss 8000000.ethernet: initialized cpsw ale version 1.5 [ 1.654950] am65-cpsw-nuss 8000000.ethernet: ALE Table size 512, Policers 32 [ 1.655851] am65-cpsw-nuss 8000000.ethernet: CPTS ver 0x4e8a010c, freq:500000000, add_val:1 pps:1 [ 1.703836] am65-cpsw-nuss 8000000.ethernet: set new flow-id-base 19