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.

AM6548: PRU Ethernet RX - Packet Issue

Part Number: AM6548

Hi TI,

We are facing the issue with PRU Ethernet on AM6548 SDK 8.2 SR2. We have observed that intermittently there is no rx packets on the PRU ethernet whereas tx packets are properly increasing. rx - packets are stuck at particular value or maybe at 0. we can see the DHCP request being broadcasted on network and also we are getting the packets reply from DHCP server but if we see the packets count in PRU ethernet we dont see a increase in rx looks like PRU ethernet is stuck for some data or maybe in unknown state waiting for some data. I am attaching the wireshark logs and also shell console logs where you can see rx packets are stuck at a particular value. 

~ # sudo ifconfig eth1 down
[89415.006053] icssg-prueth icssg1_eth eth1: Link is Down
[89415.016286] remoteproc remoteproc8: stopped remote processor b10a000.txpru
[89415.023443] remoteproc remoteproc7: stopped remote processor b104000.rtu
[89415.030569] remoteproc remoteproc6: stopped remote processor b134000.pru
[89415.039577] net eth1: stopped
~ # sudo ifconfig eth1 down
~ # cat /sys/class/remoteproc/remoteproc6/state 
offline
~ # cat /sys/class/remoteproc/remoteproc7/state 
offline
~ # cat /sys/class/remoteproc/remoteproc8/state 
offline
~ # ethtool -S eth1
NIC statistics:
     rx_good_frames: 3
     rx_broadcast_frames: 1
     rx_multicast_frames: 3
     rx_crc_error_frames: 3
     rx_mii_error_frames: 0
     rx_odd_nibble_frames: 0
     rx_frame_max_size: 2000
     rx_max_size_error_frames: 0
     rx_frame_min_size: 64
     rx_min_size_error_frames: 0
     rx_overrun_frames: 3
     rx_class0_hits: 6
     rx_class1_hits: 0
     rx_class2_hits: 0
     rx_class3_hits: 0
     rx_class4_hits: 0
     rx_class5_hits: 0
     rx_class6_hits: 0
     rx_class7_hits: 0
     rx_class8_hits: 4
     rx_class9_hits: 4
     rx_class10_hits: 0
     rx_class11_hits: 0
     rx_class12_hits: 0
     rx_class13_hits: 0
     rx_class14_hits: 0
     rx_class15_hits: 0
     rx_smd_frags: 0
     rx_bucket1_size: 64
     rx_bucket2_size: 128
     rx_bucket3_size: 256
     rx_bucket4_size: 512
     rx_64B_frames: 0
     rx_bucket1_frames: 0
     rx_bucket2_frames: 6
     rx_bucket3_frames: 0
     rx_bucket4_frames: 0
     rx_bucket5_frames: 0
     rx_total_bytes: 596
     rx_tx_total_bytes: 248833
     tx_good_frames: 743
     tx_broadcast_frames: 687
     tx_multicast_frames: 743
     tx_odd_nibble_frames: 0
     tx_underflow_errors: 0
     tx_frame_max_size: 2000
     tx_max_size_error_frames: 0
     tx_frame_min_size: 64
     tx_min_size_error_frames: 0
     tx_bucket1_size: 64
     tx_bucket2_size: 128
     tx_bucket3_size: 256
     tx_bucket4_size: 512
     tx_64B_frames: 0
     tx_bucket1_frames: 0
     tx_bucket2_frames: 56
     tx_bucket3_frames: 0
     tx_bucket4_frames: 687
     tx_bucket5_frames: 0
     tx_total_bytes: 248237
~ # ifconfig
eth0      Link encap:Ethernet  HWaddr 00:D0:AF:07:00:00  
          inet6 addr: fe80::2d0:afff:fe07:0/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:15654 errors:0 dropped:0 overruns:0 frame:0
          TX packets:14936 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:939240 (917.2 KiB)  TX bytes:628500 (613.7 KiB)

