endef
TARGET_DEVICES += bpi_bananapi-r2
-define Device/unielec_u7623-02-emmc-512m
+# Full eMMC image including U-Boot and partition table
+define Device/unielec_u7623-emmc
+ DEVICE_VENDOR := UniElec
+ DEVICE_MODEL := U7623
+ DEVICE_VARIANT := eMMC
+ # When we use FIT images, U-Boot will populate the /memory node with the correct
+ # memory size discovered from the preloader, so we don't need separate builds.
+ DEVICE_DTS := mt7623a-unielec-u7623-02-emmc-512m
+ SUPPORTED_DEVICES := unielec,u7623-02-emmc-512m
+ UBOOT_ENVSIZE := 0x1000
+ UBOOT_OFFSET := 256k
+ UBOOT_TARGET := mt7623a_unielec_u7623
+ IMAGES := img.gz
+ IMAGE/img.gz := mtk-mmc-img | gzip | append-metadata
+ 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
+ ARTIFACT/scatter.txt := scatterfile $$(firstword $$(FILESYSTEMS))-$$(firstword $$(IMAGES))
+ ARTIFACTS := scatter.txt
+endef
+TARGET_DEVICES += unielec_u7623-emmc
+
+# Legacy partial image for U7623
+# This preserves the vendor U-Boot and starts with a uImage at 0xA00
+define Device/unielec_u7623-02-emmc-512m-legacy
DEVICE_VENDOR := UniElec
DEVICE_MODEL := U7623-02
- DEVICE_VARIANT := eMMC/512MB RAM
+ DEVICE_VARIANT := eMMC/512MiB RAM (legacy image)
DEVICE_DTS := mt7623a-unielec-u7623-02-emmc-512m
KERNEL_NAME := zImage
KERNEL := kernel-bin | append-dtb | uImage none
mkf2fs e2fsprogs kmod-usb-ohci kmod-usb2 kmod-usb3 kmod-ata-ahci-mtk
IMAGES := sysupgrade-emmc.bin.gz
IMAGE/sysupgrade-emmc.bin.gz := sysupgrade-emmc | gzip | append-metadata
+ SUPPORTED_DEVICES := unielec,u7623-02-emmc-512m
endef
-TARGET_DEVICES += unielec_u7623-02-emmc-512m
+TARGET_DEVICES += unielec_u7623-02-emmc-512m-legacy
--- /dev/null
+# Boot menu for UniElec U7623
+# Copyright © 2020 David Woodhouse <dwmw2@infradead.org>
+
+kernel=uImage
+loadaddr=0x88000000
+dtaddr=0x83f00000
+fdt_high=0xafffffff
+
+console=ttyS0,115200
+bootopts=rootfstype=squashfs,ext4 rootwait
+
+# Create the command line (with appropriate root=) and boot the Linux FIT image.
+boot1=setenv bootargs "console=${console} root=${rootdev} ${bootopts}";printenv bootargs;\
+ fatload mmc ${partition} ${loadaddr} ${kernel}; bootm
+
+bootmenu_0=Boot from eMMC.=setenv partition 0:2;setenv rootdev /dev/mmcblk0p3;run boot1
+bootmenu_default=0
+
+bootdelay=0
+bootcmd=bootmenu