主题:AM6422中讨论的其他器件
工具/软件:
您好、TI 支持团队。
我将 MCU_PLUS_SDK_am64x_09_01_00_41与 AM6422一起使用。
我将从 SBL OSPI 开始 CR5和 CA53、
但是、我想在 CA53引导之前运行 Flash_reset (CA53由 Bootloader_runCpu 引导)。
这是可能的吗?
原因是当 CA53启动时、闪存被初始化、
因此、我想在启动和结束之前在 SBL 侧执行 Flash_reset。
特定的 SBL OSPI (main.c)代码如下。该过程是否正确?
/* 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);
}
}
此致、
今泉清正。