eth2      Link encap:Ethernet  HWaddr 8E:C9:BC:86:E8:02  
          UP BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:9957 errors:0 dropped:0 overruns:0 frame:0
          TX packets:9957 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:951166 (928.8 KiB)  TX bytes:951166 (928.8 KiB)

usb0      Link encap:Ethernet  HWaddr EE:AD:A3:ED:58:52  
          UP BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

~ # sudo ifconfig eth1 up
[89510.662639] remoteproc remoteproc6: powering up b134000.pru
[89510.676659] remoteproc remoteproc6: Booting fw image ti-pruss/am65x-sr2-pru0-prueth-fw.elf, size 37264
[89510.692510] remoteproc remoteproc6: unsupported resource 5
[89510.698083] remoteproc remoteproc6: remote processor b134000.pru is now up
[89510.705493] remoteproc remoteproc7: powering up b104000.rtu
[89510.711431] remoteproc remoteproc7: Booting fw image ti-pruss/am65x-sr2-rtu0-prueth-fw.elf, size 30832
[89510.721069] remoteproc remoteproc7: remote processor b104000.rtu is now up
[89510.728527] remoteproc remoteproc8: powering up b10a000.txpru
[89510.734724] remoteproc remoteproc8: Booting fw image ti-pruss/am65x-sr2-txpru0-prueth-fw.elf, size 36656
[89510.744477] remoteproc remoteproc8: remote processor b10a000.txpru is now up
[89510.765119] TI DP83867 b132400.mdio:00: attached PHY driver [TI DP83867] (mii_bus:phy_addr=b132400.mdio:00, irq=POLL)
[89510.776051] net eth1: started
~ # [89513.861808] icssg-prueth icssg1_eth eth1: Link is Up - 1Gbps/Full - flow control off
[89513.869673] IPv6: ADDRCONF(NETDEV_CHANGE): eth1: link becomes ready
~ # ifconfig
eth0      Link encap:Ethernet  HWaddr 00:D0:AF:07:00:00  
          inet6 addr: fe80::2d0:afff:fe07:0/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:15660 errors:0 dropped:0 overruns:0 frame:0
          TX packets:14936 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:939600 (917.5 KiB)  TX bytes:628500 (613.7 KiB)

eth1      Link encap:Ethernet  HWaddr 8E:C9:BC:86:E8:01  
          inet6 addr: fe80::8cc9:bcff:fe86:e801/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:750 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:0 (0.0 B)  TX bytes:239907 (234.2 KiB)

eth2      Link encap:Ethernet  HWaddr 8E:C9:BC:86:E8:02  
          UP BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:9957 errors:0 dropped:0 overruns:0 frame:0
          TX packets:9957 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:951166 (928.8 KiB)  TX bytes:951166 (928.8 KiB)

usb0      Link encap:Ethernet  HWaddr EE:AD:A3:ED:58:52  
          UP BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

