layerscape: Change to combined rootfs on sd images
authorPawel Dembicki <paweldembicki@gmail.com>
Mon, 24 Aug 2020 12:29:32 +0000 (14:29 +0200)
committerAdrian Schmutzler <freifunk@adrianschmutzler.de>
Sun, 25 Oct 2020 23:40:12 +0000 (00:40 +0100)
At this moment layerscape images are ext4 only. It causes problem with
save changes durring sysupgrade and make "firstboot" and failsafe mode
useless.

This patch changes sd-card images to squashfs + f2fs combined images.
To make place, for saving config, kernel space ar now ext4 partition
with fit kernel.

This method of image generation is similar to rest of OpenWrt sd-card
targets.

Reviewed-by: Yangbo Lu <yangbo.lu@nxp.com>
Signed-off-by: Pawel Dembicki <paweldembicki@gmail.com>
[reword README, reword DEVICE_COMPAT_MESSAGE, keep original indent]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
17 files changed:
package/boot/uboot-layerscape/files/fsl_ls1012a-frwy-sdboot-uEnv.txt
package/boot/uboot-layerscape/files/fsl_ls1021a-iot-sdboot-uEnv.txt
package/boot/uboot-layerscape/files/fsl_ls1021a-twr-sdboot-uEnv.txt
package/boot/uboot-layerscape/files/fsl_ls1043a-rdb-sdboot-uEnv.txt
package/boot/uboot-layerscape/files/fsl_ls1046a-rdb-sdboot-uEnv.txt
package/boot/uboot-layerscape/files/fsl_ls1088a-rdb-sdboot-uEnv.txt
target/linux/layerscape/Makefile
target/linux/layerscape/README
target/linux/layerscape/armv7/config-5.4
target/linux/layerscape/armv8_64b/config-5.4
target/linux/layerscape/base-files/etc/uci-defaults/05_fix-compat-version
target/linux/layerscape/base-files/lib/preinit/79_move_config [new file with mode: 0644]
target/linux/layerscape/base-files/lib/upgrade/platform.sh
target/linux/layerscape/image/Makefile
target/linux/layerscape/image/armv7.mk
target/linux/layerscape/image/armv8_64b.mk
target/linux/layerscape/image/gen_sdcard_head_img.sh

index 31178df6909ca208dad39ed14b4d358c07dde074..1fcd769dc96afd0d8ee180c1ad328cb866e125f4 100644 (file)
@@ -1,8 +1,8 @@
 fdtaddr=0x8f000000
 loadaddr=0x81000000
-fdt_high=0xffffffffffffffff
+fdt_high=0x8fffffff
 initrd_high=0xffffffffffffffff
-sd_boot=mmc read $fdtaddr 7800 800;mmc read $loadaddr 8000 8000;bootm $loadaddr - $fdtaddr
-bootargs=root=/dev/mmcblk0p1 rw rootwait rootfstype=ext4 noinitrd earlycon=uart8250,mmio,0x21c0500 console=ttyS0,115200
+sd_boot=ext4load mmc 0:1 $loadaddr fitImage;bootm $loadaddr
+bootargs=root=/dev/mmcblk0p2 rw rootwait rootfstype=squashfs,f2fs noinitrd earlycon=uart8250,mmio,0x21c0500 console=ttyS0,115200
 bootcmd=echo starting openwrt ...;pfe stop;run sd_boot
 bootdelay=3
index 7772daa10001839b4581b85c85c811bd9ade3ebf..ed8661bc6efa83d08bb62dd2694241a976949fd4 100644 (file)
@@ -1,8 +1,8 @@
 fdtaddr=0x8f000000
 loadaddr=0x81000000
-fdt_high=0xffffffff
+fdt_high=0x8fffffff
 initrd_high=0xffffffff
-sd_boot=mmc read ${fdtaddr} 7800 800;mmc read ${loadaddr} 8000 8000;bootm ${loadaddr} - ${fdtaddr}
-bootargs=root=/dev/mmcblk0p1 rw rootwait rootfstype=ext4 noinitrd earlycon=uart8250,mmio,0x21c0500 console=ttyS0,115200
+sd_boot=ext4load mmc 0:1 $loadaddr fitImage;bootm $loadaddr
+bootargs=root=/dev/mmcblk0p2 rw rootwait rootfstype=squashfs,f2fs noinitrd earlycon=uart8250,mmio,0x21c0500 console=ttyS0,115200
 bootcmd=echo starting openwrt ...;run sd_boot
 bootdelay=3
index da286a24ae56b371e67839bc6ccf08377e33a48c..ed8661bc6efa83d08bb62dd2694241a976949fd4 100644 (file)
@@ -1,8 +1,8 @@
 fdtaddr=0x8f000000
 loadaddr=0x81000000
-fdt_high=0xffffffff
+fdt_high=0x8fffffff
 initrd_high=0xffffffff
