Bootargs received by a uImage but not by a FIT

Richard Thanki richardthanki at gmail.com
Mon Dec 6 19:47:54 CET 2021


Hi all, I’m reaching out on this list as my problem spans U-Boot and Openwrt. In essence the very same kernel (5.4 and 5.10 - built using latest Openwrt), packaged in a FIT, is not receiving bootlogs from latest U-Boot and it’s also not being informed of the presence of the location and existence of an external initramfs. I suspect the issue is with my packaging, or Openwrt, but I wondered if there were any subtleties of how bootargs might be being passed differently between both types of image container? Why might this happen from a U-Boot perspective?

Rich

PS. The details of my issue are set out below in my post to the OpenWrt forum.

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 at 18020000
stdin=uart at 18020000
stdout=uart at 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 at 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 at 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 at 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 at 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:

```
/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!


More information about the U-Boot mailing list