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.