Hi Guys, I am working on the secure boot on TX2 NX, and the background is we still use version of 32.7.4, running on NVME SSD.
we have full disk encryption on top of AB scheme, and it is all working fine, and now try to get the secure boot.
first I burned the fuse like below
sudo ./odmfuseread.sh -i 0x18 -k ./rsa_priv.pem -S ./SKB.txt jetson-xavier-nx-devkit-tx2-nx
then I generate the signed firmware etc using blow
ROOTFS_AB=1 NO_ROOTFS=1 ./tools/kernel_flash/l4t_initrd_flash.sh --no-flash -u ./rsa_priv.pem -v ./SKB.txt --showlogs jetson-xavier-nx-devkit-tx2-nx internal
ROOTFS_ENC=1 ROOTFS_AB=1 ./tools/kernel_flash/l4t_initrd_flash.sh --no-flash --external-device nvme0n1p1 -S 40GiB -u ./rsa_priv.pem -v ./SKB.txt --showlogs -c ./tools/kernel_flash/flash_l4t_nvme_rootfs_enc_ab.xml --external-only --append jetson-xavier-nx-devkit-tx2-nx external
And these steps seems run OK.
the log is here
1.txt (77.1 KB)
then I program using below command:
sudo ./tools/kernel_flash/l4t_initrd_flash.sh --flash-only -u ./rsa_priv.pem -v ./SKB.txt
then it has the problem to wait unit boot up in initrd.
***************************************
* *
* Step 3: Start the flashing process *
* *
***************************************
Waiting for target to boot-up...
Waiting for target to boot-up...
...
Waiting for target to boot-up...
Timeout
Cleaning up...
the error message seems related to some signature verification, not very sure
[0010.384] I> ########## Fixed storage boot ##########
[0010.389] I> Loading kernel from blob
[0010.392] I> Found imgtype:20 in blob @ idx:8, offset:3686728, size: 629136
[0010.399] I> Load address: 0x84b84148
[0010.403] I> Validate kernel ...
[0010.406] I> T18x: Authenticate kernel (bin_type 24), max size 0x4000000
[0010.415] I> Checking boot.img header magic ... [0010.419] E> Invalid header magic
[0010.422] E> Storage boot failed, err: 724238360
[0010.427] E> Error (724238360) builtin kernel/dtb load failed
[0010.432] I> Filling _next_stage_param: ep: 0x800040d9c, dtb: 0xffffffff
[0010.439] I> TBoot-CPU Recovery done
it appears the fuse has been program then initrd cannot run? is initrd require signed too? and how to debug the reason for that?
thanks