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.

[参考译文] AM4378:将 AM437x 入门套件上的 TI SDK 从版本 5 迁移到版本 8 时、以太网无法正常工作

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1586379/am4378-ethernet-not-working-when-moving-ti-sdk-from-version-5-to-version-8-on-am437x-starter-kit

器件型号: AM4378

我们的硬件设计基于 TI AM437x 入门套件。 我们曾使用 TI SDK 版本 05.02.00.10(2018 年 12 月 19 日)。 我们目前正在将 TI SDK 升级到 08.02.00.24(2022 年 6 月 6 日)。 但是、以太网/phy 连接不能完全正常工作。

以下是我们使用的 DTS 文件的片段。

以下是与 TI SDK 版本 5 搭配使用的 DTS 文件内容、工作正常。

==========================================

&Mac{ //以太网
    pinctrl-names =“default",“,"sleep"、"sleep";“;</s>“
    pinctrl-0 =<&cpsw_default>;
    pinctrl-1 =<&cpsw_sleep>;
    ACTIVE_SLAVE =<1>;
    状态=“正常“;
};

&davinci_mdio{
    pinctrl-names =“default",“,"sleep"、"sleep";“;</s>“
    pinctrl-0 =<&davinci_mdio_default>;
    pinctrl-1 =<&DaVinci MDIO_SLEEP>;
    状态=“正常“;
};

&cpsw_emac1{
    PHY_id =<&davinci_mdio>、<4>;
    PHY-MODE =“RGMIG";“;
};

&pruss_soc_bus{
    状态=“正常“;

    pruss1:pruss@0 {
        状态=“正常“;
    };

    pruss0: pruss@40000 {
        状态=“正常“;
    };
};

 

以下是与 TI SDK 版本 8 一起使用的 DTS 文件内容、无法按预期工作

==========================================

&mac_sw{
    pinctrl-names =“default",“,"sleep"、"sleep";“;</s>“
    pinctrl-0 =<&cpsw_default>;
    pinctrl-1 =<&cpsw_sleep>;
    ACTIVE_SLAVE =<1>;
    状态=“正常“;
};

&DaVinci MDIO_SW{
    pinctrl-names =“default",“,"sleep"、"sleep";“;</s>“
    pinctrl-0 =<&davinci_mdio_default>;
    pinctrl-1 =<&DaVinci MDIO_SLEEP>;

    ethphy0:Ethernet-phy@4{
        reg =<4>;
    };
};

&cpsw_port1{
    STATUS =“已禁用“;
};

&cpsw_port2{
    phy-handle =<&ethphy0>;
    PHY-MODE =“rgmii-rxid";“;
};

下面是与以太网交换机相关的硬件原理图。

 

 

在使用 TI SDK 8 版时、如果您发现任何可能导致有线网络连接无法正常工作的问题、请告诉我。

 

此致、

