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 ICSSG (SR 2.0) receive stall with point-to-point connection between interfaces on same ICSSG

Part Number: AM6548
Other Parts Discussed in Thread: TMDX654IDKEVM,

Hello,

I'm working with a commercial real-time operating system on the TMDX654IDKEVM with AM6548 SR 2.0.  The OS includes a device driver for PRU ICSSG Ethernet which supports six interfaces on ICSSG #0, 1 and 2.  Testing this driver has uncovered the following problem:

When two interfaces on the same ICSSG are connected directly together via a single RJ-45 cable (for example: ICSSG #0 interface 0 <-> ICSSG #0 interface 1), the receive path of one of the PRU interfaces may fail to work correctly.  The symptoms of the failure are that no frames are received after the PRU ICSSG interface is brought up.  This condition persists until the board is reset (via the DMSC) or power-cycled.

I have been able to reproduce this failure on ICSSG #0 and 1 but so far not on ICSSG #2.

The failure does not occur if the two interfaces are connected via a switch, nor does it occur if interfaces are "cross-connected" to different ICSSGs (for example: ICSSG #0 interface 0 <-> ICSSG #1 interface 1).

The failure does not occur if the PRU ICSSG Ethernet interfaces are started with the link disconnected and the link is then connected.

Looking in the MSMC SRAM when the receiver has stalled, the entire MSMC SRAM is filled with zeros except for 32 bytes in the Rx context area which are the first 32 bytes of the first in-bound frame (a gratuitous ARP request, 60 bytes plus FCS).  There is no sign of the remainder of the frame.  This suggests to me that the physical layer is working correctly but the PRU is for some reason unable to receive the whole frame.

I have been able to reproduce this consistently with several versions of the PRU EMAC firmware including 02.02.09.0[2367].

Any suggestions as to what might be going wrong here, or how to diagnose/correct the root cause of the problem?

Thanks in anticipation.

Ian

  • To clarify: the failure occurs on only one of the two connected interfaces.  For example, if ICSSG #0 interface 0 and ICSSG #0 interface 1 are connected, in my tests it is interface 1 whose receiver stalls; interface 0 and the transmit side of interface 1 continue to operate normally.

  • Hi Ian,

    Thanks for the detailed explanation. 

    Can you please provide me the statistics information(both HW statistics and PA statistics) of the port when the the failure is observed.

    Regards,

    Mohan.

  • Hello Mohan,

    I'll be happy to do that, if you can let me know how/where to find those statistics.

    Thanks,

    Ian

  • Hi Ian,

    HW stats are mostly mapped to ethtool stats. Can you try to get the ethtool stats of the particular interface where you are seeing the issue.
    If ethtool stats are not mapped the you can dump the MII_G_RT register data for ICSSG0 instance from memory offset 0x0B033000 to 0x0B033F40. Similarly if the interface is in ICSSG1 then from 0x0B133000 to 0x0B133F40. If the interface is in ICSSG2 then from 0x0B233000 to 0x0B233F40

    PA stats for ICSSG0 instance are available at memory address 0x0B027000. Please dump the 2 KB of memory from this offset. Respectively PA stats for ICSSG1 instance is from 0x0B127000 and for ICSSG2 instance it is from 0x0B227000 and 2KB each.

    Regards,

    Mohan.

  • Hello Mohan,

    Thanks for the additional instructions, and sorry for having taken a while to reply.

    Here are the dumps you requested, for ICSSG #0:

    MII_G_RT:

    0x27c04000: 0001082f 006600dd 1e76ff70 0000c841 */.....f.p.v.A...*
    0x27c04010: 1e76ff70 0000c941 00000000 00000000 *p.v.A...........*
    0x27c04020: 1907d500 b37f4ce6 2a9e5261 00000000 *.....L..aR.*....*
    0x27c04030: 00000001 b37f4ce6 00000000 00000000 *.....L..........*
    0x27c04040: 00000000 00000021 00000041 00000000 *....!...A.......*
    0x27c04050: 00000000 00000000 00000000 00000000 *................*
    0x27c04060: 00000022 00000000 00000000 00010001 *"...............*
    0x27c04070: ffffffff 0000ffff 00000000 ffff0000 *................*
    0x27c04080: 00060000 00000001 1e76ff70 0000c841 *........p.v.A...*
    0x27c04090: 00000000 00000000 00000000 00000000 *................*
    0x27c040a0: 00000000 00000000 00000000 00000000 *................*
    0x27c040b0: 00000000 00000000 00000000 00000000 *................*
    0x27c040c0: 00000000 00000000 00000000 00000000 *................*
    0x27c040d0: 00000000 00000000 00000000 00000000 *................*
    0x27c040e0: 00000000 00000000 00000000 00000000 *................*
    0x27c040f0: 00000000 00000000 00000000 00000000 *................*
    0x27c04100: 00000000 00000000 0000000c 00000000 *................*
    0x27c04110: 00000000 00000000 00000000 00000005 *................*
    0x27c04120: 00000000 00000000 0000000c 00000000 *................*
    0x27c04130: 00000000 00000000 00000000 00000005 *................*
    0x27c04140: 00000000 00000000 0000000c 00000000 *................*
    0x27c04150: 00000000 00000000 00000000 00000005 *................*
    0x27c04160: 00000000 00000000 0000000c 00000000 *................*
    0x27c04170: 00000000 00000000 00000000 00000005 *................*
    0x27c04180: 00000000 00000000 0000000c 00000000 *................*
    0x27c04190: 00000000 00000000 00000000 00000005 *................*
    0x27c041a0: 00000000 00000000 0000000c 00000000 *................*
    0x27c041b0: 00000000 00000000 00000000 00000005 *................*
    0x27c041c0: 00000000 00000000 0000000c 00000000 *................*
    0x27c041d0: 00000000 00000000 00000000 00000005 *................*
    0x27c041e0: 00000000 00000000 0000000c 00000000 *................*
    0x27c041f0: 00000000 00000000 00000000 00000005 *................*
    0x27c04200: 00000000 00000000 0000000c 00000000 *................*
    0x27c04210: 00000000 00000000 00000000 00000005 *................*
    0x27c04220: 00000000 00000000 0000000c 00000000 *................*
    0x27c04230: 00000000 00000000 00000000 00000005 *................*
    0x27c04240: 00000000 00000000 0000000c 00000000 *................*
    0x27c04250: 00000000 00000000 00000000 00000005 *................*
    0x27c04260: 00000000 00000000 0000000c 00000000 *................*
    0x27c04270: 00000000 00000000 00000000 00000005 *................*
    0x27c04280: 00000000 00000000 0000000c 00000000 *................*
    0x27c04290: 00000000 00000000 00000000 00000005 *................*
    0x27c042a0: 00000000 00000000 0000000c 00000000 *................*
    0x27c042b0: 00000000 00000000 00000000 00000005 *................*
    0x27c042c0: 00000000 00000000 0000000c 00000000 *................*
    0x27c042d0: 00000000 00000000 00000000 00000005 *................*
    0x27c042e0: 00000000 00000000 0000000c 00000000 *................*
    0x27c042f0: 00000000 00000000 00000000 00000005 *................*
    0x27c04300: 00000000 00000000 00000000 00000000 *................*
    0x27c04310: 00000000 00000000 00000000 00000000 *................*
    0x27c04320: 00000000 00000000 00000000 00000000 *................*
    0x27c04330: 00000000 00000000 00000000 00000000 *................*
    0x27c04340: 00000000 00000000 00000000 00000000 *................*
    0x27c04350: 00000000 00000000 00000000 00000000 *................*
    0x27c04360: 00000000 00000000 00000000 00000000 *................*
    0x27c04370: 00000000 00000000 00000000 00000000 *................*
    0x27c04380: 00000000 00000000 00000000 00000000 *................*
    0x27c04390: 00000000 00000000 00000000 00000000 *................*
    0x27c043a0: 00000000 00000000 00000000 00000000 *................*
    0x27c043b0: 00000000 00000000 00000000 00000000 *................*
    0x27c043c0: 00000000 00000000 00000000 00000000 *................*
    0x27c043d0: 00000000 00000000 00000000 00000000 *................*
    0x27c043e0: 00000000 00000000 00000000 00000000 *................*
    0x27c043f0: 00000000 00000000 00000000 00000000 *................*
    0x27c04400: 00000000 00000000 00000000 00000000 *................*
    0x27c04410: 62000000 00000000 00000000 00000000 *...b............*
    0x27c04420: 00000000 00000000 00000000 00000000 *................*
    0x27c04430: 00000000 00000000 00000000 00000000 *................*
    0x27c04440: 00000000 00000000 00000000 00000000 *................*
    0x27c04450: 00000000 00000000 00000000 00000000 *................*
    0x27c04460: 00000000 00000000 00000000 00000000 *................*
    0x27c04470: 00000000 00000000 00000000 00000000 *................*
    0x27c04480: 00000000 00000000 00000000 00000003 *................*
    0x27c04490: 00000000 00000050 00000050 00000050 *....P...P...P...*
    0x27c044a0: 00000050 00000050 00000050 00000050 *P...P...P...P...*
    0x27c044b0: 00000050 00000050 00000050 00000050 *P...P...P...P...*
    0x27c044c0: 00000050 00000050 00000050 00000050 *P...P...P...P...*
    0x27c044d0: 00000050 00000000 00000000 00000000 *P...............*
    0x27c044e0: 00000000 00000000 00000000 00000000 *................*
    0x27c044f0: 00000000 00000000 00000000 00000000 *................*
    0x27c04500: 00000000 00000000 00000000 00000000 *................*
    0x27c04510: 00020000 00000000 00020000 00000000 *................*
    0x27c04520: 00020000 00000000 00020000 00000000 *................*
    0x27c04530: 00020000 00000000 00020000 00000000 *................*
    0x27c04540: 00020000 00000000 00020000 00000000 *................*
    0x27c04550: 00000000 00000000 00000000 00000000 *................*
    0x27c04560: 00000000 000007d0 00000000 00000040 *............@...*
    0x27c04570: 00000000 00000000 00000000 00000000 *................*
    0x27c04580: 00000000 00000000 00000000 00000000 *................*
    0x27c04590: 00000000 00000000 00000000 00000000 *................*
    0x27c045a0: 00000000 00000000 00000000 00000000 *................*
    0x27c045b0: 00000000 00000000 00000000 00000040 *............@...*
    0x27c045c0: 00000080 00000100 00000200 00000000 *................*
    0x27c045d0: 00000000 00000000 00000000 00000000 *................*
    0x27c045e0: 00000000 00000000 00000048 00000001 *........H.......*
    0x27c045f0: 00000001 00000001 00000000 00000000 *................*
    0x27c04600: 000007d0 00000000 00000040 00000000 *........@.......*
    0x27c04610: 00000040 00000080 00000100 00000200 *@...............*
    0x27c04620: 00000000 00000000 00000001 00000000 *................*
    0x27c04630: 00000000 00000000 00000048 0000892f *........H.../...*
    0x27c04640: 00000000 00000081 00000001 00060000 *................*
    0x27c04650: 00000001 1e76ff70 0000c941 00000000 *....p.v.A.......*
    0x27c04660: 00000000 00000000 00000000 00000000 *................*
    0x27c04670: 00000000 00000000 00000000 00000000 *................*
    0x27c04680: 00000000 00000000 00000000 00000000 *................*
    0x27c04690: 00000000 00000000 00000000 00000000 *................*
    0x27c046a0: 00000000 00000000 00000000 00000000 *................*
    0x27c046b0: 00000000 00000000 00000000 00000000 *................*
    0x27c046c0: 00000000 00000000 00000000 00000000 *................*
    0x27c046d0: 00000000 0000000c 00000000 00000000 *................*
    0x27c046e0: 00000000 00000000 00000005 00000000 *................*
    0x27c046f0: 00000000 0000000c 00000000 00000000 *................*
    0x27c04700: 00000000 00000000 00000005 00000000 *................*
    0x27c04710: 00000000 0000000c 00000000 00000000 *................*
    0x27c04720: 00000000 00000000 00000005 00000000 *................*
    0x27c04730: 00000000 0000000c 00000000 00000000 *................*
    0x27c04740: 00000000 00000000 00000005 00000000 *................*
    0x27c04750: 00000000 0000000c 00000000 00000000 *................*
    0x27c04760: 00000000 00000000 00000005 00000000 *................*
    0x27c04770: 00000000 0000000c 00000000 00000000 *................*
    0x27c04780: 00000000 00000000 00000005 00000000 *................*
    0x27c04790: 00000000 0000000c 00000000 00000000 *................*
    0x27c047a0: 00000000 00000000 00000005 00000000 *................*
    0x27c047b0: 00000000 0000000c 00000000 00000000 *................*
    0x27c047c0: 00000000 00000000 00000005 00000000 *................*
    0x27c047d0: 00000000 0000000c 00000000 00000000 *................*
    0x27c047e0: 00000000 00000000 00000005 00000000 *................*
    0x27c047f0: 00000000 0000000c 00000000 00000000 *................*
    0x27c04800: 00000000 00000000 00000005 00000000 *................*
    0x27c04810: 00000000 0000000c 00000000 00000000 *................*
    0x27c04820: 00000000 00000000 00000005 00000000 *................*
    0x27c04830: 00000000 0000000c 00000000 00000000 *................*
    0x27c04840: 00000000 00000000 00000005 00000000 *................*
    0x27c04850: 00000000 0000000c 00000000 00000000 *................*
    0x27c04860: 00000000 00000000 00000005 00000000 *................*
    0x27c04870: 00000000 0000000c 00000000 00000000 *................*
    0x27c04880: 00000000 00000000 00000005 00000000 *................*
    0x27c04890: 00000000 0000000c 00000000 00000000 *................*
    0x27c048a0: 00000000 00000000 00000005 00000000 *................*
    0x27c048b0: 00000000 0000000c 00000000 00000000 *................*
    0x27c048c0: 00000000 00000000 00000005 00000000 *................*
    0x27c048d0: 00000000 00000000 00000000 00000000 *................*
    0x27c048e0: 00000000 00000000 00000000 00000000 *................*
    0x27c048f0: 00000000 00000000 00000000 00000000 *................*
    0x27c04900: 00000000 00000000 00000000 00000000 *................*
    0x27c04910: 00000000 00000000 00000000 00000000 *................*
    0x27c04920: 00000000 00000000 00000000 00000000 *................*
    0x27c04930: 00000000 00000000 00000000 00000000 *................*
    0x27c04940: 00000000 00000000 00000000 00000000 *................*
    0x27c04950: 00000000 00000000 00000000 00000000 *................*
    0x27c04960: 00000000 00000000 00000000 00000000 *................*
    0x27c04970: 00000000 00000000 00000000 00000000 *................*
    0x27c04980: 00000000 00000000 00000000 00000000 *................*
    0x27c04990: 00000000 00000000 00000000 00000000 *................*
    0x27c049a0: 00000000 00000000 00000000 00000000 *................*
    0x27c049b0: 00000000 00000000 00000000 00000000 *................*
    0x27c049c0: 00000000 00000000 00000000 00000000 *................*
    0x27c049d0: 00000000 00000000 00000000 22000000 *..............."*
    0x27c049e0: 00000000 00000000 00000000 00000000 *................*
    0x27c049f0: 00000000 00000000 00000000 00000000 *................*
    0x27c04a00: 00000000 00000000 00000000 00000000 *................*
    0x27c04a10: 00000000 00000000 00000000 00000000 *................*
    0x27c04a20: 00000000 00000000 00000000 00000000 *................*
    0x27c04a30: 00000000 00000000 00000000 00000000 *................*
    0x27c04a40: 00000000 00000000 00000000 00000000 *................*
    0x27c04a50: 00000000 00000000 00000003 00000000 *................*
    0x27c04a60: 00000050 00000050 00000050 00000050 *P...P...P...P...*
    0x27c04a70: 00000050 00000050 00000050 00000050 *P...P...P...P...*
    0x27c04a80: 00000050 00000050 00000050 00000050 *P...P...P...P...*
    0x27c04a90: 00000050 00000050 00000050 00000050 *P...P...P...P...*
    0x27c04aa0: 00000000 00000000 00000000 00000000 *................*
    0x27c04ab0: 00000000 00000000 00000000 00000000 *................*
    0x27c04ac0: 00000000 00000000 00000000 00000000 *................*
    0x27c04ad0: 00000000 00000000 00000000 00020000 *................*
    0x27c04ae0: 00000000 00020000 00000000 00020000 *................*
    0x27c04af0: 00000000 00020000 00000000 00020000 *................*
    0x27c04b00: 00000000 00020000 00000000 00020000 *................*
    0x27c04b10: 00000000 00020000 00000000 00000001 *................*
    0x27c04b20: 00000001 00000002 00000000 00000000 *................*
    0x27c04b30: 000007d0 00000000 00000040 00000001 *........@.......*
    0x27c04b40: 00000001 00000002 00000001 00000001 *................*
    0x27c04b50: 00000001 00000001 00000001 00000001 *................*
    0x27c04b60: 00000001 00000001 00000001 00000001 *................*
    0x27c04b70: 00000001 00000001 00000001 00000001 *................*
    0x27c04b80: 00000001 00000000 00000040 00000080 *........@.......*
    0x27c04b90: 00000100 00000200 00000001 00000002 *................*
    0x27c04ba0: 00000000 00000000 00000000 00000000 *................*
    0x27c04bb0: 00000040 00000040 00000000 00000000 *@...@...........*
    0x27c04bc0: 00000000 00000000 00000000 000007d0 *................*
    0x27c04bd0: 00000000 00000040 00000000 00000040 *....@.......@...*
    0x27c04be0: 00000080 00000100 00000200 00000000 *................*
    0x27c04bf0: 00000000 00000000 00000000 00000000 *................*
    0x27c04c00: 00000000 00000000 0000892f 00000000 *......../.......*
    0x27c04c10: 00000081 00000000 00000000 00000000 *................*
    0x27c04c20: 00000000 00000000 00000000 00000000 *................*
    0x27c04c30: 00000000 00000000 00000000 00000000 *................*
    0x27c04c40: 00000000 00000000 00000000 00000000 *................*
    0x27c04c50: 00000000 00000000 00000000 00000000 *................*
    0x27c04c60: 00000000 00000000 00000000 00000000 *................*
    0x27c04c70: 00000000 00000000 00000000 00000000 *................*
    0x27c04c80: 00000000 00000000 00000000 00000000 *................*
    0x27c04c90: 00000000 00000000 00000000 00000000 *................*
    0x27c04ca0: 00000000 00000000 00000000 00000000 *................*
    0x27c04cb0: 00000000 00000000 00000000 00000000 *................*
    0x27c04cc0: 00000000 00000000 00000000 00000000 *................*
    0x27c04cd0: 00000000 00000000 00000000 00000000 *................*
    0x27c04ce0: 00000000 00000000 00000000 00000000 *................*
    0x27c04cf0: 00000000 00000000 00000000 00000000 *................*
    0x27c04d00: 00000000 00000000 00000000 00000000 *................*
    0x27c04d10: 00000000 00000000 00000000 00000000 *................*
    0x27c04d20: 00000000 00000000 00000000 00000000 *................*
    0x27c04d30: 00000000 00000000 00000000 00000000 *................*
    0x27c04d40: 00000000 00000000 00000000 00000000 *................*
    0x27c04d50: 00000000 00000000 00000000 00000000 *................*
    0x27c04d60: 00000000 00000000 00000000 00000000 *................*
    0x27c04d70: 00000000 00000000 00000000 00000000 *................*
    0x27c04d80: 00002104 00002f6c 00005aa4 00005f14 *.!..l/...Z..._..*
    0x27c04d90: 00003dd4 00004c3c 00006374 000067dc *.=..<L..tc...g..*
    0x27c04da0: 00007aac 00007eac 00000000 00000000 *.z...~..........*
    0x27c04db0: 00000000 00000000 00000000 00000000 *................*
    0x27c04dc0: 00000000 00000000 00000000 00000000 *................*
    0x27c04dd0: 00000000 00000000 00000000 00000000 *................*
    0x27c04de0: 000082ac 00000000 00000000 00000000 *................*
    0x27c04df0: 0000834c 00000000 00000000 00000000 *L...............*
    0x27c04e00: 00000000 00000000 00000000 00000000 *................*
    0x27c04e10: 00000000 00000000 00000000 00000000 *................*
    0x27c04e20: 00000000 00000000 00000000 00000000 *................*
    0x27c04e30: 00000000 00000000 00000000 00000000 *................*
    0x27c04e40: 00000000 00000000 00000000 00000000 *................*
    0x27c04e50: 00000000 00000000 00000000 00000000 *................*
    0x27c04e60: 00000000 00000000 00000000 00000000 *................*
    0x27c04e70: 00000000 00000000 00000000 00000000 *................*
    0x27c04e80: 00000000 00000000 00000000 00000000 *................*
    0x27c04e90: 00000000 00000000 00000000 00000000 *................*
    0x27c04ea0: 00000000 00000000 00000000 00000000 *................*
    0x27c04eb0: 00000000 00000000 00000000 00000000 *................*
    0x27c04ec0: 0000003f 0000003f 0000003f 0000003f *?...?...?...?...*
    0x27c04ed0: 0000003f 0000003f 0000003f 0000003f *?...?...?...?...*
    0x27c04ee0: 0000000f 0000000f 00000000 00000000 *................*
    0x27c04ef0: 00000000 00000000 00000000 00000000 *................*
    0x27c04f00: 00000000 00000000 00000000 00000000 *................*
    0x27c04f10: 00000000 00000000 00000000 00000000 *................*
    0x27c04f20: 00000007 00000000 00000000 00000000 *................*
    0x27c04f30: 00000007 00000000 00000000 00000000 *................*

    PA:

    0x27c05000: 00000000 00000000 00000000 00000000 *................*
    0x27c05010: 00000000 00000000 00000000 00000000 *................*
    0x27c05020: 00000000 00000000 00000000 00000000 *................*
    0x27c05030: 00000000 00000000 00000000 00000000 *................*
    0x27c05040: 00000000 00000000 00000000 00000000 *................*
    0x27c05050: 00000000 00000000 00000000 00000000 *................*
    0x27c05060: 00000000 00000000 00000000 00000000 *................*
    0x27c05070: 00000000 00000000 00000000 00000000 *................*
    0x27c05080: 00000000 00000000 00000000 00000000 *................*
    0x27c05090: 00000000 00000000 00000000 00000000 *................*
    0x27c050a0: 00000000 00000000 00000000 00000000 *................*
    0x27c050b0: 00000000 00000000 00000000 00000000 *................*
    0x27c050c0: 00000000 00000000 00000000 00000000 *................*
    0x27c050d0: 00000000 00000000 00000000 00000000 *................*
    0x27c050e0: 00000000 00000000 00000000 00000000 *................*
    0x27c050f0: 00000000 00000000 00000000 00000000 *................*
    0x27c05100: 00000000 00000000 00000000 00000000 *................*
    0x27c05110: 00000000 00000000 00000000 00000000 *................*
    0x27c05120: 00000000 00000000 00000000 00000000 *................*
    0x27c05130: 00000000 00000000 00000000 00000000 *................*
    0x27c05140: 00000000 00000000 00000000 00000000 *................*
    0x27c05150: 00000000 00000000 00000000 00000000 *................*
    0x27c05160: 00000000 00000000 00000000 00000000 *................*
    0x27c05170: 00000000 00000000 00000000 00000000 *................*
    0x27c05180: 00000000 00000000 00000000 00000000 *................*
    0x27c05190: 00000000 00000000 00000000 00000000 *................*
    0x27c051a0: 00000000 00000000 00000000 00000000 *................*
    0x27c051b0: 00000000 00000000 00000000 00000000 *................*
    0x27c051c0: 00000000 00000000 00000000 00000000 *................*
    0x27c051d0: 00000000 00000000 00000000 00000000 *................*
    0x27c051e0: 00000000 00000000 00000000 00000000 *................*
    0x27c051f0: 00000000 00000000 00000000 00000000 *................*
    0x27c05200: 00000000 00000000 00000000 00000000 *................*
    0x27c05210: 00000000 00000000 00000000 00000000 *................*
    0x27c05220: 00000000 00000000 00000000 00000000 *................*
    0x27c05230: 00000000 00000000 00000000 00000000 *................*
    0x27c05240: 00000000 00000000 00000000 00000000 *................*
    0x27c05250: 00000000 00000000 00000000 00000000 *................*
    0x27c05260: 00000000 00000000 00000000 00000000 *................*
    0x27c05270: 00000000 00000000 00000000 00000000 *................*
    0x27c05280: 00000000 00000000 00000000 00000000 *................*
    0x27c05290: 00000000 00000000 00000000 00000000 *................*
    0x27c052a0: 00000000 00000000 00000000 00000000 *................*
    0x27c052b0: 00000000 00000000 00000000 00000000 *................*
    0x27c052c0: 00000000 00000000 00000000 00000000 *................*
    0x27c052d0: 00000000 00000000 00000000 00000000 *................*
    0x27c052e0: 00000000 00000000 00000000 00000000 *................*
    0x27c052f0: 00000000 00000000 00000000 00000000 *................*
    0x27c05300: 00000000 00000000 00000000 00000000 *................*
    0x27c05310: 00000000 00000000 00000000 00000000 *................*
    0x27c05320: 00000000 00000000 00000000 00000000 *................*
    0x27c05330: 00000000 00000000 00000000 00000000 *................*
    0x27c05340: 00000000 00000000 00000000 00000000 *................*
    0x27c05350: 00000000 00000000 00000000 00000000 *................*
    0x27c05360: 00000000 00000000 00000000 00000000 *................*
    0x27c05370: 00000000 00000000 00000000 00000000 *................*
    0x27c05380: 00000000 00000000 00000000 00000000 *................*
    0x27c05390: 00000000 00000000 00000000 00000000 *................*
    0x27c053a0: 00000000 00000000 00000000 00000000 *................*
    0x27c053b0: 00000000 00000000 00000000 00000000 *................*
    0x27c053c0: 00000000 00000000 00000000 00000000 *................*
    0x27c053d0: 00000000 00000000 00000000 00000000 *................*
    0x27c053e0: 00000000 00000000 00000000 00000000 *................*
    0x27c053f0: 00000000 00000000 00000000 00000000 *................*
    0x27c05400: 00000000 00000000 00000000 00000000 *................*
    0x27c05410: 00000000 00000000 00000000 00000000 *................*
    0x27c05420: 00000000 00000000 00000000 00000000 *................*
    0x27c05430: 00000000 00000000 00000000 00000000 *................*
    0x27c05440: 00000000 00000000 00000000 00000000 *................*
    0x27c05450: 00000000 00000000 00000000 00000000 *................*
    0x27c05460: 00000000 00000000 00000000 00000000 *................*
    0x27c05470: 00000000 00000000 00000000 00000000 *................*
    0x27c05480: 00000000 00000000 00000000 00000000 *................*
    0x27c05490: 00000000 00000000 00000000 00000000 *................*
    0x27c054a0: 00000000 00000000 00000000 00000000 *................*
    0x27c054b0: 00000000 00000000 00000000 00000000 *................*
    0x27c054c0: 00000000 00000000 00000000 00000000 *................*
    0x27c054d0: 00000000 00000000 00000000 00000000 *................*
    0x27c054e0: 00000000 00000000 00000000 00000000 *................*
    0x27c054f0: 00000000 00000000 00000000 00000000 *................*
    0x27c05500: 00000000 00000000 00000000 00000000 *................*
    0x27c05510: 00000000 00000000 00000000 00000000 *................*
    0x27c05520: 00000000 00000000 00000000 00000000 *................*
    0x27c05530: 00000000 00000000 00000000 00000000 *................*
    0x27c05540: 00000000 00000000 00000000 00000000 *................*
    0x27c05550: 00000000 00000000 00000000 00000000 *................*
    0x27c05560: 00000000 00000000 00000000 00000000 *................*
    0x27c05570: 00000000 00000000 00000000 00000000 *................*
    0x27c05580: 00000000 00000000 00000000 00000000 *................*
    0x27c05590: 00000000 00000000 00000000 00000000 *................*
    0x27c055a0: 00000000 00000000 00000000 00000000 *................*
    0x27c055b0: 00000000 00000000 00000000 00000000 *................*
    0x27c055c0: 00000000 00000000 00000000 00000000 *................*
    0x27c055d0: 00000000 00000000 00000000 00000000 *................*
    0x27c055e0: 00000000 00000000 00000000 00000000 *................*
    0x27c055f0: 00000000 00000000 00000000 00000000 *................*
    0x27c05600: 00000000 00000000 00000000 00000000 *................*
    0x27c05610: 00000000 00000000 00000000 00000000 *................*
    0x27c05620: 00000000 00000000 00000000 00000000 *................*
    0x27c05630: 00000000 00000000 00000000 00000000 *................*
    0x27c05640: 00000000 00000000 00000000 00000000 *................*
    0x27c05650: 00000000 00000000 00000000 00000000 *................*
    0x27c05660: 00000000 00000000 00000000 00000000 *................*
    0x27c05670: 00000000 00000000 00000000 00000000 *................*
    0x27c05680: 00000000 00000000 00000000 00000000 *................*
    0x27c05690: 00000000 00000000 00000000 00000000 *................*
    0x27c056a0: 00000000 00000000 00000000 00000000 *................*
    0x27c056b0: 00000000 00000000 00000000 00000000 *................*
    0x27c056c0: 00000000 00000000 00000000 00000000 *................*
    0x27c056d0: 00000000 00000000 00000000 00000000 *................*
    0x27c056e0: 00000000 00000000 00000000 00000000 *................*
    0x27c056f0: 00000000 00000000 00000000 00000000 *................*
    0x27c05700: 00000000 00000000 00000000 00000000 *................*
    0x27c05710: 00000000 00000000 00000000 00000000 *................*
    0x27c05720: 00000000 00000000 00000000 00000000 *................*
    0x27c05730: 00000000 00000000 00000000 00000000 *................*
    0x27c05740: 00000000 00000000 00000000 00000000 *................*
    0x27c05750: 00000000 00000000 00000000 00000000 *................*
    0x27c05760: 00000000 00000000 00000000 00000000 *................*
    0x27c05770: 00000000 00000000 00000000 00000000 *................*
    0x27c05780: 00000000 00000000 00000000 00000000 *................*
    0x27c05790: 00000000 00000000 00000000 00000000 *................*
    0x27c057a0: 00000000 00000000 00000000 00000000 *................*
    0x27c057b0: 00000000 00000000 00000000 00000000 *................*
    0x27c057c0: 00000000 00000000 00000000 00000000 *................*
    0x27c057d0: 00000000 00000000 00000000 00000000 *................*
    0x27c057e0: 00000000 00000000 00000000 00000000 *................*
    0x27c057f0: 00000000 00000000 00000000 00000000 *................*

    (Please ignore the virtual addresses in the first column.  These are mapped to physical addresses starting at 0x0B033000 and 0x0B027000 respectively.)

    During this test, emac interface #0 sent one frame (gratuitous ARP) to emac interface #1, but it was not received  - the behaviour described in earlier posts.

    In the working case, the dumps look the same except for the emac interface #1 rx stats starting at offset 0xb18:

    ...

    0x27c04b10: 00000000 00020000 00000001 00000001 *................*
    0x27c04b20: 00000001 00000000 00000000 00000000 *................*
    0x27c04b30: 000007d0 00000000 00000040 00000000 *........@.......*
    0x27c04b40: 00000000 00000001 00000000 00000000 *................*
    0x27c04b50: 00000000 00000000 00000000 00000000 *................*
    0x27c04b60: 00000000 00000000 00000000 00000000 *................*
    0x27c04b70: 00000000 00000000 00000000 00000000 *................*
    0x27c04b80: 00000000 00000000 00000040 00000080 *........@.......*
    0x27c04b90: 00000100 00000200 00000001 00000001 *................*

    ...

    It looks as though in the non-working case MIIG_RT is reporting CRC errors which don't occur in the working case.

    I'll be interested to hear what next steps you suggest.  If you need more information from the ICSSG registers or memory, just let me know.

    Thanks again,

    Ian

  • Hi Ian,

    Sorry for the delay.

    I have gone through the statistics and observed that we have seen similar issue recently and we have fixed that already.

    This was due to incorrect error handling in firmware this was fixed. I am checking internally to find best way to provide the fix.

    Regards,

    Mohan

  • Hello Mohan,

    Thanks for your reply, that sounds promising.  I'll look forward to hearing how you might be able to provide the fix.

    Ian

  • Ian 

    Mohan is talking about the firmware that I shared with you a couple of days back. 

    The concern team has is that if your software is baselined on PSDK 7.3 , you may run into issues. Ideally you would be using PSDK 8.2 as your baseline. 

    My hope is in your case , that since you are doing your own port , you may be able to diff of driver and pick the changes along with the latest firmware.

  • Mukul,

    I've just tried the firmware you provided with the existing host-based driver.  The original problem remains, as far as I can tell - however, as you suspected this firmware seems to introduce other problems which I assume are because the interface between the firmware and the host-based driver has changed.

    Is there a document which provides a detailed description of this interface (commands, data structures, memory addresses, etc.)?  Or is the only way to get this information to reverse-engineer the Linux driver?

    Also, is there a detailed modification history (release notes) for the PRU-ICSSG EMAC firmware, or only what's visible in the TI git repository?

    Thanks,

    Ian

  • Hi Ian,

    I did a review of recent changes and found that there were significant changes which are mostly optimization, bug fixes which are internal to firmware.

    I identified one major interface change which is Adding Preemptive queue and Movement of Host egress Queue PDs from Data memory(DMEM) to Shared memory(SMEM) of PRU-ICSSG.

    This is the main change and which can create above mentioned behavior. Please compare and take this change and verify the functionality. This change will be part of firmware initialization in driver.

    Regards,

    Mohan.

  • Hello Mohan,

    Thanks for that hint.  The only way I can make sense of this is to look at changes in the Linux driver for the PRU ICSSG EMAC.  If I understand you correctly, you're talking about changes in icssg_config.c; specifically, between icssg_config_sr2() in the driver we used as a baseline and prueth_emac_buffer_setup() (called from icssg_config_sr2()) in the current driver.  Is that correct?  If not, please put me straight.

    Ian