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.

[参考译文] TMDS64EVM:CPSW 驱动程序和以太网帧丢失

Guru**** 2417530 points
Other Parts Discussed in Thread: TMDS64EVM

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1511673/tmds64evm-cpsw-driver-and-loss-of-ethernet-frames

器件型号:TMDS64EVM

工具/软件:

问题:CPSW 驱动程序以及极短或较长的以太网帧丢失。

----------------------------------------------------------------------------------------

-板卡:TMDS64EVM

- CCS:12.5

- SDK:mcu_plus_sdk_am64x_10_01_00_32

尊敬的团队:

我们遇到 CPSW 驱动程序问题。 我们的网络服务器(基于 A53 的“enet_layer2_cpsw"示“示例示例)有时无法检测传入的以太网帧。

只有当传入的数据包长度非常短(例如,带有 66 字节的 TCP/SYN)或大于 1460 字节(我们的固件更新)时、才会出现此问题。

我已经使用 TMDS64EVM 和原始示例“...\networking\enet\core\examples\enet_layer2_cpsw\am64x-evm\a53ss0-0_freertos\gcc-aarch6"进行“进行了验证。 也存在同样的问题(参见下图)。 我将 12 个以太网电报发送到 AM64X-EVM(在 4 个长度为 1490 字节的相同帧后、始终暂停 10 秒;这些电报以灰色显示)。 TMDS64EVM 仅发送 3 个帧、而不是 12 个帧(电报显示为黑色)。

我不知道是否需要更改某些设置、因为数据包较小、较大。 可以帮帮我吗?

提前感谢您。

Nguyen、Duy Trung

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

    尊敬的 

    感谢您的查询。

    您能帮我说明在我的设置中重现问题的步骤吗?

    您是否还能为遇到问题的特定帧共享 Wireshark 文件?

    此致

    Ashwani

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

    亲爱的阿什瓦尼、

    感谢您的答复。

    我们可以尝试使用您的 Colasoft Packet Builder。 如何向您发送文件(pcap,图片)? “插入->图像/视频/文件“菜单不允许我向您发送一个 pcap 文件。

    此致

    N. Trung

    P.S.

    请尝试从我们的谷歌驱动器获取文件:

     https://drive.google.com/file/d/11ieMUugI9Rl-SxU-3yzCZ2Xwbr6VRUZ9/view?usp=drive_link

     https://drive.google.com/file/d/1C74m20Ykq2dLpT-s1MNcEwvvhGWEN_BB/view?usp=drive_link

    谢谢你

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    菜单“插入->图像/视频/文件“不允许我向您发送 pcap 文件。

    您可以压缩文件并上传。

    我们可以尝试使用 Colasoft Packet Builder。

    期待结果。

    您能帮我说明在我的设置中重现问题的步骤吗?

    此致

    Ashwani

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

    e2e.ti.com/.../frame_5F00_4690_5F00_bytes.zip
    1.
    导入 CCS 工程„enet_l2_cpsw_am64x-evm_a53ss0-freertos_gcc-AArch64“
    (C:\ti\mcu_plus_sdk_am64x_10_01_00_32\source\networking\enet\core\examples\enet_layer2_cpsw\am64x-evm\a53ss0-0_freertos\gcc-Aarch64)

    2.
    构建程序文件并将其加载到 TMDS64EVM
    …\enet_l2_cpsw_am64x-evm_a53ss0-0_freertos_gcc-AArch64\Debug\enet_l2_cpsw_am64x-evm_a53ss0-freertos_gcc-AArch64.out

    3.
    运行“Colasoft Packet Builder“(版本 2.2、内部版本 221)并导入 Packets.cap”(File->Import)。  4 帧必须显示在“Packets List“(数据包列表)窗口中、数据包(文本格式)之间存在微小差异、数据包 ID 位于偏移 22h:
    000001001-ca-msg th
    000001002-ca-msg th
    000001003-ca-msg th
    000001004-ca-msg th

    4.
    将 PC 以太网接口与 CPSW-TMDS64EVM 连接(您可以将源 MAC 调整为 PC 以太网接口的 MAC)、

    5.
    运行“Wireshark.exe"并“并开始记录数据包、

    6.
    单击图标“Send All“->"Start"(“(Colasoft“Colasoft Packet Builder)。

    在随附的文件“fault_loopback_frame_from_fTMDS64EVM .capng“中:
    -   机架 7、9、10、11 来自 PC、
    -   第 8 帧是从“TMDS64EVM “到 PC 的“发回“帧(正确的内容),
    -   帧 12、13、14 具有正确的长度和 MAC 地址,但前 0x200 字节是故障的
    有时仅发回 TMDS64EVM 2 帧(而不是 4 帧)。


    谢谢你

    N. Trung

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

    感谢  Trung 提供的步骤。

    我将在我的设置中尝试它们、并在下周之前回复您。

    此致

    Ashwani

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

    尊敬的 Ashwani Goel 先生:

    您能否在 setupt 中重现问题? 我被困在这一点,并将很高兴听到你很快.

    提前感谢您!

    N. Trung

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

    尊敬的 Trung:

    我已经运行了上述测试。 我能够观察到您在主题中提到的相同行为。 这类似于 10.01.00.32 的发行说明中提到的已知问题。 (此处链接)。 此问题已在 11.00.00 版本中得到修复。 我已经测试了这种行为不存在也.

    如果您可以迁移此应用程序、将直接在 SDK 中修复此问题。 但是、如果您处于不可能进行迁移/冒险的状态、那么我将 检查修复是否可以独立集成到 10.01.00.32 SDK 中。

    此致、
    Teja。

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

    尊敬的 Teja:

    我就站在她面前,由于多次的高潮,双腿微微发颤。

    我们即将发布固件 V01.00.00。 更改 SDK 还意味着我们必须重新完成整个测试程序和认证。 请注意、请检查我是否可以将修复程序集成到 10.01.32 中? 这对我们来说将是一个巨大的、非常大的解脱。

    非常感谢您的支持。

    N. Trung

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

    尊敬的 Trung:

    我将就此与开发团队核实、并就此向您回复。 由于我正 忙于计划在未来 3 天内开展的其他活动、因此请稍后回复。 请告诉我这是否不符合您的时间表、以便我们可以对齐时间表。

    此致、
    Teja。

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

    尊敬的 Teja:


    由于我上周没有上班、现在我有一些紧急事项需要处理。 如果我能在一周内从你那里得到一些东西、那将会很棒。

    非常感谢!

    N. Trung

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

    尊敬的 Trung:

    我附加了一段代码、可以将其添加到指定位置的函数中。 这将解决您遇到的问题。

    请在EnetUdma_ringDequeue文件 enet_uda_priv.c 文件中的函数“"中“中的以下行:$mcu_plus_sdk/source/networking/enet/core/kernel/dma/udma/enet_udma_priv.c 中的 src 第 1957 行之后、  

                *pDmaDesc = pVirtDmaDesc;
                pDescEntry = &pVirtDmaDesc->hpdDesc.hostDesc;
                while (pDescEntry != NULL)
                {
                    pDescEntry->bufPtr = (uint64_t) EnetUtils_physToVirt(pDescEntry->bufPtr, NULL);
                    pDescEntry->orgBufPtr = (uint64_t) EnetUtils_physToVirt(pDescEntry->orgBufPtr, NULL);
    +                /* In udma use case, bufPtr and orgBufPtr points to same address, no metadata is either appended or prepended with the payload.
    +                */
    +#if ENET_CFG_IS_ON(DEV_ERROR)
    +                Enet_assert(pDescEntry->bufPtr == pDescEntry->orgBufPtr);
    +#endif
    +                if (ENET_UDMA_DIR_RX == transferDir && (FALSE == Enet_isCacheCoherent()))
    +                {
    +                    EnetOsal_cacheInv((void *)(uintptr_t)pDescEntry->bufPtr, CSL_udmapCppi5GetOrgBufferLen(pDescEntry));
    +                }
                    if (pDescEntry->nextDescPtr != 0ULL)
                    {
                        pNextDescEntryVirt = (CSL_UdmapCppi5HMPD*) EnetUtils_physToVirt(pDescEntry->nextDescPtr, NULL);
                        pDescEntry->nextDescPtr = (uintptr_t) pNextDescEntryVirt;
                        pDescEntry = pNextDescEntryVirt;
                    }

    如果您有任何其他疑问、或者在找到添加更改的正确位置时遇到问题、请告知我。

    谢谢。此致、
    Teja。

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

    尊敬的 Teja:

    非常感谢!

    TCP/IP 网络服务器从今天上午开始运行、 从 5、6 小时(10 个不同的 TCP/IP 连接中、每分钟~8 MB 的数据)开始运行、无需重新传输任何帧。

    感谢您的支持、祝您愉快!

    N. Trung

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

    尊敬的 Trung:

    感谢您的确认。 我将此主题标记为已解决。

    此致、
    Teja。

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

    尊敬的 Teja:

    是的、请!

    谢谢你

    n Trung