a49401d904c64e66038fd2a9c2036ccf5dc21814
[openwrt/openwrt.git] / target / linux / mvebu / image / cortexa9.mk
1 # SPDX-License-Identifier: GPL-2.0-only
2 #
3 # Copyright (C) 2012-2016 OpenWrt.org
4 # Copyright (C) 2016 LEDE-project.org
5
6 define Build/fortigate-header
7 ( \
8 dd if=/dev/zero bs=384 count=1 2>/dev/null; \
9 datalen=$$(wc -c $@ | cut -d' ' -f1); \
10 datalen=$$(printf "%08x" $$datalen); \
11 datalen="$${datalen:6:2}$${datalen:4:2}$${datalen:2:2}$${datalen:0:2}"; \
12 printf $$(echo "00020000$${datalen}ffff0000ffff0000" | sed 's/../\\x&/g'); \
13 dd if=/dev/zero bs=112 count=1 2>/dev/null; \
14 cat $@; \
15 ) > $@.new
16 mv $@.new $@
17 endef
18
19 define Build/seil-header
20 ( \
21 data_size_crc="$$(gzip -c $@ | tail -c8 | \
22 od -An -tx8 --endian little | tr -d ' \n')"; \
23 printf "SEIL2015"; \
24 printf "$(call toupper,$(LINUX_KARCH)) $(VERSION_DIST) Linux-$(LINUX_VERSION)" | \
25 dd bs=80 count=1 conv=sync 2>/dev/null; \
26 printf "$$(echo $${data_size_crc:8:8} | sed 's/../\\x&/g')"; \
27 printf "\x00\x00\x00\x01\x00\x00\x00\x09\x00\x00\x00\x63"; \
28 printf "$(REVISION)" | dd bs=32 count=1 conv=sync 2>/dev/null; \
29 printf "\x00\x00\x00\x00"; \
30 printf "$$(echo $${data_size_crc:0:8} | sed 's/../\\x&/g')"; \
31 cat $@; \
32 ) > $@.new
33 mv $@.new $@
34 endef
35
36 define Device/dsa-migration
37 DEVICE_COMPAT_VERSION := 1.1
38 DEVICE_COMPAT_MESSAGE := Config cannot be migrated from swconfig to DSA
39 endef
40
41 define Device/kernel-size-migration
42 DEVICE_COMPAT_VERSION := 2.0
43 DEVICE_COMPAT_MESSAGE := Partition design has changed compared to older versions (up to 19.07) due to kernel size restrictions. \
44 Upgrade via sysupgrade mechanism is not possible, so new installation via factory style image is required.
45 endef
46
47 define Device/buffalo_ls220de
48 $(Device/NAND-128K)
49 DEVICE_VENDOR := Buffalo
50 DEVICE_MODEL := LinkStation LS220DE
51 KERNEL_UBIFS_OPTS = -m $$(PAGESIZE) -e 124KiB -c 172 -x none
52 KERNEL := kernel-bin | append-dtb | uImage none | buffalo-kernel-ubifs
53 KERNEL_INITRAMFS := kernel-bin | append-dtb | uImage none
54 DEVICE_DTS := armada-370-buffalo-ls220de
55 DEVICE_PACKAGES := \
56 kmod-hwmon-gpiofan kmod-hwmon-drivetemp kmod-linkstation-poweroff \
57 kmod-md-mod kmod-md-raid0 kmod-md-raid1 kmod-md-raid10 kmod-fs-xfs \
58 mdadm mkf2fs e2fsprogs partx-utils
59 endef
60 TARGET_DEVICES += buffalo_ls220de
61
62 define Device/buffalo_ls421de
63 $(Device/NAND-128K)
64 DEVICE_VENDOR := Buffalo
65 DEVICE_MODEL := LinkStation LS421DE
66 SUBPAGESIZE :=
67 KERNEL_SIZE := 33554432
68 FILESYSTEMS := squashfs ubifs
69 KERNEL := kernel-bin | append-dtb | uImage none | buffalo-kernel-jffs2
70 KERNEL_INITRAMFS := kernel-bin | append-dtb | uImage none
71 DEVICE_DTS := armada-370-buffalo-ls421de
72 DEVICE_PACKAGES := \
73 kmod-rtc-rs5c372a kmod-hwmon-gpiofan kmod-hwmon-drivetemp kmod-usb3 \
74 kmod-linkstation-poweroff kmod-md-raid0 kmod-md-raid1 kmod-md-mod \
75 kmod-fs-xfs mkf2fs e2fsprogs partx-utils
76 endef
77 TARGET_DEVICES += buffalo_ls421de
78
79 define Device/ctera_c200-v2
80 PAGESIZE := 2048
81 SUBPAGESIZE := 512
82 BLOCKSIZE := 128k
83 DEVICE_VENDOR := Ctera
84 DEVICE_MODEL := C200
85 DEVICE_VARIANT := V2
86 SOC := armada-370
87 KERNEL := kernel-bin | append-dtb | uImage none | ctera-firmware
88 KERNEL_IN_UBI :=
89 KERNEL_SUFFIX := -factory.firm
90 DEVICE_PACKAGES := \
91 kmod-gpio-button-hotplug kmod-hwmon-drivetemp kmod-hwmon-nct7802 \
92 kmod-rtc-s35390a kmod-usb3 kmod-usb-ledtrig-usbport
93 IMAGES := sysupgrade.bin
94 endef
95 TARGET_DEVICES += ctera_c200-v2
96
97 define Device/cznic_turris-omnia
98 DEVICE_VENDOR := CZ.NIC
99 DEVICE_MODEL := Turris Omnia
100 KERNEL_INSTALL := 1
101 SOC := armada-385
102 KERNEL := kernel-bin
103 KERNEL_INITRAMFS := kernel-bin | gzip | fit gzip $$(KDIR)/image-$$(DEVICE_DTS).dtb
104 DEVICE_PACKAGES := \
105 mkf2fs e2fsprogs kmod-fs-vfat kmod-nls-cp437 kmod-nls-iso8859-1 \
106 wpad-basic-mbedtls kmod-ath9k kmod-ath10k-ct ath10k-firmware-qca988x-ct \
107 partx-utils kmod-i2c-mux-pca954x kmod-leds-turris-omnia
108 IMAGES := sysupgrade.img.gz
109 IMAGE/sysupgrade.img.gz := boot-scr | boot-img | sdcard-img | gzip | append-metadata
110 SUPPORTED_DEVICES += armada-385-turris-omnia
111 BOOT_SCRIPT := turris-omnia
112 endef
113 TARGET_DEVICES += cznic_turris-omnia
114
115 define Device/fortinet_fg-30e
116 DEVICE_VENDOR := Fortinet
117 DEVICE_MODEL := FortiGate 30E
118 SOC := armada-385
119 KERNEL := kernel-bin | append-dtb
120 KERNEL_INITRAMFS := kernel-bin | append-dtb | fortigate-header | \
121 gzip-filename FGT30E
122 KERNEL_SIZE := 6144k
123 DEVICE_DTS := armada-385-fortinet-fg-30e
124 IMAGE/sysupgrade.bin := append-rootfs | pad-rootfs | \
125 sysupgrade-tar rootfs=$$$$@ | append-metadata
126 DEVICE_PACKAGES := kmod-hwmon-nct7802
127 endef
128 TARGET_DEVICES += fortinet_fg-30e
129
130 define Device/fortinet_fg-50e
131 DEVICE_VENDOR := Fortinet
132 DEVICE_MODEL := FortiGate 50E
133 SOC := armada-385
134 KERNEL := kernel-bin | append-dtb
135 KERNEL_INITRAMFS := kernel-bin | append-dtb | fortigate-header | \
136 gzip-filename FGT50E
137 KERNEL_SIZE := 6144k
138 DEVICE_DTS := armada-385-fortinet-fg-50e
139 IMAGE/sysupgrade.bin := append-rootfs | pad-rootfs | \
140 sysupgrade-tar rootfs=$$$$@ | append-metadata
141 DEVICE_PACKAGES := kmod-hwmon-nct7802
142 endef
143 TARGET_DEVICES += fortinet_fg-50e
144
145 define Device/globalscale_mirabox
146 $(Device/NAND-512K)
147 DEVICE_VENDOR := Globalscale
148 DEVICE_MODEL := Mirabox
149 SOC := armada-370
150 SUPPORTED_DEVICES += mirabox
151 endef
152 TARGET_DEVICES += globalscale_mirabox
153
154 define Device/iij_sa-w2
155 DEVICE_VENDOR := IIJ
156 DEVICE_MODEL := SA-W2
157 SOC := armada-380
158 KERNEL := kernel-bin | append-dtb | seil-header
159 DEVICE_DTS := armada-380-iij-sa-w2
160 IMAGE_SIZE := 15360k
161 IMAGE/sysupgrade.bin := append-kernel | pad-to 64k | \
162 append-rootfs | pad-rootfs | check-size | append-metadata
163 DEVICE_PACKAGES := kmod-ath9k kmod-ath10k-ct ath10k-firmware-qca988x-ct \
164 wpad-basic-mbedtls
165 endef
166 TARGET_DEVICES += iij_sa-w2
167
168 define Device/iptime_nas1dual
169 DEVICE_VENDOR := ipTIME
170 DEVICE_MODEL := NAS1dual
171 DEVICE_PACKAGES := kmod-hwmon-drivetemp kmod-hwmon-gpiofan kmod-usb3
172 SOC := armada-385
173 KERNEL := kernel-bin | append-dtb | iptime-naspkg nas1dual
174 KERNEL_SIZE := 6144k
175 IMAGES := sysupgrade.bin
176 IMAGE_SIZE := 64256k
177 IMAGE/sysupgrade.bin := append-kernel | pad-to $$(KERNEL_SIZE) | \
178 append-rootfs | pad-rootfs | check-size | append-metadata
179 endef
180 TARGET_DEVICES += iptime_nas1dual
181
182 define Device/kobol_helios4
183 DEVICE_VENDOR := Kobol
184 DEVICE_MODEL := Helios4
185 KERNEL_INSTALL := 1
186 KERNEL := kernel-bin
187 DEVICE_PACKAGES := mkf2fs e2fsprogs partx-utils
188 IMAGES := sdcard.img.gz
189 IMAGE/sdcard.img.gz := boot-scr | boot-img-ext4 | sdcard-img-ext4 | gzip | append-metadata
190 SOC := armada-388
191 UBOOT := helios4-u-boot-with-spl.kwb
192 BOOT_SCRIPT := clearfog
193 endef
194 TARGET_DEVICES += kobol_helios4
195
196 define Device/linksys
197 $(Device/NAND-128K)
198 DEVICE_VENDOR := Linksys
199 DEVICE_PACKAGES := kmod-mwlwifi wpad-basic-mbedtls
200 IMAGES += factory.img
201 IMAGE/factory.img := append-kernel | pad-to $$$$(KERNEL_SIZE) | \
202 append-ubi | pad-to $$$$(PAGESIZE)
203 KERNEL_SIZE := 6144k
204 endef
205
206 define Device/linksys_wrt1200ac
207 $(call Device/linksys)
208 $(Device/dsa-migration)
209 DEVICE_MODEL := WRT1200AC
210 DEVICE_ALT0_VENDOR := Linksys
211 DEVICE_ALT0_MODEL := Caiman
212 DEVICE_DTS := armada-385-linksys-caiman
213 DEVICE_PACKAGES += mwlwifi-firmware-88w8864
214 SUPPORTED_DEVICES += armada-385-linksys-caiman linksys,caiman
215 endef
216 TARGET_DEVICES += linksys_wrt1200ac
217
218 define Device/linksys_wrt1900acs
219 $(call Device/linksys)
220 $(Device/dsa-migration)
221 DEVICE_MODEL := WRT1900ACS
222 DEVICE_VARIANT := v1
223 DEVICE_ALT0_VENDOR := Linksys
224 DEVICE_ALT0_MODEL := WRT1900ACS
225 DEVICE_ALT0_VARIANT := v2
226 DEVICE_ALT1_VENDOR := Linksys
227 DEVICE_ALT1_MODEL := Shelby
228 DEVICE_DTS := armada-385-linksys-shelby
229 DEVICE_PACKAGES += mwlwifi-firmware-88w8864
230 SUPPORTED_DEVICES += armada-385-linksys-shelby linksys,shelby
231 endef
232 TARGET_DEVICES += linksys_wrt1900acs
233
234 define Device/linksys_wrt1900ac-v1
235 $(call Device/linksys)
236 $(Device/kernel-size-migration)
237 DEVICE_MODEL := WRT1900AC
238 DEVICE_VARIANT := v1
239 DEVICE_ALT0_VENDOR := Linksys
240 DEVICE_ALT0_MODEL := Mamba
241 DEVICE_DTS := armada-xp-linksys-mamba
242 DEVICE_PACKAGES += mwlwifi-firmware-88w8864
243 KERNEL_SIZE := 4096k
244 SUPPORTED_DEVICES += armada-xp-linksys-mamba linksys,mamba
245 endef
246 TARGET_DEVICES += linksys_wrt1900ac-v1
247
248 define Device/linksys_wrt1900ac-v2
249 $(call Device/linksys)
250 $(Device/dsa-migration)
251 DEVICE_MODEL := WRT1900AC
252 DEVICE_VARIANT := v2
253 DEVICE_ALT0_VENDOR := Linksys
254 DEVICE_ALT0_MODEL := Cobra
255 DEVICE_DTS := armada-385-linksys-cobra
256 DEVICE_PACKAGES += mwlwifi-firmware-88w8864
257 SUPPORTED_DEVICES += armada-385-linksys-cobra linksys,cobra
258 endef
259 TARGET_DEVICES += linksys_wrt1900ac-v2
260
261 define Device/linksys_wrt3200acm
262 $(call Device/linksys)
263 $(Device/dsa-migration)
264 DEVICE_MODEL := WRT3200ACM
265 DEVICE_ALT0_VENDOR := Linksys
266 DEVICE_ALT0_MODEL := Rango
267 DEVICE_DTS := armada-385-linksys-rango
268 DEVICE_PACKAGES += kmod-btmrvl kmod-mwifiex-sdio mwlwifi-firmware-88w8964
269 SUPPORTED_DEVICES += armada-385-linksys-rango linksys,rango
270 endef
271 TARGET_DEVICES += linksys_wrt3200acm
272
273 define Device/linksys_wrt32x
274 $(call Device/linksys)
275 $(Device/kernel-size-migration)
276 DEVICE_MODEL := WRT32X
277 DEVICE_ALT0_VENDOR := Linksys
278 DEVICE_ALT0_MODEL := Venom
279 DEVICE_DTS := armada-385-linksys-venom
280 DEVICE_PACKAGES += kmod-btmrvl kmod-mwifiex-sdio mwlwifi-firmware-88w8964
281 KERNEL_SIZE := 6144k
282 KERNEL := kernel-bin | append-dtb
283 SUPPORTED_DEVICES += armada-385-linksys-venom linksys,venom
284 endef
285 TARGET_DEVICES += linksys_wrt32x
286
287 define Device/marvell_a370-db
288 $(Device/NAND-512K)
289 DEVICE_VENDOR := Marvell
290 DEVICE_MODEL := Armada 370 Development Board (DB-88F6710-BP-DDR3)
291 DEVICE_DTS := armada-370-db
292 SUPPORTED_DEVICES += armada-370-db
293 endef
294 TARGET_DEVICES += marvell_a370-db
295
296 define Device/marvell_a370-rd
297 $(Device/NAND-512K)
298 DEVICE_VENDOR := Marvell
299 DEVICE_MODEL := Armada 370 RD (RD-88F6710-A1)
300 DEVICE_DTS := armada-370-rd
301 SUPPORTED_DEVICES += armada-370-rd
302 endef
303 TARGET_DEVICES += marvell_a370-rd
304
305 define Device/marvell_a385-db-ap
306 $(Device/NAND-256K)
307 DEVICE_VENDOR := Marvell
308 DEVICE_MODEL := Armada 385 Development Board AP (DB-88F6820-AP)
309 DEVICE_DTS := armada-385-db-ap
310 IMAGES += factory.img
311 IMAGE/factory.img := append-kernel | pad-to $$$$(KERNEL_SIZE) | \
312 append-ubi | pad-to $$$$(PAGESIZE)
313 KERNEL_SIZE := 8192k
314 SUPPORTED_DEVICES += armada-385-db-ap
315 endef
316 TARGET_DEVICES += marvell_a385-db-ap
317
318 define Device/marvell_a388-rd
319 DEVICE_VENDOR := Marvell
320 DEVICE_MODEL := Armada 388 RD (RD-88F6820-AP)
321 DEVICE_DTS := armada-388-rd
322 IMAGES := firmware.bin
323 IMAGE/firmware.bin := append-kernel | pad-to 256k | append-rootfs | pad-rootfs
324 SUPPORTED_DEVICES := armada-388-rd marvell,a385-rd
325 endef
326 TARGET_DEVICES += marvell_a388-rd
327
328 define Device/marvell_axp-db
329 $(Device/NAND-512K)
330 DEVICE_VENDOR := Marvell
331 DEVICE_MODEL := Armada XP Development Board (DB-78460-BP)
332 DEVICE_DTS := armada-xp-db
333 SUPPORTED_DEVICES += armada-xp-db
334 endef
335 TARGET_DEVICES += marvell_axp-db
336
337 define Device/marvell_axp-gp
338 $(Device/NAND-512K)
339 DEVICE_VENDOR := Marvell
340 DEVICE_MODEL := Armada Armada XP GP (DB-MV784MP-GP)
341 DEVICE_DTS := armada-xp-gp
342 SUPPORTED_DEVICES += armada-xp-gp
343 endef
344 TARGET_DEVICES += marvell_axp-gp
345
346 define Device/plathome_openblocks-ax3-4
347 DEVICE_VENDOR := Plat'Home
348 DEVICE_MODEL := OpenBlocks AX3
349 DEVICE_VARIANT := 4 ports
350 SOC := armada-xp
351 SUPPORTED_DEVICES += openblocks-ax3-4
352 BLOCKSIZE := 128k
353 PAGESIZE := 1
354 IMAGES += factory.img
355 IMAGE/factory.img := append-kernel | pad-to $$(BLOCKSIZE) | append-ubi
356 endef
357 TARGET_DEVICES += plathome_openblocks-ax3-4
358
359 define Device/solidrun_clearfog-base-a1
360 DEVICE_VENDOR := SolidRun
361 DEVICE_MODEL := ClearFog Base
362 KERNEL_INSTALL := 1
363 KERNEL := kernel-bin
364 DEVICE_PACKAGES := mkf2fs e2fsprogs partx-utils
365 IMAGES := sdcard.img.gz
366 IMAGE/sdcard.img.gz := boot-scr | boot-img-ext4 | sdcard-img-ext4 | gzip | append-metadata
367 DEVICE_DTS := armada-388-clearfog-base armada-388-clearfog-pro
368 UBOOT := clearfog-u-boot-with-spl.kwb
369 BOOT_SCRIPT := clearfog
370 SUPPORTED_DEVICES += armada-388-clearfog-base
371 DEVICE_COMPAT_VERSION := 1.1
372 DEVICE_COMPAT_MESSAGE := Ethernet interface rename has been dropped
373 endef
374 TARGET_DEVICES += solidrun_clearfog-base-a1
375
376 define Device/solidrun_clearfog-pro-a1
377 $(Device/dsa-migration)
378 DEVICE_VENDOR := SolidRun
379 DEVICE_MODEL := ClearFog Pro
380 KERNEL_INSTALL := 1
381 KERNEL := kernel-bin
382 DEVICE_PACKAGES := mkf2fs e2fsprogs partx-utils
383 IMAGES := sdcard.img.gz
384 IMAGE/sdcard.img.gz := boot-scr | boot-img-ext4 | sdcard-img-ext4 | gzip | append-metadata
385 DEVICE_DTS := armada-388-clearfog-pro armada-388-clearfog-base
386 UBOOT := clearfog-u-boot-with-spl.kwb
387 BOOT_SCRIPT := clearfog
388 SUPPORTED_DEVICES += armada-388-clearfog armada-388-clearfog-pro
389 endef
390 TARGET_DEVICES += solidrun_clearfog-pro-a1
391
392 define Device/synology_ds213j
393 DEVICE_VENDOR := Synology
394 DEVICE_MODEL := DS213j
395 KERNEL_SIZE := 6912k
396 IMAGE_SIZE := 7168k
397 FILESYSTEMS := squashfs ubifs
398 KERNEL := kernel-bin | append-dtb | uImage none
399 KERNEL_INITRAMFS := kernel-bin | append-dtb | uImage none
400 DEVICE_DTS := armada-370-synology-ds213j
401 IMAGES := sysupgrade.bin
402 IMAGE/sysupgrade.bin := append-kernel | append-rootfs | pad-rootfs | \
403 check-size | append-metadata
404 DEVICE_PACKAGES := \
405 kmod-rtc-s35390a kmod-hwmon-gpiofan kmod-hwmon-drivetemp \
406 kmod-md-raid0 kmod-md-raid1 kmod-md-mod e2fsprogs mdadm \
407 -ppp -kmod-nft-offload -firewall4 -dnsmasq -odhcpd-ipv6only
408 endef
409 TARGET_DEVICES += synology_ds213j