-sd_boot=mmc read $fdtaddr 7800 800;mmc read $loadaddr 8000 8000;bootm $loadaddr - $fdtaddr
-bootargs=root=/dev/mmcblk0p1 rw rootwait rootfstype=ext4 noinitrd earlycon=uart8250,mmio,0x21c0500 console=ttyS0,115200 cma=64M@0x0-0xb0000000
+sd_boot=ext4load mmc 0:1 $loadaddr fitImage;bootm $loadaddr
+bootargs=root=/dev/mmcblk0p2 rw rootwait rootfstype=squashfs,f2fs noinitrd earlycon=uart8250,mmio,0x21c0500 console=ttyS0,115200
 bootcmd=echo starting openwrt ...;run sd_boot
 bootdelay=3
index c1596b506a02adde1567603708a1c1d39f369c37..6034033876333bafacd16eb0e5d02ee6d77aa802 100644 (file)
@@ -1,9 +1,9 @@
 fdtaddr=0x8f000000
 loadaddr=0x81000000
-fdt_high=0xffffffffffffffff
+fdt_high=0x8fffffff
 initrd_high=0xffffffffffffffff
 hwconfig=fsl_ddr:bank_intlv=auto
-sd_boot=mmc read $fdtaddr 7800 800;mmc read $loadaddr 8000 8000;bootm $loadaddr - $fdtaddr
-bootargs=root=/dev/mmcblk0p1 rw rootwait rootfstype=ext4 noinitrd earlycon=uart8250,mmio,0x21c0500 console=ttyS0,115200
+sd_boot=ext4load mmc 0:1 $loadaddr fitImage;bootm $loadaddr
+bootargs=root=/dev/mmcblk0p2 rw rootwait rootfstype=squashfs,f2fs noinitrd earlycon=uart8250,mmio,0x21c0500 console=ttyS0,115200
 bootcmd=echo starting openwrt ...;run sd_boot
 bootdelay=3
index c1596b506a02adde1567603708a1c1d39f369c37..6034033876333bafacd16eb0e5d02ee6d77aa802 100644 (file)
@@ -1,9 +1,9 @@
 fdtaddr=0x8f000000
 loadaddr=0x81000000
-fdt_high=0xffffffffffffffff
+fdt_high=0x8fffffff
 initrd_high=0xffffffffffffffff
 hwconfig=fsl_ddr:bank_intlv=auto
-sd_boot=mmc read $fdtaddr 7800 800;mmc read $loadaddr 8000 8000;bootm $loadaddr - $fdtaddr
-bootargs=root=/dev/mmcblk0p1 rw rootwait rootfstype=ext4 noinitrd earlycon=uart8250,mmio,0x21c0500 console=ttyS0,115200
+sd_boot=ext4load mmc 0:1 $loadaddr fitImage;bootm $loadaddr
+bootargs=root=/dev/mmcblk0p2 rw rootwait rootfstype=squashfs,f2fs noinitrd earlycon=uart8250,mmio,0x21c0500 console=ttyS0,115200
 bootcmd=echo starting openwrt ...;run sd_boot
 bootdelay=3
index 2d27f7eb05279b6d85e0c77e6d3227b51cdd96ee..b25e9c8ee70bed3cb6ce0b072cf30c4cb216c58b 100644 (file)
@@ -4,7 +4,7 @@ fdt_high=0xa0000000
 initrd_high=0xffffffffffffffff
 hwconfig=fsl_ddr:bank_intlv=auto
 mc_init=mmc read 80000000 5000 1800;mmc read 80300000 7000 800;fsl_mc start mc 80000000 80300000;mmc read 80400000 6800 800;fsl_mc apply dpl 80400000
-sd_boot=mmc read $fdtaddr 7800 800;mmc read $loadaddr 8000 8000;bootm $loadaddr - $fdtaddr
-bootargs=root=/dev/mmcblk0p1 rw rootwait rootfstype=ext4 noinitrd earlycon=uart8250,mmio,0x21c0500 console=ttyS0,115200
+sd_boot=ext4load mmc 0:1 $loadaddr fitImage;bootm $loadaddr
+bootargs=root=/dev/mmcblk0p2 rw rootwait rootfstype=squashfs,f2fs noinitrd earlycon=uart8250,mmio,0x21c0500 console=ttyS0,115200
 bootcmd=echo starting openwrt ...;run mc_init;run sd_boot
 bootdelay=3
index c5b27ad0c7c33adafe4dda551888f0186dcfd7d2..90307478232732d1072eb2513a2c9ee4ddb452f6 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 BOARD:=layerscape
 BOARDNAME:=NXP Layerscape
 KERNEL_PATCHVER:=5.4
-FEATURES:=squashfs nand usb pcie gpio fpu ubifs ext4
+FEATURES:=squashfs nand usb pcie gpio fpu ubifs ext4 rootfs-part boot-part
 SUBTARGETS:=armv8_64b armv7
 
 define Target/Description
@@ -19,6 +19,6 @@ endef
 include $(INCLUDE_DIR)/target.mk
 
 DEFAULT_PACKAGES += kmod-usb3 kmod-usb-dwc3 kmod-usb-storage \
-  partx-utils
+  mkf2fs e2fsprogs partx-utils
 
 $(eval $(call BuildTarget))
index 8cbf05bd15aed710689aee54ba0ef94162f60aa2..4bade4a9c038ba62c0d76e00879217e5b04eb395 100644 (file)
@@ -39,13 +39,14 @@ $ ./scripts/feeds install -a
 * Final firmware/image
   Path: bin/targets/layerscape/<subtarget>/
   Firmware for flash: openwrt-layerscape-<subtarget>-<device>-<rootfs>-firmware.bin
