Because of the holidays, TI E2E™ design support forum responses will be delayed from Dec. 25 through Jan. 2. Thank you for your patience.

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.

CCS/AM5718: PRU-EMAC Loopback example

Part Number: AM5718
Other Parts Discussed in Thread: TMDXIDK5718

Tool/software: Code Composer Studio

Hi,

I am using TMDXIDK5718 evaluation kit for exploring PRU-EMAC.I am new in this area.
I have installed latest SDK(pdk_am57xx_1_0_13).
Then i have loaded the example ICSS_EMAC_BasicExample_idkAM571x_wSoCFile_armTestproject,(.out file) in cortexA15,in Tera Term(serial port) console showing
"ICSS_EMAC_testTaskPruss1: Waiting for PRU2 Test to complete before testing PRU1".
I have loopbacked the PRU2-ETH0 and PRU2-ETH1 and load PRU with an output file from and load PRU with an output file from ("C:\ti\pdk_am57xx_1_0_13\packages\ti\binary\icss_dualemac\obj\am571x\a15_0\REV2\pru_0"

Please suggest the procedure for doing this experiment

Regards

Satheesh Kumar S

  • Hi Satheesh,

    >>loopbacked the PRU2-ETH0 and PRU2-ETH1.
    The loopback test actually loopbacks the packets from sending port to its own receiving port, do you use a Ethernet loopback jack&plug to loopback?

    You don't need to manually load PRU image, which has been loaded by the application self.

    Regards,
    Garrett
  • Hi Garrett

    Thank you very much

    i have shorted (Tx+ ,Rx+) and (Tx- ,Rx- ) line in the Ethernet cable and connected  to PRU2 ETH0 .when i run the project,console showing following print

    ICSS_EMAC_testTaskPruss1: Waiting for PRU2 Test to complete before testing PRU1
    ICSS_EmacTxPacket: returned error with invalid queue number, expected Result
    ICSS_EMAC_testTaskPruss1(PRU2 ETH0): received pkt: 2

    When i connect same cable in PRU2 ETH1,console showing following print

    ICSS_EMAC_testTaskPruss1: Waiting for PRU2 Test to complete before testing PRU1
    ICSS_EMAC_testTaskPruss2: LINK IS DOWN, pluggin loopback cable for PRU2 ETH0

    Regards

    Satheesh Kumar S

  • Satheesh,

    Can you try to have both PRU1 and PRU2 with loopback adapters connected and check the result?
    Something like this - www.amazon.com/.../ref=sr_1_2


    Regards,
    Garrett
  • Hi Garrett

    Thank you for your great support

    I have connected two loopback cable connector(not the adapter you mentioned, I am trying to procure the adaptor).But with previous setup(two self loopback cables for two PRUs(PRU2 ETH0 and PRU2 ETH1) .I am getting the following console print

    boardName: AM571IDK
    ICSS_EMAC_testDrvInit: instance: 1, data0RamSize: 0x2000, data1RamSize: 0x2000, sharedDataRamSize: 0x8000, l3OcmcSize: 0x40000
    ICSS_EMAC_testDrvInit: instance: 1, data0RamSize: 0x2000, data1RamSize: 0x2000, sharedDataRamSize: 0x8000, l3OcmcSize: 0x40000
    ICSS_EMAC_testDrvInit: instance: 2, data0RamSize: 0x2000, data1RamSize: 0x2000, sharedDataRamSize: 0x8000, l3OcmcSize: 0x40000
    Validate Firmware: Release1: 0x111, Release2: 0x85020006
    ICSS_EMAC_testTaskPruss1: Waiting for PRU2 Test to complete before testing PRU1
    ICSS_EMAC_testTaskPruss2: ICSS_EMAC_testPgVersion: 0x0
    Validate Firmware: Release1: 0x111, Release2: 0x85020006
    ICSS_EMAC_testTaskPruss2: LINK IS DOWN, pluggin loopback cable for PRU2 ETH0
    ICSS_EMAC_testTaskPruss1: Waiting for PRU2 Test to complete before testing PRU1
    ICSS_EMAC_testTaskPruss2: LINK IS DOWN, pluggin loopback cable for PRU2 ETH0
    ICSS_EMAC_testTaskPruss1: Waiting for PRU2 Test to complete before testing PRU1
    ICSS_EMAC_testTaskPruss2: LINK IS DOWN, pluggin loopback cable for PRU2 ETH0
    ICSS_EMAC_testTaskPruss1: Waiting for PRU2 Test to complete before testing PRU1
    ICSS_EMAC_testTaskPruss2: LINK IS DOWN, pluggin loopback cable for PRU2 ETH0
    ICSS_EMAC_testTaskPruss1: Waiting for PRU2 Test to complete before testing PRU1
    ICSS_EMAC_testTaskPruss2: LINK IS DOWN, pluggin loopback cable for PRU2 ETH0
    ICSS_EMAC_testTaskPruss1: Waiting for PRU2 Test to complete before testing PRU1
    ICSS_EMAC_testTaskPruss2: LINK IS DOWN, pluggin loopback cable for PRU2 ETH0
    ICSS_EMAC_testTaskPruss1: Waiting for PRU2 Test to complete before testing PRU1
    ICSS_EMAC_testTaskPruss2: LINK IS DOWN, pluggin loopback cable for PRU2 ETH0
    ICSS_EMAC_testTaskPruss1: Waiting for PRU2 Test to complete before testing PRU1
    ICSS_EMAC_testTaskPruss2: LINK IS DOWN, pluggin loopback cable for PRU2 ETH0
    ICSS_EMAC_testTaskPruss1: Waiting for PRU2 Test to complete before testing PRU1
    ICSS_EMAC_testTaskPruss2: LINK IS DOWN, pluggin loopback cable for PRU2 ETH0
    ICSS_EMAC_testTaskPruss1: Waiting for PRU2 Test to complete before testing PRU1
    ICSS_EMAC_testTaskPruss2: LINK IS DOWN, pluggin loopback cable for PRU2 ETH0
    ICSS_EMAC_testTaskPruss1: Waiting for PRU2 Test to complete before testing PRU1
    ICSS_EMAC_testTaskPruss2: LINK IS DOWN, pluggin loopback cable for PRU2 ETH0
    ICSS_EMAC_testTaskPruss1: Waiting for PRU2 Test to complete before testing PRU1
    ICSS_EMAC_testTaskPruss2: LINK IS DOWN, pluggin loopback cable for PRU2 ETH0
    ICSS_EMAC_testTaskPruss1: Waiting for PRU2 Test to complete before testing PRU1
    ICSS_EMAC_testTaskPruss2: LINK IS DOWN, pluggin loopback cable for PRU2 ETH0
    ICSS_EMAC_testTaskPruss1: Waiting for PRU2 Test to complete before testing PRU1
    ICSS_EMAC_testTaskPruss2: LINK IS DOWN, pluggin loopback cable for PRU2 ETH0
    ICSS_EMAC_testTaskPruss1: Waiting for PRU2 Test to complete before testing PRU1
    ICSS_EMAC_testTaskPruss2: LINK IS DOWN, pluggin loopback cable for PRU2 ETH0
    ICSS_EMAC_testTaskPruss1: Waiting for PRU2 Test to complete before testing PRU1
    ICSS_EMAC_testTaskPruss2: PRU2 ETH0: LINK IS UP, eth0 state: 1, link up count: 1
    ============================================================
     ICSS_EMAC_testTaskPruss2: Testing NonPromiscuous Mode
     sending Unicast packets as destination address == eth own address
    ============================================================
    ICSS_EmacRxPktInfo2: no packet found, expected Result
    ICSS_EmacTxPacket: returned error with invalid queue number, expected Result
    ICSS_EMAC_testTaskPruss1(PRU2 ETH0): received pkt: 0
    ICSS_EMAC_testTaskPruss1: Waiting for PRU2 Test to complete before testing PRU1
    ICSS_EmacTxPacket: returned error with invalid queue number, expected Result
    ICSS_EMAC_testTaskPruss1(PRU2 ETH0): received pkt: 1
    ICSS_EMAC_testTaskPruss1: Waiting for PRU2 Test to complete before testing PRU1
    ICSS_EmacTxPacket: returned error with invalid queue number, expected Result
    ICSS_EMAC_testTaskPruss1(PRU2 ETH0): received pkt: 2
    ICSS_EMAC_testTaskPruss1: Waiting for PRU2 Test to complete before testing PRU1
    ICSS_EmacTxPacket: returned error with invalid queue number, expected Result
    ICSS_EMAC_testTaskPruss1(PRU2 ETH0): received pkt: 3
    ICSS_EMAC_testTaskPruss1: Waiting for PRU2 Test to complete before testing PRU1
    ICSS_EmacTxPacket: returned error with invalid queue number, expected Result
    ICSS_EMAC_testTaskPruss1(PRU2 ETH0): received pkt: 4
    ICSS_EMAC_testTaskPruss1: Waiting for PRU2 Test to complete before testing PRU1
    ICSS_EmacTxPacket: returned error with invalid queue number, expected Result
    ICSS_EMAC_testTaskPruss1(PRU2 ETH0): received pkt: 5
    ICSS_EMAC_testTaskPruss1: Waiting for PRU2 Test to complete before testing PRU1
    ICSS_EmacTxPacket: returned error with invalid queue number, expected Result
    ICSS_EMAC_testTaskPruss1(PRU2 ETH0): received pkt: 6
    ICSS_EMAC_testTaskPruss1: Waiting for PRU2 Test to complete before testing PRU1
    ICSS_EmacTxPacket: returned error with invalid queue number, expected Result
    ICSS_EMAC_testTaskPruss1(PRU2 ETH0): received pkt: 7
    ICSS_EMAC_testTaskPruss1: Waiting for PRU2 Test to complete before testing PRU1
    ICSS_EmacTxPacket: returned error with invalid queue number, expected Result
    ICSS_EMAC_testTaskPruss1(PRU2 ETH0): received pkt: 8
    ICSS_EMAC_testTaskPruss1: Waiting for PRU2 Test to complete before testing PRU1
    ICSS_EmacTxPacket: returned error with invalid queue number, expected Result
    ICSS_EMAC_testTaskPruss1(PRU2 ETH0): received pkt: 9
    Regards
    Satheesh Kumar S

  • Hi Satheesh,

    Were you able to get the loopback adapter and successfully run the example? Can we close the thread?

    Regards,
    Garrett

  • Hi Garrett

    No.

    same  error is coming.

    can I run the example given in the diag directory(which is the non RTOS better to understand)

    C:\ti\pdk_am57xx_1_0_13\packages\ti\board\diag\icss_emac

    regards

    Satheesh Kumar S

  • Satheesh,

    Which error were you referring to?

    >>ICSS_EmacTxPacket: returned error with invalid queue number, expected Result

    This is the test case with invalid queue number and the printouts are 'expected Result'.

    Regards,

    Garrett

  • Hi Garrett

    Thank you for your great support

    you mean PRU2 ETH0 working correctly. what about PRU2 ETH1. I think both PRU in loopbacked mode.

    can I run the example given in the diag directory(which is the non RTOS)

    C:\ti\pdk_am57xx_1_0_13\packages\ti\board\diag\icss_emac

    Regards

    Satheesh KumarS

  • Satheesh,

    Yes, you can try the diag code to check if it passes.

    If you have loopback adapter connected well, both ETH0 and ETH1 should pass the loopback test without issue.

    Regards,
    Garrett

  • Hi Garrett

    Thank you for your support

    I was able to run the example code given by TI as such.

    It appears that the issue raised by me was related to installation,

    as of now the code is working fine. So the issue is close from my side.

    Regards

    Satheesh Kumar S

  • Satheesh,

    Thanks for your update. I am closing the thread...

    Regards,

    Garrett