This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

AM6422: Prebuilt fitImage doesn't boot

Part Number: AM6422

Tool/software:

Hi,

We have a custom board using AM6422.

We can boot Linux using Image.

Now I tried to boot the TI prebuilt image fitImage from SDK.

Here the output:

=> setenv fdtfile ti/k3-am642-sk.dtb
=> run get_fit_config
=> bootm ${loadaddr}#${name_fit_config}
## Loading kernel from FIT Image at 82000000 ...
   Using 'conf-ti_k3-am642-sk.dtb' configuration
   Verifying Hash Integrity ... OK
   Trying 'kernel-1' kernel subimage
     Description:  Linux kernel
     Type:         Kernel Image
     Compression:  gzip compressed
     Data Start:   0x820000e0
     Data Size:    6603945 Bytes = 6.3 MiB
     Architecture: AArch64
     OS:           Linux
     Load Address: 0x81000000
     Entry Point:  0x81000000
     Hash algo:    sha512
     Hash value:   4ff47e3d93c4fa16265e50ce234834e5cc09dda56c3468852369cc9d5974f0ec3f8dfae3a878c4386ac211ff83281199bcf9c1f5ba2c505136a708cddfdfb66f
   Verifying Hash Integrity ... sha512+ OK
## Loading fdt from FIT Image at 82000000 ...
   Using 'conf-ti_k3-am642-sk.dtb' configuration
   Verifying Hash Integrity ... OK
   Trying 'fdt-ti_k3-am642-sk.dtb' fdt subimage
     Description:  Flattened Device Tree blob
     Type:         Flat Device Tree
     Compression:  uncompressed
     Data Start:   0x8265b1f8
     Data Size:    61494 Bytes = 60.1 KiB
     Architecture: AArch64
     Load Address: 0x83000000
     Hash algo:    sha512
     Hash value:   213879ecb927feac06a6786bbd7b09ced931f2094b2df301a099d9d7f232b5dd23d7e6aabf8e9f30def518c15de6542582b4beb28a75fc437d6fa5c703a996a1
   Verifying Hash Integrity ... sha512+ OK
   Loading fdt from 0x8265b1f8 to 0x83000000
   Booting using the fdt blob at 0x83000000
Working FDT set to 83000000
   Uncompressing Kernel Image to 81000000
ERROR: reserving fdt memory region failed (addr=9e800000 size=1800000 flags=4)
   Loading Device Tree to 0000000087fed000, end 0000000087fff035 ... OK
Working FDT set to 87fed000

 

Starting kernel ...

 

I/TC: Secondary CPU 1 initializing
I/TC: Secondary CPU 1 switching to normal world boot
I/TC: Reserved shared memory is enabled
I/TC: Dynamic shared memory is enabled
I/TC: Normal World virtualization support is disabled
I/TC: Asynchronous notifications are disabled

I expected here the messages from Kernel.

As we can see Kernel prints no messages.

Any Idea why ?

Best Regards

