qoriq: use FIT uImage for Firebox M300 kernel
authorStijn Tintel <stijn@linux-ipv6.be>
Tue, 26 Apr 2022 15:21:11 +0000 (18:21 +0300)
committerStijn Tintel <stijn@linux-ipv6.be>
Tue, 14 Jun 2022 09:06:31 +0000 (12:06 +0300)
This requires U-Boot environment changes:

  setenv OpenWrt_kernel watchguard_firebox-m300-fit-uImage.itb
  setenv loadaddr 0x20000000
  setenv wgBootSysA 'setenv bootargs root=/dev/mmcblk0p2 rw rootdelay=2 console=$consoledev,$baudrate fsl_dpaa_fman.fsl_fm_max_frm=1530; mmc dev 0; ext2load mmc 0:1 $loadaddr $OpenWrt_kernel; bootm $loadaddr'

Trying to sysupgrade an image containing this change on an M300 already
running OpenWrt will fail with the following error:

  Tue Jun 14 12:06:21 EEST 2022 upgrade: The device is supported, but the config is incompatible to the new image (1.0->1.1). Please upgrade without keeping config (sysupgrade -n).
  Tue Jun 14 12:06:21 EEST 2022 upgrade: Kernel switched to FIT uImage. Update U-Boot environment.
  Tue Jun 14 12:06:21 EEST 2022 upgrade: Reading partition table from bootdisk...
  Tue Jun 14 12:06:21 EEST 2022 upgrade: Extract boot sector from the image
  Tue Jun 14 12:06:21 EEST 2022 upgrade: Reading partition table from image...
  Image check failed.

This is to prevent rendering your device unbootable. Make the U-Boot
environment changes as instruced above, and then flash the image using
sysupgrade -F. The config can be kept, there is no need to use -n.

After the new image booted successfully, you can increase the compat_version:

  uci set system.@system[0].compat_version='1.1'
  uci commit

Signed-off-by: Stijn Tintel <stijn@linux-ipv6.be>
target/linux/qoriq/image/generic.mk

index 0d7f5e4c10735d24198ef7f2bfb3e4b1fa7d7ef3..b8ffc69ba09db0ebdb15d9eaac4dec76fed561b2 100644 (file)
@@ -1,10 +1,14 @@
 define Device/watchguard_firebox-m300
   DEVICE_VENDOR := WatchGuard
   DEVICE_MODEL := Firebox M300
+  DEVICE_COMPAT_MESSAGE := \
+       Kernel switched to FIT uImage. Update U-Boot environment.
+  DEVICE_COMPAT_VERSION := 1.1
   DEVICE_DTS_DIR := $(DTS_DIR)/fsl
   DEVICE_PACKAGES := \
        kmod-hwmon-w83793 kmod-ptp-qoriq kmod-rtc-rs5c372a kmod-tpm-i2c-atmel
-  KERNEL := kernel-bin | gzip | uImage gzip
+  KERNEL := kernel-bin | gzip | fit gzip $$(KDIR)/image-$$(firstword $$(DEVICE_DTS)).dtb
+  KERNEL_SUFFIX := -fit-uImage.itb
   IMAGES := sdcard.img.gz sysupgrade.img.gz
   IMAGE/sysupgrade.img.gz :=  sdcard-img | gzip | append-metadata
   IMAGE/sdcard.img.gz := sdcard-img | gzip