-  Image for SD card: openwrt-layerscape-<subtarget>-<device>-<rootfs>-sdcard.img
+  Image for SD card: openwrt-layerscape-<subtarget>-<device>-<rootfs>-sdcard.img.gz
+  Sysupgrade images: openwrt-layerscape-<subtarget>-<device>-<rootfs>-sysupgrade.bin
 
 
 3. Program NOR/QSPI flash or SD card
 ------------------------------------
-The firmware.bin or sdcard.img is an all-in-one image including all things for
-OpenWrt staring up. (except LS1012AFRWY. Refer to 3.3.)
+The firmware.bin or sdcard.img (after extract from gz) is an all-in-one image including all
+things for OpenWrt staring up. (except LS1012AFRWY. Refer to 3.3.)
 If you want to install all things into flash, please use firmware.bin.
 If you want to install all things into SD card, please use sdcard.img.
 
@@ -53,7 +54,7 @@ If you want to install all things into SD card, please use sdcard.img.
 ---------------------------------
 sdcard.img could be programmed to SD card in either u-boot environment
 or linux environment. After programming, configure the board to boot
-from SD card.
+from SD card. (sdcard.img images are gz-iped to save space. Please extract them first.)
 
 * u-boot environment
 
index 56a6dfd913b3f31187858afa05b4ffc1b699c60c..1b969afd859370d82003e4959aa8389ef360197c 100644 (file)
@@ -242,6 +242,9 @@ CONFIG_EVENT_TRACING=y
 CONFIG_EXT4_FS=y
 CONFIG_EXT4_FS_POSIX_ACL=y
 CONFIG_EXT4_FS_SECURITY=y
+CONFIG_F2FS_FS=y
+CONFIG_F2FS_FS_XATTR=y
+CONFIG_F2FS_STAT_FS=y
 CONFIG_FAILOVER=y
 CONFIG_FAT_FS=y
 # CONFIG_FEC is not set
index 311f2eee84b82f2eb962aff8ad92e6689a21ee03..6da7ff01a553fa208a42eba8cb1af37953ae840a 100644 (file)
@@ -266,6 +266,9 @@ CONFIG_EXT4_FS_POSIX_ACL=y
 CONFIG_EXT4_FS_SECURITY=y
 CONFIG_EXTCON=y
 CONFIG_EXTCON_USB_GPIO=y
+CONFIG_F2FS_FS=y
+CONFIG_F2FS_FS_XATTR=y
+CONFIG_F2FS_STAT_FS=y
 CONFIG_FAILOVER=y
 CONFIG_FANOTIFY=y
 CONFIG_FAT_FS=y
index 923f4ac27392ca0bc1034024cb6f7545c877f72d..6cd137af9a851f51c9df84a80c5162455e66fb06 100644 (file)
@@ -5,11 +5,17 @@
 . /lib/functions.sh
 
 case "$(board_name)" in
+       fsl,ls1012a-frwy-sdboot | \
        fsl,ls1012a-rdb | \
+       fsl,ls1021a-iot-sdboot | \
        fsl,ls1021a-twr | \
+       fsl,ls1021a-twr-sdboot | \
        fsl,ls1043a-rdb | \
+       fsl,ls1043a-rdb-sdboot | \
        fsl,ls1046a-rdb | \
+       fsl,ls1046a-rdb-sdboot | \
        fsl,ls1088a-rdb | \
+       fsl,ls1088a-rdb-sdboot | \
        fsl,ls2088a-rdb)
                uci set system.@system[0].compat_version="2.0"
                uci commit system
diff --git a/target/linux/layerscape/base-files/lib/preinit/79_move_config b/target/linux/layerscape/base-files/lib/preinit/79_move_config
new file mode 100644 (file)
index 0000000..d691fa9
--- /dev/null
@@ -0,0 +1,26 @@
+. /lib/functions.sh
+. /lib/upgrade/common.sh
+
+BOOTPART=/dev/mmcblk0p1
+
+move_config() {
+       local board=$(board_name)
+
+       case "$board" in
+       fsl,ls1012a-frwy-sdboot | \
+       fsl,ls1021a-iot-sdboot | \
+       fsl,ls1021a-twr-sdboot | \
+       fsl,ls1043a-rdb-sdboot | \
+       fsl,ls1046a-rdb-sdboot | \
+       fsl,ls1088a-rdb-sdboot)
+               if [ -b $BOOTPART ]; then
+                       mkdir -p /boot
+                       mount -t ext4 -o rw,noatime $BOOTPART /boot 2>&1
+                       [ -f "/boot/$BACKUP_FILE" ] && mv -f "/boot/$BACKUP_FILE" /
+                       umount /boot
+               fi
+               ;;
+       esac
+}
+
+boot_hook_add preinit_mount_root move_config
index de01ac46deeda85cea8b5692a7e3bc2ab9dad44a..a8d83de7eaf687d2d3e55b25afff29804cac7de5 100644 (file)
@@ -8,88 +8,28 @@ RAMFS_COPY_DATA="/etc/fw_env.config /var/lock/fw_printenv.lock"
 
 REQUIRE_IMAGE_METADATA=1
 
