工具/软件:
您好的团队、
在尝试从加密映像启动时、我遇到了一些问题。
Linux SDK 中需要从何处调整以加密以实现安全启动?
感谢您的支持。
此致、Kong XiangXu
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.
工具/软件:
您好的团队、
在尝试从加密映像启动时、我遇到了一些问题。
Linux SDK 中需要从何处调整以加密以实现安全启动?
感谢您的支持。
此致、Kong XiangXu
您好、
mcu_plus_sdk_am62px_10_00_00_14/examples/drivers/boot/sbl_SD_linux/am62px-sk/wkup-R5fss0-0_nortos/ti-arm-clang/sbl_sd_linux.debug.hs.tiimage -> tiboot3.bin
/home/a/ti/mcu_plus_sdk_am62px_10_00_00_14/examples/hello_world/am62px-sk/wkup-r5fss0-0_freertos/ti-arm-clang/hello_world.debug.appimage.hs ->wkup_r5_image
/a/ti/mcu_plus_sdk_am62px_10_00_00_14/examples/hello_world/am62px-sk/mcu-r5fss0-0_freertos/ti-arm-clang/hello_world.debug.appimage.hs ->MCU_R5_image
ti/mcu_plus_sdk_am62px_10_00_00_14/tools/boot/linuxAppimageGen/board/am62px-sk/linux.appimage.hs ->linux_a53_image
有我怎么做的。 这种行为合适吗?
我是否需要刷写所有映像才能在 hs 器件上启动?
此致、
XiangXu
我是怎么做的。 这种行为合适吗? [/报价]我认为是的。 引导应该成功。
Drivers_open() SYSFW Firmware Version 10.0.8--v10.00.08 (Fiery Fox) SYSFW Firmware revision 0xa SYSFW ABI revision 4.0 Sciclient_getVersionCheck(1) Bootloader_Handle bootHandleLinux Bootloader_Params_init Bootloader_BootImageInfo_init(&bootImageInfoLinux); noOfFiles < BOOTLOADER_SD_MAX_NO_OF_FILES pp_OpenloadableImage(pFiles[noOfFiles]) == SystemP_SUCCESS bootHandle = Bootloader_open(CONFIG_BOOTLOADER_APP, &bootParams); bootHandle != NULL 10:54 in Bootloader_getMulticoreImageSize --- Bootloader Configuration --- bootMedia: 0xB0070001 bootImageSize: 0 bytes coresPresentMap: 0x00000000 enableDma: false scratchMemPtr: 00000000 socCoreOpMode: 43C273D4 fxns: 43C26E64 args: 43C27304 Core Presence Map Interpretation: --- Bootloader Configuration --- bootMedia: 0xB0070001 bootImageSize: 0 bytes coresPresentMap: 0x00000000 enableDma: false scratchMemPtr: 00000000 socCoreOpMode: 43C273D4 fxns: 43C26E64 args: 43C27304 Core Presence Map Interpretation: Multicore image size: 0 bytes Image loading status: -1 status = App_loadImages(bootHandle, &bootImageInfo); Error: Failed to load images (0xFFFFFFFF) if(App_OpenloadableImage(BOOTLOADER_SD_A53_APPIMAGE_FILENAME) == SystemP_SUCCESS) [BOOTLOADER_PROFILE] Boot Media : SD Card [BOOTLOADER_PROFILE] Boot Image Size : 0 KB [BOOTLOADER_PROFILE] Cores present : [BOOTLOADER PROFILE] System_init : 29532us [BOOTLOADER PROFILE] Drivers_open : 2911us [BOOTLOADER PROFILE] Board_driversOpen : 1465us [BOOTLOADER PROFILE] Sciclient Get Version : 10167us [BOOTLOADER_PROFILE] SBL Total Time Taken : 44076us Image loading done, switching to application ... Starting linux and RTOS/Baremetal applications Some tests have failed!!
以下是我的 tiboot3.bin 中的日志(我添加了一些日志)。
您能告诉我们可能出了什么问题吗?
您能说出出了什么问题吗?
日志中没有任何内容可以提供任何见解。
您能否检查"App_loadImages"函数内执行到底失败的位置?
谢谢!
您能否检查在作为 Bootloader_parseMultiCoreAppImage 一部分执行的函数"Bootloader_socAuthImage"中执行是否失败 :
Drivers_open() SYSFW Firmware Version 10.0.8--v10.00.08 (Fiery Fox) SYSFW Firmware revision 0xa SYSFW ABI revision 4.0 Sciclient_getVersionCheck(1) Bootloader_Handle bootHandleLinux Bootloader_Params_init Bootloader_BootImageInfo_init(&bootImageInfoLinux); noOfFiles < BOOTLOADER_SD_MAX_NO_OF_FILES pp_OpenloadableImage(pFiles[noOfFiles]) == SystemP_SUCCESS bootHandle = Bootloader_open(CONFIG_BOOTLOADER_APP, &bootParams); bootHandle != NULL in Bootloader_getMulticoreImageSize --- Bootloader Configuration --- bootMedia: 0xB0070001 bootImageSize: 0 bytes coresPresentMap: 0x00000000 enableDma: false scratchMemPtr: 00000000 socCoreOpMode: 43C274D4 fxns: 43C26F64 args: 43C27404 Core Presence Map Interpretation: --- Bootloader Configuration --- bootMedia: 0xB0070001 bootImageSize: 0 bytes coresPresentMap: 0x00000000 enableDma: false scratchMemPtr: 00000000 socCoreOpMode: 43C274D4 fxns: 43C26F64 args: 43C27404 Core Presence Map Interpretation: Multicore image size: 0 bytes Bootloader_Config *bootConfig; bootConfig->coresPresentMap = 0; before Check if the certificate length is within valid range after Check if the certificate length is within valid range struct tisci_msg_proc_auth_boot_req authReq;
这是 TI 官方电路板中相同的 SD 卡输出。
您是否可以一次尝试以下图像:
Drivers_open() SYSFW Firmware Version 10.0.8--v10.00.08 (Fiery Fox) SYSFW Firmware revision 0xa SYSFW ABI revision 4.0 Sciclient_getVersionCheck(1) Bootloader_Handle bootHandleLinux Bootloader_Params_init Bootloader_BootImageInfo_init(&bootImageInfoLinux); noOfFiles < BOOTLOADER_SD_MAX_NO_OF_FILES pp_OpenloadableImage(pFiles[noOfFiles]) == SystemP_SUCCESS bootHandle = Bootloader_open(CONFIG_BOOTLOADER_APP, &bootParams); bootHandle != NULL in Bootloader_getMulticoreImageSize --- Bootloader Configuration --- bootMedia: 0xB0070001 bootImageSize: 0 bytes coresPresentMap: 0x00000000 enableDma: false scratchMemPtr: 00000000 socCoreOpMode: 43C274D4 fxns: 43C26F64 args: 43C27404 Core Presence Map Interpretation: --- Bootloader Configuration --- bootMedia: 0xB0070001 bootImageSize: 0 bytes coresPresentMap: 0x00000000 enableDma: false scratchMemPtr: 00000000 socCoreOpMode: 43C274D4 fxns: 43C26F64 args: 43C27404 Core Presence Map Interpretation: Multicore image size: 0 bytes Bootloader_Config *bootConfig; bootConfig->coresPresentMap = 0; before Check if the certificate length is within valid range after Check if the certificate length is within valid range struct tisci_msg_proc_auth_boot_req authReq; Sciclient_procBootAuthAndStart(&authReq, SystemP_WAIT_FOREVER);0 after Bootloader_socAuthImage(certLoadAddr); Bootloader_parseMultiCoreAppImage (SystemP_SUCCESS == status) && (TRUE == Bootloader_isCorePresent(bootHandle, CSL_CORE_ID_MCU_R5FSS0_0) Bootloader_loadCpu(bootHandle, &(bootImageInfo->cpuInfo[CSL_CORE_ID_MCU_R5FSS0_0])); Image loading status: 0 status = App_loadImages(bootHandle, &bootImageInfo); noOfFiles++; noOfFiles < BOOTLOADER_SD_MAX_NO_OF_FILES pp_OpenloadableImage(pFiles[noOfFiles]) == SystemP_SUCCESS bootHandle = Bootloader_open(CONFIG_BOOTLOADER_APP, &bootParams); bootHandle != NULL in Bootloader_getMulticoreImageSize --- Bootloader Configuration --- bootMedia: 0xB0070001 bootImageSize: 26600 bytes coresPresentMap: 0x00000001 enableDma: false scratchMemPtr: 00000000 socCoreOpMode: 43C274D4 fxns: 43C26F64 args: 43C27404 Core Presence Map Interpretation: Core 0: Present --- Bootloader Configuration --- bootMedia: 0xB0070001 bootImageSize: 26600 bytes coresPresentMap: 0x00000001 enableDma: false scratchMemPtr: 00000000 socCoreOpMode: 43C274D4 fxns: 43C26F64 args: 43C27404 Core Presence Map Interpretation: Core 0: Present Multicore image size: 26600 bytes Bootloader_Config *bootConfig; bootConfig->coresPresentMap = 0; before Check if the certificate length is within valid range after Check if the certificate length is within valid range struct tisci_msg_proc_auth_boot_req authReq; Sciclient_procBootAuthAndStart(&authReq, SystemP_WAIT_FOREVER);0 after Bootloader_socAuthImage(certLoadAddr); Bootloader_parseMultiCoreAppImage Bootloader_loadSelfCpu(bootHandle, &(bootImageInfo->cpuInfo[CSL_CORE_ID_WKUP_R5FSS0_0])); Bootloader_profileAddProfilePoint(App_loadImages(CSL_CORE_ID_WKUP_R5FSS0_0)); Image loading status: 0 status = App_loadImages(bootHandle, &bootImageInfo); noOfFiles++; if(App_OpenloadableImage(BOOTLOADER_SD_A53_APPIMAGE_FILENAME) == SystemP_SUCCESS) in Bootloader_getMulticoreImageSize --- Bootloader Configuration --- bootMedia: 0xB0070001 bootImageSize: 179076 bytes coresPresentMap: 0x00000002 enableDma: false scratchMemPtr: 00000000 socCoreOpMode: 43C274D4 fxns: 43C26F64 args: 43C27404 Core Presence Map Interpretation: Core 1: Present --- Bootloader Configuration --- bootMedia: 0xB0070001 bootImageSize: 179076 bytes coresPresentMap: 0x00000002 enableDma: false scratchMemPtr: 00000000 socCoreOpMode: 43C274D4 fxns: 43C26F64 args: 43C27404 Core Presence Map Interpretation: Core 1: Present before Check if the certificate length is within valid range after Check if the certificate length is within valid range struct tisci_msg_proc_auth_boot_req authReq; Sciclient_procBootAuthAndStart(&authReq, SystemP_WAIT_FOREVER);0 after Bootloader_socAuthImage(certLoadAddr); status = Bootloader_parseMultiCoreAppImage(bootHandle, bootImageInfo); bootImageInfo->cpuInfo[CSL_CORE_ID_A53SS0_0].clkHz = Bootloader_socCpuGetClkDefault(CSL_CORE_ID_A53SS0_0); Bootloader_loadCpu(bootHandle, &(bootImageInfo->cpuInfo[CSL_CORE_ID_A53SS0_0]));0 [BOOTLOADER_PROFILE] Boot Media : SD Card [BOOTLOADER_PROFILE] Boot Image Size : 200 KB [BOOTLOADER_PROFILE] Cores present : mcu-r5f0-0 wkup-r5f0-0 a530-0 [BOOTLOADER PROFILE] System_init : 39303us [BOOTLOADER PROFILE] Drivers_open : 2878us [BOOTLOADER PROFILE] Board_driversOpen : 1463us [BOOTLOADER PROFILE] Sciclient Get Version : 10171us [BOOTLOADER PROFILE] App_loadImages(CSL_CORE_ID_WKUP_R5FSS0_0) : 808256us [BOOTLOADER PROFILE] App_loadLinuxImages : 486337us [BOOTLOADER_PROFILE] SBL Total Time Taken : 1348410us Image loading done, switching to application ... Starting linux and RTOS/Baremetal applications NOTICE: BL31: v2.10.0(release):v2.10.0-367-g00f1ec6b87-dirty NOTICE: BL31: Built : 16:09:05, Feb 9 2024 U-Boot SPL 2024.04-ti-gfda88f8bcea3 (Jul 26 2024 - 11:00:12 +0000) SYSFW ABI: 4.0 (firmware rev 0x000a '10.0.8--v10.00.08 (Fiery Fox)') SPL initial stack usage: 1904 bytes Trying to boot from MMC2 Authentication passed Authentication passed U-Boot 2024.04-ti-gfda88f8bcea3 (Jul 26 2024 - 11:00:12 +0000) SoC: AM62PX SR1.0 HS-SE Model: Texas Instruments AM62P5 SK DRAM: 2 GiB (effective 8 GiB) Core: 84 devices, 30 uclasses, devicetree: separate MMC: mmc@fa10000: 0, mmc@fa00000: 1 Loading Environment from nowhere... OK In: serial Out: serial Err: serial Net: eth0: ethernet@8000000port@1 Warning: ethernet@8000000port@2 (eth1) using random MAC address - 12:72:1b:e2:9d:75 , eth1: ethernet@8000000port@2 Hit any key to stop autoboot: 0 switch to partitions #0, OK mmc1 is current device SD/MMC found on device 1 Failed to load 'uEnv.txt' Failed to load '/boot/fitImage' Wrong Image Type for bootm command ERROR -91: can't get kernel image! Scanning for bootflows in all bootdevs Seq Method State Uclass Part Name Filename --- ----------- ------ -------- ---- ------------------------ ---------------- Scanning global bootmeth 'efi_mgr': No EFI system partition No EFI system partition Failed to persist EFI variables No EFI system partition Failed to persist EFI variables No EFI system partition Failed to persist EFI variables No EFI system partition Failed to persist EFI variables No EFI system partition Failed to persist EFI variables 0 efi_mgr ready (none) 0 <NULL> ** Booting bootflow '<NULL>' with efi_mgr Loading Boot0000 'mmc 1' failed Loading Boot0001 'mmc 0' failed EFI boot manager: Cannot load any image Boot failed (err=-14) Scanning bootdev 'mmc@fa00000.bootdev': Scanning bootdev 'mmc@fa10000.bootdev': Bus usb@31100000: Register 1000840 NbrPorts 1 Starting the controller USB XHCI 1.10 scanning bus usb@31100000 for devices... 1 USB Device(s) found ethernet@8000000port@1 Waiting for PHY auto negotiation to complete......... TIMEOUT ! am65_cpsw_nuss_port ethernet@8000000port@1: phy_startup failed am65_cpsw_nuss_port ethernet@8000000port@1: am65_cpsw_start end error ethernet@8000000port@2 Waiting for PHY auto negotiation to complete......... TIMEOUT ! am65_cpsw_nuss_port ethernet@8000000port@2: phy_startup failed am65_cpsw_nuss_port ethernet@8000000port@2: am65_cpsw_start end error ethernet@8000000port@1 Waiting for PHY auto negotiation to complete......... TIMEOUT ! am65_cpsw_nuss_port ethernet@8000000port@1: phy_startup failed am65_cpsw_nuss_port ethernet@8000000port@1: am65_cpsw_start end error ethernet@8000000port@2 Waiting for PHY auto negotiation to complete......... TIMEOUT ! am65_cpsw_nuss_port ethernet@8000000port@2: phy_startup failed am65_cpsw_nuss_port ethernet@8000000port@2: am65_cpsw_start end error No more bootdevs --- ----------- ------ -------- ---- ------------------------ ---------------- (1 bootflow, 1 valid) =>
我使用您给我的映像和 u-boot.img 位于/mcu_plus_sdk_am62px_10_00_00_14/tools/boot/linuxAppimageGen/board/am62px-s 中 得到 上述输出。
所以,我认为是时候确保我是否正确地构建映像了。 你能帮我检查我的.mak 文件(在我们之前的对话)和我使用的 comman .
ti/MCU_PLUS_SDK_am62px_10_00_14$ make clean profile=debug
ti/MCU_PLUS_SDK_am62px_10_00_14$ make profile=debug
现在、我想了解为什么 我的客户主板和 TI 官方主板中相同的启动 SD 卡显示方式不同。
我没有得到这个。
您说过将 ENC_ENABLED 设置为 NO 后、您生成的映像将成功引导。 然后、在哪种配置下、您在定制电路板上仍然会出现故障?
是的、您给我的映像和我在 ENC_ENABLED 后重建的映像都无法在 TI 的官方电路板上启动。但两者都以相同的方式在我的客户电路板上失败。
我懂了。
假设您在定制电路板上使用自定义 DDR 器件、您是否修改了 SBL SD 引导加载程序中的 DDR 配置文件:
software-dl.ti.com/.../DRIVERS_DDR_PAGE.html
U-Boot SPL 2024.04-ti-gfda88f8bcea3 (Jul 26 2024 - 11:00:12 +0000) SYSFW ABI: 4.0 (firmware rev 0x000a '10.0.8--v10.00.08 (Fiery Fox)') SPL initial stack usage: 1904 bytes Trying to boot from MMC2 i2c_write: error waiting for data ACK (status=0x116) pca953x gpio@22: Error reading output register Error reading cluster
U-Boot SPL 2024.04-ti-gfda88f8bcea3 (Jul 26 2024 - 11:00:12 +0000) SYSFW ABI: 4.0 (firmware rev 0x000a '10.0.8--v10.00.08 (Fiery Fox)') SPL initial stack usage: 1904 bytes Trying to boot from MMC2 Authentication passed Authentication passed U-Boot 2024.04-ti-gfda88f8bcea3 (Jul 26 2024 - 11:00:12 +0000) SoC: AM62PX SR1.0 HS-SE Model: Texas Instruments AM62P5 SK DRAM: 2 GiB (effective 8 GiB) Core: 84 devices, 30 uclasses, devicetree: separate MMC: mmc@fa10000: 0, mmc@fa00000: 1 Loading Environment from nowhere... OK In: serial Out: serial Err: serial Net: eth0: ethernet@8000000port@1 Warning: ethernet@8000000port@2 (eth1) using random MAC address - ca:15:05:97:20:2e , eth1: ethernet@8000000port@2 Hit any key to stop autoboot: 0 switch to partitions #0, OK mmc1 is current device SD/MMC found on device 1 Failed to load 'uEnv.txt' Failed to load '/boot/fitImage' Wrong Image Type for bootm command ERROR -91: can't get kernel image! Scanning for bootflows in all bootdevs Seq Method State Uclass Part Name Filename --- ----------- ------ -------- ---- ------------------------ ---------------- Scanning global bootmeth 'efi_mgr': No EFI system partition No EFI system partition Failed to persist EFI variables No EFI system partition Failed to persist EFI variables No EFI system partition Failed to persist EFI variables No EFI system partition Failed to persist EFI variables No EFI system partition Failed to persist EFI variables 0 efi_mgr ready (none) 0 <NULL> ** Booting bootflow '<NULL>' with efi_mgr Loading Boot0000 'mmc 1' failed Loading Boot0001 'mmc 0' failed EFI boot manager: Cannot load any image Boot failed (err=-14) Scanning bootdev 'mmc@fa00000.bootdev': Scanning bootdev 'mmc@fa10000.bootdev': Bus usb@31100000: Register 1000840 NbrPorts 1 Starting the controller USB XHCI 1.10 scanning bus usb@31100000 for devices... 1 USB Device(s) found ethernet@8000000port@1 Waiting for PHY auto negotiation to complete......... TIMEOUT ! am65_cpsw_nuss_port ethernet@8000000port@1: phy_startup failed am65_cpsw_nuss_port ethernet@8000000port@1: am65_cpsw_start end error ethernet@8000000port@2 Waiting for PHY auto negotiation to complete......... TIMEOUT ! am65_cpsw_nuss_port ethernet@8000000port@2: phy_startup failed am65_cpsw_nuss_port ethernet@8000000port@2: am65_cpsw_start end error ethernet@8000000port@1 Waiting for PHY auto negotiation to complete......... TIMEOUT ! am65_cpsw_nuss_port ethernet@8000000port@1: phy_startup failed am65_cpsw_nuss_port ethernet@8000000port@1: am65_cpsw_start end error ethernet@8000000port@2 Waiting for PHY auto negotiation to complete......... TIMEOUT ! am65_cpsw_nuss_port ethernet@8000000port@2: phy_startup failed am65_cpsw_nuss_port ethernet@8000000port@2: am65_cpsw_start end error No more bootdevs --- ----------- ------ -------- ---- ------------------------ ---------------- (1 bootflow, 1 valid) => => 2 Unknown command '2' - try 'help' => 2d Unknown command '2d' - try 'help' => Unknown command '2d' - try 'help' => print bootpart bootpart=1:2 => ext ext2load ext2ls ext4load ext4ls ext4size ext4write => ext4l ext4load ext4ls => ex exit ext2load ext2ls ext4load ext4ls ext4size ext4write => ext4 ext4load ext4ls ext4size ext4write => ext4ls mmc 1:2 <DIR> 4096 . <DIR> 4096 .. <DIR> 16384 lost+found <SYM> 7 bin <DIR> 4096 boot <DIR> 4096 data <DIR> 4096 dev <DIR> 4096 etc <DIR> 4096 home <SYM> 7 lib <DIR> 4096 media <DIR> 4096 mnt <DIR> 4096 opt <DIR> 4096 proc <DIR> 4096 root <DIR> 4096 run <SYM> 8 sbin <DIR> 4096 srv <DIR> 4096 sys <DIR> 4096 tmp <DIR> 4096 usr <DIR> 4096 var 19 version => ext4ls mmc 1:2 /boot <DIR> 4096 . <DIR> 4096 .. 21107200 Image <DIR> 4096 dtb => boot switch to partitions #0, OK mmc1 is current device SD/MMC found on device 1 Failed to load 'uEnv.txt' Failed to load '/boot/fitImage' Wrong Image Type for bootm command ERROR -91: can't get kernel image! Scanning for bootflows in all bootdevs Seq Method State Uclass Part Name Filename --- ----------- ------ -------- ---- ------------------------ ---------------- Scanning global bootmeth 'efi_mgr': 0 efi_mgr ready (none) 0 <NULL> ** Booting bootflow '<NULL>' with efi_mgr Loading Boot0000 'mmc 1' failed Loading Boot0001 'mmc 0' failed EFI boot manager: Cannot load any image Boot failed (err=-14) Scanning bootdev 'mmc@fa00000.bootdev': Scanning bootdev 'mmc@fa10000.bootdev': ethernet@8000000port@1 Waiting for PHY auto negotiation to complete......... TIMEOUT ! am65_cpsw_nuss_port ethernet@8000000port@1: phy_startup failed am65_cpsw_nuss_port ethernet@8000000port@1: am65_cpsw_start end error ethernet@8000000port@2 Waiting for PHY auto negotiation to complete.......
你好、Prashant
解决 DDR 问题后,我遇到了一些新的问题.
第一个输出在客户电路板上。 第二个来自官方委员会。
你能告诉我这可能的原因吗?
请参阅以下指南中提到的权变措施是否有帮助: