器件型号: AM6442
是否有办法优化 AM64 和 AM243 器件的身份验证时间、因为该时间当前过大并会影响总体启动时间?
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.
器件型号: AM6442
是否有办法优化 AM64 和 AM243 器件的身份验证时间、因为该时间当前过大并会影响总体启动时间?
高身份验证时间是由使用身份验证类型 1 引起的、与身份验证类型 2 相比、此时间较慢。 切换到身份验证类型 2 将显著减少 SBL 引导时间。
身份验证类型 2 的要求:
使用身份验证类型 2 时、SYSFW 会使用一些内存临时加载应用映像以进行身份验证(通常由 gAppimage 缓冲区表示)。 在 SDK 示例中、DDR 用于此目的。 如果您的定制设备没有 DDR(如 am243-LP 设备)或任何可适应应用映像的额外存储器、则由于存储器限制、可能无法使用身份验证类型 2。 但是、如果您的应用足够小、能够适应 MSRAM、那么也可以对这些器件使用身份验证类型 2。
要切换到身份验证类型 2、必须执行以下步骤:
若要对任何 appimage 使用身份验证类型 2、您必须修改该示例的 makefile 中的签名命令、并将--authtype 参数从 1 更改为 2、为了便于参考、您可以检查以下补丁中的 hello_world 示例:
diff --git a/examples/hello_world/am64x-evm/r5fss0-0_nortos/ti-arm-clang/makefile b/examples/hello_world/am64x-evm/r5fss0-0_nortos/ti-arm-clang/makefile
index 2f8ad35e..977f7eaa 100644
--- a/examples/hello_world/am64x-evm/r5fss0-0_nortos/ti-arm-clang/makefile
+++ b/examples/hello_world/am64x-evm/r5fss0-0_nortos/ti-arm-clang/makefile
@@ -312,10 +312,10 @@ ifeq ($(DEVICE_TYPE), HS)
# Sign the appimage using appimage signing script
ifeq ($(ENC_ENABLED),no)
@echo Boot image signing: Encryption is disabled.
- $(PYTHON) $(APP_IMAGE_SIGN_CMD) --bin $(BOOTIMAGE_NAME) --authtype 1 --key $(APP_SIGNING_KEY) --output $(BOOTIMAGE_NAME_HS)
+ $(PYTHON) $(APP_IMAGE_SIGN_CMD) --bin $(BOOTIMAGE_NAME) --authtype 2 --key $(APP_SIGNING_KEY) --output $(BOOTIMAGE_NAME_HS)
else
@echo Boot image signing: Encryption is enabled.
- $(PYTHON) $(APP_IMAGE_SIGN_CMD) --bin $(BOOTIMAGE_NAME) --authtype 1 --key $(APP_SIGNING_KEY) --enc y --enckey $(APP_ENCRYPTION_KEY) --output $(BOOTIMAGE_NAME_HS)
+ $(PYTHON) $(APP_IMAGE_SIGN_CMD) --bin $(BOOTIMAGE_NAME) --authtype 2 --key $(APP_SIGNING_KEY) --enc y --enckey $(APP_ENCRYPTION_KEY) --output $(BOOTIMAGE_NAME_HS)
$(RM) $(BOOTIMAGE_NAME)-enc
endif
$(RM) $(BOOTIMAGE_NAME)
@@ -323,7 +323,7 @@ endif
@echo .
else
# Sign the appimage for HS-FS using appimage signing script
- $(PYTHON) $(APP_IMAGE_SIGN_CMD) --bin $(BOOTIMAGE_NAME) --authtype 1 --key $(APP_SIGNING_KEY) --output $(BOOTIMAGE_NAME_HS_FS)
+ $(PYTHON) $(APP_IMAGE_SIGN_CMD) --bin $(BOOTIMAGE_NAME) --authtype 2 --key $(APP_SIGNING_KEY) --output $(BOOTIMAGE_NAME_HS_FS)
$(RM) $(BOOTIMAGE_NAME)
@echo Boot image: am64x:r5fss0-0:nortos:ti-arm-clang $(BOOTIMAGE_PATH)/$(BOOTIMAGE_NAME_HS_FS) Done !!!
@echo .
您必须对您的应用程序进行类似的更改。
更改身份验证类型后、使用新的身份验证类型设置重建您的 appimage。
diff --git a/source/drivers/bootloader/bootloader.c b/source/drivers/bootloader/bootloader.c
index 8f222f42..b4217760 100644
--- a/source/drivers/bootloader/bootloader.c
+++ b/source/drivers/bootloader/bootloader.c
@@ -727,7 +727,7 @@ int32_t Bootloader_verifyMulticoreImage(Bootloader_Handle handle)
#ifdef BOOTLOADER_SCRATCH_MEM_SUPPORT
if(config->enableScratchMem == BOOTLOADER_SCRATCH_MEM_ENABLE){
/* At this point the image is in RAM, change bootmedia from OSPI to memory */
- gMemBootloaderArgs.appImageBaseAddr = (uint32_t)(config->scratchMemPtr) + certLen;
+ gMemBootloaderArgs.appImageBaseAddr = (uint32_t)(config->scratchMemPtr); //For authtype 2, SYSFW removes certificate and wri
te only the image back to scratchMemPtr
gMemBootloaderArgs.curOffset = 0U;
config->fxns = &gBootloaderMemFxns;
应用 bootloader.c 补丁后、必须重新编译库和 SBL。
请参阅以下链接来重新构建库: https://software-dl.ti.com/mcu-plus-sdk/esd/AM64X/11_02_00_24/exports/docs/api_guide_am64x/MAKEFILE_BUILD_PAGE.html#autotoc_md614
多核应用映像的大小:228KB (ipc_rpmsg_echo_linux)
Linux 应用程序映像的大小:988kB
Auth 类型 1 的默认引导时间:
DMSC Firmware Version 11.0.7--v11.00.07 (Fancy Rat) DMSC Firmware revision 0xb DMSC ABI revision 4.0 KPI_DATA: [BOOTLOADER_PROFILE] Boot Media : undefined KPI_DATA: [BOOTLOADER_PROFILE] Boot Image Size : 0 KB KPI_DATA: [BOOTLOADER_PROFILE] Cores present : KPI_DATA: [BOOTLOADER PROFILE] System_init : 25676us KPI_DATA: [BOOTLOADER PROFILE] Drivers_open : 1636us KPI_DATA: [BOOTLOADER PROFILE] Board_driversOpen : 115879us KPI_DATA: [BOOTLOADER PROFILE] App_loadLinuxImages : 238094us KPI_DATA: [BOOTLOADER PROFILE] App_loadImages : 75741us KPI_DATA: [BOOTLOADER_PROFILE] SBL Total Time Taken : 457028us
具有 Auth 类型 2 的引导时间:
DMSC Firmware Version 11.0.7--v11.00.07 (Fancy Rat) DMSC Firmware revision 0xb DMSC ABI revision 4.0 KPI_DATA: [BOOTLOADER_PROFILE] Boot Media : undefined KPI_DATA: [BOOTLOADER_PROFILE] Boot Image Size : 0 KB KPI_DATA: [BOOTLOADER_PROFILE] Cores present : KPI_DATA: [BOOTLOADER PROFILE] System_init : 25670us KPI_DATA: [BOOTLOADER PROFILE] Drivers_open : 1636us KPI_DATA: [BOOTLOADER PROFILE] Board_driversOpen : 115680us KPI_DATA: [BOOTLOADER PROFILE] App_loadLinuxImages : 44313us KPI_DATA: [BOOTLOADER PROFILE] App_loadImages : 31293us KPI_DATA: [BOOTLOADER_PROFILE] SBL Total Time Taken : 218594us