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 器件退货基准测试都必须执行该过程。TI 可能需要登录 HLOS 系统来运行更多测试以便进一步分析。需要更多签名的二进制文件来解锁器件。原因在于,在基准测试中,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 内部证书签名。该过程在 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-hs
TI 将仅准备 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
客户只需为该二进制文件签名。无需再执行 cat 命令。
所有类型的 HS 器件都必须执行该过程。首先使用以下命令生成其文件。
./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
您需要先使用下面的补丁来执行 U-boot,然后重新生成 u-boot-spl.bin。该补丁跳过了对后续内核或应用程序文件进行签名的需求。
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。