mediatek: mt7623: make gen_banana_pi_img.sh more generic

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 <dwmw2@infradead.org>
master
David Woodhouse 2020-07-21 19:07:47 +01:00 committed by Chuanhong Guo
parent 5787684cb4
commit f5cebbe2e4
2 changed files with 24 additions and 15 deletions

View File

@ -79,7 +79,7 @@
# with the preloader loading 512KiB of U-Boot starting at 0x50000.
usage() {
echo "SYNTAX: $0 sd <file> <preloader image> <u-boot image> <bootfs image> <rootfs image> <bootfs size> <rootfs size>"
echo "SYNTAX: $0 sd <file> <preloader image> <u-boot image> <u-boot offset> <bootfs image> <rootfs image> <bootfs size> <rootfs size>"
echo " OR: $0 emmc <file> <preloader image>"
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

View File

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