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.

TDA4VM: CPSW9G ETH网络无法正常使用

Part Number: TDA4VM


Hi,Ti

在运行SDK文档中的测试demo时,我发现了以下问题:

  1. Main F5 Core0和A72 eth1均无法使用DHCP服务,插入公司局域网网线后,R5 server和和A72 eth1无法正确获取到ip,R5 server ip为 0,0,0,0,eth1 无ip。
  2. 使用静态ip,给R5 server和A72 eth1给定ip后,使用port3连接PC,三者在相同局域网下,从A72端和PC端均无法ping通,也无法ping通R5 server。

参考文档:

1. https://software-dl.ti.com/jacinto7/esd/processor-sdk-rtos-jacinto7/07_03_00_07/exports/docs/ethfw/docs/user_guide/demo_ethfw_combined_top.html

2. {sdk8.1007}/ti-processor-sdk-rtos-j721e-evm-08_01_00_13-docs_only/vision_apps/docs/user_guide/ETHFW_DEMOS.html

测试日志如图:

PING测试

  • 您好我们已收到您的问题并升级到英文论坛,链接如下,如有答复将尽快回复您,谢谢:

    e2e.ti.com/.../tda4vm-cpsw9g-eth-network-is-not-working

  • 您好,

    主机端口好像没有接收到数据包。 要验证此假设,必须在 ping 前后检查统计寄存器。

    以下脚本将打印 cpsw 的一些统计信息:

    #!/bin/bash
    
    # change the value of port variable for the MAC port which you are facing issue on
    port=2
    
    port=$(( $port + $port )) 
    offset="0x$port""00"
    
    var=$(( 16#$(devmem2 0x0c03A034 | tail -n1 -c9) ))
    echo "PORT0 good Tx frames    = $var"
    var=$(( 16#$(devmem2 $( printf "0x%X\n" $(( 0x0c03a028 + $offset )) ) | tail -n1 -c9) ))
    echo "PORT$port good Tx frames    = $var"
    var=$(( 16#$(devmem2 $( printf "0x%X\n" $(( 0x0c03a028 + $offset )) ) | tail -n1 -c9) ))
    echo "PORT$port good Rx frames    = $var"
    var=$(( 16#$(devmem2 0x0c03A000 | tail -n1 -c9) ))
    echo "PORT0 good Rx frames    = $var"
    var=$(( 16#$(devmem2 0x0c03A028 | tail -n1 -c9) ))
    echo "PORT0 ALE drop frames   = $var"
    var=$(( 16#$(devmem2 $( printf "0x%X\n" $(( 0x0c03a028 + $offset )) ) | tail -n1 -c9) ))
    echo "PORT$port ALE drop frames   = $var"

    您必须更改所使用端口的变量端口的值。

    建议您使用静态 IP 执行以下步骤来运行测试:

    1. 为 EVM 和 PC 分配 IP (如果未分配)
    2. 运行脚本
    3. 从EVM Ping PC
    4. 运行脚本
    5. 从PC Ping EVM
    6. 运行脚本

    然后请提供下在 TDA4VM Linux 控制台上看到的任何输出。

  • Hi,Cherry

    多谢你的协助,这是我使用脚本在板卡上的测试结果。

    第一次运行脚本

    在TDA4VM Linux端ping PC

    在PC端ping TDA4VM Linux

  • 好的感谢您提供的信息,我们反馈给工程师看下。

  • 抱歉,之前给您的脚本中有些错误,您能否再试下运行以下脚本,看下测试结果:

    #!/bin/bash
    
    # change the value of port variable for the MAC port which you are facing issue on
    port=2
    
    oport=$(( $port + $port )) 
    offset="0x$oport""00"
    
    var=$(( 16#$(devmem2 0x0c03A034 | tail -n1 -c9) ))
    echo "PORT0 good Tx frames    = $var"
    var=$(( 16#$(devmem2 $( printf "0x%X\n" $(( 0x0c03a034 + $offset )) ) | tail -n1 -c9) ))
    echo "PORT$port good Tx frames    = $var"
    var=$(( 16#$(devmem2 $( printf "0x%X\n" $(( 0x0c03a000 + $offset )) ) | tail -n1 -c9) ))
    echo "PORT$port good Rx frames    = $var"
    var=$(( 16#$(devmem2 0x0c03A000 | tail -n1 -c9) ))
    echo "PORT0 good Rx frames    = $var"
    var=$(( 16#$(devmem2 0x0c03A028 | tail -n1 -c9) ))
    echo "PORT0 ALE drop frames   = $var"
    var=$(( 16#$(devmem2 $( printf "0x%X\n" $(( 0x0c03a028 + $offset )) ) | tail -n1 -c9) ))
    echo "PORT$port ALE drop frames   = $var"

    请问您用的是CPSW 的 MAC 端口2连接到 PC吗?可以在 SDK 版本的 ethfw 用户指南中查看连接的详细信息。 请问您用的 SDK是? 

  • 目前连接的是CPSW9G中的port3端口,连接方式如图所示:

    使用的SDK版本是8.1。

    新的脚本测试日志如下:(因为使用的port3,所以我将脚本中的port=2修改为了port=3)

    第一次运行:

    Ping PC:

    Ping EVM:

  • 好的我们反馈给工程师看下。

  • 您好,

    数据不会累加。

    在上一个test case中,当我们ping EVM 时,端口3 Rx 正常帧不会递增,这是第一个应递增的寄存器。 但 Tx 正常帧正在增加。

    可能有一些后台进程通过端口3发送附加数据。

    就 Ping 而言,在两个方向上都没有观察到来自 PC 的数据包。 链路和/或 PC 中可能有问题。 您再重新检查下设置看看?能分享下在 PC 和 EVM 上  ifconfig -a`的输出吗?

    您能否在 PC 上获取 Wireshark trace来从 EVM ping PC?

  • Hi,Cherry

    刚从假期中归来,也希望你十一长假愉快。

    ifconfig的打印结果,PC端

    EVM端

    从Wireshark trace的抓包来看,pc好像没有收到来自EVM的数据包?

  • 好的收到了,我们跟进给工程师看下哈。

  • 您好,

    问题可能出在 PC 端。 CPSW 能够将traffic发送出去(可以看到 POR3 Tx 正常帧递增),但 PC 未接收数据包。

    您能不能试下在不同的 PC 上尝试此操作?或者如果可能的话,在两个 EVM 之间操作下。

  • 尝试使用了不同的PC和网线,结果和之前没有区别。

    尝试使用了母板上原有的网口,通信是正常的,问题应该是在CPSW9G拓展板上。

  • 您好,

    在这种情况下,您试下分离 GESI 卡,清理引脚 A 并重新连接 GESI 卡?  GESI 卡有时连接不正确会导致问题。