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.

[参考译文] AM62L:U-Boot 中 AM62L32 (DP83822、RMII) 上出现以太网 PHY 自动协商故障

Guru**** 2797325 points

Other Parts Discussed in Thread: AM62L

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1583534/am62l-ethernet-phy-auto-negotiation-failure-on-am62l32-dp83822-rmii-in-u-boot

器件型号: AM62L

您好:

我们将开发基于 AM62L32 SoC (SDK 11.00.15.05) 的定制电路板。 该电路板在 RMII 模式下使用 DP83822 以太网 PHY。 PHY 通过 Linux 内核正常工作、但在 U-Boot 中、如果在启动时未连接电缆、则会遇到自动协商/配置故障。

以下是相关的器件树节点以及观察到的 U-Boot 日志和行为。

rmii1_pins_default:rgmii1-default-pins{
  pinctrl-single、pins =<
    AM62LX_IOPAD (0x011c、PIN_INPUT、1)/*(W11) RMII1_CRS_DV */
    AM62LX_IOPAD (0x0134、PIN_INPUT、1)/*(Y7) RMII1_REF_CLK */
    AM62LX_IOPAD (0x0138、PIN_INPUT、1)/*(Y8) RMII1_RXD0 */
    AM62LX_IOPAD (0x013c、PIN_INPUT、1)/*(AA6) RMII1_RXD1 */
    AM62LX_IOPAD (0x0130、PIN_INPUT、1)/*(Y6) RMII1_RX_ER */
    AM62LX_IOPAD (0x0120、PIN_OUTPUT、1)/*(AC10) RMII1_TXD0 */
    AM62LX_IOPAD (0x0124、PIN_OUTPUT、1)/*(W13) RMII1_TXD1 */
    AM62LX_IOPAD (0x0118、PIN_OUTPUT、1)/*(AB11) RMII1_TX_EN */
  >;
};

mdio1_pins_default:mdio1-default-pins{
  pinctrl-single、pins =<
    AM62LX_IOPAD (0x014c、PIN_OUTPUT、0)/*(AC15) MDIO0_MDC */
    AM62LX_IOPAD (0x0148、PIN_INPUT、0)/*(AC13) MDIO0_MDIO */
  >;
};

wkup_gpio0_pins_default:wkup-gpio0-default-pins{
  pinctrl-single、pins =<
    AM62LX_IOPAD (0x000c、PIN_OUTPUT_PULLUP、7)/*(W22) WKUP_GPIO0_3 */
  >;
};

&wkup_gpio0{
  状态=“正常“;
};  
   
&cpsw3g{
  pinctrl-names =“default";“;
  pinctrl-0 =<&rmii1_pins_default>;
};  
   
&cpsw_port1{
  PHY-MODE =“RMII";“;
  phy-handle =<&cpsw3g_phy1>;
};  
   
&cpsw_port2{
  STATUS =“已禁用“;
};
   
&cpsw3g_mdio{
  pinctrl-names =“default";“;
  pinctrl-0 =<&mdio1_pins_default>;
  状态=“正常“;
   
  cpsw3g_phy1:Ethernet-phy@31{
    reg =<31>;
    TI、RMII 模式=“主器件“;
    pinctrl-names =“default";“;
    pinctrl-0 =<&wkup_gpio0_pins_default>;
    Reset-GPIOs =<&wkup_GPIO0 3 GPIO_ACTIVE_LOW>;
    reset-assert-us =<100>;
    reset-deassert-us =<500>;
  };
};

任何 PHY 不会 在引导时连接、我们在尝试ping(或 U-Boot 尝试启动接口时)时看到以下内容:

=> ping 192.168.27.86
以太网@8000000port@1 等待 PHY 自动协商完成…… 超时!
am65_cpsw_Nuss_port 以太网@8000000port@1:PHY_startup 失败
am65_cpsw_Nuss_port 以太网@8000000port@1:am65_cpsw_start 结束错误
使用 Ethernet@8000000port@1 器件

已超过 ARP 重试计数;再次开始
am65_cpsw_Nuss_port Ethernet@8000000port@1:PHY_CONFIG Failed:–110
am65_cpsw_Nuss_port 以太网@8000000port@1:am65_cpsw_start 结束错误
Ping 失败;主机 192.168.27.86 不活动

物理插入电缆并重试后:

=> ping 192.168.27.86
am65_cpsw_Nuss_port Ethernet@8000000port@1:PHY_CONFIG Failed:–110
am65_cpsw_Nuss_port 以太网@8000000port@1:am65_cpsw_start 结束错误
使用 Ethernet@8000000port@1 器件

