1 KERNEL_LOADADDR
:= 0x80008000
2 DEVICE_VARS
+= UBOOT_TARGET UBOOT_OFFSET UBOOT_IMAGE
4 # The bootrom of MT7623 expects legacy MediaTek headers present in
5 # exactly the location also used for the primary GPT partition table.
6 # (*MMC_BOOT and BRLYT)
7 # Hence only MSDOS/MBR partitioning can work here.
9 # ------------------------ Sector Offset
10 # | MBR + SDMMC_BOOT | 0 0x0
11 # |----------------------|
12 # | BRLYT header | 1 0x200
13 # |----------------------|
16 # |----------------------|
23 # |----------------------|
24 # | MBR partition #1 | 640 0x50000
30 # |----------------------|
31 # | MBR partition #2 |
37 # |----------------------|
38 # | MBR partition #3 |
46 # ------------------------
48 # For eMMC boot, everything up to and including the preloader must be
49 # written to /dev/mmcblk0boot0, with the SDMMC_BOOT header changed to
50 # read EMMC_BOOT\0 instead.
52 # The contents of the main eMMC are identical to the SD card layout,
53 # with the preloader loading 512KiB of U-Boot starting at 0x50000.
55 define Build
/mt7623-mbr
56 cp
$@
$@.tmp
2>/dev
/null || true
57 ptgen
-o
$@.tmp
-h
4 -s
63 -a
0 -l
1024 \
58 -t
0x41 -N uboot
-p
1M@
$(UBOOT_OFFSET
) \
59 -t
0xea -N recovery
-p
40M@
4M \
60 $(if
$(findstring sdmmc
,$1), \
61 -t
0x2e -N production
-p
$(CONFIG_TARGET_ROOTFS_PARTSIZE
)M@
48M \
63 $(if
$(findstring emmc
,$1), \
64 -t
0x2e -N production
-p
$(CONFIG_TARGET_ROOTFS_PARTSIZE
)M@
48M \
68 $(if
$(findstring sdmmc
,$1),"SDMMC_BOOT\x00\x00\x01\x00\x00\x00\x00\x02\x00\x00") \
69 $(if
$(findstring emmc
,$1),"EMMC_BOOT\x00\x00\x00\x01\x00\x00\x00\x00\x02\x00\x00") \
70 | dd bs
=1 of
="$@.tmp" seek
=0 conv
=notrunc
72 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"\
73 | dd bs
=1 of
="$@.tmp" seek
=512 conv
=notrunc
79 define Build
/append-preloader
80 cat
$(STAGING_DIR_IMAGE
)/$1-preloader.bin
>> $@
83 define Build
/append-bootloader
84 cat
$(STAGING_DIR_IMAGE
)/$1-$(UBOOT_IMAGE
) >> $@
87 define Build
/scatterfile
88 .
/gen_scatterfile.sh
$(subst mt
,MT
,$(SUBTARGET
)) "$1" \
89 $(subst -scatter.txt
,,$(notdir $@
)) "$(DEVICE_TITLE)" > $@
92 define Device
/bananapi_bpi-r2
93 DEVICE_VENDOR
:= Bananapi
94 DEVICE_MODEL
:= BPi-R2
95 DEVICE_DTS
:= mt7623n-bananapi-bpi-r2
96 DEVICE_PACKAGES
:= mkf2fs e2fsprogs kmod-usb3 kmod-ata-ahci
98 UBOOT_TARGET
:= mt7623n_bpir2
99 UBOOT_IMAGE
:= u-boot.bin
100 UBOOT_PATH
:= $(STAGING_DIR_IMAGE
)/$$(UBOOT_TARGET
)-$$(UBOOT_IMAGE
)
101 IMAGES
:= sysupgrade.itb
102 KERNEL
:= kernel-bin | gzip
103 KERNEL_INITRAMFS_SUFFIX
:= -recovery.itb
104 KERNEL_INITRAMFS
:= kernel-bin | gzip | fit gzip
$$(DTS_DIR
)/$$(DEVICE_DTS
).dtb with-initrd
105 IMAGE
/sysupgrade.itb
:= append-kernel | fit gzip
$$(DTS_DIR
)/$$(DEVICE_DTS
).dtb external-static-with-rootfs | append-metadata
106 ARTIFACT
/preloader.bin
:= mt7623-mbr emmc |\
107 pad-to
2k | append-preloader
$$(UBOOT_TARGET
)
108 ARTIFACT
/u-boot.bin
:= append-uboot
109 ARTIFACT
/sdcard.img.gz
:= mt7623-mbr sdmmc |\
110 pad-to
2k | append-preloader
$$(UBOOT_TARGET
) |\
111 pad-to
$$(UBOOT_OFFSET
) | append-bootloader
$$(UBOOT_TARGET
) |\
112 pad-to
4092k | mt7623-mbr emmc |\
113 pad-to
4M | append-image-stage initramfs-recovery.itb |\
114 pad-to
48M | append-image squashfs-sysupgrade.itb |\
116 ARTIFACTS
:= u-boot.bin preloader.bin sdcard.img.gz
117 SUPPORTED_DEVICES
:= bananapi
,bpi-r2
119 TARGET_DEVICES
+= bananapi_bpi-r2
121 define Device
/unielec_u7623-02
122 DEVICE_VENDOR
:= UniElec
123 DEVICE_MODEL
:= U7623-02
124 # When we use FIT images, U-Boot will populate the /memory node with the correct
125 # memory size discovered from the preloader, so we don't need separate builds.
126 DEVICE_DTS
:= mt7623a-unielec-u7623-02
127 DEVICE_DTS_DIR
:= ..
/dts
128 DEVICE_PACKAGES
:= kmod-fs-vfat kmod-nls-cp437 kmod-nls-iso8859-1 kmod-mmc \
129 mkf2fs e2fsprogs kmod-usb-ohci kmod-usb2 kmod-usb3 kmod-ata-ahci
131 UBOOT_TARGET
:= mt7623a_unielec_u7623
132 UBOOT_IMAGE
:= u-boot-mtk.bin
133 UBOOT_PATH
:= $(STAGING_DIR_IMAGE
)/$$(UBOOT_TARGET
)-$$(UBOOT_IMAGE
)
134 IMAGES
:= sysupgrade.itb
135 KERNEL
:= kernel-bin | gzip
136 KERNEL_INITRAMFS_SUFFIX
:= -recovery.itb
137 KERNEL_INITRAMFS
:= kernel-bin | gzip | fit gzip
$$(KDIR
)/image-
$$(firstword $$(DEVICE_DTS
)).dtb with-initrd
138 IMAGE
/sysupgrade.itb
:= append-kernel | fit gzip
$$(KDIR
)/image-
$$(firstword $$(DEVICE_DTS
)).dtb external-static-with-rootfs | append-metadata
139 ARTIFACT
/u-boot.bin
:= append-uboot
140 # vendor Preloader seems not to care about SDMMC_BOOT/EMMC_BOOT header,
141 # but OpenWrt expects 'SDMM' magic for sysupgrade.
142 ARTIFACT
/emmc.img.gz
:= mt7623-mbr sdmmc |\
143 pad-to
$$(UBOOT_OFFSET
) | append-bootloader
$$(UBOOT_TARGET
) |\
144 pad-to
4M | append-image-stage initramfs-recovery.itb |\
145 pad-to
48M | append-image squashfs-sysupgrade.itb |\
146 gzip | append-metadata
147 ARTIFACT
/scatter.txt
:= scatterfile emmc.img.gz
148 ARTIFACTS
:= u-boot.bin scatter.txt emmc.img.gz
149 SUPPORTED_DEVICES
+= unielec
,u7623-02-emmc-512m
151 TARGET_DEVICES
+= unielec_u7623-02
154 # Legacy helper for U7623 board
155 define Build
/fat-recovery-fs
157 mkfs.fat
-C
$@.recovery
3070
158 cat
$@.recovery
>> $@
161 # Legacy partial image for U7623
162 # This preserves the vendor U-Boot and starts with a uImage at 0xA00
163 define Device
/unielec_u7623-02-emmc-512m-legacy
164 DEVICE_VENDOR
:= UniElec
165 DEVICE_MODEL
:= U7623-02
166 DEVICE_VARIANT
:= eMMC
/512MiB RAM
(legacy image
)
167 DEVICE_DTS
:= mt7623a-unielec-u7623-02-emmc-512m
168 DEVICE_DTS_DIR
:= ..
/dts
169 KERNEL_NAME
:= zImage
170 KERNEL
:= kernel-bin | append-dtb | uImage none
171 KERNEL_INITRAMFS
:= kernel-bin | append-dtb | uImage none
172 DEVICE_PACKAGES
:= kmod-fs-vfat kmod-nls-cp437 kmod-nls-iso8859-1 kmod-mmc \
173 mkf2fs e2fsprogs kmod-usb-ohci kmod-usb2 kmod-usb3 kmod-ata-ahci-mtk \
175 IMAGES
:= sysupgrade-emmc.bin.gz
176 IMAGE
/sysupgrade-emmc.bin.gz
:= append-kernel |\
177 pad-to
4864k | fat-recovery-fs |\
178 pad-to
7936k | append-rootfs |\
179 gzip | append-metadata
180 SUPPORTED_DEVICES
:= unielec
,u7623-02-emmc-512m
182 TARGET_DEVICES
+= unielec_u7623-02-emmc-512m-legacy