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.

[参考译文] AM3892:以太网网络问题

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/636520/am3892-ethernet-network-issue

器件型号:AM3892

客户使用 EZSDK 5_04_00_11

它们的问题是 CPU 没有在 EMAC0端口上接收到以太网数据包的中断。

在此期间、CPU 可以通过 EMAC0发送数据包。 问题仅在于接收方向。

我们不知道 EMAC1,因为产品不使用它。

 

他们 检查了 EMAC0和 ARM 中断控制器模块的寄存器。

条件差和条件好之间没有区别。

 

在出现问题期间,“ifconfig”显示如下所示的内容:

 

# ifconfig eth0

eth0     Link encap:以太网 HWaddr 00:0D:2E:00:00:20  

          iNet addr:172.17.0.32 Bcast:172.17.255.255 Mask:255.255.0.0

         运行多播 MTU:1500 公制:1的上广播

         RX 数据包:664765错误:0丢弃:77超支:2883662帧:2883681

         TX 数据包:193008错误:0丢弃:0溢出:0载波:0

         冲突:0 txqueuelen:1000

          RX 字节:687965140 (656.0 MIB) TX 字节:17466853 (16.6 MIB)

         中断:40基地址:0x8000

 

RX 数据包的数量不会改变。 超限次数每次都会增加。

下面的数据是硬件静态寄存器的转储。  RXSOFOVERRUNS (偏移量284h)和 RXDMAOVERRUNS (偏移量28Ch)不为0。

 

地址0x4a100200 0x003BA1FC 0x00014676 0x0000079C 0x00000000

地址0x4a100210 0x00000000 0x00000000 0x00000000 0x00000000

地址0x4a100220 0x00000000 0x00000000 0x00014B12 0x00000000

地址0x4a100230 0xDA0F6BAF 0x00033E94 0x0002270A 0x00001DDC

地址0x4a100240 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000

地址0x4a100250 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000

地址0x4a100260 0x00000000 0x012B3594 0x0005A28D 0x000A3B18

ADDR 0x4a100270 0x00059515 0x00017AD1 0x0001ED74 0x00260803

地址0x4a100280 0xE0DC2B64 0x000001E0 0x00000000 0x000001F8

 

此问题可能在网络流量过大时发生。 网络上有多种单播、多播和广播。

当存在网络环路时、它看起来会增加导致此问题的可能性。

另一方面, 当他们尝试在模拟器的测试台上重现此问题时, 他们能够导致“超限计数器”,但 EMAC0从未卡住。 它能够在移除重负载后进行通信。

 

请提出一个建议以调查此问题。

 

目前、有2种恢复条件的方法。

(1)   软件(Linux)重新引导

(2)   关闭 eth0并向上转动

(I.e) ifconfig eth0 down、then、ifconfig eth0 up。

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

    您好、Lawrence、

    我可以为您提供以下提示:

    1.尝试在 DM816x TI EVM 上重现此问题、因此将定义是否仅在您的定制板上观察到硬件故障。 您还可以在定制板上运行 EMAC_LOOPY HW 诊断测试并检查结果。

    2.尝试将 Linux 内核与以下 GIT 树中不存在的所有 NET/Davinci_EMAC/网络补丁移植到您的代码库中:

    arago-project.org/.../

    下面是一个示例补丁:

    arago-project.org/.../

    此致、
    帕维尔