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.

[参考译文] AM62D-Q1:Linux 以太网驱动程序:分离 RGMII 和 PHY

Guru**** 2541900 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1557985/am62d-q1-linux-ethernet-driver-separating-rgmii-and-phy

器件型号:AM62D-Q1


工具/软件:

香榭丽舍大街

客户将 RGMII 直接连接到具有自己 PHY 的开关芯片、因此不使用 MDIO。 在本例中、将 RGMII 与 PHY 分离的最佳方法是什么?

谢谢你

Michael

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

    您好、Michael  

    感谢您的查询。

    此查询已分配给我。

    根据上述情况、我假设该查询与 CPSW MAC 接口软件相关。

    您能否确认我的理解是最新的、并就客户用于 AM62D 的软件开发提供意见。

    此致、

    Sreenivasa.

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

    您好、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
    

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [1.594027] am65-cpsw-Nuss 8000000.Ethernet:/bus@f0000/Ethernet@8000000/Ethernet-ports/port@2 read phy-mode err –22

    我想知道您如何收到此错误消息、因为器件树仍定义了 phy 模式。

        PHY-MODE =“rgmii-rxid";“;

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

    结果表明 MDIO 默认处于启用状态。 只需从器件树中删除 cpsw3g_mdio(如 0001-cpsw2g-nophy.patch 建议)就不会解决问题。 &cpsw3g_mdio{status=“disabled"}“};已修复此问题、没有 PHY 的以太网现在可以正常工作

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

    尊敬的爱平:

    很高兴它现在正在运行。 感谢您的更新。

    &cpsw3g_mdio{status=“disabled"}“};修复了该问题、

    我上周提到:

    与其像我之前的补丁中那样删除“&cpsw3g_mdio"节点“节点、我将其状态更改为“禁用“、如下面的补丁中所示。