~ # cat /sys/class/remoteproc/remoteproc6/state 
running
~ # cat /sys/class/remoteproc/remoteproc7/state 
running
~ # cat /sys/class/remoteproc/remoteproc8/state 
running
~ # ethtool -S eth1
NIC statistics:
     rx_good_frames: 4
     rx_broadcast_frames: 1
     rx_multicast_frames: 4
     rx_crc_error_frames: 4
     rx_mii_error_frames: 0
     rx_odd_nibble_frames: 0
     rx_frame_max_size: 2000
     rx_max_size_error_frames: 0
     rx_frame_min_size: 64
     rx_min_size_error_frames: 0
     rx_overrun_frames: 4
     rx_class0_hits: 8
     rx_class1_hits: 0
     rx_class2_hits: 0
     rx_class3_hits: 0
     rx_class4_hits: 0
     rx_class5_hits: 0
     rx_class6_hits: 0
     rx_class7_hits: 0
     rx_class8_hits: 6
     rx_class9_hits: 6
     rx_class10_hits: 0
     rx_class11_hits: 0
     rx_class12_hits: 0
     rx_class13_hits: 0
     rx_class14_hits: 0
     rx_class15_hits: 0
     rx_smd_frags: 0
     rx_bucket1_size: 64
     rx_bucket2_size: 128
     rx_bucket3_size: 256
     rx_bucket4_size: 512
     rx_64B_frames: 0
     rx_bucket1_frames: 0
     rx_bucket2_frames: 8
     rx_bucket3_frames: 0
     rx_bucket4_frames: 0
     rx_bucket5_frames: 0
     rx_total_bytes: 762
     rx_tx_total_bytes: 249833
     tx_good_frames: 752
     tx_broadcast_frames: 687
     tx_multicast_frames: 752
     tx_odd_nibble_frames: 0
     tx_underflow_errors: 0
     tx_frame_max_size: 2000
     tx_max_size_error_frames: 0
     tx_frame_min_size: 64
     tx_min_size_error_frames: 0
     tx_bucket1_size: 64
     tx_bucket2_size: 128
     tx_bucket3_size: 256
     tx_bucket4_size: 512
     tx_64B_frames: 0
     tx_bucket1_frames: 0
     tx_bucket2_frames: 65
     tx_bucket3_frames: 0
     tx_bucket4_frames: 687
     tx_bucket5_frames: 0
     tx_total_bytes: 249071
~ # sudo udhcpc -b -B -A 30 -t 5 -T 3 -R -i eth1 -s /etc/udhcpc.script 
udhcpc: started, v1.33.2
udhcpc: sending discover
udhcpc: sending discover
udhcpc: sending discover
udhcpc: sending discover
udhcpc: sending discover
sh: missing ]
udhcpc.script: DHCP failed, falling back...
/etc/init.d/ntpd: NOTICE: Wait 5 secs more for service '18246' to stop.
udhcpc: no lease, forking to background
~ # ethtool -S eth1
NIC statistics:
     rx_good_frames: 4
     rx_broadcast_frames: 1
     rx_multicast_frames: 4
     rx_crc_error_frames: 4
     rx_mii_error_frames: 0
     rx_odd_nibble_frames: 0
     rx_frame_max_size: 2000
     rx_max_size_error_frames: 0
     rx_frame_min_size: 64
     rx_min_size_error_frames: 0
     rx_overrun_frames: 4
     rx_class0_hits: 8
     rx_class1_hits: 0
     rx_class2_hits: 0
     rx_class3_hits: 0
     rx_class4_hits: 0
     rx_class5_hits: 0
     rx_class6_hits: 0
     rx_class7_hits: 0
     rx_class8_hits: 6
     rx_class9_hits: 6
     rx_class10_hits: 0
     rx_class11_hits: 0
     rx_class12_hits: 0
     rx_class13_hits: 0
     rx_class14_hits: 0
     rx_class15_hits: 0
     rx_smd_frags: 0
     rx_bucket1_size: 64
     rx_bucket2_size: 128
     rx_bucket3_size: 256
     rx_bucket4_size: 512
     rx_64B_frames: 0
     rx_bucket1_frames: 0
     rx_bucket2_frames: 8
     rx_bucket3_frames: 0
     rx_bucket4_frames: 0
     rx_bucket5_frames: 0
     rx_total_bytes: 762
     rx_tx_total_bytes: 255307
     tx_good_frames: 769
     tx_broadcast_frames: 702
     tx_multicast_frames: 769
     tx_odd_nibble_frames: 0
     tx_underflow_errors: 0
     tx_frame_max_size: 2000
     tx_max_size_error_frames: 0
     tx_frame_min_size: 64
     tx_min_size_error_frames: 0
     tx_bucket1_size: 64
     tx_bucket2_size: 128
     tx_bucket3_size: 256
     tx_bucket4_size: 512
     tx_64B_frames: 0
     tx_bucket1_frames: 0
     tx_bucket2_frames: 67
     tx_bucket3_frames: 0
     tx_bucket4_frames: 702
     tx_bucket5_frames: 0
     tx_total_bytes: 254545