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.

TDA4VM: Boot mcu2_1 only from SBL

Part Number: TDA4VM

Hi, Experts,

My customer reports a issue in booting mcu2_1 from SBL. I try with below steps and fail too. 

      1. build can_profile_app_tirtos_mcu2_1_release

      2. boot through launch.js script with sciserver_testapp loaded on mcu1_0, then load can_profile_app_tirtos_mcu2_1_release.xer5f to mcu2_1 in CCS

      3. run mcu1_0 and mcu2_1, log is printed on MCU_UART and MAIN_UART, indicating both mcu1_0 and mcu2_1 work well

      4. use MulticoreImageGen to generate combined image of mcu1_0 and mcu2_1 as below

             ./MulticoreImageGen LE 55 app 4 sciserver_testapp_tirtos_mcu1_0_release.rprc 7 can_profile_app_tirtos_mcu2_1_release.rprc

      5. copy SBL TIFS and above app to SD card and boot from this SD card

      6. log from MCU UART displays SBL and TIFS information, but no more log about sciserver_testapp. And there is no log from MAIN UART

      7. at this time, try to connect to mcu1_0 or mcu2_1, but fail as shown below

Please help to check the steps and analyze the possible reasons. Thanks.

  • Fan,

    Unlocking this thread. We will get back to you on this by the end of next week.

    Please advise if this issue is still open.

    Regards

    Karthik

  • Karthik,

    It is still open, please help to look into it. Thanks.

  • Hi Fan Zhang,

    You dont require to use BootApp to load application on mcu2_1. You could just build SBL and convert mcu2_1 in appimage format, and then copy SBL, TIFS and appimage of the application to the SD card. This should be sufficient to boot the application on mcu2_1 using SBL. 

    Regards,

    Brijesh

  • Hi, Brijesh,

    Yes, I have tried with can_profile_app_tirtos_mcu2_1_release.appimage, it can be booted normally. But, if using can_profile_app_tirtos_mcu2_1_release.rprc to generate app by MulticoreImageGen, it can NOT be booted normally.

    Meanwhile, while booting with can_profile_app_tirtos_mcu2_1_release.appimage, I got below log from MCU UART. It seems code for 3 cores were included in can_profile_app_tirtos_mcu2_1_release.appimage. Please help to clarify. Thanks.

    Fullscreen
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    SBL Revision: 01.00.10.01 (Oct 18 2021 - 10:02:37)
    TIFS ver: 21.5.0--v2021.05 (Terrific Llam
    enter SBL_MulticoreImageParse()
    Read Meta Header Start and get the Number of Input RPRC Files
    Read all the Core offset addresses
    mHdrStr.num_files = 3
    i = 0
    mHdrStr.num_files = 3
    i = 1
    mHdrStr.num_files = 3
    i = 2
    Add Base Offset address for All core Image start offset
    Read Meta Header End
    Now Parse Individual RPRC files
    mHdrStr.num_files = 3
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

  • hi,

    Did you solve the problem ? I meet a same situation like you 

  • Hi Fan Zhang,

    Could you please share the steps to generate rprc file and then appimage? 

    I think can profile application does generate appimage that can be copied to SD card to boot it using SBL. Do you see any issue in generating the appimage?

    Is above log coming from SBL? SBL will just parse one can profile image for same mcu1_0 core.. Have you included other image in "app" ?

    Regards,

    Brijesh

  • Hi, Brijesh,

    can_profile_app_tirtos_mcu2_1_release.rprc and can_profile_app_tirtos_mcu2_1_release.appimage were generated at the same time when I build can_profile_app on mcu2_1.

    What my customer requested was only load image to mcu2_1 without loading image to mcu2_0. 

    The result of my experiments seems it is impossible. And there is description in TRM says "The only restriction is that CPU0 must be in a higher power/reset state than CPU1. For instance, CPU1 cannot be out of reset if CPU0 is not." and "When operating in split mode, CPU0 must be in a higher power/reset state than CPU1." 

    So please help to confirm whether my customer's target use case is possible. And please help to descript in more details on how to understand "CPU0 must be in a higher power/reset state than CPU1".

    Below are result of my experiments and my speculation. Please help to share your comments. Thanks.

          1. copy can_profile_app_tirtos_mcu2_1_release.appimage(with SBL and TIFS) to SD card, mcu2_1 can be booted normally. But log from MCU UART shows 3 cores are booted, there are mcu1_0(coreid=4), mcu2_0(coreid=6) and mcu2_1(coreid=7). appimage format boots both mcu2_0 and mcu2_1, it is not "load image to mcu2_1 without loading image to mcu2_0"

          2. use sciserver_testapp_tirtos_mcu1_0_release.rprc and can_profile_app_tirtos_mcu2_1_release.rprc to generate multi core image, the command used is "./MulticoreImageGen LE 55 app 4 sciserver_testapp_tirtos_mcu1_0_release.rprc 7 can_profile_app_tirtos_mcu2_1_release.rprc", then copy the generated multi core image(with SBL and TIFS) to SD card, mcu2_1 can not be booted normally

  • Hi Fan Zhang,

    Yes, that's correct understanding. CPU1 cannot be out of reset if CPI0 is not.. 

    I have a similar discussion on below thread.

    https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1057482/tda4vm-how-to-load-the-app-of-mcu1_1-mcu2_0-mcu2-1-etc-from-sd-card

    Regards,

    Brijesh