And some breadcrumbs for search engines:
Original error:
Code: Select all
=> ext2load mmc 0:1 42000000 boot/uImage
8319736 bytes read in 346 ms (22.9 MiB/s)
=> bootm 42000000
## Booting kernel from Legacy Image at 42000000 ...
Image Name: Linux-5.15.158-gentoo
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 8319672 Bytes = 7.9 MiB
Load Address: 42000000
Entry Point: 42000000
Verifying Checksum ... OK
Working FDT set to 0
Loading Kernel Image to 42000000
FDT and ATAGS support not compiled in
resetting ...
Code: Select all
FDT and ATAGS support not compiled in
is a bit misleading, the real error is not passing a device tree address. I did the steps in my first post then booted with:
Code: Select all
=> ext2load mmc 0:1 43000000 boot/sun8i-h2-plus-orangepi-zero.dtb
23240 bytes read in 3 ms (7.4 MiB/s)
=> setenv bootargs "console=ttyS0,115200n8 root=/dev/mmcblk0p1 rw rootfstype=ext4 mem=512M loglevel=7 single init=/bin/bash"
=> ext2load mmc 0:1 42000000 boot/uImage
8319736 bytes read in 346 ms (22.9 MiB/s)
=> bootm 42000000 - 43000000
## Booting kernel from Legacy Image at 42000000 ...
Image Name: Linux-5.15.158-gentoo
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 8319672 Bytes = 7.9 MiB
Load Address: 42000000
Entry Point: 42000000
Verifying Checksum ... OK
## Flattened Device Tree blob at 43000000
Booting using the fdt blob at 0x43000000
Working FDT set to 43000000
Loading Kernel Image to 42000000
Loading Device Tree to 49ff7000, end 49fffac7 ... OK
Working FDT set to 49ff7000
Starting kernel ...
[ 0.000000] Booting Linux on physical CPU 0x0
The 3 args to the `bootm` U-Boot command are the address the kernel was loaded into, the initrd address (- in this case as I'm not using a initrd), and the address the dtb blob was loaded into. Note these addresses are device specific, on the SBC I'm booting 0x4000:0000 - 0xBFFF:FFFF is RAM.