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.

[参考译文] MCU-PLUS-SDK-AM273X:当使用 RMII PHY 将以太网裸机添加到 SBL 时、ping 期间会发生以太网封装损耗

Guru**** 2587365 points
Other Parts Discussed in Thread: AM2732, SYSCONFIG

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1188331/mcu-plus-sdk-am273x-ethernet-package-loss-during-ping-when-adding-ethernet-bare-metal-to-sbl-with-rmii-phy

器件型号:MCU-PLUS-SDK-AM273X
主题中讨论的其他器件:AM2732SysConfig

您好!

我的客户使用了自己的 RMII PHY、并且已经在毫米波 MCU 和 SDK 4.3演示中的 MCU_PLUS_SDK_am273x_08_04_00_17中使其能够与以太网驱动器一同工作。

现在、他们  在 mcu_plus_sdk_am273x_08_05_00_24中向 SBL 添加裸机以太网驱动程序。 他们更改了 PHY 设置、与在 以太网驱动器 MCU_PLUS_SDK_am273x_08_04_00_17中执行的设置类似。 但在执行 Ping 操作时、他们发现以太网封装损耗。

客户发现 在 毫米波演示中使用 MCU_PLUS_SDK_am273x_08_04_00_17中的以太网驱动器需要进行两次协商、但使用 SBL 的新驱动器中没有协商。 客户尝试 在 SBL 中添加协商、但在 ping 命令时仍然遇到封装丢失问题。  

客户还尝试  通过 AM2732 EVM 上的以太网 PHY 向 SBL 添加裸机以太网驱动程序、ping 可以在 EVM 上正常运行(使用 MCU_PLUS_SDK_am273x_08_05_00_24)。

我在 MCU_PLUS_SDK_am273x_08_05_00_24中发现一些以太网驱动程序更改/更新。 请您告知客户可能错过的内容 RMII PHY   是否在 mcu_plus_sdk_am273x_08_05_00_24中集成新的裸机以太网驱动器?

谢谢。

