fd043ed85fad1662df480f82195b21ec9e8a6537
[openwrt/openwrt.git] / target / linux / mediatek / image / mt7622.mk
1 DTS_DIR := $(DTS_DIR)/mediatek
2
3 ifdef CONFIG_LINUX_5_4
4 KERNEL_LOADADDR := 0x44080000
5 else
6 KERNEL_LOADADDR := 0x44000000
7 endif
8
9 define Image/Prepare
10 # For UBI we want only one extra block
11 rm -f $(KDIR)/ubi_mark
12 echo -ne '\xde\xad\xc0\xde' > $(KDIR)/ubi_mark
13 endef
14
15 define Build/buffalo-kernel-trx
16 $(eval magic=$(word 1,$(1)))
17 $(eval dummy=$(word 2,$(1)))
18 $(eval kern_size=$(if $(KERNEL_SIZE),$(KERNEL_SIZE),0x400000))
19
20 $(if $(dummy),touch $(dummy))
21 $(STAGING_DIR_HOST)/bin/otrx create $@.new \
22 $(if $(magic),-M $(magic),) \
23 -f $@ \
24 $(if $(dummy),\
25 -a 0x20000 \
26 -b $$(( $(subst k, * 1024,$(kern_size)) )) \
27 -f $(dummy),)
28 mv $@.new $@
29 endef
30
31 define Build/bl2
32 cat $(STAGING_DIR_IMAGE)/mt7622-$1-bl2.img >> $@
33 endef
34
35 define Build/bl31-uboot
36 cat $(STAGING_DIR_IMAGE)/mt7622_$1-u-boot.fip >> $@
37 endef
38
39 define Build/mt7622-gpt
40 cp $@ $@.tmp 2>/dev/null || true
41 ptgen -g -o $@.tmp -a 1 -l 1024 \
42 $(if $(findstring sdmmc,$1), \
43 -H \
44 -t 0x83 -N bl2 -r -p 512k@512k \
45 ) \
46 -t 0xef -N fip -r -p 1M@2M \
47 -t 0x83 -N ubootenv -r -p 1M@4M \
48 -N recovery -r -p 32M@6M \
49 $(if $(findstring sdmmc,$1), \
50 -t 0x2e -N production -p 216M@40M \
51 ) \
52 $(if $(findstring emmc,$1), \
53 -t 0x2e -N production -p 980M@40M \
54 )
55 cat $@.tmp >> $@
56 rm $@.tmp
57 endef
58
59 define Build/trx-nand
60 # kernel: always use 4 MiB (-28 B or TRX header) to allow upgrades even
61 # if it grows up between releases
62 # root: UBI with one extra block containing UBI mark to trigger erasing
63 # rest of partition
64 $(STAGING_DIR_HOST)/bin/otrx create $@.new \
65 -M 0x32504844 \
66 -f $(IMAGE_KERNEL) -a 0x20000 -b 0x400000 \
67 -f $@ \
68 -A $(KDIR)/ubi_mark -a 0x20000
69 mv $@.new $@
70 endef
71
72 define Device/bananapi_bpi-r64
73 DEVICE_VENDOR := Bananapi
74 DEVICE_MODEL := BPi-R64
75 DEVICE_DTS := mt7622-bananapi-bpi-r64
76 DEVICE_DTS_OVERLAY := mt7622-bananapi-bpi-r64-pcie1 mt7622-bananapi-bpi-r64-sata
77 DEVICE_PACKAGES := kmod-ata-ahci-mtk kmod-btmtkuart kmod-usb3 e2fsprogs mkf2fs f2fsck
78 ARTIFACTS := sdcard.img
79 IMAGES := sysupgrade.itb
80 KERNEL_INITRAMFS_SUFFIX := -recovery.itb
81 ARTIFACT/sdcard.img := mt7622-gpt sdmmc | pad-to 128k | mt7622-gpt emmc | pad-to 256k |\
82 bl2 emmc-2ddr | pad-to 512k | bl2 sdmmc-2ddr | pad-to 1024k | bl31-uboot bananapi_bpi-r64-emmc | pad-to 2048k |\
83 bl31-uboot bananapi_bpi-r64-sdmmc | pad-to 6144k
84 KERNEL := kernel-bin | gzip
85 KERNEL_INITRAMFS := kernel-bin | lzma | fit lzma $$(DTS_DIR)/$$(DEVICE_DTS).dtb with-initrd | pad-to 128k
86 IMAGE/sysupgrade.itb := append-kernel | fit gzip $$(DTS_DIR)/$$(DEVICE_DTS).dtb external-static-with-rootfs | append-metadata
87 endef
88 TARGET_DEVICES += bananapi_bpi-r64
89
90 define Device/buffalo_wsr-2533dhp2
91 DEVICE_VENDOR := Buffalo
92 DEVICE_MODEL := WSR-2533DHP2
93 DEVICE_DTS := mt7622-buffalo-wsr-2533dhp2
94 DEVICE_DTS_DIR := ../dts
95 IMAGE_SIZE := 59392k
96 KERNEL_SIZE := 4096k
97 BLOCKSIZE := 128k
98 PAGESIZE := 2048
99 SUBPAGESIZE := 512
100 UBINIZE_OPTS := -E 5
101 BUFFALO_TAG_PLATFORM := MTK
102 BUFFALO_TAG_VERSION := 9.99
103 BUFFALO_TAG_MINOR := 9.99
104 IMAGES += factory.bin factory-uboot.bin
105 KERNEL_INITRAMFS := kernel-bin | lzma | \
106 fit lzma $$(KDIR)/image-$$(firstword $$(DEVICE_DTS)).dtb with-initrd | \
107 buffalo-kernel-trx
108 IMAGE/factory.bin := append-ubi | trx-nand | \
109 buffalo-enc WSR-2533DHP2 $$(BUFFALO_TAG_VERSION) -l | \
110 buffalo-tag-dhp WSR-2533DHP2 JP JP | buffalo-enc-tag -l | buffalo-dhp-image
111 IMAGE/factory-uboot.bin := append-ubi | trx-nand
112 IMAGE/sysupgrade.bin := append-kernel | \
113 buffalo-kernel-trx 0x32504844 $(KDIR)/tmp/$$(DEVICE_NAME).null | \
114 sysupgrade-tar kernel=$$$$@ | append-metadata
115 DEVICE_PACKAGES := swconfig
116 endef
117 TARGET_DEVICES += buffalo_wsr-2533dhp2
118
119 define Device/elecom_wrc-2533gent
120 DEVICE_VENDOR := Elecom
121 DEVICE_MODEL := WRC-2533GENT
122 DEVICE_DTS := mt7622-elecom-wrc-2533gent
123 DEVICE_DTS_DIR := ../dts
124 DEVICE_PACKAGES := kmod-btmtkuart kmod-usb3 swconfig
125 endef
126 TARGET_DEVICES += elecom_wrc-2533gent
127
128 define Device/linksys_e8450
129 DEVICE_VENDOR := Linksys
130 DEVICE_MODEL := E8450
131 DEVICE_ALT0_VENDOR := Belkin
132 DEVICE_ALT0_MODEL := RT3200
133 DEVICE_DTS := mt7622-linksys-e8450
134 DEVICE_DTS_DIR := ../dts
135 DEVICE_PACKAGES := kmod-mt7915e kmod-usb3
136 endef
137 TARGET_DEVICES += linksys_e8450
138
139 define Device/linksys_e8450-ubi
140 DEVICE_VENDOR := Linksys
141 DEVICE_MODEL := E8450
142 DEVICE_VARIANT := UBI
143 DEVICE_ALT0_VENDOR := Belkin
144 DEVICE_ALT0_MODEL := RT3200
145 DEVICE_ALT0_VARIANT := UBI
146 DEVICE_DTS := mt7622-linksys-e8450-ubi
147 DEVICE_DTS_DIR := ../dts
148 DEVICE_PACKAGES := kmod-mt7915e kmod-usb3
149 UBINIZE_OPTS := -E 5
150 BLOCKSIZE := 128k
151 PAGESIZE := 2048
152 UBOOTENV_IN_UBI := 1
153 KERNEL_IN_UBI := 1
154 KERNEL := kernel-bin | gzip
155 # recovery can also be used with stock firmware web-ui, hence the padding...
156 KERNEL_INITRAMFS := kernel-bin | lzma | \
157 fit lzma $$(KDIR)/image-$$(firstword $$(DEVICE_DTS)).dtb with-initrd | pad-to 128k
158 KERNEL_INITRAMFS_SUFFIX := -recovery.itb
159 IMAGES := sysupgrade.itb
160 IMAGE/sysupgrade.itb := append-kernel | fit gzip $$(KDIR)/image-$$(firstword $$(DEVICE_DTS)).dtb external-static-with-rootfs | append-metadata
161 ARTIFACTS := preloader.bin bl31-uboot.fip
162 ARTIFACT/preloader.bin := bl2 snand-1ddr
163 ARTIFACT/bl31-uboot.fip := bl31-uboot linksys_e8450
164 endef
165 TARGET_DEVICES += linksys_e8450-ubi
166
167 define Device/mediatek_mt7622-rfb1
168 DEVICE_VENDOR := MediaTek
169 DEVICE_MODEL := MTK7622 rfb1 AP
170 DEVICE_DTS := mt7622-rfb1
171 DEVICE_PACKAGES := kmod-ata-ahci-mtk kmod-btmtkuart kmod-usb3
172 endef
173 TARGET_DEVICES += mediatek_mt7622-rfb1
174
175 define Device/mediatek_mt7622-rfb1-ubi
176 DEVICE_VENDOR := MediaTek
177 DEVICE_MODEL := MTK7622 rfb1 AP (UBI)
178 DEVICE_DTS := mt7622-rfb1-ubi
179 DEVICE_DTS_DIR := ../dts
180 DEVICE_PACKAGES := kmod-ata-ahci-mtk kmod-btmtkuart kmod-usb3
181 UBINIZE_OPTS := -E 5
182 BLOCKSIZE := 128k
183 PAGESIZE := 2048
184 KERNEL_SIZE := 4194304
185 IMAGE_SIZE := 32768k
186 IMAGES += factory.bin
187 IMAGE/factory.bin := append-kernel | pad-to $$(KERNEL_SIZE) | append-ubi | \
188 check-size $$$$(IMAGE_SIZE)
189 IMAGE/sysupgrade.bin := sysupgrade-tar | append-metadata
190 endef
191 TARGET_DEVICES += mediatek_mt7622-rfb1-ubi
192
193 define Device/ubnt_unifi-6-lr
194 DEVICE_VENDOR := Ubiquiti
195 DEVICE_MODEL := UniFi 6 LR
196 DEVICE_DTS := mt7622-ubnt-unifi-6-lr
197 DEVICE_DTS_DIR := ../dts
198 DEVICE_PACKAGES := kmod-mt7915e
199 endef
200 TARGET_DEVICES += ubnt_unifi-6-lr