[PATCH] mxs: fix image generation for I2SE Duckbills

Michael Heimpold mhei at heimpold.de
Sun Sep 15 01:51:27 PDT 2024


The standard U-Boot boot scripts for Duckbills expect the
Linux kernel and device tree files installed below /boot
within the (ext4) root filesystem.
Also a raw zImage is expected instead of uImage.

Extend the SD card generation accordingly and while at,
install all possible Duckbill DT blobs there.

Signed-off-by: Michael Heimpold <mhei at heimpold.de>
---
 target/linux/mxs/image/Makefile | 29 ++++++++++++++++++++++++++---
 1 file changed, 26 insertions(+), 3 deletions(-)

diff --git a/target/linux/mxs/image/Makefile b/target/linux/mxs/image/Makefile
index fff7e7ca3325..468eca324879 100644
--- a/target/linux/mxs/image/Makefile
+++ b/target/linux/mxs/image/Makefile
@@ -10,11 +10,33 @@ FAT32_BLOCKS=$(shell echo $$(($(CONFIG_MXS_SD_BOOT_PARTSIZE)*1024*1024/$(FAT32_B
 
 KERNEL_LOADADDR:=0x40008000
 
+define Build/mxs-ext4-rootfs-with-boot
+	rm -rf $(call mkfs_target_dir,$(1))/boot
+	mkdir -p $(call mkfs_target_dir,$(1))/boot
+	$(CP) --no-preserve=mode $(KDIR)/$(KERNEL_NAME) $(call mkfs_target_dir,$(1))/boot/
+	$(foreach dts,$(DEVICE_DTS), \
+		$(CP) \
+			$(DTS_DIR)/$(dts).dtb \
+			$(call mkfs_target_dir,$(1))/boot/; \
+	)
+
+	rm -rf $@.rootfs
+	$(STAGING_DIR_HOST)/bin/make_ext4fs -L rootfs \
+		-l $(ROOTFS_PARTSIZE) -b $(CONFIG_TARGET_EXT4_BLOCKSIZE) \
+		$(if $(CONFIG_TARGET_EXT4_RESERVED_PCT),-m $(CONFIG_TARGET_EXT4_RESERVED_PCT)) \
+		$(if $(CONFIG_TARGET_EXT4_JOURNAL),,-J) \
+		$(if $(SOURCE_DATE_EPOCH),-T $(SOURCE_DATE_EPOCH)) \
+		$@.rootfs $(call mkfs_target_dir,$(1))/
+	mv $@.rootfs $@
+endef
+
 define Build/mxs-sdcard-ext4-ext4
+	mv $@ $@.rootfs
+
 	./gen_sdcard_ext4_ext4.sh \
 		$@ \
 		$(STAGING_DIR_IMAGE)/$(DEVICE_NAME)/u-boot.sb \
-		$(IMAGE_ROOTFS) \
+		$@.rootfs \
 		$(CONFIG_TARGET_ROOTFS_PARTSIZE)
 endef
 
@@ -50,8 +72,9 @@ define Device/i2se_duckbill
 		     uboot-envtools kmod-leds-gpio -kmod-ipt-nathelper
   SUPPORTED_DEVICES:=i2se,duckbill
   SOC:=imx28
-  DEVICE_DTS:=imx28-duckbill
-  IMAGE/sdcard.img.gz = mxs-sdcard-ext4-ext4 | append-metadata | gzip
+  KERNEL := kernel-bin
+  DEVICE_DTS:=imx28-duckbill imx28-duckbill-2 imx28-duckbill-2-485 imx28-duckbill-2-spi
+  IMAGE/sdcard.img.gz = mxs-ext4-rootfs-with-boot | mxs-sdcard-ext4-ext4 | append-metadata | gzip
 endef
 TARGET_DEVICES += i2se_duckbill
 
-- 
2.34.1




More information about the openwrt-devel mailing list