-platform_check_image_sdboot() {
-       local diskdev partdev diff
-
-       export_bootdevice && export_partdevice diskdev 0 || {
-               echo "Unable to determine upgrade device"
-               return 1
-       }
-
-       # get partitions table from boot device
-       get_partitions "/dev/$diskdev" bootdisk
-
-       # get partitions table from sysupgrade.bin
-       dd if="$1" of=/tmp/image.bs bs=512b count=1 > /dev/null 2>&1
-       sync
-       get_partitions /tmp/image.bs image
-
-       # compare tables
-       diff="$(grep -F -x -v -f /tmp/partmap.bootdisk /tmp/partmap.image)"
-
-       rm -f /tmp/image.bs /tmp/partmap.bootdisk /tmp/partmap.image
-
-       if [ -n "$diff" ]; then
-               echo "Partition layout has changed. Full image will be written."
-               ask_bool 0 "Abort" && exit 1
-               return 0
-       fi
-}
 platform_do_upgrade_sdboot() {
-       local diskdev partdev diff
+       local diskdev partdev parttype=ext4
+       local tar_file="$1"
+       local board_dir=$(tar tf $tar_file | grep -m 1 '^sysupgrade-.*/$')
+       board_dir=${board_dir%/}
 
        export_bootdevice && export_partdevice diskdev 0 || {
                echo "Unable to determine upgrade device"
                return 1
        }
 
-       if [ "$UPGRADE_OPT_SAVE_PARTITIONS" = "1" ]; then
-               # get partitions table from boot device
-               get_partitions "/dev/$diskdev" bootdisk
-
-               # get partitions table from sysupgrade.bin
-               dd if="$1" of=/tmp/image.bs bs=512b count=1 > /dev/null 2>&1
-               sync
-               get_partitions /tmp/image.bs image
-
-               # compare tables
-               diff="$(grep -F -x -v -f /tmp/partmap.bootdisk /tmp/partmap.image)"
-       else
-               diff=1
-       fi
-
-       if [ -n "$diff" ]; then
-               dd if="$1" of="/dev/$diskdev" bs=1024 count=4 > /dev/null 2>&1
-               echo "Writing image to /dev/$diskdev..."
-               dd if="$1" of="/dev/$diskdev" bs=1024 skip=15360 seek=15360 > /dev/null 2>&1
-               sync
-
-               # Separate removal and addtion is necessary; otherwise, partition 1
-               # will be missing if it overlaps with the old partition 2
-               partx -d - "/dev/$diskdev"
-               partx -a - "/dev/$diskdev"
-
-               return 0
+       if export_partdevice partdev 1; then
+               mount -t $parttype -o rw,noatime "/dev/$partdev" /mnt 2>&1
+               echo "Writing kernel..."
+               tar xf $tar_file ${board_dir}/kernel -O > /mnt/fitImage
+               umount /mnt
        fi
 
-       # write dtb
-       echo "Writing dtb to /dev/$diskdev..."
-       dd if="$1" of="/dev/$diskdev" bs=1024 skip=15360 seek=15360 count=1024 > /dev/null 2>&1
-       # write kernel image
-       echo "Writing kernel to /dev/$diskdev..."
-       dd if="$1" of="/dev/$diskdev" bs=1024 skip=16384 seek=16384 count=16384 > /dev/null 2>&1
-       sync
-
-       # iterate over each partition from the image and write it to the boot disk
-       while read part start size; do
-               if export_partdevice partdev $part; then
-                       echo "Writing image to /dev/$partdev..."
-                       dd if="$1" of="/dev/$partdev" bs=512 skip="$start" count="$size" > /dev/null 2>&1
-                       sync
-               else
-                       echo "Unable to find partition $part device, skipped."
-               fi
-       done < /tmp/partmap.image
+       echo "Erasing rootfs..."
+       dd if=/dev/zero of=/dev/mmcblk0p2 bs=1M > /dev/null 2>&1
+       echo "Writing rootfs..."
+       tar xf $tar_file ${board_dir}/root -O  | dd of=/dev/mmcblk0p2 bs=512k > /dev/null 2>&1
 
 }
 platform_do_upgrade_traverse_nandubi() {
@@ -119,6 +59,7 @@ platform_copy_config_sdboot() {
 
        if export_partdevice partdev 1; then
                mount -t $parttype -o rw,noatime "/dev/$partdev" /mnt 2>&1
+               echo "Saving config backup..."
                cp -af "$UPGRADE_BACKUP" "/mnt/$BACKUP_FILE"
                umount /mnt
        fi
@@ -128,6 +69,7 @@ platform_copy_config() {
 
        case "$board" in
        fsl,ls1012a-frwy-sdboot | \
+       fsl,ls1021a-iot-sdboot | \
        fsl,ls1021a-twr-sdboot | \
        fsl,ls1043a-rdb-sdboot | \
        fsl,ls1046a-rdb-sdboot | \
@@ -146,22 +88,20 @@ platform_check_image() {
                return $?
                ;;
        fsl,ls1012a-frdm | \
+       fsl,ls1012a-frwy-sdboot | \
        fsl,ls1012a-rdb | \
+       fsl,ls1021a-iot-sdboot | \
        fsl,ls1021a-twr | \
+       fsl,ls1021a-twr-sdboot | \
        fsl,ls1043a-rdb | \
+       fsl,ls1043a-rdb-sdboot | \
        fsl,ls1046a-rdb | \
+       fsl,ls1046a-rdb-sdboot | \
        fsl,ls1088a-rdb | \
+       fsl,ls1088a-rdb-sdboot | \
        fsl,ls2088a-rdb)
                return 0
                ;;
-       fsl,ls1012a-frwy-sdboot | \
-       fsl,ls1021a-twr-sdboot | \
-       fsl,ls1043a-rdb-sdboot | \
-       fsl,ls1046a-rdb-sdboot | \
-       fsl,ls1088a-rdb-sdboot)
-               platform_check_image_sdboot "$1"
-               return 0
-               ;;
        *)
                echo "Sysupgrade is not currently supported on $board"
                ;;
@@ -192,6 +132,7 @@ platform_do_upgrade() {
                default_do_upgrade "$1"
                ;;
        fsl,ls1012a-frwy-sdboot | \
+       fsl,ls1021a-iot-sdboot | \
        fsl,ls1021a-twr-sdboot | \
        fsl,ls1043a-rdb-sdboot | \
        fsl,ls1046a-rdb-sdboot | \
index 08864b13160a6ae0332080b55df026c8cf18a1f7..bfc4af4ca45ed1c567768ffc95eac8f4067565d4 100644 (file)
@@ -7,13 +7,22 @@
 include $(TOPDIR)/rules.mk
 include $(INCLUDE_DIR)/image.mk
 
+LS_SD_KERNELPART_SIZE = 40
+LS_SD_KERNELPART_OFFSET = 16
 LS_SD_ROOTFSPART_OFFSET = 64
 LS_SD_IMAGE_SIZE = $(shell echo $$((($(LS_SD_ROOTFSPART_OFFSET) + \
-       $(CONFIG_TARGET_ROOTFS_PARTSIZE)) * 1024 * 1024)))
+       $(CONFIG_TARGET_ROOTFS_PARTSIZE)))))
 
 # The limitation of flash sysupgrade.bin is 1MB dtb + 16MB kernel + 32MB rootfs
 LS_SYSUPGRADE_IMAGE_SIZE = 49m
 
