diff --git a/airoha/image/Makefile b/airoha/image/Makefile
index d654b57f7f136037f9d123b134a73be47ab14a6e..b1a4fa8369f72b3e95d6fcadc2e64822f4df15a7 100755
--- a/airoha/image/Makefile
+++ b/airoha/image/Makefile
@@ -18,7 +18,7 @@ endef
 define Device/Default-airoha-emmc
   $(Device/emmc)
   BLOCKSIZE := 512
-  IMAGE/.img := append-uboot-nand | pad-to 2M | append_emmc_production_env_and_sw
+  IMAGE/.img := append-uboot-nand | pad-to 2M | append_emmc_production_env_and_sw $$(KDIR_TMP)/$$(DEVICE_IMG_PREFIX)-squashfs-kernel-fitblk.itb
 endef
 
 define Device/Default-airoha-common
@@ -27,9 +27,9 @@ define Device/Default-airoha-common
   $(Device/Default-airoha-nand)
   PROFILES = Default
   DEVICE_VENDOR := IOPSYS
-  IMAGE/sysupgrade.itb := append-kernel | iowrt-kernel-fit lzma external-static-with-rootfs-with-u-boot-ram | \
-                          iopsys-fit-upgrade-image | iopsys-sign-image | create-last-link -squashfs-sysupgrade.itb last.itb
-  IMAGES := sysupgrade.itb .img
+  IMAGE/sysupgrade.itb := append-image squashfs-kernel-fitblk.itb | iopsys-fit-upgrade-image  | iopsys-sign-image | create-last-link -squashfs-sysupgrade.itb last.itb
+  IMAGE/kernel-fitblk.itb := append-kernel | iowrt-kernel-fit lzma external-static-with-rootfs-with-u-boot-ram
+  IMAGES := kernel-fitblk.itb sysupgrade.itb .img
   KERNEL := kernel-bin | lzma | generate-uboot-images
   KERNEL_INITRAMFS := kernel-bin | lzma | iowrt-kernel-fit lzma external-static-with-initrd
   KERNEL_NAME := vmlinux
diff --git a/airoha/image/iopsys-image-common.mk b/airoha/image/iopsys-image-common.mk
index 87366a7e89d51fb553ee17c9bd3335a56a7b8faf..df86dd96759ded425ef571e27c61197b779805bd 100644
--- a/airoha/image/iopsys-image-common.mk
+++ b/airoha/image/iopsys-image-common.mk
@@ -1,4 +1,5 @@
 define Build/iopsys-fit-upgrade-image
+	echo "Build/iopsys-fit-upgrade-image[$@]: $(1)"
 	@echo Generate filtered U-Boot environment file for sysupgrade
 	$(call iopsys-filter-uboot-env, \
 		"$(STAGING_DIR_IMAGE)/$(UBOOT_TARGET)-env_dump.bin", \
@@ -8,7 +9,7 @@ define Build/iopsys-fit-upgrade-image
 	@echo GenerateUpgradeFIT
 	$(call iopsys-fit-upgrade-image-prepare, $@, \
 		bootloader $(STAGING_DIR_IMAGE)/$(UBOOT_TARGET)-$(DEVICE_NAME)-u-boot-nand.bin \
-		boot $@ \
+		boot $(if $(1),$(1),$@) \
 		u-boot-env $(STAGING_DIR_IMAGE)/$(UBOOT_TARGET)-env_dump_filtered.bin)
 	$(call iopsys-fit-upgrade-image-add-configs-same, $@.its, \
 		compat_versions:"1 0", \
@@ -165,7 +166,7 @@ endef
 define Build/append_emmc_production_env_and_sw
 	echo "Build/emmc_production_env_and_sw[$@]: $(1)"
 	mv $@ $@.bak
-	$(Build/iopsys-fit-upgrade-image)
+	$(call Build/iopsys-fit-upgrade-image,$(1))
 	$(call Build/pad-to,$(BLOCKSIZE))
 	mv $@ $@.sysupgrade.itb
 	mv $@.bak $@