Hi,
I am testing with the Verdin IMX8M mini the secure boot setup and have created the necessary image and burned the fuses (only the last step for enforcing i haven’t done yet).
Everything seems fine however whenever i bootup i see failure in fuse comparison messages so i don’t know if i can safely enforce the fuses or if my device will be bricked if i do so.
The boot log:
U-Boot SPL 2024.07-7.1.0-devel+git.3f772959501c (Jan 01 1970 - 00:00:00 +0000)
SEC0: RNG instantiated
WDT: Started watchdog@30280000 with servicing every 1000ms (60s timeout)
Trying to boot from MMC1
hab fuse not enabled
Authenticate image from DDR location 0x44000000...
NOTICE: Do not release JR0 to NS as it can be used by HAB
NOTICE: BL31: v2.10.0 (release):android-14.0.0_2.2.0-rc2-0-g7c64d4e86-dirty
NOTICE: BL31: Built : 00:00:00, Jan 1 1970
U-Boot 2024.07-7.1.0-devel+git.3f772959501c (Jan 01 1970 - 00:00:00 +0000)
CPU: Freescale i.MX8MMDL rev1.0 1800 MHz (running at 1200 MHz)
CPU: Commercial temperature grade (0C to 95C) at 53C
Reset cause: POR
DRAM: 1 GiB
Core: 151 devices, 27 uclasses, devicetree: separate
WDT: Started watchdog@30280000 with servicing every 1000ms (60s timeout)
MMC: FSL_SDHC: 0, FSL_SDHC: 1, FSL_SDHC: 2
Loading Environment from MMC... Reading from MMC(0)... OK
MISSING TORADEX CARRIER CONFIG BLOCKS
In: serial@30860000
Out: serial@30860000
Err: serial@30860000
Model: Toradex 0057 Verdin iMX8M Mini DualLite 1GB V1.1C
Serial#: 15542969
SEC0: RNG instantiated
Net: eth0: ethernet@30be0000 [PRIME]
## U-Boot CLI access is enabled
Hit any key to stop autoboot: 0
switch to partitions #0, OK
mmc0(part 0) is current device
Scanning mmc 0:1...
Found U-Boot script /boot.scr
969 bytes read in 1 ms (946.3 KiB/s)
## Executing script at 50280000
12479 bytes read in 2 ms (5.9 MiB/s)
## WARNING: Command execution WOULD BE DENIED in closed state (blocked by category) for `fuse cmp 6 0...`.
Comparing bank 6:
Word 0x00000000:
Value 0x00000000:0x23a4d3f8
failed
## WARNING: Command execution denied (blocked by category) for `fuse readm 6 0...`.
## WARNING: Command execution WOULD BE DENIED in closed state (blocked by category) for `fuse readm 6 0...`.
## WARNING: Command execution WOULD BE DENIED in closed state (blocked by category) for `fuse cmp 6 1...`.
Comparing bank 6:
Word 0x00000001:
Value 0x00000000:0x8616d78c
failed
## WARNING: Command execution denied (blocked by category) for `fuse readm 6 1...`.
## WARNING: Command execution WOULD BE DENIED in closed state (blocked by category) for `fuse readm 6 1...`.
## WARNING: Command execution WOULD BE DENIED in closed state (blocked by category) for `fuse cmp 6 2...`.
Comparing bank 6:
Word 0x00000002:
Value 0x00000000:0x56c2c334
failed
## WARNING: Command execution denied (blocked by category) for `fuse readm 6 2...`.
## WARNING: Command execution WOULD BE DENIED in closed state (blocked by category) for `fuse readm 6 2...`.
## WARNING: Command execution WOULD BE DENIED in closed state (blocked by category) for `fuse cmp 6 3...`.
Comparing bank 6:
Word 0x00000003:
Value 0x00000000:0x8e833d5c
failed
## WARNING: Command execution denied (blocked by category) for `fuse readm 6 3...`.
## WARNING: Command execution WOULD BE DENIED in closed state (blocked by category) for `fuse readm 6 3...`.
## WARNING: Command execution WOULD BE DENIED in closed state (blocked by category) for `fuse cmp 7 0...`.
Comparing bank 7:
Word 0x00000000:
Value 0x00000000:0x5b90c4db
failed
## WARNING: Command execution denied (blocked by category) for `fuse readm 7 0...`.
## WARNING: Command execution WOULD BE DENIED in closed state (blocked by category) for `fuse readm 7 0...`.
## WARNING: Command execution WOULD BE DENIED in closed state (blocked by category) for `fuse cmp 7 1...`.
Comparing bank 7:
Word 0x00000001:
Value 0x00000000:0x41baefb1
failed
## WARNING: Command execution denied (blocked by category) for `fuse readm 7 1...`.
## WARNING: Command execution WOULD BE DENIED in closed state (blocked by category) for `fuse readm 7 1...`.
## WARNING: Command execution WOULD BE DENIED in closed state (blocked by category) for `fuse cmp 7 2...`.
Comparing bank 7:
Word 0x00000002:
Value 0x00000000:0x6cdc95d8
failed
## WARNING: Command execution denied (blocked by category) for `fuse readm 7 2...`.
## WARNING: Command execution WOULD BE DENIED in closed state (blocked by category) for `fuse readm 7 2...`.
## WARNING: Command execution WOULD BE DENIED in closed state (blocked by category) for `fuse cmp 7 3...`.
Comparing bank 7:
Word 0x00000003:
Value 0x00000000:0xa3262386
failed
## WARNING: Command execution denied (blocked by category) for `fuse readm 7 3...`.
## WARNING: Command execution WOULD BE DENIED in closed state (blocked by category) for `fuse readm 7 3...`.
## WARNING: Command execution denied (name not in whitelist) for `tdx_is_closed`.
Saving Environment to MMC... Writing to MMC(0)... OK
86 bytes read in 2 ms (42 KiB/s)
Applying Overlay: verdin-imx8mm_dsi-to-hdmi_overlay.dtbo
Applying Overlay: verdin-imx8mm_spidev_overlay.dtbo
25190417 bytes read in 194 ms (123.8 MiB/s)
## Loading kernel from FIT Image at 50300000 ...
Using 'conf-freescale_imx8mm-verdin-nonwifi-dev.dtb' configuration
Verifying Hash Integrity ... sha256,rsa2048:dev+ OK
Trying 'kernel-1' kernel subimage
Description: Linux kernel
Type: Kernel Image
Compression: gzip compressed
Data Start: 0x503000e8
Data Size: 11337972 Bytes = 10.8 MiB
Architecture: AArch64
OS: Linux
Load Address: 0x48200000
Entry Point: 0x48200000
Hash algo: sha256
Hash value: 387f3b8816516fce0f1884f764896bfe95e07c87aed5bea69a2d2acc1580c88f
Verifying Hash Integrity ... sha256+ OK
## Loading ramdisk from FIT Image at 50300000 ...
Using 'conf-freescale_imx8mm-verdin-nonwifi-dev.dtb' configuration
Verifying Hash Integrity ... sha256,rsa2048:dev+ OK
Trying 'ramdisk-1' ramdisk subimage
Description: initramfs-ostree-torizon-image
Type: RAMDisk Image
Compression: uncompressed
Data Start: 0x50e7c2d4
Data Size: 13127667 Bytes = 12.5 MiB
Architecture: AArch64
OS: Linux
Load Address: 0x52300000
Entry Point: unavailable
Hash algo: sha256
Hash value: 4480b3ecab9f103f19b912d9893167e50258ce550485ad865b62ab0252318e45
Verifying Hash Integrity ... sha256+ OK
Loading ramdisk from 0x50e7c2d4 to 0x52300000
## Loading fdt from FIT Image at 50300000 ...
Using 'conf-freescale_imx8mm-verdin-nonwifi-dev.dtb' configuration
Verifying Hash Integrity ... sha256,rsa2048:dev+ OK
Trying 'fdt-freescale_imx8mm-verdin-nonwifi-dev.dtb' fdt subimage
Description: Flattened Device Tree blob
Type: Flat Device Tree
Compression: uncompressed
Data Start: 0x50de0ac8
Data Size: 66691 Bytes = 65.1 KiB
Architecture: AArch64
Load Address: 0x50200000
Hash algo: sha256
Hash value: a641f8fdfc55097ecf95da423942050c4e4a96df02565ee4984c1283149ca432
Verifying Hash Integrity ... sha256+ OK
Loading fdt from 0x50de0ac8 to 0x50200000
## Loading fdt from FIT Image at 50300000 ...
Using 'conf-verdin-imx8mm-secboot-kargs_overlay.dtbo' configuration
Verifying Hash Integrity ... sha256,rsa2048:dev+ OK
Trying 'fdt-verdin-imx8mm-secboot-kargs_overlay.dtbo' fdt subimage
Description: Flattened Device Tree blob
Type: Flat Device Tree
Compression: uncompressed
Data Start: 0x50e7bcdc
Data Size: 474 Bytes = 474 Bytes
Architecture: AArch64
Load Address: 0x50240000
Hash algo: sha256
Hash value: 5b7f3572d12bcb34ec72c53b764144695625e965bd5b166fad185b3916fc654b
Verifying Hash Integrity ... sha256+ OK
## Loading fdt from FIT Image at 50300000 ...
Using 'conf-verdin-imx8mm_dsi-to-hdmi_overlay.dtbo' configuration
Verifying Hash Integrity ... sha256,rsa2048:dev+ OK
Trying 'fdt-verdin-imx8mm_dsi-to-hdmi_overlay.dtbo' fdt subimage
Description: Flattened Device Tree blob
Type: Flat Device Tree
Compression: uncompressed
Data Start: 0x50e7666c
Data Size: 2804 Bytes = 2.7 KiB
Architecture: AArch64
Load Address: 0x50240000
Hash algo: sha256
Hash value: a48018bc42bc78d2c38b3773ea359df23fff0b48e2222d69ad9b615b60b98974
Verifying Hash Integrity ... sha256+ OK
## Loading fdt from FIT Image at 50300000 ...
Using 'conf-verdin-imx8mm_spidev_overlay.dtbo' configuration
Verifying Hash Integrity ... sha256,rsa2048:dev+ OK
Trying 'fdt-verdin-imx8mm_spidev_overlay.dtbo' fdt subimage
Description: Flattened Device Tree blob
Type: Flat Device Tree
Compression: uncompressed
Data Start: 0x50e7bfb8
Data Size: 561 Bytes = 561 Bytes
Architecture: AArch64
Load Address: 0x50240000
Hash algo: sha256
Hash value: 34c3c748a085815c94364b3379e6cb73b45679359e3ae7a7820f3630a4ecc5d5
Verifying Hash Integrity ... sha256+ OK
Booting using the fdt blob at 0x50200000
Working FDT set to 50200000
Uncompressing Kernel Image to 48200000
Loading Device Tree to 000000007ced1000, end 000000007cee4941 ... OK
Working FDT set to 7ced1000
## Validation of bootargs succeeded.
Modify /vpu_g1@38300000:status disabled
Modify /vpu_g2@38310000:status disabled
Modify /vpu_h1@38320000:status disabled
Modify /soc@0/blk-ctrl@38330000:status disabled
Delete node /cpus/cpu@2
Delete node /cpus/cpu@3
Update node /thermal-zones/cpu-thermal/cooling-maps/map0, cooling-device prop
Starting kernel ...
Are these fuse compare failures correct or is my uBoot image somehow not correctly signed?
Also if i check the HAB_status in uBoot i get “No hab events found” so that seems correct.
Kind regards,
Richard