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.

Linux/PROCESSOR-SDK-AM335X: Network connectivity failure

Part Number: PROCESSOR-SDK-AM335X

Tool/software: Linux

Hi,

We are using AM335x Processor in our device. Currently we are facing problem of network connectivity failure with some products using TCP connection. 

The kernel version that we are using is 3.12.10-ti2013.12.01

I could see that the same issue is already reported in TI Forum

https://e2e.ti.com/support/processors/f/791/p/351064/1230114

Even if the solution(patch) is there in the link , i couldn't access the link now. 

http://processors.wiki.ti.com/index.php/Cpsw_3_12_dhcp_lease_fail_dual_emac

 

Please help me to solve this issue. 

  • Hi,

    You should note that the post you refer is from the year 2014. Kernel 3.12 has been obsoleted for several years now, and is no longer supported by TI.

  • Hi sir, Thanks for your quick response. Actually we already migrated to the new kernel version(4.14.67). And those devices are working fine. But the issue has to fixed in the old Linux version for the existing customers who are using our devices having Linux version 3.12.10-ti2013.12.01, and exposed to the issue. Please help us to solve this issue.
  • Hi,

    The location you mentioned is being taken down as TI has moved away from wiki based documentation. The patch that was listed there unfortunately I am not able to find at the moment. Attached is patch which was about that timeframe and used on the 3.12 kernel. Please let us know if this patch fixes the problem, if it doesn't I will continue looking to try to find it. 

    Best Regards,

    Schuyler

    https://e2e.ti.com/cfs-file/__key/communityserver-discussions-components-files/791/0001_2D00_drivers_2D00_net_2D00_cpsw_2D00_Add_2D00_default_2D00_vlan_2D00_for_2D00_dual_2D00_emac_2D00_case.patch

  • Hello Schuyler,

    Thank you so much for your reply. The issue got resolved by applying the shared patch.

    We have one concern on updating the modified linux kernel in the device at customer end.  

    That is, we have to give the patch applied Kernel to the Customers and in customer end, the serial ports are not exposed out for firmware update.Please let us know if there is any way to update Linux kernel patch in device using ethernet?

    Also during testing we observed an another behavior in AM335x Ethernet driver.

    If one of the interface is connected to the network and if issue ping request to the IP of  two interfaces of AM335x, then ARP table of PC from which the ping request issued will be  updated with two IPs of AM335x interfaces . But MAC IDs corresponding to the IPs of two interfaces are same (MAC of interface connected to network) in the ARP Table. This issue is also observing in the same kernel version -  3.12.10-ti2013.12.01. 

    This is not happening with Kernel Version - 4.14.67. 

    If you aware about this issue, please let me know the criticality of the same and if any patch available to solve this issue.

     

    Thanks in advance,

    Smrithy TR

  • Part Number: PROCESSOR-SDK-AM335X

    Tool/software: Linux

    Hello Sir,

    We were facing following networking issue in AM335x Ethernet driver.

    https://e2e.ti.com/support/processors/f/791/t/813007

    Issue got resolved by applying the patch.

    But during testing we observed an another behavior in AM335x Ethernet driver.

    If one of the interface is connected to the network and if issue ping request to the IPs of  two interfaces of AM335x, then ARP table of PC from which the ping request issued will be  updated with two IPs of AM335x interfaces . But MAC IDs corresponding to the IPs of two interfaces are same (MAC of interface connected to network) in the ARP Table. This issue is observing in the kernel version -  3.12.10-ti2013.12.01. 

    This is not happening with Kernel Version - 4.14.67. 

    If you aware about this issue, please let me know the criticality of the same and if any patch available to solve this issue.

    We have one concern on updating the modified linux kernel in the device at customer end.  

    That is, we have to give the patch applied Kernel to the Customers and in customer end, the serial ports are not exposed out for firmware update.Please let us know if there is any way to update Linux kernel patch in device using Ethernet?

    Thanks,

    Smrithy TR

  • Hi,

    I am not sure I am following what you are mentioning concerning the IPs. Could you attach an ifconfig -a from the target board.

    With regards to your question on updating the kernel this is not something TI will be able to support directly. That said, there are several protocols that allow the transfer of a kernel image. If I am following correctly would tftp or something similar work to transfer the kernel? You will have to have a means of updating the kernel in the boot directly of the filesystem since this is U-Boot will look for the kernel image there. You might look into an Over the Air OTA update software package for Linux. 

    Best Regards,

    Schuyler

  • Hi Schuyler,

    Thanks for your reply. 

    Attaching Wireshark logs and ARP Table (PC end) screenshot for your reference.

    Please Note:

       MAC and IP of AM335x:

    Eth0 - 192.92.92.182  MAC: 00:25:97:CE:EE:EC
    Eth1 - 192.168.1.182  MAC: 62:46:ed:8e:61:c9

    PC:
    IP - 192.92.92.59 , 192.168.1.59 (Alias IP) MAC- 00:26:b9:22:f6:87

    ARP Table at PC End



    Wireshark Logs (when connected AM335x eth0 interface to network, eth1 in disconnected state)




    Wireshark log (eth0 and eth1 connected)




    Regards,
    Smrithy TR
  • Hi,

    Thank you for the wireshark capture and the PC ARP table dump. I have not seen this type of issue before except when both interfaces are connected to the same subnet. How are the IP addresses being assigned? When both ports are connected to the same subnet regardless of the port that received the ARP message the kernel always responds on the lower port, eth0 for example.

    Unfortunately I think the issue you are seeing is beyond the scope of the TI cpsw driver. The reason I think this is the CPSW is just responsible for sending/receiving packets, it does not handle how the packets are constructed, that happens further up in the Linux network stack.

    Here are some suggestions that may or may not help to point to the direction on how to solve the issue:

    - Make sure you are flushing the PC ARP table between running with 1 and 2 ports connected.

    - Check the ARP table in the AM335x 

    - Watch as the ARP table is built, and perform the connections one at time flushing ARP tables in between connections. 

    - Watch the DHCP process per port on wireshark

    - I would recommend the performing the above steps with both kernels.

    Best Regards,

    Schuyler