+define Image/Prepare
+       # Build .dtb for all boards we may run on
+       $(foreach dts,$(DEVICE_DTS_LIST),
+               $(call Image/BuildDTB,$(DTS_DIR)/$(dts).dts,$(DTS_DIR)/$(dts).dtb)
+       )
+endef
+
 define Build/ls-clean
        rm -f $@
 endef
@@ -23,12 +32,21 @@ define Build/ls-append
 endef
 
 define Build/ls-append-dtb
-       $(call Image/BuildDTB,$(DTS_DIR)/$(1).dts,$(DTS_DIR)/$(1).dtb)
        dd if=$(DTS_DIR)/$(1).dtb >> $@
 endef
 
+define Build/ls-append-kernel
+       mkdir -p $@.tmp && \
+       cp $(IMAGE_KERNEL) $@.tmp/fitImage && \
+       make_ext4fs -J -L kernel -l "$(LS_SD_KERNELPART_SIZE)M" "$@.kernel.part" "$@.tmp" && \
+       dd if=$@.kernel.part >> $@ && \
+       rm -rf $@.tmp && \
+       rm -f $@.kernel.part
+endef
+
 define Build/ls-append-sdhead
        ./gen_sdcard_head_img.sh $(STAGING_DIR_IMAGE)/$(1)-sdcard-head.img \
+               $(LS_SD_KERNELPART_OFFSET) $(LS_SD_KERNELPART_SIZE) \
                $(LS_SD_ROOTFSPART_OFFSET) $(CONFIG_TARGET_ROOTFS_PARTSIZE)
        dd if=$(STAGING_DIR_IMAGE)/$(1)-sdcard-head.img >> $@
 endef
@@ -53,6 +71,12 @@ define Device/fix-sysupgrade
        After that, You can use "sysupgrade -F".
 endef
 
+define Device/rework-sdcard-images
+  DEVICE_COMPAT_VERSION := 2.0
+  DEVICE_COMPAT_MESSAGE := SD-card images were changed to squashfs + ext4 overlay combined images. \
+       It is required to flash the entire sd-card again and manually copy config.
+endef
+
 include $(SUBTARGET).mk
 
 $(eval $(call BuildImage))
index 23bd3e8d82d9443e6567439965269000be5ed12c..46e5cf9395e8f7fe178a064f968d66d6f5ada6b8 100644 (file)
@@ -40,50 +40,40 @@ endef
 TARGET_DEVICES += fsl_ls1021a-twr
 
 define Device/fsl_ls1021a-twr-sdboot
+  $(Device/rework-sdcard-images)
   DEVICE_VENDOR := NXP
   DEVICE_MODEL := TWR-LS1021A
   DEVICE_VARIANT := SD Card Boot
   DEVICE_DTS := ls1021a-twr