Solan

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

    我想补充更多信息。

    这是启动期间的控制台输出。

    ===================================

    [ 2.188632] MDIO_BUS 固定 0:用于消费者复位的 GPIO 查找
    [ 2.188649] MDIO_BUS 固定 0:使用查找表进行 GPIO 查找
    [ 2.188657] MDIO_BUS FIXED-0:未找到 GPIO 消费类复位
    [ 2.197687] mdio_bus 4a101000.mdio:用于消费类复位的 GPIO 查找
    [ 2.197702] MDIO_BUS 4a101000.MDIO:使用器件树进行 GPIO 查找
    [ 2.197734] of_get_named_gpiod_flags:无法解析节点“/OCP@44000000/InterConnect@4a000000/segment@0/target-module@10000/switch@0/MDIO@1000[0]“的“reget-GPIOs"属性“属性
    [ 2.197756] of_get_named_gpiod_flags:不能解析节点“/OCP@44000000/InterConnect@4a000000/segment@0/target-module@10000/switch@0/MDIO@1000[0]“的“reset-GPIO"属性“属性
    [ 2.197769] MDIO_BUS 4a101000.MDIO:使用查找表进行 GPIO 查找
    [ 2.197777] mdio_bus 4a101000.mdio:未找到 GPIO 消费类复位

    [ 2.254790] davinci_mdio 4a101000.mdio:DaVinci MDIO 修订版 1.6、总线频率 1000000

    [ 2.263564] MDIO_BUS 4a101000.MDIO:04:用于消费类复位的 GPIO 查找
    [ 2.263576] MDIO_BUS 4a101000.MDIO:04:使用器件树进行 GPIO 查找
    [ 2.263614] of_get_named_gpiod_flags:无法解析节点“/OCP@44000000/InterConnect@4a000000/segment@0/target-module@10000/switch@0/MDIO@1000/Ethernet-phy@4[0]“的“reget-GPIOs"属性“属性
    [ 2.263638] of_get_named_gpiod_flags:无法解析节点“/OCP@44000000/InterConnect@4a000000/segment@0/target-module@10000/switch@0/MDIO@1000/Ethernet-phy@4[0]“的“reget-GPIO"属性“属性
    [ 2.263649] MDIO_BUS 4a101000.MDIO:04:使用查找表进行 GPIO 查找
    [ 2.263656] MDIO_BUS 4a101000.MDIO:04:未找到 GPIO 消费者复位
    [ 2.268437] davinci_mdio 4a101000.mdio:phy[4]:器件 4a101000.mdio:04、驱动程序 Micrel KSZ9031 千兆位 PHY
    [ 2.278767] cpsw-switch 4a10000.switch:/OCP@44000000/InterConnect@4a000000/segment@0/target-module@1000000/switch@0/以太网端口/端口@2 DT 中缺少 dual_emac_res_vlan。
    [ 2.294323 ] cpsw-switch 4a10000.switch:/OCP@44000000/InterConnect@4a000000/段@0/目标模块@1000000/switch@0/以太网端口/端口@2、使用 2 作为保留的 VLAN
    [ 2.309053] cpsw-switch 4a10000.switch:初始化 cpsw ale 版本 1.4
    [ 2.315906] cpsw-switch 4a10000.switch:ale Table Size 1024
    [ 2.321694] cpsw-switch 4a10000.switch:cpts:溢出检查周期 500 (Jiffies)
    [ 2.329349] cpsw-switch 4a10000.switch:cpts:ref_clk_freq:250000000 calc_mult:214748368 calc_shift:29 error:0nsec/sec
    [2.340440] cpsw-switch 4a10000.switch:检测到的 MACID = F8:30:02:B2:4c:26
    [ 2.348241] cpsw-switch 4a10000.switch:已初始化(寄存器 0x4a100000、池大小 256)hw_ver:0019010F 1.15 (0)

    [25.328089] Micrel KSZ9031 千兆位 PHY 4a101000.MDIO:04:连接的 PHY 驱动程序[Micrel KSZ9031 千兆位 PHY](MII_BUS:phy_addr=4a101000.MDIO:04、IRQ=轮询)

    [28.567693] cpsw-switch 4a10000.switch eth0:链路接通 — 100Mbps/full — 流量控制关闭
    [28.587421] IPv6:ADDRCONF (NETDEV_CHANGE):eth0:链路准备就绪

    在输出中、我看到启动名称解析服务失败。

    =============================================

    【确定】已停止网络名称解析。
    【失败】无法启动网络名称解析。
    有关详细信息、请参阅“systemctl status systemd-resolved.service'“。
    【确定】已停止网络名称解析。
    【失败】无法启动网络名称解析。
    有关详细信息、请参阅“systemctl status systemd-resolved.service'“。
    【确定】已停止网络名称解析。
    【失败】无法启动网络名称解析。
    有关详细信息、请参阅“systemctl status systemd-resolved.service'“。
    【确定】已停止网络名称解析。
    【失败】无法启动网络名称解析。

    ifconfig 将返回一个 IP 地址。 我可以通过 SSH 连接到电路板。 但是、我无法从电路板进行 DNS 解析。

    ============================================================================

    root@alertus-tts2:~# ifconfig
    eth0:标志=4163 MTU 1500 公制 1
    iNet 192.168.1.152 网络掩码 255.255.255.0 广播 192.168.1.255
    inet6 2600:4040:2d2a:5e00:fa30:2ff:feb2:4c26 prefixlen 64 scopeid 0x0
    inet6 fe80:::fa30:2ff:feb2:4c26 prefixlen 64 scoeid 0x20
    以太网 F8:30:02:B2:4c:26 txqueueelen 1000(以太网)
    RX 数据包 1724 字节 316329 (308.9KiB)
    RX 错误 0 丢弃 284 溢出 0 帧 0
    TX 数据包 127 字节 12646 (12.3KiB)

    此致、

    Solan

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

    您好、

    我可以假设电路板可以使用早期版本的代码吗?

    您能否提供 ethtool -S eth0 和 ethtool eth0 的结果

    此致、

    Schuyler

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

    感谢您的答复、Schuyler。
    是、同一电路板可与 TI SDK 05.02.00.10 配合使用(2018 年 12 月 19 日)。 我们目前正在将 TI SDK 升级到 08.02.00.24(2022 年 6 月 6 日)。  我们的硬件设计基于 TI AM437x 入门套件。


    这是 ethtool 输出。

    root@alertus-tts2:~# ethtool -S eth0
    NIC 统计信息:
    Good Rx Frames: 15061.
    广播 Rx 帧:918
    多播 Rx 帧:13987
    暂停 Rx 帧:0
    Rx CRC 错误:0
    Rx 对齐/代码错误:0
    超大 Rx 帧:0
    Rx Jabbers:0
    超大(短) Rx 帧:0
    Rx 片段:0
    Rx Octets: 2723477.
    第 449 章,我是你的女人
    广播 Tx 帧:2.
    多播 Tx 帧:181
    暂停 Tx 帧:0
    延迟 Tx 帧:0
    冲突:0
    单冲突 Tx 帧:0
    多个冲突 Tx 帧:0
    过度碰撞:0
    延迟冲突:0
    TX 欠载:0
    载波侦听错误:0
    TX 八位字节:40522
    Rx + Tx 64 个八位位组帧:2349
    Rx + Tx 65-127 八位位组帧:9081
    Rx + Tx 128-255 八位位组帧:988
    Rx + Tx 256-511 八位位组帧:1396
    Rx + Tx 512-1023 八位位组帧:1660
    Rx + Tx 1024 向上八位位组帧:36
    网络八位组:2763999
    Rx 帧起始溢出:0
    Rx 帧中溢出:0
    Rx DMA 溢出:0
    Rx DMA 通道 0:head_enqueue:1.
    Rx DMA 通道 0:tail_enqueue:5666
    Rx DMA 通道 0:pad_enqueue:0
    Rx DMA 通道 0:未排队:0
    Rx DMA 通道 0:desc_alloc_fail:0
    Rx DMA 通道 0:pad_alloc_fail:0
    Rx DMA 通道 0:runt_receive_buf:0
    Rx DMA 通道 0:runt_transmit_bu:0
    Rx DMA 通道 0:empty_dequeue:0
    Rx DMA 通道 0:Busy_Dequeue:5531
    Rx DMA 通道 0:GOOD_DEQUEUE:5539
    Rx DMA 通道 0:前音:0
    Rx DMA 通道 0:teardown_dequeue:0
    TX DMA 通道 0:head_enqueue:446
    TX DMA 通道 0:tail_enqueue:3.
    TX DMA 通道 0:pad_enqueue:0
    TX DMA 通道 0:未排队:3.
    TX DMA 通道 0:desc_alloc_Fail:0
    TX DMA 通道 0:pad_alloc_fail:0
    TX DMA 通道 0:runt_receive_buf:0
    TX DMA 通道 0:runt_transmit_bu:0
    TX DMA 通道 0:empty_dequeue:446
    TX DMA 通道 0:Busy_Dequeue:0
    TX DMA 通道 0:GOOD_DEQUEUE:449
    TX DMA 通道 0:前音:0
    TX DMA 通道 0:teardown_dequeue:0

    root@alertus-tts2:~# ethtool eth0
    eth0 设置:
    支持的端口:[ TP mii ]
    支持的链路模式:10BaseT/Half 10baseT/Full
    100BaseT/Half 100BaseT/Full
    1000BaseT/Half 1000BaseT/Full
    支持的暂停帧使用:对称
    支持自动协商:可以
    支持的 FEC 模式:未报告
    广播的链路模式:10BaseT/Half 10baseT/Full
    100BaseT/Half 100BaseT/Full
    1000BaseT/Half 1000BaseT/Full
    广播的暂停帧使用:否
    广播的自动协商:是
    广播 FEC 模式:未报告
    链路伙伴广播的链路模式:10BaseT/Half 10baseT/Full
    100BaseT/Half 100BaseT/Full
    链路伙伴广播的暂停帧使用:对称仅接收
    链路伙伴广播的自动协商:是
    链路伙伴广播的 FEC 模式:未报告
    速度:100MB/s
    双工:全双工
    自动协商:打开
    master-slave cfg:首选从器件
    主从状态:主器件
    端口:双绞线
    PHYAD:4.
    收发器:外部
    MDI-X:未知
    支持唤醒:d.
    唤醒:D
    当前消息级别:0x00000000 (0)

    检测到链路:是

    此致、

    Solan

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

    尊敬的 Solan:

    感谢您观看 ethtool 捕获的内容。 我想确认 CPSW 驱动程序是否正在发送和接收与当前数据包相同的数据包。 在 DNS 的 systemd 配置中必须有所不同。 很遗憾、我无法支持该级别、因为它高于 cpsw 驱动程序。  

    您可能会在/etc/resolv.conf 中检查工作版本中的文件、请注意此文件是 sym 链接的、可能位于其他位置。 我建议检查 systemd 如何设置 DNS 服务器。

    此致、

    Schuyler