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 -t
0x2e -N production
-p
$(CONFIG_TARGET_ROOTFS_PARTSIZE
)M@
48M
63 $(if
$(findstring sdmmc
,$1),"SDMMC_BOOT\x00\x00\x01\x00\x00\x00\x00\x02\x00\x00") \
64 $(if
$(findstring emmc
,$1),"EMMC_BOOT\x00\x00\x00\x01\x00\x00\x00\x00\x02\x00\x00") \
65 | dd bs
=1 of
="$@.tmp" seek
=0 conv
=notrunc
67 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"\
68 | dd bs
=1 of
="$@.tmp" seek
=512 conv
=notrunc
74 define Build
/append-preloader
75 cat
$(STAGING_DIR_IMAGE
)/$1-preloader.bin
>> $@
78 define Build
/append-bootloader
79 cat
$(STAGING_DIR_IMAGE
)/$1-$(UBOOT_IMAGE
) >> $@
82 define Build
/scatterfile
83 .
/gen_scatterfile.sh
$(subst mt
,MT
,$(SUBTARGET
)) "$1" \
84 $(subst -scatter.txt
,,$(notdir $@
)) "$(DEVICE_TITLE)" > $@
87 define Device
/bananapi_bpi-r2
88 DEVICE_VENDOR
:= Bananapi
89 DEVICE_MODEL
:= BPi-R2
90 DEVICE_DTS
:= mt7623n-bananapi-bpi-r2
91 DEVICE_PACKAGES
:= mkf2fs e2fsprogs kmod-usb3 kmod-ata-ahci
93 UBOOT_TARGET
:= mt7623n_bpir2
94 UBOOT_IMAGE
:= u-boot.bin
95 UBOOT_PATH
:= $(STAGING_DIR_IMAGE
)/$$(UBOOT_TARGET
)-$$(UBOOT_IMAGE
)
96 IMAGES
:= sysupgrade.itb
97 KERNEL
:= kernel-bin | gzip
98 KERNEL_INITRAMFS_SUFFIX
:= -recovery.itb
99 KERNEL_INITRAMFS
:= kernel-bin | gzip | fit gzip
$$(DTS_DIR
)/$$(DEVICE_DTS
).dtb with-initrd
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 pad-to
4M | append-image-stage initramfs-recovery.itb |\
109 pad-to
48M | append-image squashfs-sysupgrade.itb |\
111 ARTIFACTS
:= u-boot.bin preloader.bin sdcard.img.gz
112 SUPPORTED_DEVICES
:= bananapi
,bpi-r2
114 TARGET_DEVICES
+= bananapi_bpi-r2
116 define Device
/unielec_u7623-02
117 DEVICE_VENDOR
:= UniElec
118 DEVICE_MODEL
:= U7623-02
119 # When we use FIT images, U-Boot will populate the /memory node with the correct
120 # memory size discovered from the preloader, so we don't need separate builds.
121 DEVICE_DTS
:= mt7623a-unielec-u7623-02
122 DEVICE_DTS_DIR
:= ..
/dts
123 DEVICE_PACKAGES
:= kmod-fs-vfat kmod-nls-cp437 kmod-nls-iso8859-1 kmod-mmc \
124 mkf2fs e2fsprogs kmod-usb-ohci kmod-usb2 kmod-usb3 kmod-ata-ahci
126 UBOOT_TARGET
:= mt7623a_unielec_u7623
127 UBOOT_IMAGE
:= u-boot-mtk.bin
128 UBOOT_PATH
:= $(STAGING_DIR_IMAGE
)/$$(UBOOT_TARGET
)-$$(UBOOT_IMAGE
)
129 IMAGES
:= sysupgrade.itb
130 KERNEL
:= kernel-bin | gzip
131 KERNEL_INITRAMFS_SUFFIX
:= -recovery.itb
132 KERNEL_INITRAMFS
:= kernel-bin | gzip | fit gzip
$$(KDIR
)/image-
$$(firstword $$(DEVICE_DTS
)).dtb with-initrd
133 IMAGE
/sysupgrade.itb
:= append-kernel | fit gzip
$$(KDIR
)/image-
$$(firstword $$(DEVICE_DTS
)).dtb external-static-with-rootfs | append-metadata
134 ARTIFACT
/u-boot.bin
:= append-uboot
135 # vendor Preloader seems not to care about SDMMC_BOOT/EMMC_BOOT header,
136 # but OpenWrt expects 'SDMM' magic for sysupgrade.
137 ARTIFACT
/emmc.img.gz
:= mt7623-mbr sdmmc |\
138 pad-to
$$(UBOOT_OFFSET
) | append-bootloader
$$(UBOOT_TARGET
) |\
139 pad-to
4M | append-image-stage initramfs-recovery.itb |\
140 pad-to
48M | append-image squashfs-sysupgrade.itb |\
141 gzip | append-metadata
142 ARTIFACT
/scatter.txt
:= scatterfile emmc.img.gz
143 ARTIFACTS
:= u-boot.bin scatter.txt emmc.img.gz
144 SUPPORTED_DEVICES
+= unielec
,u7623-02-emmc-512m
146 TARGET_DEVICES
+= unielec_u7623-02
149 # Legacy helper for U7623 board
150 define Build
/fat-recovery-fs
152 mkfs.fat
-C
$@.recovery
3070
153 cat
$@.recovery
>> $@
156 # Legacy partial image for U7623
157 # This preserves the vendor U-Boot and starts with a uImage at 0xA00
158 define Device
/unielec_u7623-02-emmc-512m-legacy
159 DEVICE_VENDOR
:= UniElec
160 DEVICE_MODEL
:= U7623-02
161 DEVICE_VARIANT
:= eMMC
/512MiB RAM
(legacy image
)
162 DEVICE_DTS
:= mt7623a-unielec-u7623-02-emmc-512m
163 DEVICE_DTS_DIR
:= ..
/dts
164 KERNEL_NAME
:= zImage
165 KERNEL
:= kernel-bin | append-dtb | uImage none
166 KERNEL_INITRAMFS
:= kernel-bin | append-dtb | uImage none
167 DEVICE_PACKAGES
:= kmod-fs-vfat kmod-nls-cp437 kmod-nls-iso8859-1 kmod-mmc \
168 mkf2fs e2fsprogs kmod-usb-ohci kmod-usb2 kmod-usb3 kmod-ata-ahci \
170 IMAGES
:= sysupgrade.bin.gz
171 IMAGE
/sysupgrade.bin.gz
:= append-kernel |\
172 pad-to
4864k | fat-recovery-fs |\
173 pad-to
7936k | append-rootfs |\
174 gzip | append-metadata
175 SUPPORTED_DEVICES
:= unielec
,u7623-02-emmc-512m
177 TARGET_DEVICES
+= unielec_u7623-02-emmc-512m-legacy