|
|
@@ -1,59 +1,123 @@
|
|
|
KERNEL_LOADADDR := 0x80008000
|
|
|
DEVICE_VARS += UBOOT_TARGET UBOOT_OFFSET UBOOT_ENVSIZE
|
|
|
|
|
|
-ifneq ($(CONFIG_MTK_BOOT_PARTSIZE),)
|
|
|
-BOOTFS_BLOCK_SIZE := 1024
|
|
|
-BOOTFS_BLOCKS := $(shell echo $$(($(CONFIG_MTK_BOOT_PARTSIZE)*1024*1024/$(BOOTFS_BLOCK_SIZE))))
|
|
|
-endif
|
|
|
+# The bootrom of MT7623 expects legacy MediaTek headers present in
|
|
|
+# exactly the location also used for the primary GPT partition table.
|
|
|
+# (*MMC_BOOT and BRLYT)
|
|
|
+# Hence only MSDOS/MBR partitioning can work here.
|
|
|
+#
|
|
|
+# ------------------------ Sector Offset
|
|
|
+# | MBR + SDMMC_BOOT | 0 0x0
|
|
|
+# |----------------------|
|
|
|
+# | BRLYT header | 1 0x200
|
|
|
+# |----------------------|
|
|
|
+# . .
|
|
|
+# . .
|
|
|
+# |----------------------|
|
|
|
+# | | 4 0x800
|
|
|
+# | |
|
|
|
+# | Preloader |
|
|
|
+# . .
|
|
|
+# . .
|
|
|
+# | | 639
|
|
|
+# |----------------------|
|
|
|
+# | MBR partition #1 | 640 0x50000
|
|
|
+# | |
|
|
|
+# | U-Boot |
|
|
|
+# . .
|
|
|
+# . .
|
|
|
+# | | 1663
|
|
|
+# |----------------------|
|
|
|
+# | MBR partition #2 |
|
|
|
+# | |
|
|
|
+# | Recovery |
|
|
|
+# . .
|
|
|
+# . (uImage.FIT) .
|
|
|
+# | |
|
|
|
+# |----------------------|
|
|
|
+# | MBR partition #3 |
|
|
|
+# | |
|
|
|
+# | Production |
|
|
|
+# | |
|
|
|
+# | (uImage.FIT, |
|
|
|
+# . rootfs_Data.) .
|
|
|
+# . .
|
|
|
+# | |
|
|
|
+# ------------------------
|
|
|
+#
|
|
|
+# For eMMC boot, everything up to and including the preloader must be
|
|
|
+# written to /dev/mmcblk0boot0, with the SDMMC_BOOT header changed to
|
|
|
+# read EMMC_BOOT\0 instead.
|
|
|
+#
|
|
|
+# The contents of the main eMMC are identical to the SD card layout,
|
|
|
+# with the preloader loading 512KiB of U-Boot starting at 0x50000.
|
|
|
|
|
|
-define Build/mtk-mmc-img
|
|
|
- rm -f [email protected]
|
|
|
- mkfs.fat -C [email protected] $(BOOTFS_BLOCKS)
|
|
|
+define Build/mt7623-mbr
|
|
|
+ cp $@ [email protected] 2>/dev/null || true
|
|
|
+ ptgen -o [email protected] -h 4 -s 63 -a 0 -l 1024 \
|
|
|
+ -t 0x41 -N uboot -p 3584k@320k \
|
|
|
+ -t 0xea -N recovery -p 40M@4M \
|
|
|
+ $(if $(findstring sdmmc,$1), \
|
|
|
+ -t 0x2e -N production -p 208M@48M \
|
|
|
+ ) \
|
|
|
+ $(if $(findstring emmc,$1), \
|
|
|
+ -t 0x2e -N production -p 976M@48M \
|
|
|
+ )
|
|
|
|
|
|
- if [ -r $(STAGING_DIR_IMAGE)/$(UBOOT_TARGET)-preloader.bin ]; then \
|
|
|
- ./gen_mtk_mmc_img.sh emmc [email protected] \
|
|
|
- $(STAGING_DIR_IMAGE)/$(UBOOT_TARGET)-preloader.bin; \
|
|
|
- mcopy -i [email protected] [email protected] ::eMMCboot.bin; \
|
|
|
- fi
|
|
|
- mkenvimage -s $(UBOOT_ENVSIZE) -o $(STAGING_DIR_IMAGE)/$(UBOOT_TARGET)-uboot.env $(UBOOT_TARGET)-uEnv.txt
|
|
|
- mcopy -i [email protected] $(STAGING_DIR_IMAGE)/$(UBOOT_TARGET)-uboot.env ::uboot.env
|
|
|
- mcopy -i [email protected] $(IMAGE_KERNEL) ::uImage
|
|
|
- ./gen_mtk_mmc_img.sh sd $@ \
|
|
|
- $(STAGING_DIR_IMAGE)/$(UBOOT_TARGET)-preloader.bin \
|
|
|
- $(STAGING_DIR_IMAGE)/$(UBOOT_TARGET)-u-boot*.bin \
|
|
|
- $(UBOOT_OFFSET) \
|
|
|
- [email protected] \
|
|
|
- $(IMAGE_ROOTFS) \
|
|
|
- $(CONFIG_MTK_BOOT_PARTSIZE) \
|
|
|
- $(CONFIG_TARGET_ROOTFS_PARTSIZE)
|
|
|
+ echo -en \
|
|
|
+ $(if $(findstring sdmmc,$1),"SDMMC_BOOT\x00\x00\x01\x00\x00\x00\x00\x02\x00\x00") \
|
|
|
+ $(if $(findstring emmc,$1),"EMMC_BOOT\x00\x00\x00\x01\x00\x00\x00\x00\x02\x00\x00") \
|
|
|
+ | dd bs=1 of="[email protected]" seek=0 conv=notrunc
|
|
|
+
|
|
|
+ echo -en "BRLYT\x00\x00\x00\x01\x00\x00\x00\x00\x08\x00\x00\x00\x08\x00\x00\x42\x42\x42\x42\x08\x00\x01\x00\x00\x08\x00\x00\x00\x08\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"\
|
|
|
+ | dd bs=1 of="[email protected]" seek=512 conv=notrunc
|
|
|
+
|
|
|
+ cat [email protected] >> $@
|
|
|
+ rm [email protected]
|
|
|
endef
|
|
|
|
|
|
-define Build/preloader
|
|
|
- $(CP) $(STAGING_DIR_IMAGE)/$1-preloader.bin $@
|
|
|
+define Build/append-preloader
|
|
|
+ cat $(STAGING_DIR_IMAGE)/$1-preloader.bin >> $@
|
|
|
endef
|
|
|
|
|
|
-define Build/scatterfile
|
|
|
- ./gen_scatterfile.sh $(subst mt,MT,$(SUBTARGET)) "$1" \
|
|
|
- $(subst -scatter.txt,,$(notdir $@)) "$(DEVICE_TITLE)" > $@
|
|
|
+define Build/append-bootloader
|
|
|
+ cat $(STAGING_DIR_IMAGE)/$1-u-boot.bin >> $@
|
|
|
endef
|
|
|
|
|
|
-define Device/bpi_bananapi-r2
|
|
|
- DEVICE_VENDOR := Bpi
|
|
|
- DEVICE_MODEL := Banana Pi R2
|
|
|
+define Device/bananapi_bpi-r2
|
|
|
+ DEVICE_VENDOR := Bananapi
|
|
|
+ DEVICE_MODEL := BPi-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
|
|
|
+ DEVICE_PACKAGES := kmod-mmc mkf2fs e2fsprogs kmod-usb3 kmod-ata-ahci
|
|
|
+ UBOOT_ENVSIZE := 0x10000
|
|
|
UBOOT_OFFSET := 320k
|
|
|
UBOOT_TARGET := mt7623n_bpir2
|
|
|
- IMAGES := img.gz
|
|
|
- IMAGE/img.gz := mtk-mmc-img | gzip | append-metadata
|
|
|
- ARTIFACT/preloader.bin := preloader $$(UBOOT_TARGET)
|
|
|
- ARTIFACT/scatter.txt := scatterfile $$(firstword $$(FILESYSTEMS))-$$(firstword $$(IMAGES))
|
|
|
- ARTIFACTS = preloader.bin scatter.txt
|
|
|
+ UBOOT_PATH := $(STAGING_DIR_IMAGE)/mt7623n_bpir2-u-boot.bin
|
|
|
+ IMAGES := sysupgrade.itb
|
|
|
+ KERNEL := kernel-bin | gzip
|
|
|
+ KERNEL_INITRAMFS_SUFFIX := -recovery.itb
|
|
|
+ KERNEL_INITRAMFS := kernel-bin | gzip | fit gzip $$(DTS_DIR)/$$(DEVICE_DTS).dtb with-initrd
|
|
|
+ IMAGE/sysupgrade.itb := append-kernel | fit gzip $$(DTS_DIR)/$$(DEVICE_DTS).dtb external-static-with-rootfs | append-metadata
|
|
|
+ ARTIFACT/preloader.bin := append-preloader $$(UBOOT_TARGET)
|
|
|
+ ARTIFACT/u-boot.bin := append-uboot
|
|
|
+ ARTIFACT/sdcard.img.gz := mt7623-mbr sdmmc |\
|
|
|
+ pad-to 2k | append-preloader $$(UBOOT_TARGET) |\
|
|
|
+ pad-to 320k | append-bootloader $$(UBOOT_TARGET) |\
|
|
|
+ pad-to 4092k | mt7623-mbr emmc |\
|
|
|
+ pad-to 4M | append-image-stage initramfs-recovery.itb |\
|
|
|
+ pad-to 48M | append-image squashfs-sysupgrade.itb |\
|
|
|
+ gzip
|
|
|
+ ARTIFACTS = u-boot.bin preloader.bin scatter.txt sdcard.img.gz
|
|
|
SUPPORTED_DEVICES := bananapi,bpi-r2
|
|
|
endef
|
|
|
-TARGET_DEVICES += bpi_bananapi-r2
|
|
|
+TARGET_DEVICES += bananapi_bpi-r2
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+define Build/scatterfile
|
|
|
+ ./gen_scatterfile.sh $(subst mt,MT,$(SUBTARGET)) "$1" \
|
|
|
+ $(subst -scatter.txt,,$(notdir $@)) "$(DEVICE_TITLE)" > $@
|
|
|
+endef
|
|
|
|
|
|
# Full eMMC image including U-Boot and partition table
|
|
|
define Device/unielec_u7623-emmc
|