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.

[参考译文] RM57L843:第二次无法连接到 SOFTRESET 以太网(EMAC)。

Guru**** 2439710 points


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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/625728/rm57l843-unable-to-softreset-ethernet-emac-the-second-time

器件型号:RM57L843

在解决网络问题时、我们发现了以下问题。

场景:

   1.以太网在引导时启动,能够正常发送和接收。

  2 、我们 SOFTRESET 以太网硬件(EMAC、EMAC 控制)

  我们 观察到间歇性数据包正在到达以太网硬件、但不会进入内存、也不会更新 CPPI 描述符。

  4. 我们观察到,尝试清除数据包缓冲区的 RAM 内存会导致预取(使用随机 LR 位置)。

权变措施:

  由于我们的调试工具不存在此问题、我们确定了以下解决此问题的步骤:

   CPU 软件复位(否则、尝试清除数据包缓冲存储器会导致预取)

  2. 通过将 memSetting (内存设置)为0来清除数据包缓冲存储器。  (否则会发生间歇性数据包丢失)

我们坚信 EMAC 的 SOFTRESET 和控制模块不会重置 EMAC 的 DMA 状态机。  相反、只有 CPU 软件复位才能复位 EMAC DMA 状态机。  DMA 状态机复位后、会导致 RAM 损坏(ECC 或其他与比较器相关的问题)、但向存储器写入0会将所有内容恢复到功能状态。  然后、我们可以从此处开始联网。

         

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我怀疑 CPU 复位不是清除数据包缓冲存储器所必需的、但这样做会重新执行正确清除数据包缓冲器存储器的代码。 如果数据包缓冲存储器由于写入中止而损坏 ECC、则需要使用64位写入来初始化它。 memset()不保证64位写入。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我们看到在设置 DMA 存储器之前需要进行软件复位的问题已经消失(我们将继续监控此问题)。

    感谢您提供相关信息。