Hi all, I'm seeing a very odd difference between a single build, deployed on an ath79 device in two different ways. In short, when deployed as an OpenWrt built sysupgrade-squashfs the kernel picks up the command line arguments provided by the bootloader. However, when packaged as a FIT image the kernel does not pick up the bootargs. I think this is why my FIT packed kernel image cannot find the packaged external initramfs.
My device is a very standard ath79 qca9531 board from ZBT - works great on mainline OpenWrt + mainline U-Boot with minimal DTS. I've tried adding my target to both ath79-generic and ath79-tiny targets and the results are the same. It's also the same with kernel 5.4 and 5.10. In each case I'm using mainline U-Boot (which with a few changes works well on QCA9531!).
Steps I've taken
The main patches I've made to OpenWrt are all configuration:
enabling lzma for the external initramfs:
diff --git a/target/linux/ath79/config-5.4 b/target/linux/ath79/config-5.4
index 60f57692e2..8d521e4193 100644
--- a/target/linux/ath79/config-5.4
+++ b/target/linux/ath79/config-5.4
@@ -52,6 +52,7 @@ CONFIG_CPU_SUPPORTS_HIGHMEM=y
CONFIG_CPU_SUPPORTS_MSA=y
CONFIG_CRYPTO_RNG2=y
CONFIG_CSRC_R4K=y
+CONFIG_DECOMPRESS_LZMA=y
CONFIG_DMA_NONCOHERENT=y
CONFIG_DMA_NONCOHERENT_CACHE_SYNC=y
CONFIG_DTC=y
@@ -211,6 +212,7 @@ CONFIG_PHYLIB=y
# CONFIG_PHY_ATH79_USB is not set
CONFIG_PINCTRL=y
CONFIG_RATIONAL=y
+CONFIG_RD_LZMA=y
CONFIG_REGMAP=y
CONFIG_REGMAP_MMIO=y
CONFIG_RESET_ATH79=y
--
2.24.3 (Apple Git-128)
enabling mips kernel to extend the dtb bootargs with those from the bootloader:
diff --git a/target/linux/ath79/config-5.4 b/target/linux/ath79/config-5.4
index 8d521e4193..4898190a02 100644
--- a/target/linux/ath79/config-5.4
+++ b/target/linux/ath79/config-5.4
@@ -158,9 +158,9 @@ CONFIG_MIPS_ASID_BITS=8
CONFIG_MIPS_ASID_SHIFT=0
CONFIG_MIPS_CLOCK_VSYSCALL=y
# CONFIG_MIPS_CMDLINE_BUILTIN_EXTEND is not set
-# CONFIG_MIPS_CMDLINE_DTB_EXTEND is not set
+CONFIG_MIPS_CMDLINE_DTB_EXTEND=y
# CONFIG_MIPS_CMDLINE_FROM_BOOTLOADER is not set
-CONFIG_MIPS_CMDLINE_FROM_DTB=y
+# CONFIG_MIPS_CMDLINE_FROM_DTB is not set
# CONFIG_MIPS_ELF_APPENDED_DTB is not set
CONFIG_MIPS_L1_CACHE_SHIFT=5
# CONFIG_MIPS_NO_APPENDED_DTB is not set
--
2.24.3 (Apple Git-128)
I've even tried backporting this patch http://lkml.iu.edu/hypermail/linux/kernel/2003.2/01736.html to 5.4 and made no difference: the squashfs image picked up the args no problem (even when launched from $loadaddr/0x8100000) and the FIT packaging which doesn't
Here's my u-boot environment:
Environment size: 342/8187 bytes
baudrate=115200
bootargs=foo=bar
bootcmd=sf probe;mtdparts default;bootm 0x9f050000
bootcount=1
bootdelay=3
bootlimit=3
fdtcontroladdr=87f6caa0
ipaddr=192.168.0.234
loadaddr=0x81000000
serverip=192.168.0.6
stderr=uart@18020000
stdin=uart@18020000
stdout=uart@18020000
Here's the bootlog from the squashfs image which picks up the bootargs (ignore the error at the end, image was running from memory):
getbox # bootm 0x81000000
## Booting kernel from Legacy Image at 81000000 ...
Image Name: MIPS OpenWrt Linux-5.4.158
Image Type: MIPS Linux Kernel Image (lzma compressed)
Data Size: 1538183 Bytes = 1.5 MiB
Load Address: 80060000
Entry Point: 80060000
Verifying Checksum ... OK
Uncompressing Kernel Image
[ 0.000000] Linux version 5.4.158 (vscode@d0b09531f99b) (gcc version 8.4.0 (OpenWrt GCC 8.4.0 r0+16397-266890bb12)) #0 Fri Dec 3 10:13:01 2021
[ 0.000000] printk: bootconsole [early0] enabled
[ 0.000000] CPU0 revision is: 00019374 (MIPS 24Kc)
[ 0.000000] MIPS: machine is Jangala Get Box (Tiny)
[ 0.000000] SoC: Qualcomm Atheros QCA9533 ver 2 rev 0
[ 0.000000] Initrd not found or empty - disabling initrd
[ 0.000000] Primary instruction cache 64kB, VIPT, 4-way, linesize 32 bytes.
[ 0.000000] Primary data cache 32kB, 4-way, VIPT, cache aliases, linesize 32 bytes
[ 0.000000] Zone ranges:
[ 0.000000] Normal [mem 0x0000000000000000-0x0000000007ffffff]
[ 0.000000] Movable zone start for each node
[ 0.000000] Early memory node ranges
[ 0.000000] node 0: [mem 0x0000000000000000-0x0000000007ffffff]
[ 0.000000] Initmem setup node 0 [mem 0x0000000000000000-0x0000000007ffffff]
[ 0.000000] Built 1 zonelists, mobility grouping on. Total pages: 32512
[ 0.000000] Kernel command line: console=ttyS0,115200n8, foo=bar rootfstype=squashfs,jffs2
[ 0.000000] Dentry cache hash table entries: 16384 (order: 4, 65536 bytes, linear)
[ 0.000000] Inode-cache hash table entries: 8192 (order: 3, 32768 bytes, linear)
[ 0.000000] Writing ErrCtl register=0003e1f4
[ 0.000000] Readback ErrCtl register=0003e1f4
[ 0.000000] mem auto-init: stack:off, heap alloc:off, heap free:off
[ 0.000000] Memory: 123932K/131072K available (3857K kernel code, 136K rwdata, 576K rodata, 1184K init, 186K bss, 7140K reserved, 0K cma-reserved)
[ 0.000000] SLUB: HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
[ 0.000000] NR_IRQS: 51
[ 0.000000] random: get_random_bytes called from 0x804d8a3c with crng_init=0
[ 0.000000] CPU clock: 660.937 MHz
[ 0.000000] clocksource: MIPS: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 5783483148 ns
[ 0.000010] sched_clock: 32 bits at 330MHz, resolution 3ns, wraps every 6498295806ns
[ 0.008969] Calibrating delay loop... 438.78 BogoMIPS (lpj=877568)
[ 0.047945] pid_max: default: 32768 minimum: 301
[ 0.053352] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes, linear)
[ 0.061766] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes, linear)
[ 0.075468] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 7645041785100000 ns
[ 0.086627] futex hash table entries: 256 (order: -1, 3072 bytes, linear)
[ 0.094441] pinctrl core: initialized pinctrl subsystem
[ 0.101873] NET: Registered protocol family 16
[ 0.140688] workqueue: max_active 576 requested for napi_workq is out of range, clamping between 1 and 512
[ 0.156374] clocksource: Switched to clocksource MIPS
[ 0.163650] NET: Registered protocol family 2
[ 0.168941] IP idents hash table entries: 2048 (order: 2, 16384 bytes, linear)
[ 0.178064] tcp_listen_portaddr_hash hash table entries: 512 (order: 0, 4096 bytes, linear)
[ 0.187618] TCP established hash table entries: 1024 (order: 0, 4096 bytes, linear)
[ 0.196420] TCP bind hash table entries: 1024 (order: 0, 4096 bytes, linear)
[ 0.204387] TCP: Hash tables configured (established 1024 bind 1024)
[ 0.211926] UDP hash table entries: 256 (order: 0, 4096 bytes, linear)
[ 0.219388] UDP-Lite hash table entries: 256 (order: 0, 4096 bytes, linear)
[ 0.227769] NET: Registered protocol family 1
[ 0.232853] PCI: CLS 0 bytes, default 32
[ 0.242929] workingset: timestamp_bits=30 max_order=15 bucket_order=0
[ 0.257879] squashfs: version 4.0 (2009/01/31) Phillip Lougher
[ 0.264612] jffs2: version 2.2 (NAND) (SUMMARY) (LZMA) (RTIME) (CMODE_PRIORITY) (c) 2001-2006 Red Hat, Inc.
[ 0.293902] pinctrl-single 1804002c.pinmux: 576 pins, size 72
[ 0.301879] Serial: 8250/16550 driver, 1 ports, IRQ sharing disabled
[ 0.310236] printk: console [ttyS0] disabled
[ 0.315191] 18020000.uart: ttyS0 at MMIO 0x18020000 (irq = 9, base_baud = 1562500) is a 16550A
[ 0.325127] printk: console [ttyS0] enabled
[ 0.325127] printk: console [ttyS0] enabled
[ 0.334129] printk: bootconsole [early0] disabled
[ 0.334129] printk: bootconsole [early0] disabled
[ 0.363863] spi-nor spi0.0: w25q128 (16384 Kbytes)
[ 0.368872] 6 fixed-partitions partitions found on MTD device spi0.0
[ 0.375449] Creating 6 MTD partitions on "spi0.0":
[ 0.380494] 0x000000000000-0x000000058000 : "u-boot"
[ 0.386916] 0x000000058000-0x00000005a000 : "u-boot-env-a"
[ 0.393892] 0x00000005a000-0x00000005c000 : "u-boot-env-b"
[ 0.401089] 0x00000005c000-0x000000f70000 : "firmware"
[ 0.561029] 0x000000f70000-0x000000ff0000 : "data"
[ 0.567392] 0x000000ff0000-0x000001000000 : "art"
[ 0.574781] libphy: Fixed MDIO Bus: probed
[ 0.901494] ag71xx 19000000.eth: Could not connect to PHY device. Deferring probe.
[ 1.152370] random: fast init done
[ 1.540856] libphy: ag71xx_mdio: probed
[ 1.546569] libphy: ar8xxx-mdio: probed
[ 1.560510] switch0: Atheros AR8229 rev. 1 switch registered on mdio.0
[ 1.608508] ag71xx 1a000000.eth: connected to PHY at fixed-0:00 [uid=00000000, driver=Generic PHY]
[ 1.618740] eth0: Atheros AG71xx at 0xba000000, irq 5, mode: gmii
[ 1.625644] ath79-wdt 18060008.wdt: unable to register misc device, err=-16
[ 1.632917] ath79-wdt: probe of 18060008.wdt failed with error -16
[ 1.642629] NET: Registered protocol family 10
[ 1.654503] Segment Routing with IPv6
[ 1.658589] NET: Registered protocol family 17
[ 1.663658] 8021q: 802.1Q VLAN Support v1.8
[ 1.669437] PCI host bridge /ahb/pcie-controller@180c0000 ranges:
[ 1.675943] MEM 0x0000000010000000..0x0000000013ffffff
[ 1.681362] IO 0x0000000000000000..0x0000000000000000
[ 1.786512] ar724x-pci 180c0000.pcie-controller: PCIe link is down
[ 1.793201] PCI host bridge to bus 0000:00
[ 1.797445] pci_bus 0000:00: root bus resource [mem 0x10000000-0x13ffffff]
[ 1.804597] pci_bus 0000:00: root bus resource [io 0x0000]
[ 1.810426] pci_bus 0000:00: root bus resource [??? 0x00000000 flags 0x0]
[ 1.817387] pci_bus 0000:00: No busn resource found for root bus, will use [bus 00-ff]
[ 1.826685] pci_bus 0000:00: busn_res: [bus 00-ff] end is updated to 00
[ 2.150544] ag71xx 19000000.eth: connected to PHY at mdio.0:1f:04 [uid=004dd042, driver=Generic PHY]
[ 2.161280] eth1: Atheros AG71xx at 0xb9000000, irq 4, mode: mii
[ 2.170278] /dev/root: Can't open blockdev
[ 2.174591] VFS: Cannot open root device "(null)" or unknown-block(0,0): error -6
[ 2.182408] Please append a correct "root=" boot option; here are the available partitions:
[ 2.191029] 1f00 352 mtdblock0
[ 2.191033] (driver?)
[ 2.197810] 1f01 8 mtdblock1
[ 2.197813] (driver?)
[ 2.204667] 1f02 8 mtdblock2
[ 2.204670] (driver?)
[ 2.211365] 1f03 15440 mtdblock3
[ 2.211367] (driver?)
[ 2.218187] 1f04 512 mtdblock4
[ 2.218190] (driver?)
[ 2.225007] 1f05 64 mtdblock5
[ 2.225010] (driver?)
[ 2.231711] Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)
[ 2.240341] Rebooting in 1 seconds..
Here's the full log from the FIT image, note that the bootargs variable foo=bar
isn't reflected in the kernel as it is above:
getbox # bootm $loadaddr
## Loading kernel from FIT Image at 81000000 ...
Using 'base' configuration
Verifying Hash Integrity ... sha384,rsa4096:fit+ OK
Trying 'kernel' kernel subimage
Description: Linux Kernel
Type: Kernel Image
Compression: lzma compressed
Data Start: 0x810000d0
Data Size: 1538370 Bytes = 1.5 MiB
Architecture: MIPS
OS: Linux
Load Address: 0x80060000
Entry Point: 0x80060000
Hash algo: sha384
Hash value: 19e9[...]6ee34
Verifying Hash Integrity ... sha384+ OK
## Loading ramdisk from FIT Image at 81000000 ...
Using 'base' configuration
Verifying Hash Integrity ... sha384,rsa4096:fit+ OK
Trying 'ramdisk' ramdisk subimage
Description: RAMdisk
Type: RAMDisk Image
Compression: uncompressed
Data Start: 0x81177b14
Data Size: 6315702 Bytes = 6 MiB
Architecture: MIPS
OS: Linux
Load Address: unavailable
Entry Point: unavailable
Hash algo: sha384
Hash value: 9621df[...]67af4dd
Verifying Hash Integrity ... sha384+ OK
## Loading fdt from FIT Image at 81000000 ...
Using 'base' configuration
Verifying Hash Integrity ... sha384,rsa4096:fit+ OK
Trying 'fdt' fdt subimage
Description: Flattened Device Tree blob
Type: Flat Device Tree
Compression: lzma compressed
Data Start: 0x8177dabc
Data Size: 2166 Bytes = 2.1 KiB
Architecture: MIPS
Load Address: 0x80f00000
Hash algo: sha384
Hash value: c35[...]9272af
Verifying Hash Integrity ... sha384+ OK
Loading fdt from 0x8177dabc to 0x80f00000
Uncompressing Flat Device Tree
Booting using the fdt blob at 0x80f00000
Uncompressing Kernel Image
Loading Ramdisk to 87964000, end 87f69eb6 ... OK
[ 0.000000] Linux version 5.4.158 (vscode@d0b09531f99b) (gcc version 8.4.0 (OpenWrt GCC 8.4.0 r0+16397-266890bb12)) #0 Fri Dec 3 10:13:01 2021
[ 0.000000] printk: bootconsole [early0] enabled
[ 0.000000] CPU0 revision is: 00019374 (MIPS 24Kc)
[ 0.000000] MIPS: machine is Jangala Get Box (Tiny)
[ 0.000000] SoC: Qualcomm Atheros QCA9533 ver 2 rev 0
[ 0.000000] Initrd not found or empty - disabling initrd
[ 0.000000] Primary instruction cache 64kB, VIPT, 4-way, linesize 32 bytes.
[ 0.000000] Primary data cache 32kB, 4-way, VIPT, cache aliases, linesize 32 bytes
[ 0.000000] Zone ranges:
[ 0.000000] Normal [mem 0x0000000000000000-0x0000000007ffffff]
[ 0.000000] Movable zone start for each node
[ 0.000000] Early memory node ranges
[ 0.000000] node 0: [mem 0x0000000000000000-0x0000000007ffffff]
[ 0.000000] Initmem setup node 0 [mem 0x0000000000000000-0x0000000007ffffff]
[ 0.000000] Built 1 zonelists, mobility grouping on. Total pages: 32512
[ 0.000000] Kernel command line: console=ttyS0,115200n8 rootfstype=squashfs,jffs2
[ 0.000000] Dentry cache hash table entries: 16384 (order: 4, 65536 bytes, linear)
[ 0.000000] Inode-cache hash table entries: 8192 (order: 3, 32768 bytes, linear)
[ 0.000000] Writing ErrCtl register=0003a1f4
[ 0.000000] Readback ErrCtl register=0003a1f4
[ 0.000000] mem auto-init: stack:off, heap alloc:off, heap free:off
[ 0.000000] Memory: 123932K/131072K available (3857K kernel code, 136K rwdata, 576K rodata, 1184K init, 186K bss, 7140K reserved, 0K cma-reserved)
[ 0.000000] SLUB: HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
[ 0.000000] NR_IRQS: 51
[ 0.000000] random: get_random_bytes called from 0x804d8a3c with crng_init=0
[ 0.000000] CPU clock: 656.250 MHz
[ 0.000000] clocksource: MIPS: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 5824793742 ns
[ 0.000010] sched_clock: 32 bits at 328MHz, resolution 3ns, wraps every 6544711678ns
[ 0.009059] Calibrating delay loop... 436.22 BogoMIPS (lpj=872448)
[ 0.048172] pid_max: default: 32768 minimum: 301
[ 0.053603] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes, linear)
[ 0.062053] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes, linear)
[ 0.075864] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 7645041785100000 ns
[ 0.087157] futex hash table entries: 256 (order: -1, 3072 bytes, linear)
[ 0.094976] pinctrl core: initialized pinctrl subsystem
[ 0.102485] NET: Registered protocol family 16
[ 0.141550] workqueue: max_active 576 requested for napi_workq is out of range, clamping between 1 and 512
[ 0.157252] clocksource: Switched to clocksource MIPS
[ 0.164619] NET: Registered protocol family 2
[ 0.169903] IP idents hash table entries: 2048 (order: 2, 16384 bytes, linear)
[ 0.179116] tcp_listen_portaddr_hash hash table entries: 512 (order: 0, 4096 bytes, linear)
[ 0.188716] TCP established hash table entries: 1024 (order: 0, 4096 bytes, linear)
[ 0.197604] TCP bind hash table entries: 1024 (order: 0, 4096 bytes, linear)
[ 0.205622] TCP: Hash tables configured (established 1024 bind 1024)
[ 0.213192] UDP hash table entries: 256 (order: 0, 4096 bytes, linear)
[ 0.220759] UDP-Lite hash table entries: 256 (order: 0, 4096 bytes, linear)
[ 0.229130] NET: Registered protocol family 1
[ 0.234290] PCI: CLS 0 bytes, default 32
[ 0.244384] workingset: timestamp_bits=30 max_order=15 bucket_order=0
[ 0.259475] squashfs: version 4.0 (2009/01/31) Phillip Lougher
[ 0.266209] jffs2: version 2.2 (NAND) (SUMMARY) (LZMA) (RTIME) (CMODE_PRIORITY) (c) 2001-2006 Red Hat, Inc.
[ 0.295772] pinctrl-single 1804002c.pinmux: 576 pins, size 72
[ 0.303785] Serial: 8250/16550 driver, 1 ports, IRQ sharing disabled
[ 0.312240] printk: console [ttyS0] disabled
[ 0.317232] 18020000.uart: ttyS0 at MMIO 0x18020000 (irq = 9, base_baud = 1562500) is a 16550A
[ 0.327212] printk: console [ttyS0] enabled
[ 0.327212] printk: console [ttyS0] enabled
[ 0.336314] printk: bootconsole [early0] disabled
[ 0.336314] printk: bootconsole [early0] disabled
[ 0.365451] spi-nor spi0.0: w25q128 (16384 Kbytes)
[ 0.370557] 6 fixed-partitions partitions found on MTD device spi0.0
[ 0.377121] Creating 6 MTD partitions on "spi0.0":
[ 0.382191] 0x000000000000-0x000000058000 : "u-boot"
[ 0.388723] 0x000000058000-0x00000005a000 : "u-boot-env-a"
[ 0.395725] 0x00000005a000-0x00000005c000 : "u-boot-env-b"
[ 0.402860] 0x00000005c000-0x000000f70000 : "firmware"
[ 0.564110] 0x000000f70000-0x000000ff0000 : "data"
[ 0.570490] 0x000000ff0000-0x000001000000 : "art"
[ 0.578088] libphy: Fixed MDIO Bus: probed
[ 0.902372] ag71xx 19000000.eth: Could not connect to PHY device. Deferring probe.
[ 1.149248] random: fast init done
[ 1.541733] libphy: ag71xx_mdio: probed
[ 1.547374] libphy: ar8xxx-mdio: probed
[ 1.561500] switch0: Atheros AR8229 rev. 1 switch registered on mdio.0
[ 1.609424] ag71xx 1a000000.eth: connected to PHY at fixed-0:00 [uid=00000000, driver=Generic PHY]
[ 1.619754] eth0: Atheros AG71xx at 0xba000000, irq 5, mode: gmii
[ 1.626650] ath79-wdt 18060008.wdt: unable to register misc device, err=-16
[ 1.634103] ath79-wdt: probe of 18060008.wdt failed with error -16
[ 1.643735] NET: Registered protocol family 10
[ 1.655790] Segment Routing with IPv6
[ 1.659809] NET: Registered protocol family 17
[ 1.664920] 8021q: 802.1Q VLAN Support v1.8
[ 1.670765] PCI host bridge /ahb/pcie-controller@180c0000 ranges:
[ 1.677224] MEM 0x0000000010000000..0x0000000013ffffff
[ 1.682638] IO 0x0000000000000000..0x0000000000000000
[ 1.788077] ar724x-pci 180c0000.pcie-controller: PCIe link is down
[ 1.794718] PCI host bridge to bus 0000:00
[ 1.799069] pci_bus 0000:00: root bus resource [mem 0x10000000-0x13ffffff]
[ 1.806319] pci_bus 0000:00: root bus resource [io 0x0000]
[ 1.812075] pci_bus 0000:00: root bus resource [??? 0x00000000 flags 0x0]
[ 1.819179] pci_bus 0000:00: No busn resource found for root bus, will use [bus 00-ff]
[ 1.828511] pci_bus 0000:00: busn_res: [bus 00-ff] end is updated to 00
[ 2.155422] ag71xx 19000000.eth: connected to PHY at mdio.0:1f:04 [uid=004dd042, driver=Generic PHY]
[ 2.166336] eth1: Atheros AG71xx at 0xb9000000, irq 4, mode: mii
[ 2.175257] /dev/root: Can't open blockdev
[ 2.179688] VFS: Cannot open root device "(null)" or unknown-block(0,0): error -6
[ 2.187516] Please append a correct "root=" boot option; here are the available partitions:
[ 2.196198] 1f00 352 mtdblock0
[ 2.196202] (driver?)
[ 2.203117] 1f01 8 mtdblock1
[ 2.203119] (driver?)
[ 2.209879] 1f02 8 mtdblock2
[ 2.209882] (driver?)
[ 2.216733] 1f03 15440 mtdblock3
[ 2.216736] (driver?)
[ 2.223610] 1f04 512 mtdblock4
[ 2.223613] (driver?)
[ 2.230370] 1f05 64 mtdblock5
[ 2.230372] (driver?)
[ 2.237266] Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)
[ 2.245850] Rebooting in 1 seconds..
my its file is as follows (the kernel image was created by chopping the uimage header from the Owrt image, the rootfs image by taking cpio.gz archive produced by Openwrt and recompressing as lzma) :
/dts-v1/;
/ {
description = "U-Boot fitImage for Jangala Get Box";
#address-cells = <2>;
images {
kernel {
description = "Linux Kernel";
data = /incbin/("getbox-v1-kernel.bin");
type = "kernel";
arch = "mips";
os = "linux";
compression = "lzma";
load = <0x80060000>;
entry = <0x80060000>;
hash-1 {
algo = "sha384";
};
};
ramdisk {
description = "RAMdisk";
data = /incbin/("getbox-v1-initramfs.cpio.lzma");
type = "ramdisk";
arch = "mips";
os = "linux";
compression = "none";
hash-1 {
algo = "sha384";
};
};
fdt {
description = "Flattened Device Tree blob";
data = /incbin/("getbox-v1-dtb.bin.lzma");
type = "flat_dt";
arch = "mips";
compression = "lzma";
load = <0x80f00000>;
hash-1 {
algo = "sha384";
};
};
};
configurations {
default = "base";
base {
description = "Boot Linux kernel with initramfs, fdt";
kernel = "kernel";
ramdisk = "ramdisk";
fdt = "fdt";
signature-1 {
algo = "sha384,rsa4096";
key-name-hint = "fit";
sign-images = "kernel", "fdt", "ramdisk";
};
};
};
};
At first I thought this was related to the measures OpenWrt takes to cope with malformed bootloaders but the DTB_EXTEND kernel option works when packaged as squashfs but not when as a ft image. I'm really stuck and would appreciate some hints!