From f5cebbe2e49c3807d1bd3ed371da35ed2ef32314 Mon Sep 17 00:00:00 2001 From: David Woodhouse Date: Tue, 21 Jul 2020 19:07:47 +0100 Subject: [PATCH] mediatek: mt7623: make gen_banana_pi_img.sh more generic MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This actually covers fairly much all the MediaTek platforms; they only have different images because they don't include the preloader and U-Boot, and rely on preinstalled stuff from the vendor. So this script can slowly take over the world as we complete the support for various other platforms, starting with UniElec U7623… Signed-off-by: David Woodhouse --- .../linux/mediatek/image/gen_banana_pi_img.sh | 21 ++++++++++++------- target/linux/mediatek/image/mt7623.mk | 18 +++++++++------- 2 files changed, 24 insertions(+), 15 deletions(-) diff --git a/target/linux/mediatek/image/gen_banana_pi_img.sh b/target/linux/mediatek/image/gen_banana_pi_img.sh index d46e92fa42..611a17edff 100755 --- a/target/linux/mediatek/image/gen_banana_pi_img.sh +++ b/target/linux/mediatek/image/gen_banana_pi_img.sh @@ -79,7 +79,7 @@ # with the preloader loading 512KiB of U-Boot starting at 0x50000. usage() { - echo "SYNTAX: $0 sd " + echo "SYNTAX: $0 sd " echo " OR: $0 emmc " exit 1 } @@ -96,20 +96,21 @@ BRLYT="BRLYT\x00\x00\x00\x01\x00\x00\x00\x00\x08\x00\x00\ case $1 in sd) - [ $# -eq 8 ] || usage + [ $# -eq 9 ] || usage OUTPUT="$2" PRELOADER="$3" UBOOT="$4" - BOOTFS="$5" - ROOTFS="$6" - BOOTFSSIZE="$7" - ROOTFSSIZE="$8" + UBOOTOFS="$5" + BOOTFS="$6" + ROOTFS="$7" + BOOTFSSIZE="$8" + ROOTFSSIZE="$9" head=4 sect=63 set $(ptgen -o $OUTPUT -h $head -s $sect -a 0 -l 1024 \ - -t 41 -p 512k@320k \ + -t 41 -p 512k@${UBOOTOFS} \ -t c -p ${BOOTFSSIZE}M \ -t 83 -p ${ROOTFSSIZE}M ) @@ -123,7 +124,11 @@ case $1 in echo -en "${SDMMC_BOOT}" | dd bs=1 of="${OUTPUT}" seek=0 conv=notrunc echo -en "${BRLYT}" | dd bs=1 of="${OUTPUT}" seek=512 conv=notrunc - dd bs=1024 if="${PRELOADER}" of="${OUTPUT}" seek="${PRELOADER_OFFSET}" conv=notrunc + # For eMMC-only boards like U7623 the preloader doesn't need to be included in the + # main image as it's only ever needed in the eMMC boot partition. + if [ -r ${PRELOADER} ]; then + dd bs=1024 if="${PRELOADER}" of="${OUTPUT}" seek="${PRELOADER_OFFSET}" conv=notrunc + fi dd bs=512 if="${UBOOT}" of="${OUTPUT}" seek="${UBOOT_OFFSET}" conv=notrunc dd bs=512 if="${BOOTFS}" of="${OUTPUT}" seek="${BOOTFS_OFFSET}" conv=notrunc dd bs=512 if="${ROOTFS}" of="${OUTPUT}" seek="${ROOTFS_OFFSET}" conv=notrunc diff --git a/target/linux/mediatek/image/mt7623.mk b/target/linux/mediatek/image/mt7623.mk index ef14969029..1061a0d281 100644 --- a/target/linux/mediatek/image/mt7623.mk +++ b/target/linux/mediatek/image/mt7623.mk @@ -1,5 +1,5 @@ KERNEL_LOADADDR := 0x80008000 -DEVICE_VARS += UBOOT_TARGET +DEVICE_VARS += UBOOT_TARGET UBOOT_OFFSET UBOOT_ENVSIZE ifneq ($(CONFIG_BANANA_PI_BOOT_PARTSIZE),) BOOTFS_BLOCK_SIZE := 1024 @@ -10,16 +10,18 @@ define Build/banana-pi-sdcard rm -f $@.boot mkfs.fat -C $@.boot $(BOOTFS_BLOCKS) - ./gen_banana_pi_img.sh emmc $@.emmc \ - $(STAGING_DIR_IMAGE)/$(UBOOT_TARGET)-preloader.bin - - mkenvimage -s 0x2000 -o $(STAGING_DIR_IMAGE)/$(UBOOT_TARGET)-uboot.env $(UBOOT_TARGET)-uEnv.txt + if [ -r $(STAGING_DIR_IMAGE)/$(UBOOT_TARGET)-preloader.bin ]; then \ + ./gen_banana_pi_img.sh emmc $@.emmc \ + $(STAGING_DIR_IMAGE)/$(UBOOT_TARGET)-preloader.bin; \ + mcopy -i $@.boot $@.emmc ::eMMCboot.bin; \ + fi + mkenvimage -s $(UBOOT_ENVSIZE) -o $(STAGING_DIR_IMAGE)/$(UBOOT_TARGET)-uboot.env $(UBOOT_TARGET)-uEnv.txt mcopy -i $@.boot $(STAGING_DIR_IMAGE)/$(UBOOT_TARGET)-uboot.env ::uboot.env mcopy -i $@.boot $(IMAGE_KERNEL) ::uImage - mcopy -i $@.boot $@.emmc ::eMMCboot.bin ./gen_banana_pi_img.sh sd $@ \ $(STAGING_DIR_IMAGE)/$(UBOOT_TARGET)-preloader.bin \ - $(STAGING_DIR_IMAGE)/$(UBOOT_TARGET)-u-boot.bin \ + $(STAGING_DIR_IMAGE)/$(UBOOT_TARGET)-u-boot*.bin \ + $(UBOOT_OFFSET) \ $@.boot \ $(IMAGE_ROOTFS) \ $(CONFIG_BANANA_PI_BOOT_PARTSIZE) \ @@ -41,6 +43,8 @@ define Device/bpi_bananapi-r2 DEVICE_DTS := mt7623n-bananapi-bpi-r2 DEVICE_PACKAGES := kmod-fs-vfat kmod-nls-cp437 kmod-nls-iso8859-1 kmod-mmc \ mkf2fs e2fsprogs kmod-usb-ohci kmod-usb2 kmod-usb3 kmod-ata-ahci-mtk + UBOOT_ENVSIZE := 0x2000 + UBOOT_OFFSET := 320k UBOOT_TARGET := mt7623n_bpir2 IMAGES := img.gz IMAGE/img.gz := banana-pi-sdcard | gzip | append-metadata