image: allow building FIT and uImage with ramdisk
[openwrt/staging/jow.git] / include / image-commands.mk
index 3377680a0715f4301d47599b366d49285c243e22..d4ec51ca7cd0578510cbf846c9fff3df6fc076be 100644 (file)
@@ -196,11 +196,22 @@ define Build/eva-image
        mv $@.new $@
 endef
 
+define Build/initrd_compression
+       $(if $(CONFIG_TARGET_INITRAMFS_COMPRESSION_BZIP2),.bzip2) \
+       $(if $(CONFIG_TARGET_INITRAMFS_COMPRESSION_GZIP),.gzip) \
+       $(if $(CONFIG_TARGET_INITRAMFS_COMPRESSION_LZMA),.lzma) \
+       $(if $(CONFIG_TARGET_INITRAMFS_COMPRESSION_XZ),.xz) \
+       $(if $(CONFIG_TARGET_INITRAMFS_COMPRESSION_ZSTD),.zstd)
+endef
+
 define Build/fit
        $(TOPDIR)/scripts/mkits.sh \
                -D $(DEVICE_NAME) -o $@.its -k $@ \
                $(if $(word 2,$(1)),-d $(word 2,$(1))) -C $(word 1,$(1)) \
                $(if $(findstring with-rootfs,$(word 3,$(1))),-r $(IMAGE_ROOTFS)) \
+               $(if $(findstring with-initrd,$(word 3,$(1))), \
+                       $(if $(CONFIG_TARGET_ROOTFS_INITRAMFS_SEPERATE), \
+                               -i $(KERNEL_BUILD_DIR)/initrd.cpio$(strip $(call Build/initrd_compression)))) \
                -a $(KERNEL_LOADADDR) -e $(if $(KERNEL_ENTRY),$(KERNEL_ENTRY),$(KERNEL_LOADADDR)) \
                $(if $(DEVICE_FDT_NUM),-n $(DEVICE_FDT_NUM)) \
                -c $(if $(DEVICE_DTS_CONFIG),$(DEVICE_DTS_CONFIG),"config@1") \
@@ -450,6 +461,22 @@ define Build/uImage
        mv $@.new $@
 endef
 
+define Build/uImage-with-ramdisk
+       mkimage \
+               -A $(LINUX_KARCH) \
+               -O linux \
+               -T kernel \
+               -C $(word 1,$(1)) \
+               -a $(KERNEL_LOADADDR) \
+               -e $(if $(KERNEL_ENTRY),$(KERNEL_ENTRY),$(KERNEL_LOADADDR)) \
+               -i $(KERNEL_BUILD_DIR)/initrd.cpio.$(strip $(call Build/initrd_compression)) \
+               -n '$(if $(UIMAGE_NAME),$(UIMAGE_NAME),$(call toupper,$(LINUX_KARCH)) $(VERSION_DIST) Linux-$(LINUX_VERSION))' \
+               $(if $(UIMAGE_MAGIC),-M $(UIMAGE_MAGIC)) \
+               $(wordlist 2,$(words $(1)),$(1)) \
+               -d $@ $@.new
+       mv $@.new $@
+endef
+
 define Build/xor-image
        $(STAGING_DIR_HOST)/bin/xorimage -i $@ -o $@.xor $(1)
        mv $@.xor $@