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 network is not working

Part Number: TDA4VM

Hi team,

Here's an issue from the customer may need your help:

When running the test demo in SDK, here came 2 questions:

1) Main F5 Core0 and A72 eth1 are not able to use DHCP service, R5 server and A72 eth1 cannot get IP correctly when plugged into the corporate LAN cable(R5 server IP is 0, 0, 0, 0, eth1 has no IP).

2) With static IP, R5 server and A72 eth1 are given IP, using port3 to connect to the PC, all of which cannot be pinged from both the A72 side and the PC side under the same LAN. The R5 server cannot also be pinged.

They've referenced the following 2 docs:

Test logs are as follows:

Could you help check this case? Thanks.

Best Regards,

Cherry

  • Hi Cherry,

    It seems like the packets are not being received by the host port. To check this hypothesis, we will have to check the statistic registers before and after ping.

    This script will print some of the stats for 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"

    You have to change the value of the variable port for the port you are using.

    I suggest that you do run tests using following steps with static IP:

    1. Assign IP to both EVM and PC (if not assigned)
    2. Run the script
    3. Ping PC from EVM
    4. Run the Script
    5. Ping EVM from PC
    6. Run the script

    Please provide me whatever output you see on TDA4VM linux console.

    Regards.
    Tanmay

  • Hi Tanmay,

    Thanks for your support.

    The following are the test results on the board using scripts:

    Run the script for the first time:

    Ping PC from EVM on TDA4VM Linux side:

    Ping Linux from PC:

    Thanks and regards,

    Cherry

  • Hi Cherry,

    I am terribly sorry but there was an error in the script i provided you. Can you rerun the tests with this new script.

    #!/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"

    Also, can you please confirm that you are using MAC PORT 2 from CPSW for connecting to the PC. You can see the details of connection in the ethfw user guide for your SDK version. Which SDK are you using?

    Regards,
    Tanmay

  • Hi Tanmay,

    Also, can you please confirm that you are using MAC PORT 2 from CPSW for connecting to the PC.

    The port 3 in the CPSW9G is currently connected as shown in the figure: 

    SDK version: 8.1.

    The new script test log is as follows: (Since port3 is used, modify port=2 in the script to port=3)

    First run:

    Ping PC:

    Ping EVM:

    Thanks and regards,

    Cherry

  • Hi,

    May I know is there any update? 

    Thanks and regards,

    Cherry

  • Hi Cherry,

    The data isn't adding up. 

    In the last test case, when we are pinging the EVM, there is no increment in PORT 3 Rx good frames which is the first register which should increment. But the Tx Good frames is increasing.

    It seems that there is some background process sending additional data over PORT 3. 

    As far as ping is concerned, in both direction, there is no packets observed from the PC. There could be issues in the link and/or PC. Can you recheck the setup once. Please share the output of `ifconfig -a` on both PC and EVM.

    Can you get the wireshark trace on PC for ping from EVM to PC.

    Regards,
    Tanmay

  • Hi Tanmay,

    The results of ifconfig are printed on the PC side as follows: 

    EVM side:

    From Wireshark trace's packet capture, PC does not seem to receive a packet from the EVM:

    Thanks and regards,

    Cherry

  • Hi Cherry,

    The problem seems to be on the PC side. CPSW is able to send the traffic out (we see an increment in POR3 Tx Good Frames) but PC is not receiving the packet.

    Is it possible for you to try this with different PC or if possible, try it between two EVMs.

    Regards,
    Tanmay

  • Hi Tanmay,

    Is it possible for you to try this with different PC or if possible, try it between two EVMs.

    The customer has tried different PCs and network cables, and the result is as same as before. 

    They also tried using the original network port on the motherboard, communication is normal and the problem should be with the CPSW9G expansion board.

    Thanks and regards,

    Cherry 

  • Hi Cherry,

    In that case, can you try to detach the GESI Card, clean-up the pins a bit and reattach the GESI Card again. I have seen that sometimes the GESI Card does not connect properly and causes issue.

    Regards,
    Tanmay