AM623: secureboot load fitImage error

Part Number: AM623

We previously developed our system based on SDK 09.00.00.03 and are now migrating to the latest SDK 12.00.00.07.04. But we are still using the U-Boot and Linux versions from SDK 09.00.00.03.

Secure Boot worked correctly with the previous system. However, after upgrading to the new SDK, Secure Boot fails when loading the fitImage during boot, with the following error. Based on our initial analysis, it appears that the issue may be related to how U-Boot signs the Linux fitImage.

Could you please help us look into this issue and advise where we should start debugging or tracing the problem? Thank you.

Are there any specific differences or points to note when configuring U-Boot to compile a fitImage between SDK 09.00.00.03 and SDK 12.00.00.07.04?

U-Boot 2023.04-ti-g (Jun 25 2026 - 05:40:36 +0000)

SoC:   AM62X SR1.0 HS-SE
Model: Texas Instruments AM625 SK
DRAM:  1 GiB
Core:  75 devices, 29 uclasses, devicetree: separate
MMC:   mmc@fa10000: 0, mmc@fa00000: 1
Loading Environment from MMC... *** Warning - bad CRC, using default environment

In:    serial
Out:   serial
Err:   serial
Net:   eth0: ethernet@8000000port@1, eth1: ethernet@8000000port@2
Hit any key to stop autoboot:  0
gpio: pin gpio@601000_48 (gpio 164) value is 0
SD found on device 1
emmc_flashing_flag exist, begin to flash emmc
Erasing Environment on MMC...
1024 blocks erased at 0x20000: OK
OK
574 bytes read in 15 ms (37.1 KiB/s)
Loaded env from uEnv.txt
Importing environment from mmc1 ...
8454074 bytes read in 370 ms (21.8 MiB/s)
name_fit_config=conf-ti_k3-am625-customer.dtb
## Loading kernel from FIT Image at 90000000 ...
   Using 'conf-ti_k3-am625-customer.dtb' configuration
   Verifying Hash Integrity ... fit_config_verify_required_keys: No signature node found: FDT_ERR_NOTFOUND
Bad Data Hash
ERROR: can't get kernel image!

=> bdinfo
boot_params = 0x0000000000000000
DRAM bank   = 0x0000000000000000
-> start    = 0x0000000080000000
-> size     = 0x0000000040000000
flashstart  = 0x0000000000000000
flashsize   = 0x0000000000000000
flashoffset = 0x0000000000000000
baudrate    = 115200 bps
relocaddr   = 0x00000000bfeec000
reloc off   = 0x000000003f6ec000
Build       = 64-bit
current eth = ethernet@8000000port@1
ethaddr     = 28:b5:e8:dd:2f:00
IP addr     = <NULL>
fdt_blob    = 0x00000000bde9c3c0
new_fdt     = 0x00000000bde9c3c0
fdt_size    = 0x000000000000f9c0
multi_dtb_fit= 0x0000000000000000
lmb_dump_all:
 memory.cnt  = 0x1
 memory[0]      [0x80000000-0xbfffffff], 0x40000000 bytes flags: 0
 reserved.cnt  = 0x7
 reserved[0]    [0x87f00000-0x87f12fff], 0x00013000 bytes flags: 0
 reserved[1]    [0x9ca00000-0x9cafffff], 0x00100000 bytes flags: 0
 reserved[2]    [0x9cb00000-0x9e6fffff], 0x01c00000 bytes flags: 4
 reserved[3]    [0x9cb00000-0x9e6fffff], 0x01c00000 bytes flags: 4
 reserved[4]    [0x9e780000-0x9fffffff], 0x01880000 bytes flags: 4
 reserved[5]    [0xbce6b000-0xbfffffff], 0x03195000 bytes flags: 0
 reserved[6]    [0xbde969e0-0xbfffffff], 0x02169620 bytes flags: 0
