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.

AM2432: How to update the application files of a specific core separately.

Part Number: AM2432

Tool/software:

Hi experts,

In my project, it is necessary to update the application files of a specific core (R5_0_0, R5_1_0, and M4_0_0) independently without influencing the normal operation of the application files of other cores. If I generate an appimage file based on the existing system engineering, it seemingly meets my requirements; however, this approach brings considerable inconvenience for maintenance work (as different individuals are responsible for different core projects).

Question: In the sbl_sd_am243x startup mode, how to update the application files of the corresponding cores by loading R5_0_0.bin, R5_1_0.bin, and M4_0_0.bin files?

Development environment: Code Composer Studio (12.7), AM243X_SDK (mcu_plus_sdk_am243x_08_06_00_45), AM243X_SDK (mcu_plus_sdk_am243x_10_00_00_20).

I wonder if my expression is clear. If there are any doubts, you are welcome to communicate with me at any time.

I sincerely hope to obtain technical support from experts. Thank you very much.

Regards,

Weijian.

  • Hi Weijian,

    Thanks for your query.

    I am not sure whether I understand your query correctly or not.

    You are trying to create a system project but with different files for each core. Is my understanding correct?

    If yes, please refer faq-processor-sdk-am64x-create-multicore-appimage-using-system-project  for details.

    Regards,

    Tushar

  • Hi Tushar,

    This understanding isn't right. I can already generate a multicore application file through a system project  and boot R5_0_0, R5_1_0 and M4_0_0 with this application file. But this method uses one application file to start AM2432. Now I want to boot a single CPU with a single file. For example, boot R5_0_0 only with the R5_0_0.appimage file. I'll explain my actual needs in detail through the following three pictures:

    You are trying to create a system project but with different files for each core. Is my understanding correct?

    (1) Figure 1 gives a brief introduction to the system project provided by TI.

    In Figure 1, a system project can combine the “R5_0_0.appimage”, “R5_1_0.appimage” and “M4_0_0.appimage” application files into a "system.appimage" file. So we can use the “system.appimage” file to boot AM2432 normally. For example, in the SD card boot mode, put the contents of the “sbl_sd_am243x.tiimage” and “system.appimage” files into the "tiboot3.bin" and "app" files on the SD card respectively. After reconnecting the power, R5_0_0, R5_1_0 and M4_0_0 in AM2432 can boot normally.

    (2) Figure 2 shows my actual needs.

    In Figure 2, I want to boot R5_0_0, R5_1_0 and M4_0_0 in AM2432 without using the system project by loading the “R5_0_0.appimage”, “R5_1_0.appimage” and “M4_0_0.appimage” application files. For example, in the SD card boot mode, put the content of the “sbl_sd_am243x.tiimage” file into the "tiboot3.bin" file on the SD card. Then access the "R5_0_0.appimage", "R5_1_0.appimage" and "M4_0_0.appimage" files on the SD card to boot the corresponding CPUs. To achieve this need, could you provide some technical guidance?

    (3) To achieve the need in Figure 2, it might be necessary to modify the sbl_sd_am243x program code.

    Because the sbl_sd_am243x_evm project can only access the app file on the SD card separately, and can't access three files. I don't know if my research idea is correct. If there's something wrong, I hope you can point it out. Thank you very much.

    Regards,

    Weijian.

  • Hi Weijian,

    I can see that the above 1 & 2 are doing the exactly same thing here. The system.appimage (multicore appimage) will contain the metadata about the binaries for each core. The SBL example will parse this information and load the binaries separately on each core as shown in image 2 of above reply.

    What is the reason for sending the images separately, but not as system image?

    Can you please tell in detail what is the requirement here?

    Regards,

    Tushar

  • Hi Tushar,

    I'm glad to receive your reply.

    What is the reason for sending the images separately, but not as system image?

    (1) Our team is responsible for the development and maintenance of R5_0_0, R5_1_0, and M4_0_0 (each engineer may only have a single-kernel project in their hands), so the single-kernel boot method is convenient for management and maintenance.


    (2) After the development is complete, if I need to modify the code of M4_0_0, I only need to update the M4_0_0.appimage file.

    Regards,

    Weijian.

  • Hi Weijian,

    Thanks for sharing the details.

    I have two suggestion for the above use case.

    There is a sbl_ospi_multi-partition bootloader which is use to flash individual appimages at different offset and boot from the same.

    Please refer SBL_OSPI_MULTI_PARTITION for more details.

    The other option is create a multicore appimage with the existing *rprc files for each core.

    Please refer Multicore-appimage-gen to generate multicore appimages.

    You will need RPRC files for R5F00, R5F01, and M4F00 core.

    Please refer below image.

    Regards,

    Tushar

  • Hi Tushar,

    I have successfully achieved the requirements of my project by modifying the code in the example-sbl_sd.
    Thank you very much for your technical guidance.

    Regards,

    Weijian.