已超过 ARP 重试计数;再次开始
am65_cpsw_Nuss_port Ethernet@8000000port@1:PHY_CONFIG Failed:–110
am65_cpsw_Nuss_port 以太网@8000000port@1:am65_cpsw_start 结束错误
Ping 失败;主机 192.168.27.86 不活动

Linux 内核中的同一设备树会导致以太网链路正常工作、因此内核级别的硬件布线、PHY ID 和配置都是正确的。

在引导时未连接电缆时、U-Boot 中的 PHY 自动协商/配置会超时;稍后连接电缆后、U-Boot 仍然无法配置 PHY(超时)-110。 我们需要解决问题的指导。

谢谢、
Nilesh  

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

    您好、Nilesh

    请让我联系 U-boot 专家。 预计会有一些延迟。 感谢您的耐心。

    此致、

    Stan

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

    您好 Stanislav、

    对此有任何更新?

    谢谢、
    Nilesh

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

    您好、

    您的电路板的主引导模式是什么? 您有 AM62L EVM 吗? 如果是、您是否在使用 EVM 的默认 SD 卡引导模式时看到相同的问题?

    此致、

    Schuyler

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

    您好、

    默认引导模式是电路板的 EMMC。 我尚未在 AM62L EVM 上选中、会检查一下。

    谢谢、
    Nilesh

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

    尊敬的 Schuyler:

     SDK 11.00.15.05 中提供的默认预编译映像 (tisdk-default-image-am62lxx-evm-11.00.15.05.rootfs.wic) 刷写到 SD 卡后、我检查了以太网电缆未连接到 EVM 并尝试 ping 的相同场景、首先自动协商失败、器件上的电缆连接、然后再次尝试 ping 相同地址、uphy 自动协商不会在引导中发生失败或 uphy 配置失败。

    请在下面找到相应的 EVM 日志

    NOTICE: bl1_plat_arch_setup arch setup
    NOTICE: Booting Trusted Firmware
    NOTICE: BL1: v2.12.0(release):11.00.13-5-ga70f82d5a-dirty
    NOTICE: BL1: Built : 12:24:23, May 29 2025
    NOTICE: BL1: dram_class: 11
    NOTICE: lpddr4: post start - PI training status=0x27c0a000
    NOTICE: bl1_platform_setup DDR init done
    NOTICE: k3_bl1_handoff ENTERING WFI - end of bl1
    NOTICE: BL31: v2.12.0(release):11.00.13-5-ga70f82d5a-dirty
    NOTICE: BL31: Built : 12:24:23, May 29 2025
    NOTICE: SYSFW ABI: 4.0 (firmware rev 0x000b '11.0.12-v11.00.12 (Fancy Rat)')
    ERROR: Agent 0 Protocol 0x10 Message 0x7: not supported

    U-Boot SPL 2025.01-00464-g1d6ba4a32cdd (May 29 2025 - 19:36:32 +0000)
    SPL initial stack usage: 1872 bytes
    Trying to boot from MMC2
    ERROR: Agent 0 Protocol 0x10 Message 0x7: not supported


    U-Boot 2025.01-00464-g1d6ba4a32cdd (May 29 2025 - 19:36:32 +0000)

    SoC: AM62LX SR1.0 HS-FS
    Model: Texas Instruments AM62L3 Evaluation Module
    DRAM: 2 GiB
    ERROR: Agent 0 Protocol 0x10 Message 0x7: not supported
    Core: 80 devices, 31 uclasses, devicetree: separate
    MMC: mmc@fa10000: 0, mmc@fa00000: 1
    Loading Environment from nowhere... OK
    In: serial@2800000
    Out: serial@2800000
    Err: serial@2800000
    Net: eth0: ethernet@8000000port@1
    Warning: ethernet@8000000port@2 (eth1) using random MAC address - de:41:f0:86:7a:61
    , eth1: ethernet@8000000port@2
    Hit any key to stop autoboot: 0
    =>
    =>
    =>
    => mii infoc
    PHY 0x00: OUI = 0x80028, Model = 0x23, Rev = 0x01, 10baseT, HDX
    PHY 0x01: OUI = 0x80028, Model = 0x23, Rev = 0x01, 10baseT, HDX
    => mii infoc
    PHY 0x00: OUI = 0x80028, Model = 0x23, Rev = 0x01, 10baseT, HDX
    PHY 0x01: OUI = 0x80028, Model = 0x23, Rev = 0x01, 10baseT, HDX
    => env set serverip 192.168.27.86
    => env set ipaddr 192.168.27.87
    => ping 192.168.27.86
    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
    am65_cpsw_nuss_port ethernet@8000000port@2: phy_config failed: -110am65_cpsw_nuss_port ethernet@8000000port@2: am65_cpsw_start end error
    Using ethernet@8000000port@1 device

    ARP Retry count exceeded; starting again
    ping failed; host 192.168.27.86 is not alive
    => ping 192.168.27.86
    am65_cpsw_nuss_port ethernet@8000000port@1: phy_config failed: -110am65_cpsw_nuss_port ethernet@8000000port@1: am65_cpsw_start end error
    am65_cpsw_nuss_port ethernet@8000000port@2: phy_config failed: -110am65_cpsw_nuss_port ethernet@8000000port@2: am65_cpsw_start end error
    Using ethernet@8000000port@1 device

    ARP Retry count exceeded; starting again
    ping failed; host 192.168.27.86 is not alive
    => 


    谢谢、
    Nilesh  

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

    尊敬的 Schuyler:

    对此有任何更新?

    谢谢、
    Nilesh

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

    您好 Stanislav、

    对此有任何更新?

    谢谢、
    Nilesh

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

    您好 Schuyler、

    进行任何更新。

    谢谢、
    Nilesh

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

    您好、Nilesh

    对 am62l DDR 引导有一些疑问、您能否接受我的连接请求?

    谢谢你。

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

    您好、

    这可能是有关以太网驱动程序状态机的 u-boot 架构方式的问题。  

    您遇到的是以下顺序吗?

    -电缆在引导时断开连接,执行网络命令,如 DHCP,由于没有链路伙伴而发生超时,连接电缆不能解决超时问题。

    -引导时连接电缆,执行网络命令,如 DHCP ,以太网按预期工作。 这证明 u-boot 的网络部分按预期工作、没有 DTS 问题。

    此致、

    Schuyler

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

    尊敬的 Schuyler:

    是的、我所经历的顺序与您提到的完全相同

    -电缆在引导时断开连接,执行网络命令,如 DHCP,由于没有链路伙伴而发生超时,连接电缆不能解决超时问题。

    => 是的、 如果未连接电缆、则会出现超时错误、并且连接电缆不能纠正超时问题、下面是相同情况的日志

    日志:  

    => DHCP
    以太网@8000000port@1 等待 PHY 自动协商完成…… 超时!
    am65_cpsw_Nuss_port 以太网@8000000port@1:PHY_startup 失败
    am65_cpsw_Nuss_port 以太网@8000000port@1:am65_cpsw_start 结束错误
    BOOTP 广播 1
    BOOTP 广播 2.
    BOOTP 广播 3.
    BOOTP 广播 4.
    BOOTP 广播 5.
    BOOTP 广播 6.
    BOOTP 广播 7.
    BOOTP 广播 8.
    BOOTP 广播 9.
    BOOTP 广播 10.
    BOOTP 广播 11.
    BOOTP 广播 12
    BOOTP 广播 13
    BOOTP 广播 14

    中止
    => DHCP
    am65_cpsw_Nuss_port Ethernet@8000000port@1:PHY_CONFIG 失败:–110am65_cpsw_Nuss_port Ethernet@8000000port@1:am65_cpsw_start end error
    BOOTP 广播 1
    BOOTP 广播 2.
    BOOTP 广播 3.
    BOOTP 广播 4.
    BOOTP 广播 5.
    BOOTP 广播 6.
    BOOTP 广播 7.

    中止
    =>

    -引导时连接电缆,执行网络命令,如 DHCP ,以太网按预期工作。 这证明 u-boot 的网络部分按预期工作、没有 DTS 问题。  

    =>是、  如果在引导时连接电缆、则以太网按预期工作。 以下是引导时连接电缆并运行 dhcp 命令时的日志

    日志:

    => DHCP
    在端口 1、速度 100、全双工上建立链路
    BOOTP 广播 1
    BOOTP 广播 2.
    BOOTP 广播 3.
    BOOTP 广播 4.

    中止
    =>

    如果存在以下情况、请告知我们:

    • 已知权变措施(例如,显式 PHY 复位、重新初始化序列或 env/config 选项)、或

    • U-Boot 中的建议贴片或配置更改是为了正常处理延迟的电缆插入?

    非常感谢您为此场景提供的任何指导或解决方案。

    此致、
    Nilesh