Walter

  • Hello,

    Can you please attach the full boot logs?

    Please use the "Insert -> Code" feature to attach the logs for better readability.

    Thanks!

  • Hello Prashant,

    here the full boot log:

    Rebooting... [   43.337731] reboot: Restarting system
    
    U-Boot SPL 2024.04 (Mar 24 2025 - 06:43:38 +0100)
    SYSFW ABI: 4.0 (firmware rev 0x000a '10.0.8--v10.00.08 (Fiery Fox)')
    ABB-41 detected
    SPL initial stack usage: 13392 bytes
    Board name:        ABB-41
    Version:           A
    Software revision: 01
    Serial number:     0484
    initializing started
    gpio initialized
    gpmc initialized
    powerfail initialized
    Trying to boot from MMC2
    Authentication passed
    Authentication passed
    Loading Environment from MMC... Authentication passed
    Authentication passed
    Starting ATF on ARM64 core...
    
    NOTICE:  BL31: v2.10.0(release):v2.10.0-367-g00f1ec6b87-dirty
    NOTICE:  BL31: Built : 16:09:05, Feb  9 2024
    I/TC:
    I/TC: OP-TEE version: 4.2.0-dev (gcc version 13.3.0 (GCC)) #1 Fri Apr 12 09:51:21 UTC 2024 aarch64
    I/TC: WARNING: This OP-TEE configuration might be insecure!
    I/TC: WARNING: Please check https://optee.readthedocs.io/en/latest/architecture/porting_guidelines.html
    I/TC: Primary CPU initializing
    I/TC: GIC redistributor base address not provided
    I/TC: Assuming default GIC group status and modifier
    I/TC: SYSFW ABI: 4.0 (firmware rev 0x000a '10.0.8--v10.00.08 (Fiery Fox)')
    I/TC: HUK Initialized
    I/TC: Activated SA2UL device
    I/TC: Enabled firewalls for SA2UL TRNG device
    I/TC: SA2UL TRNG initialized
    I/TC: SA2UL Drivers initialized
    I/TC: Primary CPU switching to normal world boot
    
    U-Boot SPL 2024.04 (Mar 24 2025 - 06:45:20 +0100)
    SYSFW ABI: 4.0 (firmware rev 0x000a '10.0.8--v10.00.08 (Fiery Fox)')
    ABB-41 detected
    Board name:        ABB-41
    Version:           A
    Software revision: 01
    Serial number:     0484
    Trying to boot from MMC2
    Authentication passed
    Authentication passed
    
    
    U-Boot 2024.04 (Mar 24 2025 - 06:45:20 +0100)
    
    SoC:   AM64X SR2.0 HS-FS
    Model: ABB PM5680
    ABB-41 detected
    Board: ABB-41 rev A
    DRAM:  475 MiB (effective 512 MiB)
    cdns3_bind: unsupported dr_mode
    Core:  79 devices, 27 uclasses, devicetree: separate
    NAND:  0 MiB
    MMC:   mmc@fa10000: 0, mmc@fa00000: 1
    Loading Environment from nowhere... OK
    In:    serial@2800000
    Out:   serial@2800000
    Err:   serial@2800000
    Failed to probe prueth driver
    ABB-41 detected
    Net:   eth0: ethernet@8000000port@1
    Warning: ethernet@8000000port@2 (eth1) using random MAC address - 32:95:e4:44:c4:96
    , eth1: ethernet@8000000port@2
    Hit any key to stop autoboot:  0
    =>
    =>
    =>
    =>
    => setenv fdtfile ti/k3-am642-sk.dtb
    => run get_fit_config
    => bootm ${loadaddr}#${name_fit_config}
    ## Loading kernel from FIT Image at 82000000 ...
       Using 'conf-ti_k3-am642-sk.dtb' configuration
       Verifying Hash Integrity ... OK
       Trying 'kernel-1' kernel subimage
         Description:  Linux kernel
         Type:         Kernel Image
         Compression:  gzip compressed
         Data Start:   0x820000e0
         Data Size:    6603945 Bytes = 6.3 MiB
         Architecture: AArch64
         OS:           Linux
         Load Address: 0x81000000
         Entry Point:  0x81000000
         Hash algo:    sha512
         Hash value:   4ff47e3d93c4fa16265e50ce234834e5cc09dda56c3468852369cc9d5974f0ec3f8dfae3a878c4386ac211ff83281199bcf9c1f5ba2c505136a708cddfdfb66f
       Verifying Hash Integrity ... sha512+ OK
    ## Loading fdt from FIT Image at 82000000 ...
       Using 'conf-ti_k3-am642-sk.dtb' configuration
       Verifying Hash Integrity ... OK
       Trying 'fdt-ti_k3-am642-sk.dtb' fdt subimage
         Description:  Flattened Device Tree blob
         Type:         Flat Device Tree
         Compression:  uncompressed
         Data Start:   0x8265b1f8
         Data Size:    61494 Bytes = 60.1 KiB
         Architecture: AArch64
         Load Address: 0x83000000
         Hash algo:    sha512
         Hash value:   213879ecb927feac06a6786bbd7b09ced931f2094b2df301a099d9d7f232b5dd23d7e6aabf8e9f30def518c15de6542582b4beb28a75fc437d6fa5c703a996a1
       Verifying Hash Integrity ... sha512+ OK
       Loading fdt from 0x8265b1f8 to 0x83000000
       Booting using the fdt blob at 0x83000000
    Working FDT set to 83000000
       Uncompressing Kernel Image to 81000000
    ERROR: reserving fdt memory region failed (addr=9e800000 size=1800000 flags=4)
       Loading Device Tree to 0000000087fed000, end 0000000087fff035 ... OK
    Working FDT set to 87fed000
    
     
    
    Starting kernel ...
    
     
    
    I/TC: Secondary CPU 1 initializing
    I/TC: Secondary CPU 1 switching to normal world boot
    I/TC: Reserved shared memory is enabled
    I/TC: Dynamic shared memory is enabled
    I/TC: Normal World virtualization support is disabled
    I/TC: Asynchronous notifications are disabled
    

  • Hello,

    The device you are using is HSFS on which the fitImage boot is by default disabled. If you would like to enable fitImage boot, all you need to do is set the "boot_fit" environment variable as described here:

    https://software-dl.ti.com/processor-sdk-linux/esd/AM64X/11_00_09_04/exports/docs/linux/Foundational_Components_Migration_Guide.html#:~:text=boot%20environment%20variable-,boot_fit,-could%20be%20set

    Attached are the sample logs:

    [11:31:28.490] => setenv boot_fit 1
    [11:31:30.090] => boot
    [11:31:31.114] switch to partitions #0, OK
    [11:31:31.117] mmc0(part 0) is current device
    [11:31:31.162] SD/MMC found on device 0
    [11:31:31.210] 574 bytes read in 39 ms (13.7 KiB/s)
    [11:31:31.213] Loaded env from uEnv.txt
    [11:31:31.216] Importing environment from mmc0 ...
    [11:31:31.306] 9097130 bytes read in 91 ms (95.3 MiB/s)
    [11:31:31.309] ## Loading kernel from FIT Image at 90000000 ...
    [11:31:31.322]    Using 'conf-ti_k3-am642-evm.dtb' configuration
    [11:31:31.325]    Verifying Hash Integrity ... sha512,rsa4096:custMpk+ OK
    [11:31:31.338]    Trying 'kernel-1' kernel subimage
    [11:31:31.341]      Description:  Linux kernel
    [11:31:31.343]      Type:         Kernel Image
    [11:31:31.345]      Compression:  gzip compressed
    [11:31:31.347]      Data Start:   0x900000e0
    [11:31:31.349]      Data Size:    8815849 Bytes = 8.4 MiB
    [11:31:31.356]      Architecture: AArch64
    [11:31:31.358]      OS:           Linux
    [11:31:31.360]      Load Address: 0x81000000
    [11:31:31.362]      Entry Point:  0x81000000
    [11:31:31.364]      Hash algo:    sha512
    [11:31:31.366]      Hash value:   0b7db1089950ffb1c6a680ce290df2751a1d21aaa9db5b2fb5476717df4d6bab19ef196f62e8463b54d55949914cf09fd9b14ecffa8494bf18347ebfcc87f558
    [11:31:31.379]    Verifying Hash Integrity ... sha512+ OK
    [11:31:31.595] ## Loading fdt from FIT Image at 90000000 ...
    [11:31:31.618]    Using 'conf-ti_k3-am642-evm.dtb' configuration
    [11:31:31.622]    Verifying Hash Integrity ... sha512,rsa4096:custMpk+ OK
    [11:31:31.627]    Trying 'fdt-ti_k3-am642-evm.dtb' fdt subimage
    [11:31:31.630]      Description:  Flattened Device Tree blob
    [11:31:31.633]      Type:         Flat Device Tree
    [11:31:31.635]      Compression:  uncompressed
    [11:31:31.643]      Data Start:   0x90896a08
    [11:31:31.645]      Data Size:    64721 Bytes = 63.2 KiB
    [11:31:31.648]      Architecture: AArch64
    [11:31:31.650]      Load Address: 0x83000000
    [11:31:31.652]      Hash algo:    sha512
    [11:31:31.658]      Hash value:   e71016da27c71d781166d6952569d34221c95e237ad952342fa1e960cc835e2a60135d5f69e4de1dc038e6095dba171fce9220aec2899fbb1a012cb0193ee111
    [11:31:31.667]    Verifying Hash Integrity ... sha512+ OK
    [11:31:31.674]    Loading fdt from 0x90896a08 to 0x83000000
    [11:31:31.677]    Booting using the fdt blob at 0x83000000
    [11:31:31.680] Working FDT set to 83000000
    [11:31:31.681]    Uncompressing Kernel Image to 81000000
    [11:31:32.090]    Loading Device Tree to 000000008ffed000, end 000000008ffffcd0 ... OK
    [11:31:32.094] Working FDT set to 8ffed000
                                                                                                                                                                                                
    [11:31:32.106] Starting kernel ...
                                                                                                                                                                                                
    [11:31:32.138] [    0.000000] Booting Linux on physical CPU 0x0000000000 [0x410fd034]
    [11:31:32.143] [    0.000000] Linux version 6.6.58-ti-01497-ga7758da17c28-dirty (oe-user@oe-host) (aarch64-oe-linux-gcc (GCC) 13.3.0, GNU ld (GNU Binutils) 2.42.0.20240723) #1 SMP PREEMPT
    Wed Nov 27 13:23:15 UTC 2024
    [11:31:32.161] [    0.000000] KASLR disabled due to lack of seed
    [11:31:32.164] [    0.000000] Machine model: Texas Instruments AM642 EVM

    Regards,

    Prashant

  • Hello Prashant,

    many thanks !

    That works now.

    Best Regards

    Walter