devicetree  = separate
arch_number = 0x0000000000000000
TLB addr    = 0x00000000bfff0000
irq_sp      = 0x00000000bde9aff0
sp start    = 0x00000000bde9aff0
Early malloc usage: 3b88 / 8000
=> fdt addr 0x00000000bde9c3c0
Working FDT set to bde9c3c0
=> fdt list /signature
libfdt fdt_path_offset() returned FDT_ERR_NOTFOUND
=> fdt list /signature
libfdt fdt_path_offset() returned FDT_ERR_NOTFOUND
=> run get_fit_mmc
8454066 bytes read in 111 ms (72.6 MiB/s)
=> bootm 0x90000000
## Loading kernel from FIT Image at 90000000 ...
   Using 'conf-ti_k3-am625-customer.dtb' configuration
   Verifying Hash Integrity ... fit_config_verify_required_keys: No signature node found: FDT_ERR_NOTFOUND
Bad Data Hash
ERROR: can't get kernel image!

=> iminfo 0x90000000

## Checking Image at 90000000 ...
   FIT image found
   FIT description: Kernel fitImage for Arago/6.1/am62xx-evm
    Image 0 (kernel-1)
     Description:  Linux kernel
     Type:         Kernel Image
     Compression:  gzip compressed
     Data Start:   0x900000dc
     Data Size:    8308570 Bytes = 7.9 MiB
     Architecture: AArch64
     OS:           Linux
     Load Address: 0x81000000
     Entry Point:  0x81000000
     Hash algo:    sha512
     Hash value:   4a55fc29f10509a4de0589c1d0890f99571d09697917b4b4bcca7757c1947f3f0d613fb7b89f817db82a4ba8f4aa4c60c2397235a6eb445c031dfaaf0fb121fa
    Image 1 (fdt-ti_k3-am625-customer.dtb)
     Description:  Flattened Device Tree blob
     Type:         Flat Device Tree
     Compression:  uncompressed
     Data Start:   0x907ec970
     Data Size:    53997 Bytes = 52.7 KiB
     Architecture: AArch64
     Load Address: 0x83000000
     Hash algo:    sha512
     Hash value:   72f65007757ba30f981699ab546830b4a7f7748a2a9906bb09143558505f41ed81de24f9722f568d14a32c9c2eb87e4c4e7df0fcffab61880390e38bb6a5d804
    Default Configuration: 'conf-ti_k3-am625-customer.dtb'
    Configuration 0 (conf-ti_k3-am625-customer.dtb)
     Description:  1 Linux kernel, FDT blob
     Kernel:       kernel-1
     FDT:          fdt-ti_k3-am625-customer.dtb
     Hash algo:    sha512
     Hash value:   unavailable
     Sign algo:    sha512,rsa4096:custMpk
     Sign padding: pkcs-1.5
     Sign value:   2dd032571d17ee890c626a83b43b5be17c3e82bfe4ef55441a0cbad172d4d965a8647e5e55eb9ce2a3c6fc42aea1ec9f6bc776818eee9ce2dd31d462f7ce3ce2d7eff8340d339f0582059207a01b364663143909801d666819f0b4d66773d765903bc9d212c7c01ff55ee4a4ebda87a51ab6a4a5498b1ddadff962160beff2a7b1075cdd56060f9b16c827125cc8757ab0a99096b0d34d84d350a38055bd944a9a3cfa8be76511338eaea46bfe63e9c47039c6cc5797e5dde79a16102bcc3640f37422f5403c786488d1926940aa2bdbcb8e11f28c0afed3623730199d91ba4557348709e4ee841e1a6c296e348c31bb739006b4464ee505ee5a0727932b04e1c3129e12ab39c81001fea3793e225a67da4594cc2010c987dc0ec2f9e01f63632b5b5dba9788b758e1fc59abd46dc79b325737c5cac8c1bad2557a6b37b3ef66bbc35376beb01aabaa5b587e8d0659a8c38cd2731d8bddc6b65993de178eb6fa29b558b1f645c877f4c96085bac43fb5c2451ca9c8b42662c15e803516e34932d716264a61eb162769d276f330bf03fb5160022986aaea8fd0c08ca8e542e47cf07436368204e0f7682ea7e12b383b5c87c7662b95db3da257bc6ecfbcf4a1f513c930ae9a697268a2886a1f046b0e22ddf82094d90c29cd6cfb1b78a5dcd77af0da546c166122505b76293f1a8143dcd9f0492e27b94f1e7c8224dc2bf52092
## Checking hash(es) for FIT Image at 90000000 ...
   Hash(es) for Image 0 (kernel-1): sha512+
   Hash(es) for Image 1 (fdt-ti_k3-am625-customer.dtb): sha512+