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 <m...@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


_______________________________________________
openwrt-devel mailing list
openwrt-devel@lists.openwrt.org
https://lists.openwrt.org/mailman/listinfo/openwrt-devel

Reply via email to