Tool/software:
I am trying to boot from a fit image however the kernel doesn't appear to execute. Normal `booti` using the same kernel and dtb works so I know my kernel and dtb are good.
Here is my fit source:
/dts-v1/; / { description = "script, kernel, initramfs and DTB for Phytec-AM62"; #address-cells = <1>; images { default = "script-1"; kernel-1 { description = "Linux kernel"; data = /incbin/("Image"); type = "kernel"; arch = "arm64"; os = "linux"; compression = "none"; load = <0x82000000>; entry = <0x82000000>; hash-1 { algo = "crc32"; }; hash-2 { algo = "sha1"; }; }; ramdisk-1 { description = "Ramdisk"; data = /incbin/("initramfs.xz"); type = "ramdisk"; arch = "arm64"; os = "linux"; load = <0x86000000>; //entry = <0x86000000>; hash-1 { algo = "crc32"; }; hash-2 { algo = "sha1"; }; }; fdt-1 { description = "Device tree"; data = /incbin/("oftree"); type = "flat_dt"; arch = "arm"; compression = "none"; load = <0x88000000>; hash-1 { algo = "crc32"; }; hash-2 { algo = "sha1"; }; }; script-1 { description = "Boot script"; data = /incbin/("boot.cmd"); type = "script"; load = <0x80000000>; }; }; configurations { default = "linux-1"; bootscript-1 { description = "Boot script"; script = "script-1"; }; linux-1 { description = "Kernel, ramdisk and DTB"; kernel = "kernel-1"; ramdisk = "ramdisk-1"; fdt = "fdt-1"; //compatible = "phytec,am625-phyboard-lyra-rdkphytec,am62-phycore-somti,am625"; }; }; }; // rebuild with mkimage -f "./kernel.its" "./fitImage"
Here is the u-boot output:
U-Boot SPL 2024.04 (Sep 26 2025 - 15:57:50 +0000) SYSFW ABI: 4.0 (firmware rev 0x000a '10.1.8--v10.01.08 (Fiery Fox)') SPL initial stack usage: 13408 bytes Trying to boot from MMC2 Authentication passed Authentication passed Authentication passed Authentication passed Authentication passed Starting ATF on ARM64 core... NOTICE: BL31: v2.12.6(release):lts-v2.12.6 NOTICE: BL31: Built : 02:07:59, Sep 25 2025 I/TC: I/TC: OP-TEE version: 4.7.0 (gcc version 11.4.0 (Ubuntu 11.4.0-1ubuntu1~22.04)) #1 Thu Sep 25 02:38:41 UTC 2025 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.1.8--v10.01.08 (Fiery Fox)') I/TC: HUK Initialized I/TC: Primary CPU switching to normal world boot U-Boot SPL 2024.04 (Sep 26 2025 - 15:58:23 +0000) SYSFW ABI: 4.0 (firmware rev 0x000a '10.1.8--v10.01.08 (Fiery Fox)') SPL initial stack usage: 1856 bytes Trying to boot from MMC2 Authentication passed Authentication passed U-Boot 2024.04 (Sep 26 2025 - 15:58:23 +0000) SoC: AM62X SR1.0 HS-FS Model: PHYTEC phyBOARD-Lyra AM625 DRAM: 2 GiB Core: 85 devices, 33 uclasses, devicetree: separate MMC: mmc@fa10000: 0, mmc@fa00000: 1 Loading Environment from MMC... *** Warning - bad CRC, using default environment In: serial@2800000 Out: serial@2800000 Err: serial@2800000 Net: eth0: ethernet@8000000port@1 Hit any key to stop autoboot: 0 => echo $rdaddr => run fitboot 23728523 bytes read in 1079 ms (21 MiB/s) ## Loading kernel from FIT Image at 90000000 ... Using 'linux-1' configuration Verifying Hash Integrity ... OK Trying 'kernel-1' kernel subimage Description: Linux kernel Created: 2025-09-26 16:53:30 UTC Type: Kernel Image Compression: uncompressed Data Start: 0x90000108 Data Size: 18323968 Bytes = 17.5 MiB Architecture: AArch64 OS: Linux Load Address: 0x82000000 Entry Point: 0x82000000 Hash algo: crc32 Hash value: c9e3f3aa Hash algo: sha1 Hash value: 72d194eeaf0ef57934f1c2718a9abe757e617c59 Verifying Hash Integrity ... crc32+ sha1+ OK ## Loading ramdisk from FIT Image at 90000000 ... Using 'linux-1' configuration Verifying Hash Integrity ... OK Trying 'ramdisk-1' ramdisk subimage Description: Ramdisk Created: 2025-09-26 16:53:30 UTC Type: RAMDisk Image Compression: uncompressed Data Start: 0x91179c24 Data Size: 5353608 Bytes = 5.1 MiB Architecture: AArch64 OS: Linux Load Address: 0x86000000 Entry Point: 0x86000000 Hash algo: crc32 Hash value: b2edf475 Hash algo: sha1 Hash value: 26d7bc13800bd8c2ee34056bbbffb78cb1773b9c Verifying Hash Integrity ... crc32+ sha1+ OK Loading ramdisk from 0x91179c24 to 0x86000000 ## Loading fdt from FIT Image at 90000000 ... Using 'linux-1' configuration Verifying Hash Integrity ... OK Trying 'fdt-1' fdt subimage Description: Device tree Created: 2025-09-26 16:53:30 UTC Type: Flat Device Tree Compression: uncompressed Data Start: 0x91694db4 Data Size: 44425 Bytes = 43.4 KiB Architecture: ARM Load Address: 0x88000000 Hash algo: crc32 Hash value: 0897d9d9 Hash algo: sha1 Hash value: b0291f6c79f9eb8fe94ffa11a4f3d868d271fed8 Verifying Hash Integrity ... crc32+ sha1+ OK Loading fdt from 0x91694db4 to 0x88000000 Booting using the fdt blob at 0x88000000 Working FDT set to 88000000 Loading Kernel Image to 82000000 Loading Ramdisk to fc9b2000, end fcecd088 ... OK Loading Device Tree to 00000000fc9a4000, end 00000000fc9b1d88 ... OK Working FDT set to fc9a4000 Starting kernel ...
Edit: I realized the issue could be with my bootargs; here are my bootargs. They work correctly when booting using `booti` or `bootm`
=> setenv bootargs "console=${console} earlycon=${earlycon} root=LABEL=rootfs ro rootwait panic=${panic} loglevel=${loglevel} ${fsck_args} ${recovery_args} ${optargs}" => echo $bootargs console=ttyS2,115200n8 earlycon=ns16550a,mmio32,0x02800000 root=LABEL=rootfs ro rootwait panic=60 loglevel=4 fsck.mode=auto fsck.repair=yes