TMDS64EVM: PRU ICSSG issue with lwip on evalboard

Part Number: TMDS64EVM

Tool/software:

Hi,
I am currently trying to establish an ethernet connection to the evaluationboard on the icssg ports, using the lwip stack (sdk 9). It seems that my pruicssDriver does not load the correct firmware. When I try to load my program, I am not able to ping, even though there are no error messages.

When I load an example, from the sdk, which I implemented earlier (it worked in tandem with linux):

"ethernet_adapter_generic_device_mii_tunneling_demo_am64x-evm_r5fss0-0_freertos_ti-arm-clang"

and I let it run exactly to the point where it did initialize the pruicss and afterwards i stop it and load my program, i am able to establish an IP connection.

Do you have any idea, how to fix the pruicssdriver?

BR

Dominik

  • Additional information: Using lwip stack, we have a working setup for the am243x on the evalboard, but somehow it is not compatible with the am64x evalboard. I am wondering, which adaption is needed to portate the code to the am64x. Or what are the differences.

  • Hi Dominik

    Thanks for reaching out. Can you help understand the setup better by answering the following questions:
     
    1. What's the full version of the "SDK 9" being used? Is it Industrial Comms SDK 09.02.00.15?


    2. and I let it run exactly to the point where it did initialize the pruicss and afterwards i stop it and load my program

      Which program are you referring to here?

    3. If you're using the "ethernet_adapter_generic_device_mii_tunneling_demo_am64x-evm_r5fss0-0_freertos_ti-arm-clang" example, it expects the Linux setup to be up by the time its loaded - is this done on your side? Or are you loading the application directly onto the R5_0_0 core?

    4. What example are you using for the working setup with AM243x?

    5. Are you using a custom board or is it TI's AM64x/AM243x EVM?

    Regards
    Archit

  • Hi,

    1. Industrial SDK 09.02.00.15

    2. A program where we already implemented the shared ethernet with the TI Linux. It worked. We can ping R0 and A53 cores.

    Now we want to initialize Ethernet, to have a connection to an external network via icssg.

    3. The demo worked fine with the TI Linux. No issues here. We did adapt our program also (see 2.) and that worked fine.

    4. A program where we did initialize multiple peripherals including ethernet for am243x eval board.

    On am64x: Display, LEDs etc. work fine. Ethernet via ICSSG using ICSS EMAC Driver does not work in the same way as on am243x.

    5. am243x eval board and am64x eval board. So no custom board is used.

    So we did already establish shared ethernet, but we are not able to initialize the Ethernet to the external network from our RTOS.

    Strange behavoir:

    The Ethernet is initialized correct when we load the example "ethernet_adapter_generic_device_mii_tunneling_demo_am64x-evm_r5fss0-0_freertos_ti-arm-clang" and then load our program where we did establish shared ethernet and want to establish ethernet. Then I can ping from outside.

    The example program has to run exactly where the pruicss init is executed.

    BR

    Dominik

  • Hi Dominik,

    Thanks for the response.

    Just want to get some more information about the software you are having issues with. 

    Is this something that was derived from the "ethernet_adapter_generic_device_mii_tunneling_demo_am64x-evm_r5fss0-0_freertos_ti-arm-clang" example, which includes a bridge between R5F core and Linux? 
    As I understand, you are using an example similar to the EIP tunneling demo and instead of using the whole EIP stack, you use only the dedicated LWIP stack. Is my understanding correct?  

    Regards,
    Bharath

  • Hi Bharath,

    thanks for your response.

    Our code is not derived from "ethernet_adapter_generic_device_mii_tunneling_demo_am64x-evm_r5fss0-0_freertos_ti-arm-clang". Nevertheless it does implement the same behavior. Shared ethernet between A and R core works fine.

    Now we want to implement the ethernet connection via icssg to an external network on the am64x evalboard.

    We already have a working code for am243x evalboard for ethernet via icssg. We flashed it to the am64x to see if it is compatible. Everything works fine but ethernet. We are not able to ping. If it would have worked we could have copied the code from the am243x evalboard template. But are there any changes on board / stack / chip we have to consider?

    We also tried to implement ethernet directly in our project, where we also share ethernet between a and r cores. And there was this strange behavior I described earlier. We have no explanation for that.

    BR

    Dominik

  • Hi Dominik, 

    A program where we did initialize multiple peripherals including ethernet for am243x eval board.

    On am64x: Display, LEDs etc. work fine. Ethernet via ICSSG using ICSS EMAC Driver does not work in the same way as on am243x.

    1. Which PRU firmware are you using for your this program?

    2. Also can you provide some more info on what components of the ind comms sdk you are using vs what custom implementations you have in this example ? 

    3. In your end application, do you require tunneling between A53 and R5 cores? If yes, are you using the lwip bridge to establish this ?

    Regards,
    Bharath