Chris

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

    Chris、您好!

    您可以分享调试统计信息吗 ?对于以下步骤:(+)[FAQ] MCU-PLUS-SDK-AM243X:如何使用 MCU+ SDK Enet LLD 中的调试 GEL 获取 CPSW 诊断统计信息? -基于 Arm 的微控制器论坛-基于 Arm 的微控制器- TI E2E 支持论坛

    我 在内部团队讨论后回到您的身边。

    Br

    Nilabh A.

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

    Nilabh,

    感谢您分享该链接。 这很有帮助。  

    对于客户的问题、根据他们的测试、我认为 RMII PHY 设置是可以的、因为旧的 TH 驱动器中的类似设置可以正常工作。

    问题可能是 由于客户使用与 AM2732 EVM 上的 RMII PHY 不同的 RMII PHY 时、最新以太网驱动程序或其他相关器件中的 PHY 状态机发生了一些变化而引起的?

    谢谢。

    Chris

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

    Chris、您好!

    下面我再从内部团队那里了解一下物理层状态机实施方面的 δ

    Br

    Nilabh A.

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

    Chris、您好!

    很抱歉耽误了时间,我们的内部专家已休假,他还没有回来。 我会在 收到一些信息后立即返回该主题。

    Br
    Nilabh A.

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

    Nilabh,

    专家回来了吗? 有更新吗?

    谢谢。

    Chris

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

    Chris、您好!

    我们有一些来自专家的问题:(来自8.4工作场景)

    1.我们讨论的是两个电路板(EVM 或定制电路板)、请分享它们正在使用的 PHY 的详细信息?  

    2.  他们使用的是 LwIP 堆栈/或任何其他堆栈。

    3.在哪一侧会看到数据包丢失(Tx 或 RX 端)?

    4.是否  对发送/接收数据包的事件功能进行了更改? 另请尝试增大缓冲器大小(通过 syscfg)并重试。

    客户正在使用 RMII PHY 时的其他相关部件,该部件与 AM2732 EVM 上的 RMII PHY 不同

    可能出现了这种情况。 我们在这里需要更多信息、以找出问题的根源。

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

    此外、您能否从他们之前/正在使用的8.5和8.4 SDK 版本共享应用程序日志和 syscfg 文件。

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

    1、我们使用 RTL8201。

    2、我们使用 SDK 8.5 LwIP 堆栈。

    3、仅测试 ping 丢包、2732端丢包、未确定特定的 TX/RX 端丢包。

    4、syscfg 中的网络相关性如下所示。 添加如何在 syscfg 中修改 buffsize。

    enet_cpsw1.$name ="CONFIG_ENET_CPSW0";
    Enet_cpsw1.rtosVariant ="NoRTOS";
    Enet_cpsw1.AppLinkUpPortMask ="all_ports";
    Enet_cpsw1.PktInfoOnlyEnable = true;
    Enet_cpsw1.LargePoolPktCount = 192;
    Enet_cpsw1.txDmaChannel[0]。$name ="ENET_DMA_TX_CH0";
    Enet_cpsw1.rxDmaChannel[0].$name ="ENET_DMA_RX_CH0";
    Enet_cpsw1.rxDmaChannel[0].PacketsCount = 192;
    Enet_cpsw1.pinmux[0].$name ="ENET_CPSW_PINMUX0";
    enet_cpsw1.netifInstance.create(1);
    enet_cpsw1.netifInstance[0].$name ="NETIF_INST_ID0";

    enet_cpsw1.pinmux[0].mss_mdio.$conseestSolution ="MSS_MDIO0";
    Enet_cpsw1.pinmux[0].mss_mdio.data.$prosestSolution ="ball.p19";
    Enet_cpsw1.pinmux[0].mss_mdio.clk.$prosestSolution ="ball.R19";
    Enet_cpsw1.pinmux[0].MSS_RMII.$appinestSolution ="MSS_RMII0";
    Enet_cpsw1.pinmux[0].MSS_RMII.RXD0.$appinestSolution ="Ball.p18";
    Enet_cpsw1.pinmux[0].MSS_RMII.RXD1.$recommendestSolution ="Ball.n19";
    Enet_cpsw1.pinmux[0].MSS_RMII.RXER.$appinestSolution ="Ball.f18";
    Enet_cpsw1.pinmux[0].MSS_RMII.TXD0.$appinestSolution ="Ball.l18";
    Enet_cpsw1.pinmux[0].MSS_RMII.TXD1.$recommendestSolution ="Ball.l17";
    Enet_cpsw1.pinmux[0].MSS_RMII.dV.$consetSolution ="Ball.F16";
    Enet_cpsw1.pinmux[0].MSS_RMII.REFCLK.$appinestSolution ="Ball.E19";
    Enet_cpsw1.pinmux[0].MSS_RMII.TXEN.$recommendestSolution ="Ball.J18";

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

    尊敬的 Gmsy:

    您是否 还可以附加应用程序日志。

    Br

    Nilabh A.

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

    开始打印为附件,谢谢。

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

    感谢 Gmsy

    让我回到这里进行分析。

    Br

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

    尊敬的 Gmsy:

    这里几乎没有明显的问题:

    1.您的定制板上有多少个 PHY ,似乎有两个,但第二个(除 dp83867 )没有由 Enet 驱动程序注册。 您是否具有用于 RMII PHY 的 phy 驱动器?

    2.是否可以在定制电路板上尝试第2层示例并查看是否存在任何问题(例如丢包)?>

    3.请检查 syscfg 中的 LWIPIF 配置并增加池大小。 是否仍然看到数据包丢失。

    另外、请您如何进行 Ping 测试?

    Br

    Nilabh A.

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

    我们的板只有一个 phy。 日志中的打印格式如下:"EnetPhy_bindDriver:PHY 3:OUI:000732 Model:01 Ver:06 <->'generic':Ok",generic_phy.c。

    2、您说的是哪两个例子?

    是否指 SysConfig 中的 PacketPoolConfig? 大型池数据包大小为1536,中型池数据包大小为512,小型池数据包大小为128, 这是有问题的。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我们的主板只有一个物理层。 [/报价]

    从前面的谈话中可以看出、您正在使用 RMII PHY、您能告诉我 phy 的名称吗。 是否有相应的驱动器?

    。您讨论的是哪两个示例?

    我参考了第2层 cpsw 示例: AM273x MCU+ SDK:Enet 第2层多通道示例

    这是个问题。

    您能详细说明一下吗?

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

    1、 phy 的名字是  RTL8201,我们把这个芯片用在了其他的平台上 在 Linux 下、它可以直接工作、无需配置其寄存器。

    我们能够获取 phy 的所有寄存器吗? 如何在代码中获取?我想看看寄存器值是否有明显的异常。

    2.我尝试运行。

    3、与先前的现象一致, ping 丢包严重。

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

    尊敬的 Gmsy:

    您能为我们提供以下调试统计信息以找出问题的根源吗?

    1.请遵循此操作并获取调试统计信息:  (+)[常见问题解答] MCU-PLUS-SDK-AM243X:如何在 MCU+ SDK Enet LLD 中使用调试 GEL 获取 CPSW 诊断统计信息? -基于 Arm 的微控制器论坛-基于 Arm 的微控制器- TI E2E 支持论坛

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

    我想在 config.gel_ phy_ Reg 函数中查看 PHY 的寄存器、并使用 cpsw_ MDIO_Print、但找到#定义 CPSW。 GEL_2G_MDIO_BASE_ADDR 错误。 在 am2732中该位更改为0x07000000;阻止读取。 请帮助了解原因、谢谢。

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

    尊敬的 Gmsy:

    让 我看看这个问题、然后通过 EOD 与您联系

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

    Nilabh,

    有更新吗?

    谢谢。

    Chris

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

    Chris、您好!

    我仍在努力、我们可以通过在 gels 脚本中修改基地址来查看 AM273器件的统计信息。 我将尝试在明天分享 GEL 脚本。

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

    /cfs-file/__key/communityserver-discussions-components-files/908/AM273x_5F00_gels.zip

    请查找 Am273x 的 GEL 文件并共享您在设备上看到的调试统计信息。

    Br
    Nilabh A.

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

    我们的环境当前无法通过 CCS 连接调试 SBL、因此我尝试将 SBL 项目更改为应用以运行并获取 phy 寄存器值、发现 Ping 包未丢失。

    因此、在同一个项目代码中、组合 cmd 和 makefile_ccs_ bootimage_修改 gen 至 SBL ping 具有很大的数据包丢失可能性;修改应用程序不会导致数据包丢失。 这些信息能否提供定位帮助?

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

    更新复制情况。 当 SBL 编译器被修改为应用程序时、在将其刻录到电路板并运行它时仍然会丢失 Ping 数据包;在直接 CCS 连接调试期间不会丢失数据包。

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

    再次重申当前情况、我们使用了同一个项目(SBL 没有 FreeRTOS 和网络功能)。  编译到 SBL、刻录到闪存以进行操作、ping 以防止数据包丢失;编译到应用程序、刻录到闪存、并使用 SBL_QSPI 引导操作、ping 而不丢失数据包。  

    附件中有两个文件夹、其中"SBL"表示用于编译到 SBL 的文件、"app"是指编译到应用程序中所使用的文件。