-  FILESYSTEMS := ext4
-  IMAGES := sdcard.img sysupgrade.bin
-  IMAGE/sdcard.img := \
+  KERNEL := kernel-bin | gzip | fit gzip $$(DTS_DIR)/$$(DEVICE_DTS).dtb
+  IMAGES := sdcard.img.gz sysupgrade.bin
+  IMAGE/sdcard.img.gz := \
     ls-clean | \
     ls-append-sdhead $(1) | pad-to 4K | \
     ls-append $(1)-uboot.bin | pad-to 3M | \
-    ls-append $(1)-uboot-env.bin | pad-to 15M | \
-    ls-append-dtb $$(DEVICE_DTS) | pad-to 16M | \
-    append-kernel | pad-to $(LS_SD_ROOTFSPART_OFFSET)M | \
-    append-rootfs | check-size $(LS_SD_IMAGE_SIZE)
-  IMAGE/sysupgrade.bin := \
-    ls-clean | \
-    ls-append-sdhead $(1) | pad-to 15M | \
-    ls-append-dtb $$(DEVICE_DTS) | pad-to 16M | \
-    append-kernel | pad-to $(LS_SD_ROOTFSPART_OFFSET)M | \
-    append-rootfs | check-size $(LS_SD_IMAGE_SIZE) | append-metadata
+    ls-append $(1)-uboot-env.bin | pad-to 16M | \
+    ls-append-kernel | pad-to $(LS_SD_ROOTFSPART_OFFSET)M | \
+    append-rootfs | pad-to $(LS_SD_IMAGE_SIZE)M | gzip
+  IMAGE/sysupgrade.bin := sysupgrade-tar | append-metadata
 endef
 TARGET_DEVICES += fsl_ls1021a-twr-sdboot
 
 define Device/fsl_ls1021a-iot-sdboot
+  $(Device/rework-sdcard-images)
   DEVICE_VENDOR := NXP
   DEVICE_MODEL := LS1021A-IoT
   DEVICE_VARIANT := SD Card Boot
   DEVICE_DTS := ls1021a-iot
-  FILESYSTEMS := ext4
   SUPPORTED_DEVICES :=
-  IMAGES := sdcard.img sysupgrade.bin
-  IMAGE/sdcard.img := \
+  KERNEL := kernel-bin | gzip | fit gzip $$(DTS_DIR)/$$(DEVICE_DTS).dtb
+  IMAGES := sdcard.img.gz sysupgrade.bin
+  IMAGE/sdcard.img.gz := \
     ls-clean | \
     ls-append-sdhead $(1) | pad-to 4K | \
     ls-append $(1)-uboot.bin | pad-to 1M | \
-    ls-append $(1)-uboot-env.bin | pad-to 15M | \
-    ls-append-dtb $$(DEVICE_DTS) | pad-to 16M | \
-    append-kernel | pad-to $(LS_SD_ROOTFSPART_OFFSET)M | \
-    append-rootfs | check-size $(LS_SD_IMAGE_SIZE)
-  IMAGE/sysupgrade.bin := \
-    ls-clean | \
-    ls-append-sdhead $(1) | pad-to 15M | \
-    ls-append-dtb $$(DEVICE_DTS) | pad-to 16M | \
-    append-kernel | pad-to $(LS_SD_ROOTFSPART_OFFSET)M | \
-    append-rootfs | check-size $(LS_SD_IMAGE_SIZE) | append-metadata
+    ls-append $(1)-uboot-env.bin | pad-to 16M | \
+    ls-append-kernel | pad-to $(LS_SD_ROOTFSPART_OFFSET)M | \
+    append-rootfs | pad-to $(LS_SD_IMAGE_SIZE)M | gzip
+  IMAGE/sysupgrade.bin := sysupgrade-tar | append-metadata
 endef
 TARGET_DEVICES += fsl_ls1021a-iot-sdboot
index 35bab47124895cb4a5270c43c7e60d7a4141c469..ff480c287ba70ab54ef0540c901c16585a36a257 100644 (file)
@@ -67,6 +67,7 @@ endef
 TARGET_DEVICES += fsl_ls1012a-rdb
 
 define Device/fsl_ls1012a-frwy-sdboot
+  $(Device/rework-sdcard-images)
   DEVICE_VENDOR := NXP
   DEVICE_MODEL := FRWY-LS1012A
   DEVICE_PACKAGES += \
@@ -74,8 +75,8 @@ define Device/fsl_ls1012a-frwy-sdboot
     tfa-ls1012a-frwy-sdboot \
     kmod-ppfe
   DEVICE_DTS := freescale/fsl-ls1012a-frwy
-  FILESYSTEMS := ext4
-  IMAGES := firmware.bin sdcard.img sysupgrade.bin
+  KERNEL := kernel-bin | gzip | fit gzip $$(DTS_DIR)/$$(DEVICE_DTS).dtb
+  IMAGES := firmware.bin sdcard.img.gz sysupgrade.bin
   IMAGE/firmware.bin := \
     ls-clean | \
     ls-append $(1)-bl2.pbl | pad-to 128K | \
@@ -83,18 +84,12 @@ define Device/fsl_ls1012a-frwy-sdboot
     ls-append $(1)-fip.bin | pad-to 1856K | \
     ls-append $(1)-uboot-env.bin | pad-to 2048K | \
     check-size 2097153
