ZHCADP0 January 2024 AM67 , AM67A , AM68 , AM68A , AM69 , AM69A , DRA821U , DRA821U-Q1 , DRA829J , DRA829J-Q1 , DRA829V , DRA829V-Q1 , TDA4AEN-Q1 , TDA4AH-Q1 , TDA4AL-Q1 , TDA4AP-Q1 , TDA4APE-Q1 , TDA4VE-Q1 , TDA4VEN-Q1 , TDA4VH-Q1 , TDA4VL-Q1 , TDA4VM , TDA4VM-Q1 , TDA4VP-Q1 , TDA4VPE-Q1
所有 Jacinto7 HS 器件退貨基準測試都必須執(zhí)行該過程。TI 可能需要登錄 HLOS 系統(tǒng)來運行更多測試以便進一步分析。需要更多簽名的二進制文件來解鎖器件。原因在于,在基準測試中,TI 需要進入 HLOS(如 Linux)來獲取更多日志信息,因此需要更多簽名的二進制文件。下文主要介紹 SPL 引導模式。
TI 將為您準備 board-cfg.bin、sec-cfg.bin、rm-cfg.bin、pm-cfg.bin(位于 /ti-processor-sdk-linux-j7-evm-xx_xx_xx_xx/board-support/k3-image-gen-2021.01a/out/soc/j721e/evm),并請求您通過 secure-binary-image.sh 為這些文件簽名。然后,返回簽名的映像。使用以下命令生成簽名的二進制文件:
/ti-processor-sdk-linux-j7-evm-07_03_00_05/board-support/core-secdev-k3/scripts/secure-binary-image.sh
out/soc/j721e/evm/board-cfg.bin out/soc/j721e/evm/board-cfg.bin-signed通過 ./gen_x509_cert.sh 使用 custMpk.pem 為 sysfw 內(nèi)部證書簽名。該過程在 HS 和 HS-Prime 器件之間存在差異。您只需選擇一種生成方式。
TI 將準備 ti-fs-firmware-j721e_sr1_1-hs-enc.bin 和 ti-fs-firmware-j721e_sr1_1-hs-cert.bin 供客戶簽名。
./gen_x509_cert.sh -d -c m3 -b /home/chris/J7/J721e/86/hs/board-support/prebuilt-images/ti-fs-firmware-
j721e_sr1_1-hs-cert.bin -o ti-fs-firmware-j721e_sr1_1-hs-certs.bin -l 0x40000 -k /home/chris/J7/J721e/86/hs/board-
support/core-secdev-k3/keys/custMpk.pem -r 1您需要通過 cat 命令生成 sysfw.bin-hs。
cat ti-fs-firmware-j721e_sr1_1-hs-certs.bin /home/chris/J7/J721e/86/hs/board-support/prebuilt-images/ti-fs-
firmware-j721e_sr1_1-hs-enc.bin > out/soc/j721e/evm/sysfw.bin-hsTI 將僅準備 ti-fs-firmware-j721e-hs.bin 供客戶簽名。
./gen_x509_cert.sh -d -c m3 -b /home/chris/J7/J721e/86/hs/board-support/prebuilt-images/ ti-fs-firmware-j721e-hs.bin -o out/soc/j721e/evm/sysfw.bin-hs -l 0x40000 -k /home/chris/J7/J721e/86/hs/board-support/core-secdev-k3/keys/custMpk.pem -r 1客戶只需為該二進制文件簽名。無需再執(zhí)行 cat 命令。
所有類型的 HS 器件都必須執(zhí)行該過程。首先使用以下命令生成其文件。
./gen_its.sh j721e_sr1_1 hs evm out/soc/j721e/evm/sysfw.bin-hs out/soc/j721e/evm/board-cfg.bin-signed
out/soc/j721e/evm/pm-cfg.bin-signed out/soc/j721e/evm/rm-cfg.bin-signed out/soc/j721e/evm/sec-cfg.bin-signed >
out/soc/j721e/evm/sysfw-j721e_sr1_1-evm.its使用此 mkimage 命令生成 sysfw-j721e_sr1_1-evm.itb 并重命名為 sysfw.itb。
mkimage -f out/soc/j721e/evm/sysfw-j721e_sr1_1-evm.its -r sysfw-j721e_sr1_1-evm.itb
move out/soc/j721e/evm/sysfw-j721e_sr1_1-evm.itb out/soc/j721e/evm/sysfw.itb您需要先使用下面的補丁來執(zhí)行 U-boot,然后重新生成 u-boot-spl.bin。該補丁跳過了對后續(xù)內(nèi)核或應用程序文件進行簽名的需求。
diff --git a/arch/arm/mach-k3/security.c b/arch/arm/mach-k3/security.c
index 092588f4b5..c55d1da689 100644
--- a/arch/arm/mach-k3/security.c
+++ b/arch/arm/mach-k3/security.c
@@ -53,6 +53,14 @@ void ti_secure_image_post_process(void **p_image, size_t *p_size)
if (!image_size)
return;
+ if (get_device_type() == K3_DEVICE_TYPE_HS_SE &&
+ !ti_secure_cert_detected(*p_image)) {
+ printf("Warning: Did not detect image signing certificate. "
+ "Skipping authentication to prevent boot failure for CRP. "
+ "This will fail on Security Enforcing(HS-SE) devices\n");
+ return;
+ }
+
if (get_device_type() == K3_DEVICE_TYPE_GP) {
if (ti_secure_cert_detected(*p_image)) {
printf("Warning: Detected image signing certificate on GP device. "使用 k3_gen_x509_cert.sh 生成 tiboot3.bin。
u-boot-2021.01+gitAUTOINC+62a9e51344-g62a9e51344/tools/k3_gen_x509_cert.sh -c 16 -b s -o tiboot3.bin -l
0x41c00000 -r 1 -k /home/chris/J7/J721e/86/l/board-support/core-secdev-k3/keys/custMpk.pem只需向 TI 提供 tiboot3.bin 和 sysfw.bin。