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.

MCU-PLUS-SDK-AM243X: Problems when using PRU_ICSSG0 and PRU_ICSSG1 at the same time.

Part Number: MCU-PLUS-SDK-AM243X
Other Parts Discussed in Thread: SYSCONFIG

Tool/software:

Hello.

I am developing using ind_comms_sdk_am243x_09_00_00_03.

Our board consists of the following PHYs.

  • PRU_ICSSG0 <-> MII
  • PRU_ICSSG1 <-> RGMII

I would like to run PRP/HSR on PRU_ICSSG0 and PRU_ICSSG1 at the same time.

So I added two instances (ICSSG0/ICSSG1) of HSR-PRP in sysconfig.
Then I implemented the application as hsr_prp_main() included in SDK examples.
On this assumption, please tell me if the following points are not problematic.


Download firmware

ind_comms_sdk_am243x_09_00_00_03/source/industrial_comms/hsr_prp/icss_fwhal/hsrPrp_red_config.c


It seems that the preprocessor determines which firmware to download depending on whether MII or RGMII is used.
Should I download different firmware if I use MII for PRU_ICSSG0 and RGMII for PRU_ICSSG1?

Task stack area

ind_comms_sdk_am243x_09_00_00_03/source/industrial_comms/hsr_prp/icss_fwhal/hsrPrp_red.c

the application calls RedProtocolStart() on PRU_ICSSG0 and PRU_ICSSG1, following hsr_prp_main().
(the parameters hsrPrpHandle* and PRUICSS_Handle prepare an instance for each execution.)

However, the tasks created in RedLifeCheckTaskCreate() uses the same stack area and it causes
kernel level error. Is it possible to run RedProtocolStart() multiple times?

Best Regards,

mshino.

  • Hi,

    Should I download different firmware if I use MII for PRU_ICSSG0 and RGMII for PRU_ICSSG1?

    This is correct. SDK has separate firmware headers for MII and RGMII mode

    However, the tasks created in RedLifeCheckTaskCreate() uses the same stack area and it causes
    kernel level error. Is it possible to run RedProtocolStart() multiple times?

    Yes. Need to create two tasks for each instances

    Regards,
    Prajith

  • Hi,

    Thanks for the reply.

    • This is correct. SDK has separate firmware headers for MII and RGMII mode
    • Yes. Need to create two tasks for each instances

    If I handle these in software, can I use PRU_ICSSG0 and PRU_ICSSG1 at the same time?

    Please let me know if there are any other issues.

    Best Regards,

    mshino.

  • Hi,

    If I handle these in software, can I use PRU_ICSSG0 and PRU_ICSSG1 at the same time?

    Yes. The drivers are designed keeping in mind this use case. Just that we dont have a out of box example to demonstrate this

    Regards,
    Prajith