-  IMAGE/sdcard.img := \
-    ls-clean | \
-    ls-append-sdhead $(1) | pad-to 15M | \
-    ls-append-dtb $$(DEVICE_DTS) | pad-to 16M | \
-    append-kernel | pad-to $(LS_SD_ROOTFSPART_OFFSET)M | \
-    append-rootfs | check-size $(LS_SD_IMAGE_SIZE)
-  IMAGE/sysupgrade.bin := \
+  IMAGE/sdcard.img.gz := \
     ls-clean | \
-    ls-append-sdhead $(1) | pad-to 15M | \
-    ls-append-dtb $$(DEVICE_DTS) | pad-to 16M | \
-    append-kernel | pad-to $(LS_SD_ROOTFSPART_OFFSET)M | \
-    append-rootfs | check-size $(LS_SD_IMAGE_SIZE) | append-metadata
+    ls-append-sdhead $(1) | pad-to 16M | \
+    ls-append-kernel | pad-to $(LS_SD_ROOTFSPART_OFFSET)M | \
+    append-rootfs | pad-to $(LS_SD_IMAGE_SIZE)M | gzip
+  IMAGE/sysupgrade.bin := sysupgrade-tar | append-metadata
 endef
 TARGET_DEVICES += fsl_ls1012a-frwy-sdboot
 
@@ -124,6 +119,7 @@ endef
 TARGET_DEVICES += fsl_ls1043a-rdb
 
 define Device/fsl_ls1043a-rdb-sdboot
+  $(Device/rework-sdcard-images)
   DEVICE_VENDOR := NXP
   DEVICE_MODEL := LS1043A-RDB
   DEVICE_VARIANT := SD Card Boot
@@ -135,24 +131,18 @@ define Device/fsl_ls1043a-rdb-sdboot
     kmod-hwmon-ina2xx \
     kmod-hwmon-lm90
   DEVICE_DTS := freescale/fsl-ls1043a-rdb-sdk
-  FILESYSTEMS := ext4
-  IMAGES := sdcard.img sysupgrade.bin
-  IMAGE/sdcard.img := \
+  KERNEL := kernel-bin | gzip | fit gzip $$(DTS_DIR)/$$(DEVICE_DTS).dtb
+  IMAGES := sdcard.img.gz sysupgrade.bin
+  IMAGE/sdcard.img.gz := \
     ls-clean | \
     ls-append-sdhead $(1) | pad-to 4K | \
     ls-append $(1)-bl2.pbl | pad-to 1M | \
     ls-append $(1)-fip.bin | pad-to 5M | \
     ls-append $(1)-uboot-env.bin | pad-to 9M | \
-    ls-append fsl_ls1043a-rdb-fman.bin | pad-to 15M | \
-    ls-append-dtb $$(DEVICE_DTS) | pad-to 16M | \
-    append-kernel | pad-to $(LS_SD_ROOTFSPART_OFFSET)M | \
-    append-rootfs | check-size $(LS_SD_IMAGE_SIZE)
-  IMAGE/sysupgrade.bin := \
-    ls-clean | \
-    ls-append-sdhead $(1) | pad-to 15M | \
-    ls-append-dtb $$(DEVICE_DTS) | pad-to 16M | \
-    append-kernel | pad-to $(LS_SD_ROOTFSPART_OFFSET)M | \
-    append-rootfs | check-size $(LS_SD_IMAGE_SIZE) | append-metadata
+    ls-append fsl_ls1043a-rdb-fman.bin | pad-to 16M | \
+    ls-append-kernel | pad-to $(LS_SD_ROOTFSPART_OFFSET)M | \
+    append-rootfs | pad-to $(LS_SD_IMAGE_SIZE)M | gzip
+  IMAGE/sysupgrade.bin := sysupgrade-tar | append-metadata
 endef
 TARGET_DEVICES += fsl_ls1043a-rdb-sdboot
 
@@ -182,6 +172,7 @@ endef
 TARGET_DEVICES += fsl_ls1046a-rdb
 
 define Device/fsl_ls1046a-rdb-sdboot
+  $(Device/rework-sdcard-images)
   DEVICE_VENDOR := NXP
   DEVICE_MODEL := LS1046A-RDB
   DEVICE_VARIANT := SD Card Boot
@@ -193,24 +184,18 @@ define Device/fsl_ls1046a-rdb-sdboot
     kmod-hwmon-ina2xx \
     kmod-hwmon-lm90
   DEVICE_DTS := freescale/fsl-ls1046a-rdb-sdk
-  FILESYSTEMS := ext4
-  IMAGES := sdcard.img sysupgrade.bin
-  IMAGE/sdcard.img := \
+  KERNEL := kernel-bin | gzip | fit gzip $$(DTS_DIR)/$$(DEVICE_DTS).dtb
+  IMAGES := sdcard.img.gz sysupgrade.bin
+  IMAGE/sdcard.img.gz := \
     ls-clean | \
     ls-append-sdhead $(1) | pad-to 4K | \
     ls-append $(1)-bl2.pbl | pad-to 1M | \
     ls-append $(1)-fip.bin | pad-to 5M | \
     ls-append $(1)-uboot-env.bin | pad-to 9M | \
