mxs: fix image generation for I2SE Duckbills
authorMichael Heimpold <mhei@heimpold.de>
Sun, 15 Sep 2024 08:39:40 +0000 (10:39 +0200)
committerZoltan HERPAI <wigyori@uid0.hu>
Wed, 5 Feb 2025 21:00:09 +0000 (22:00 +0100)
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@heimpold.de>
target/linux/mxs/image/Makefile

index b95409741ab4a1b620c9747de2cbd9a43b5a3f10..6fd832a9f4339ec11ecfde09f3e934667879170a 100644 (file)
@@ -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-nf-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