SK-AM62-LP: SDL MCU BIST and ECC (Not AM62A)

Expert 2350 points
Part Number: SK-AM62-LP

Tool/software:

When  I integrated ecc_app_am62x-sk_r5fss0-0_freertos_ti-arm-clang to ipc_rpmsg_echo_linux_am62x-sk_r5fss0-0_freertos_ti-arm-clang.

I found that after performing MCU BIST, the ecc_main(Null) will be stuck at 

ECC Example Application
ECC_Example_init: Init MAIN ESM complete

void main_thread(void *args)
{
    int32_t status = SystemP_SUCCESS;

    /* Open drivers */
    Drivers_open();
    /* Open flash and board drivers */
    status = Board_driversOpen();
    DebugP_assert(status==SystemP_SUCCESS);

    /* wait for PBIST completion */
    status = App_waitForMcuPbist();
    DebugP_log("McuPbist = %d\n\r",status);

    /* start MCU LBIST*/
    status = App_startMcuLbist();

    /* wait for LBIST completion */
    status = App_waitForMcuLbist();
    DebugP_log("Lbist = %d\n\r",status);

    /* Init LPM specific data */
    Sciclient_initDeviceManagerLPMData(&gDMLPMData);

    sciServer_init();

    ecc_main(NULL);

    ipc_rpmsg_echo_main(NULL);

    /* Close board and flash drivers */
    Board_driversClose();

    vTaskDelete(NULL);
}

If I do not execute MCU LBIST, it will work as normally.

The stuck function is below.

result = SDL_ESM_init(SDL_ESM_INST_WKUP_ESM0, &ECC_Test_esmInitConfig_WKUP, SDL_ESM_applicationCallbackFunction, ptr);

  • Hello, 

    Since the BIST test is destructive in nature, it might be causing some issues in the MCU/Wkup ESM functionality. Since, you are executing BIST from R5F application, you may have reset the MCU core as done in SBL and then try initialising the ESM again.

    Regards,

    Nihar Potturu

  • Dear Nihar.

    thanks for the feedback. Will ask Zheng to check.

    two more questions.

    1. customer use SPL boot mode. Now they migrate SDL code to ipc_rpmsg_echo_linux image which runs on DM R5. is it good? may I ask your suggestion?

    2. except MCU BIST, which one also need reset?

    3. assuming it is a rule that BIST need reset, is there any other rules to do migrate SDL code?

    thanks a lot!

    yong

  • I checked example of sbl_ospi_nand_stage1_am62x-sk-lp_r5fss0-0_nortos_ti-arm-clang.

    I did not find where reset the MCU core and re-initialize the ESM

  • Hello,

    I did not find where reset the MCU core and re-initialize the ESM

    We don't re-initialize the ESM. Inside the Bootloader_loadCpu API, we perform a reset of each of the cores before loading their respective appimages. That must be helping in getting the cores in a clean state before starting the actual application. 

    Regards,

    Nihar Potturu

  • Hello,

    Since BIST tests are destructive in nature, we do not recommend running them at runtime. It is better to run them at startup, during the bootloader phase, before the cores are powered up and applications are loaded.

    We run them in stage-1 of the bootloader in the SBL boot flow. In the SPL boot flow, they would need to be implemented in the R5F-SPL. However, we currently do not have an example demonstrating this.

    Therefore, we recommend switching to the SBL boot flow instead of the SPL boot flow, as it would be easier to implement the BIST tests in this case. The SBL boot flow should also be fairly straightforward to implement since we already provide existing examples in the MCU+SDK.

    Regards,
    Nihar Potturu