image: add recipe for legacy multiple images
authorRobert Marko <robimarko@gmail.com>
Wed, 26 Jun 2024 16:52:29 +0000 (18:52 +0200)
committerRobert Marko <robimarko@gmail.com>
Tue, 9 Jul 2024 10:33:17 +0000 (12:33 +0200)
Asus RT-AX89X has modded U-Boot that boots FIT images fine when manually
using bootm command, however once the image is flashed and device boots via
the default bootcmd it only supports booting via legacy images.

More precisely, it requires the "multi" image format with:
1. kernel
2. ramdisk
3. DTB

So, lets add a recipe based on the existing uImage one.

Link: https://github.com/openwrt/openwrt/pull/15840
Signed-off-by: Robert Marko <robimarko@gmail.com>
include/image-commands.mk

index 04213a3be872ca2d7aceb18b74b44fb14b26eeb9..cb899a2f304ed498c18ab21578904a01fafa9325 100644 (file)
@@ -701,6 +701,23 @@ define Build/uImage
        mv $@.new $@
 endef
 
+define Build/multiImage
+       $(if $(UIMAGE_TIME),SOURCE_DATE_EPOCH="$(UIMAGE_TIME)") \
+       mkimage \
+               -A $(LINUX_KARCH) \
+               -O linux \
+               -T multi \
+               -C $(word 1,$(1)) \
+               -a $(KERNEL_LOADADDR) \
+               -e $(if $(KERNEL_ENTRY),$(KERNEL_ENTRY),$(KERNEL_LOADADDR)) \
+               -n '$(if $(UIMAGE_NAME),$(UIMAGE_NAME),$(call toupper,$(LINUX_KARCH)) $(VERSION_DIST) Linux-$(LINUX_VERSION))' \
+               $(if $(UIMAGE_MAGIC),-M $(UIMAGE_MAGIC)) \
+               -d $@:$(word 2,$(1)):$(word 3,$(1)) \
+               $(wordlist 4,$(words $(1)),$(1)) \
+               $@.new
+       mv $@.new $@
+endef
+
 define Build/xor-image
        $(STAGING_DIR_HOST)/bin/xorimage -i $@ -o $@.xor $(1)
        mv $@.xor $@