1 DEVICE_VARS
+= UBOOT_TARGET UBOOT_OFFSET UBOOT_IMAGE
3 # The bootrom of MT7623 expects legacy MediaTek headers present in
4 # exactly the location also used for the primary GPT partition table.
5 # (*MMC_BOOT and BRLYT)
6 # Hence only MSDOS/MBR partitioning can work here.
8 # ------------------------ Sector Offset
9 # | MBR + SDMMC_BOOT | 0 0x0
10 # |----------------------|
11 # | BRLYT header | 1 0x200
12 # |----------------------|
15 # |----------------------|
22 # |----------------------|
23 # | MBR partition #1 | 640 0x50000
29 # |----------------------|
30 # | MBR partition #2 |
36 # |----------------------|
37 # | MBR partition #3 |
45 # ------------------------
47 # For eMMC boot, everything up to and including the preloader must be
48 # written to /dev/mmcblk0boot0, with the SDMMC_BOOT header changed to
49 # read EMMC_BOOT\0 instead.
51 # The contents of the main eMMC are identical to the SD card layout,
52 # with the preloader loading 512KiB of U-Boot starting at 0x50000.
54 define Build
/mt7623-mbr
55 cp
$@
$@.tmp
2>/dev
/null || true
56 ptgen
-o
$@.tmp
-h
4 -s
63 -a
0 -l
1024 \
57 -t
0x41 -N uboot
-p
1M@
$(UBOOT_OFFSET
) \
58 -t
0xea -N recovery
-p
40M@
4M \
59 -t
0x2e -N production
-p
$(CONFIG_TARGET_ROOTFS_PARTSIZE
)M@
48M
62 $(if
$(findstring sdmmc
,$1),"SDMMC_BOOT\x00\x00\x01\x00\x00\x00\x00\x02\x00\x00") \
63 $(if
$(findstring emmc
,$1),"EMMC_BOOT\x00\x00\x00\x01\x00\x00\x00\x00\x02\x00\x00") \
64 | dd bs
=1 of
="$@.tmp" seek
=0 conv
=notrunc
66 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"\
67 | dd bs
=1 of
="$@.tmp" seek
=512 conv
=notrunc
73 define Build
/append-preloader
74 cat
$(STAGING_DIR_IMAGE
)/$1-preloader.bin
>> $@
77 define Build
/append-bootloader
78 cat
$(STAGING_DIR_IMAGE
)/$1-$(UBOOT_IMAGE
) >> $@
81 define Build
/scatterfile
82 .
/gen_scatterfile.sh
$(subst mt
,MT
,$(SUBTARGET
)) "$1" \
83 $(subst -scatter.txt
,,$(notdir $@
)) "$(DEVICE_TITLE)" > $@
86 define Device
/bananapi_bpi-r2
87 DEVICE_VENDOR
:= Bananapi
88 DEVICE_MODEL
:= BPi-R2
89 DEVICE_DTS
:= mt7623n-bananapi-bpi-r2
90 DEVICE_PACKAGES
:= mkf2fs e2fsprogs kmod-usb3 kmod-ata-ahci
92 UBOOT_TARGET
:= mt7623n_bpir2
93 UBOOT_IMAGE
:= u-boot.bin
94 UBOOT_PATH
:= $(STAGING_DIR_IMAGE
)/$$(UBOOT_TARGET
)-$$(UBOOT_IMAGE
)
95 IMAGES
:= sysupgrade.itb
96 KERNEL
:= kernel-bin | gzip
97 KERNEL_INITRAMFS_SUFFIX
:= -recovery.itb
98 KERNEL_INITRAMFS
:= kernel-bin | gzip | fit gzip
$$(DTS_DIR
)/$$(DEVICE_DTS
).dtb with-initrd
99 IMAGE_SIZE
:= $$(shell expr
48 + $$(CONFIG_TARGET_ROOTFS_PARTSIZE
))m
100 IMAGE
/sysupgrade.itb
:= append-kernel | fit gzip
$$(DTS_DIR
)/$$(DEVICE_DTS
).dtb external-static-with-rootfs | append-metadata
101 ARTIFACT
/preloader.bin
:= mt7623-mbr emmc |\
102 pad-to
2k | append-preloader
$$(UBOOT_TARGET
)
103 ARTIFACT
/u-boot.bin
:= append-uboot
104 ARTIFACT
/sdcard.img.gz
:= mt7623-mbr sdmmc |\
105 pad-to
2k | append-preloader
$$(UBOOT_TARGET
) |\
106 pad-to
$$(UBOOT_OFFSET
) | append-bootloader
$$(UBOOT_TARGET
) |\
107 pad-to
4092k | mt7623-mbr emmc |\
108 $(if
$(CONFIG_TARGET_ROOTFS_INITRAMFS
),\
109 pad-to
4M | append-image-stage initramfs-recovery.itb | check-size
48m |\
111 $(if
$(CONFIG_TARGET_ROOTFS_SQUASHFS
),\
112 pad-to
48M | append-image squashfs-sysupgrade.itb | check-size |\
115 ARTIFACTS
:= u-boot.bin preloader.bin sdcard.img.gz
116 SUPPORTED_DEVICES
:= bananapi
,bpi-r2
118 TARGET_DEVICES
+= bananapi_bpi-r2
120 define Device
/unielec_u7623-02
121 DEVICE_VENDOR
:= UniElec
122 DEVICE_MODEL
:= U7623-02
123 # When we use FIT images, U-Boot will populate the /memory node with the correct
124 # memory size discovered from the preloader, so we don't need separate builds.
125 DEVICE_DTS
:= mt7623a-unielec-u7623-02
126 DEVICE_DTS_DIR
:= ..
/dts
127 DEVICE_PACKAGES
:= kmod-fs-vfat kmod-nls-cp437 kmod-nls-iso8859-1 kmod-mmc \
128 mkf2fs e2fsprogs kmod-usb-ohci kmod-usb2 kmod-usb3 kmod-ata-ahci
130 UBOOT_TARGET
:= mt7623a_unielec_u7623
131 UBOOT_IMAGE
:= u-boot-mtk.bin
132 UBOOT_PATH
:= $(STAGING_DIR_IMAGE
)/$$(UBOOT_TARGET
)-$$(UBOOT_IMAGE
)
133 IMAGE_SIZE
:= $$(shell expr
48 + $$(CONFIG_TARGET_ROOTFS_PARTSIZE
))m
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 $(if
$(CONFIG_TARGET_ROOTFS_INITRAMFS
),\
145 pad-to
4M | append-image-stage initramfs-recovery.itb | check-size
48m |\
147 $(if
$(CONFIG_TARGET_ROOTFS_SQUASHFS
),\
148 pad-to
48M | append-image squashfs-sysupgrade.itb | check-size |\
150 gzip | append-metadata
151 ARTIFACT
/scatter.txt
:= scatterfile emmc.img.gz
152 ARTIFACTS
:= u-boot.bin scatter.txt emmc.img.gz
153 SUPPORTED_DEVICES
+= unielec
,u7623-02-emmc-512m
155 TARGET_DEVICES
+= unielec_u7623-02
158 # Legacy helper for U7623 board
159 define Build
/fat-recovery-fs
161 mkfs.fat
-C
$@.recovery
3070
162 cat
$@.recovery
>> $@
165 # Legacy partial image for U7623
166 # This preserves the vendor U-Boot and starts with a uImage at 0xA00
167 define Device
/unielec_u7623-02-emmc-512m-legacy
168 DEVICE_VENDOR
:= UniElec
169 DEVICE_MODEL
:= U7623-02
170 DEVICE_VARIANT
:= eMMC
/512MiB RAM
(legacy image
)
171 DEVICE_DTS
:= mt7623a-unielec-u7623-02-emmc-512m
172 DEVICE_DTS_DIR
:= ..
/dts
173 KERNEL_NAME
:= zImage
174 KERNEL
:= kernel-bin | append-dtb | uImage none
175 KERNEL_INITRAMFS
:= kernel-bin | append-dtb | uImage none
176 DEVICE_PACKAGES
:= kmod-fs-vfat kmod-nls-cp437 kmod-nls-iso8859-1 kmod-mmc \
177 mkf2fs e2fsprogs kmod-usb-ohci kmod-usb2 kmod-usb3 kmod-ata-ahci \
179 IMAGES
:= sysupgrade.bin.gz
180 IMAGE
/sysupgrade.bin.gz
:= append-kernel |\
181 pad-to
4864k | fat-recovery-fs |\
182 pad-to
7936k | append-rootfs |\
183 gzip | append-metadata
184 SUPPORTED_DEVICES
:= unielec
,u7623-02-emmc-512m
186 TARGET_DEVICES
+= unielec_u7623-02-emmc-512m-legacy