Part Number: TMDS64EVM
Other Parts Discussed in Thread: AM6422
Tool/software:
Hello TI support team.
I'm using mcu_plus_sdk_am64x_09_01_00_41 with AM6422.
I'm starting CR5 and CA53 from SBL OSPI,
However, I would like to run Flash_reset before CA53 boots (CA53 is booted by Bootloader_runCpu).
Is this possible?
The reason is that when CA53 starts, the flash is initialized,
so I want to do Flash_reset on the SBL side before starting up and finishing it.
The specific SBL OSPI (main.c) code is as follows.Is this procedure correct?
/* Run CPUs */
/* Do not run M4 when MCU domain is reset isolated */
if (!Bootloader_socIsMCUResetIsoEnabled())
{
if(status == SystemP_SUCCESS && (TRUE == Bootloader_isCorePresent(bootHandle, CSL_CORE_ID_M4FSS0_0)))
{
status = Bootloader_runCpu(bootHandle, &bootImageInfo.cpuInfo[CSL_CORE_ID_M4FSS0_0]);
}
}
if(status == SystemP_SUCCESS && (TRUE == Bootloader_isCorePresent(bootHandle, CSL_CORE_ID_R5FSS1_0)))
{
status = Bootloader_runCpu(bootHandle, &bootImageInfo.cpuInfo[CSL_CORE_ID_R5FSS1_0]);
}
if(status == SystemP_SUCCESS && (TRUE == Bootloader_isCorePresent(bootHandle, CSL_CORE_ID_R5FSS1_1)))
{
status = Bootloader_runCpu(bootHandle, &bootImageInfo.cpuInfo[CSL_CORE_ID_R5FSS1_1]);
}
#if 1 // after
/* Load the image on self core now */
if( bootImageInfo.cpuInfo[CSL_CORE_ID_R5FSS0_0].rprcOffset != BOOTLOADER_INVALID_ID)
{
status = Bootloader_rprcImageLoad(bootHandle, &bootImageInfo.cpuInfo[CSL_CORE_ID_R5FSS0_0]);
}
Flash_reset(gFlashHandle[CONFIG_FLASH0]);
DebugP_log("Flash reset done\r\n\r\n");
#endif // after
if(status == SystemP_SUCCESS && (TRUE == Bootloader_isCorePresent(bootHandle, CSL_CORE_ID_A53SS0_0)))
{
status = Bootloader_runCpu(bootHandle, &bootImageInfo.cpuInfo[CSL_CORE_ID_A53SS0_0]);
}
if(status == SystemP_SUCCESS && (TRUE == Bootloader_isCorePresent(bootHandle, CSL_CORE_ID_A53SS0_1)))
{
status = Bootloader_runCpu(bootHandle, &bootImageInfo.cpuInfo[CSL_CORE_ID_A53SS0_1]);
}
if(status == SystemP_SUCCESS)
{
#if 0 // before
/* Load the image on self core now */
if( bootImageInfo.cpuInfo[CSL_CORE_ID_R5FSS0_0].rprcOffset != BOOTLOADER_INVALID_ID)
{
status = Bootloader_rprcImageLoad(bootHandle, &bootImageInfo.cpuInfo[CSL_CORE_ID_R5FSS0_0]);
}
Flash_reset(gFlashHandle[CONFIG_FLASH0]);
DebugP_log("Flash reset done\r\n\r\n");
#endif // before
status = Bootloader_runSelfCpu(bootHandle, &bootImageInfo);
}
/* it should not return here, if it does, then there was some error */
Bootloader_close(bootHandle);
}
}
Best regards,
Kiyomasa Imaizumi.