-    ls-append fsl_ls1046a-rdb-fman.bin | pad-to 15M | \
-    ls-append-dtb $$(DEVICE_DTS) | pad-to 16M | \
-    append-kernel | pad-to $(LS_SD_ROOTFSPART_OFFSET)M | \
-    append-rootfs | check-size $(LS_SD_IMAGE_SIZE)
-  IMAGE/sysupgrade.bin := \
-    ls-clean | \
-    ls-append-sdhead $(1) | pad-to 15M | \
-    ls-append-dtb $$(DEVICE_DTS) | pad-to 16M | \
-    append-kernel | pad-to $(LS_SD_ROOTFSPART_OFFSET)M | \
-    append-rootfs | check-size $(LS_SD_IMAGE_SIZE) | append-metadata
+    ls-append fsl_ls1046a-rdb-fman.bin | pad-to 16M | \
+    ls-append-kernel | pad-to $(LS_SD_ROOTFSPART_OFFSET)M | \
+    append-rootfs | pad-to $(LS_SD_IMAGE_SIZE)M | gzip
+  IMAGE/sysupgrade.bin := sysupgrade-tar | append-metadata
 endef
 TARGET_DEVICES += fsl_ls1046a-rdb-sdboot
 
@@ -242,6 +227,7 @@ endef
 TARGET_DEVICES += fsl_ls1088a-rdb
 
 define Device/fsl_ls1088a-rdb-sdboot
+  $(Device/rework-sdcard-images)
   DEVICE_VENDOR := NXP
   DEVICE_MODEL := LS1088A-RDB
   DEVICE_VARIANT := SD Card Boot
@@ -254,9 +240,9 @@ define Device/fsl_ls1088a-rdb-sdboot
     kmod-hwmon-ina2xx \
     kmod-hwmon-lm90
   DEVICE_DTS := freescale/fsl-ls1088a-rdb
-  FILESYSTEMS := ext4
-  IMAGES := sdcard.img sysupgrade.bin
-  IMAGE/sdcard.img := \
+  KERNEL := kernel-bin | gzip | fit gzip $$(DTS_DIR)/$$(DEVICE_DTS).dtb
+  IMAGES := sdcard.img.gz sysupgrade.bin
+  IMAGE/sdcard.img.gz := \
     ls-clean | \
     ls-append-sdhead $(1) | pad-to 4K | \
     ls-append $(1)-bl2.pbl | pad-to 1M | \
@@ -264,16 +250,10 @@ define Device/fsl_ls1088a-rdb-sdboot
     ls-append $(1)-uboot-env.bin | pad-to 10M | \
     ls-append fsl_ls1088a-rdb-mc.itb | pad-to 13M | \
     ls-append fsl_ls1088a-rdb-dpl.dtb | pad-to 14M | \
-    ls-append fsl_ls1088a-rdb-dpc.dtb | pad-to 15M | \
-    ls-append-dtb $$(DEVICE_DTS) | pad-to 16M | \
-    append-kernel | pad-to $(LS_SD_ROOTFSPART_OFFSET)M | \
-    append-rootfs | check-size $(LS_SD_IMAGE_SIZE)
-  IMAGE/sysupgrade.bin := \
-    ls-clean | \
-    ls-append-sdhead $(1) | pad-to 15M | \
-    ls-append-dtb $$(DEVICE_DTS) | pad-to 16M | \
-    append-kernel | pad-to $(LS_SD_ROOTFSPART_OFFSET)M | \
-    append-rootfs | check-size $(LS_SD_IMAGE_SIZE) | append-metadata
+    ls-append fsl_ls1088a-rdb-dpc.dtb | pad-to 16M | \
+    ls-append-kernel | pad-to $(LS_SD_ROOTFSPART_OFFSET)M | \
+    append-rootfs | pad-to $(LS_SD_IMAGE_SIZE)M | gzip
+  IMAGE/sysupgrade.bin := sysupgrade-tar | append-metadata
 endef
 TARGET_DEVICES += fsl_ls1088a-rdb-sdboot
 
index 08ab4497d5f13cff2673a10e1da5fbe47e89d0d8..d3a8fd2d122662f882559f7156a39cc39476a42d 100755 (executable)
@@ -7,16 +7,18 @@
 #
 
 set -x
-[ $# -eq 3 ] || {
-    echo "SYNTAX: $0 <file> <rootfs part offset> <rootfs size>"
+[ $# -eq 5 ] || {
+    echo "SYNTAX: $0 <file> <kernel part offset> <kernel size> <rootfs part offset> <rootfs size>"
     exit 1
 }
 
 OUTPUT="$1"
-ROOTFSOFFSET="$(($2 * 1024))"
-ROOTFSSIZE="$3"
+KERNELOFFSET="$(($2 * 1024))"
+KERNELSIZE="$3"
+ROOTFSOFFSET="$(($4 * 1024))"
+ROOTFSSIZE="$5"
 
 head=4
-sect=16
+sect=63
 
-set $(ptgen -o $OUTPUT -h $head -s $sect -l $ROOTFSOFFSET -t 83 -p ${ROOTFSSIZE}M)
+set $(ptgen -o $OUTPUT -h $head -s $sect -t 83 -p ${KERNELSIZE}M@${KERNELOFFSET} -p ${ROOTFSSIZE}M@${ROOTFSOFFSET})