工具/软件:
我正在尝试从合适的映像引导、但内核似乎没有执行。 normal` booti `使用相同的内核和 dtb 工作、所以我知道我的内核和 dtb 很好。
以下是我的 FIT 来源:
/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"
下面是 u-boot 输出:
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 optee.readthedocs.io/.../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 ...
编辑:我意识到问题可能与我的引导参数有关;这里是我的引导参数。 当使用`booti`或`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