lantiq: split up DEVICE_TITLE
[oweals/openwrt.git] / target / linux / lantiq / image / Makefile
1 #
2 # Copyright (C) 2010-2016 OpenWrt.org
3 #
4 # This is free software, licensed under the GNU General Public License v2.
5 # See /LICENSE for more information.
6 #
7
8 # boards missing since devicetree update
9 #EASY50712 ARV3527P
10
11 KERNEL_LOADADDR = 0x80002000
12 KERNEL_ENTRY = 0x80002000
13
14 include $(TOPDIR)/rules.mk
15 include $(INCLUDE_DIR)/image.mk
16
17 ifeq ($(SUBTARGET),xway)
18   UBIFS_OPTS := -m 512 -e 15872 -c 1959
19 else
20   UBIFS_OPTS := -m 2048 -e 126KiB -c 4096
21 endif
22
23 define Build/append-avm-fakeroot
24         cat ./eva.dummy.squashfs >> $@
25 endef
26
27 define Build/dgn3500-sercom-footer
28         $(STAGING_DIR_HOST)/bin/dgn3500sum $@ $(1) $(2)
29 endef
30
31 define Build/mkbrncmdline
32    mkbrncmdline -i $@ -o $@.new BRN-BOOT
33    mv $@.new $@
34 endef
35
36 define Build/mkbrnimg
37    mkbrnimg -s $(SIGNATURE) -m $(MAGIC) -p $(CRC32_POLY) -o $@ $(IMAGE_KERNEL) $(IMAGE_ROOTFS)
38 endef
39
40 define Build/fullimage
41         mkimage -A mips -O linux -C lzma -T filesystem -a 0x00  \
42                 -e 0x00 -n '$(VERSION_DIST) RootFS' \
43                 -d $(IMAGE_ROOTFS) $(IMAGE_ROOTFS).new
44
45         cat $(IMAGE_KERNEL) $(IMAGE_ROOTFS).new > $@.tmp
46
47         mkimage -A mips -O linux -T multi -a 0x00 -C none \
48                 -e 0x00 -n 'OpenWrt fullimage' \
49                 -d $@.tmp $@
50
51         rm $(IMAGE_ROOTFS).new
52         rm $@.tmp
53 endef
54
55 # Shared device definition: applies to every defined device
56 define Device/Default
57   PROFILES = Default
58   KERNEL_DEPENDS = $$(wildcard $(DTS_DIR)/$$(DEVICE_DTS).dts)
59   KERNEL_INITRAMFS_NAME = $$(KERNEL_NAME)-initramfs
60   KERNEL := kernel-bin | append-dtb | lzma | uImage lzma
61   KERNEL_INITRAMFS := kernel-bin | append-dtb | lzma | uImage lzma
62   FILESYSTEMS := squashfs
63   IMAGE_SIZE :=
64   SUPPORTED_DEVICES := $(subst _,$(comma),$(1))
65   IMAGES := sysupgrade.bin
66   IMAGE/sysupgrade.bin := append-kernel | append-rootfs | pad-rootfs | append-metadata | check-size $$$$(IMAGE_SIZE)
67 endef
68 DEVICE_VARS += IMAGE_SIZE
69
70 define Device/NAND/xway
71   BLOCKSIZE := 16k
72   PAGESIZE := 512
73   SUBPAGESIZE := 256
74   FILESYSTEMS += ubifs
75 endef
76
77 define Device/NAND/xrx200
78   BLOCKSIZE := 128k
79   PAGESIZE := 2048
80   SUBPAGESIZE := 512
81   FILESYSTEMS += ubifs
82 endef
83
84 define Device/NAND
85   $(Device/NAND/$(SUBTARGET))
86   IMAGE/sysupgrade.bin := sysupgrade-tar | append-metadata
87 endef
88
89 define Device/lantiqBrnImage
90   KERNEL := kernel-bin | append-dtb | mkbrncmdline | lzma-no-dict
91   IMAGES := factory.bin
92   IMAGE/factory.bin := mkbrnimg | check-size $$$$(IMAGE_SIZE)
93 endef
94 DEVICE_VARS += SIGNATURE MAGIC CRC32_POLY
95
96 define Device/lantiqFullImage
97   KERNEL := kernel-bin | append-dtb | lzma | uImage lzma | pad-offset 4 0
98   IMAGES := sysupgrade.bin fullimage.bin
99   IMAGE/fullimage.bin := fullimage | check-size $$$$(IMAGE_SIZE)
100 endef
101
102 define Device/AVM
103   DEVICE_VENDOR := AVM
104   KERNEL := kernel-bin | append-dtb | lzma | eva-image
105   KERNEL_INITRAMFS := $$(KERNEL)
106   IMAGE/sysupgrade.bin := append-kernel | pad-to 64k | append-avm-fakeroot | \
107         append-rootfs | pad-rootfs | append-metadata | check-size $$$$(IMAGE_SIZE)
108 endef
109
110 ifeq ($(SUBTARGET),ase)
111
112 define Device/allnet_all0333cj
113   DEVICE_VENDOR := Allnet
114   DEVICE_MODEL := ALL0333CJ
115   IMAGE_SIZE := 3700k
116   DEVICE_DTS := ALL0333CJ
117   DEVICE_PACKAGES := kmod-ltq-adsl-ase kmod-ltq-adsl-ase-mei \
118         kmod-ltq-adsl-ase-fw-b kmod-ltq-atm-ase \
119         ltq-adsl-app ppp-mod-pppoe
120 endef
121 TARGET_DEVICES += allnet_all0333cj
122
123 define Device/netgear_dgn1000b
124   DEVICE_VENDOR := NETGEAR
125   DEVICE_MODEL := DGN1000B
126   IMAGE_SIZE := 6000k
127   DEVICE_DTS := DGN1000B
128   DEVICE_PACKAGES := kmod-ltq-adsl-ase kmod-ltq-adsl-ase-mei \
129         kmod-ltq-adsl-ase-fw-b kmod-ltq-atm-ase \
130         ltq-adsl-app ppp-mod-pppoe
131   SUPPORTED_DEVICES += DGN1000B
132 endef
133 TARGET_DEVICES += netgear_dgn1000b
134
135 endif
136
137 ifeq ($(SUBTARGET),xway_legacy)
138
139 define Device/arcadyan_arv4520pw
140   DEVICE_VENDOR := Arcadyan
141   DEVICE_MODEL := ARV4520PW
142   DEVICE_ALT0_VENDOR := Vodafone
143   DEVICE_ALT0_MODEL := Easybox 800
144   DEVICE_ALT1_VENDOR := Airties
145   DEVICE_ALT1_MODEL := WAV-281
146   IMAGE_SIZE := 3648k
147   DEVICE_DTS := ARV4520PW
148   DEVICE_PACKAGES := kmod-usb-dwc2 kmod-usb-ledtrig-usbport \
149         kmod-ltq-adsl-danube-mei kmod-ltq-adsl-danube \
150         kmod-ltq-adsl-danube-fw-b kmod-ltq-atm-danube \
151         ltq-adsl-app ppp-mod-pppoa \
152         kmod-rt61-pci wpad-mini
153   SUPPORTED_DEVICES += ARV4520PW
154 endef
155 TARGET_DEVICES += arcadyan_arv4520pw
156
157 define Device/arcadyan_arv4525pw
158   DEVICE_VENDOR := Arcadyan
159   DEVICE_MODEL := ARV4525PW
160   DEVICE_ALT0_VENDOR := Telekom
161   DEVICE_ALT0_MODEL := Speedport W502V
162   DEVICE_ALT0_VARIANT := Typ A
163   IMAGE_SIZE := 3776k
164   DEVICE_DTS := ARV4525PW
165   DEVICE_PACKAGES := kmod-ath5k wpad-mini \
166         kmod-ltq-adsl-danube-mei kmod-ltq-adsl-danube \
167         kmod-ltq-adsl-danube-fw-b kmod-ltq-atm-danube \
168         ltq-adsl-app ppp-mod-pppoa -swconfig
169   SUPPORTED_DEVICES += ARV4525PW
170 endef
171 TARGET_DEVICES += arcadyan_arv4525pw
172
173 define Device/arcadyan_arv452cqw
174   DEVICE_VENDOR := Arcadyan
175   DEVICE_MODEL := ARV452CQW
176   DEVICE_ALT0_VENDOR := Vodafone
177   DEVICE_ALT0_MODEL := Easybox 801
178   IMAGE_SIZE := 3776k
179   DEVICE_DTS := ARV452CQW
180   DEVICE_PACKAGES := kmod-usb-dwc2 kmod-usb-ledtrig-usbport \
181         kmod-ath5k wpad-mini \
182         kmod-ltq-adsl-danube-mei kmod-ltq-adsl-danube \
183         kmod-ltq-adsl-danube-fw-b kmod-ltq-atm-danube \
184         ltq-adsl-app ppp-mod-pppoa
185   SUPPORTED_DEVICES += ARV452CQW
186 endef
187 TARGET_DEVICES += arcadyan_arv452cqw
188
189 define Device/arcadyan_arv4518pwr01
190   DEVICE_VENDOR := Arcadyan
191   DEVICE_MODEL := ARV4518PWR01
192   IMAGE_SIZE := 3776k
193   DEVICE_DTS := ARV4518PWR01
194   DEVICE_PACKAGES := kmod-usb-dwc2 kmod-usb-ledtrig-usbport \
195         kmod-ltq-adsl-danube-mei kmod-ltq-adsl-danube \
196         kmod-ltq-adsl-danube-fw-a kmod-ltq-atm-danube \
197         ltq-adsl-app ppp-mod-pppoa \
198         kmod-ath5k wpad-mini
199   SUPPORTED_DEVICES += ARV4518PWR01
200 endef
201 TARGET_DEVICES += arcadyan_arv4518pwr01
202
203 define Device/arcadyan_arv4518pwr01a
204   DEVICE_VENDOR := Arcadyan
205   DEVICE_MODEL := ARV4518PWR01A
206   IMAGE_SIZE := 3776k
207   DEVICE_DTS := ARV4518PWR01A
208   DEVICE_PACKAGES := kmod-usb-dwc2 kmod-usb-ledtrig-usbport \
209         kmod-ltq-adsl-danube-mei kmod-ltq-adsl-danube \
210         kmod-ltq-adsl-danube-fw-a kmod-ltq-atm-danube \
211         ltq-adsl-app ppp-mod-pppoa \
212         kmod-ath5k wpad-basic
213   SUPPORTED_DEVICES += ARV4518PWR01A
214 endef
215 TARGET_DEVICES += arcadyan_arv4518pwr01a
216
217 endif
218
219 ifeq ($(SUBTARGET),xway)
220
221 # Danube
222
223 define Device/bt_homehub-v2b
224   $(Device/NAND)
225   DEVICE_VENDOR := British Telecom
226   DEVICE_MODEL := Home Hub 2
227   DEVICE_VARIANT := Type B
228   BOARD_NAME := BTHOMEHUBV2B
229   DEVICE_DTS := BTHOMEHUBV2B
230   DEVICE_PACKAGES := kmod-usb-dwc2 \
231         kmod-ltq-adsl-danube-mei kmod-ltq-adsl-danube \
232         kmod-ltq-adsl-danube-fw-a kmod-ltq-atm-danube \
233         kmod-ltq-deu-danube \
234         ltq-adsl-app ppp-mod-pppoa \
235         kmod-ath9k kmod-owl-loader wpad-basic
236   SUPPORTED_DEVICES += BTHOMEHUBV2B
237 endef
238 TARGET_DEVICES += bt_homehub-v2b
239
240 define Device/lantiq_easy50712
241   DEVICE_VENDOR := Lantiq
242   DEVICE_MODEL := Danube (EASY50712)
243   DEVICE_DTS := EASY50712
244   IMAGE_SIZE := 3776k
245 endef
246 TARGET_DEVICES += lantiq_easy50712
247
248 define Device/audiocodes_mp-252
249   DEVICE_VENDOR := AudioCodes
250   DEVICE_MODEL := MediaPack MP-252
251   IMAGE_SIZE := 14848k
252   DEVICE_DTS := ACMP252
253   DEVICE_PACKAGES :=  kmod-ltq-adsl-danube-mei kmod-ltq-adsl-danube \
254         kmod-ltq-adsl-danube-fw-a kmod-ltq-atm-danube \
255         kmod-ltq-tapi kmod-ltq-vmmc \
256         kmod-usb-ledtrig-usbport kmod-usb-dwc2 \
257         kmod-rt2800-pci \
258         ltq-adsl-app ppp-mod-pppoa \
259         wpad-basic
260   SUPPORTED_DEVICES += ACMP252
261 endef
262 TARGET_DEVICES += audiocodes_mp-252
263
264 define Device/arcadyan_arv4510pw
265   DEVICE_VENDOR := Arcadyan
266   DEVICE_MODEL := ARV4510PW
267   DEVICE_ALT0_VENDOR := Wippies
268   DEVICE_ALT0_MODEL := BeWan iBox v1.0
269   IMAGE_SIZE := 15616k
270   DEVICE_DTS := ARV4510PW
271   DEVICE_PACKAGES := kmod-usb-ledtrig-usbport kmod-usb2-pci kmod-usb-uhci \
272         kmod-ltq-adsl-danube-mei kmod-ltq-adsl-danube \
273         kmod-ltq-adsl-danube-fw-a kmod-ltq-atm-danube \
274         ltq-adsl-app ppp-mod-pppoa \
275         kmod-ltq-tapi kmod-ltq-vmmc \
276         kmod-rt2800-pci kmod-ath5k wpad-basic
277   SUPPORTED_DEVICES += ARV4510PW
278 endef
279 TARGET_DEVICES += arcadyan_arv4510pw
280
281 define Device/arcadyan_arv7525pw
282   DEVICE_VENDOR := Arcadyan
283   DEVICE_MODEL := ARV7525PW
284   DEVICE_ALT0_VENDOR := Telekom
285   DEVICE_ALT0_MODEL := Speedport W303V
286   DEVICE_ALT0_VARIANT := Typ A
287   IMAGE_SIZE := 3776k
288   DEVICE_DTS := ARV4510PW
289   DEVICE_PACKAGES := kmod-rt2800-pci wpad-basic \
290         kmod-ltq-adsl-danube-mei kmod-ltq-adsl-danube \
291         kmod-ltq-adsl-danube-fw-b kmod-ltq-atm-danube \
292         ltq-adsl-app ppp-mod-pppoa -swconfig
293   SUPPORTED_DEVICES += ARV4510PW
294 endef
295 TARGET_DEVICES += arcadyan_arv7525pw
296
297 define Device/arcadyan_arv4519pw
298   DEVICE_VENDOR := Arcadyan
299   DEVICE_MODEL := ARV4519PW
300   DEVICE_ALT0_VENDOR := Vodafone
301   DEVICE_ALT0_MODEL := NetFasteR IAD 2
302   DEVICE_ALT1_VENDOR := Pirelli
303   DEVICE_ALT1_MODEL := P.RG A4201G
304   IMAGE_SIZE := 3776k
305   DEVICE_DTS := ARV4519PW
306   DEVICE_PACKAGES := kmod-usb-dwc2 kmod-usb-ledtrig-usbport \
307         kmod-ltq-adsl-danube-mei kmod-ltq-adsl-danube \
308         kmod-ltq-adsl-danube-fw-a kmod-ltq-atm-danube \
309         ltq-adsl-app ppp-mod-pppoa
310   SUPPORTED_DEVICES += ARV4519PW
311 endef
312 TARGET_DEVICES += arcadyan_arv4519pw
313
314 define Device/arcadyan_arv7506pw11
315   DEVICE_VENDOR := Arcadyan
316   DEVICE_MODEL := ARV7506PW11
317   DEVICE_ALT0_VENDOR := Alice/O2
318   DEVICE_ALT0_MODEL := IAD 4421
319   IMAGE_SIZE := 7808k
320   DEVICE_DTS := ARV7506PW11
321   DEVICE_PACKAGES := kmod-ltq-adsl-danube-mei kmod-ltq-adsl-danube \
322         kmod-ltq-adsl-danube-fw-b kmod-ltq-atm-danube \
323         ltq-adsl-app ppp-mod-pppoa \
324         kmod-rt2800-pci wpad-basic
325   SUPPORTED_DEVICES += ARV7506PW11
326 endef
327 TARGET_DEVICES += arcadyan_arv7506pw11
328
329 define Device/arcadyan_arv7510pw22
330   DEVICE_VENDOR := Arcadyan
331   DEVICE_MODEL := ARV7510PW22
332   DEVICE_ALT0_VENDOR := Astoria Networks
333   DEVICE_ALT0_MODEL := ARV7510PW22
334   IMAGE_SIZE := 31232k
335   DEVICE_DTS := ARV7510PW22
336   DEVICE_PACKAGES := kmod-usb-dwc2 kmod-usb-ledtrig-usbport \
337         kmod-ltq-adsl-danube-mei kmod-ltq-adsl-danube \
338         kmod-ltq-adsl-danube-fw-a kmod-ltq-atm-danube \
339         ltq-adsl-app ppp-mod-pppoa \
340         kmod-ltq-tapi kmod-ltq-vmmc \
341         kmod-rt2800-pci wpad-basic \
342         kmod-usb-uhci kmod-usb2 kmod-usb2-pci
343   SUPPORTED_DEVICES += ARV7510PW22
344 endef
345 TARGET_DEVICES += arcadyan_arv7510pw22
346
347 define Device/arcadyan_arv7518pw
348   DEVICE_VENDOR := Arcadyan
349   DEVICE_MODEL := ARV7518PW
350   DEVICE_ALT0_VENDOR := Astoria Networks
351   DEVICE_ALT0_MODEL := ARV7518PW
352   IMAGE_SIZE := 7872k
353   DEVICE_DTS := ARV7518PW
354   DEVICE_PACKAGES := kmod-usb-dwc2 kmod-usb-ledtrig-usbport \
355         kmod-ltq-adsl-danube-mei kmod-ltq-adsl-danube \
356         kmod-ltq-adsl-danube-fw-a kmod-ltq-atm-danube \
357         ltq-adsl-app ppp-mod-pppoa \
358         kmod-ath9k kmod-owl-loader wpad-basic
359   SUPPORTED_DEVICES += ARV7518PW
360 endef
361 TARGET_DEVICES += arcadyan_arv7518pw
362
363 define Device/arcadyan_arv7519pw
364   DEVICE_VENDOR := Arcadyan
365   DEVICE_MODEL := ARV7519PW
366   DEVICE_ALT0_VENDOR := Astoria Networks
367   DEVICE_ALT0_MODEL := ARV7519PW
368   IMAGE_SIZE := 15488k
369   DEVICE_DTS := ARV7519PW
370   DEVICE_PACKAGES := kmod-usb-dwc2 \
371         kmod-ltq-adsl-danube-mei kmod-ltq-adsl-danube \
372         kmod-ltq-adsl-danube-fw-a kmod-ltq-atm-danube \
373         ltq-adsl-app ppp-mod-pppoa \
374         kmod-rt2800-pci wpad-basic
375   SUPPORTED_DEVICES += ARV7519PW
376 endef
377 TARGET_DEVICES += arcadyan_arv7519pw
378
379 define Device/arcadyan_arv752dpw
380   DEVICE_VENDOR := Arcadyan
381   DEVICE_MODEL := ARV752DPW
382   DEVICE_ALT0_VENDOR := Vodafone
383   DEVICE_ALT0_MODEL := Easybox 802
384   IMAGE_SIZE := 7872k
385   DEVICE_DTS := ARV752DPW
386   DEVICE_PACKAGES := kmod-usb-dwc2 kmod-usb-ledtrig-usbport \
387         kmod-ltq-adsl-danube-mei kmod-ltq-adsl-danube \
388         kmod-ltq-adsl-danube-fw-b kmod-ltq-atm-danube \
389         ltq-adsl-app ppp-mod-pppoa \
390         kmod-ltq-tapi kmod-ltq-vmmc \
391         kmod-rt2800-pci wpad-basic
392   SUPPORTED_DEVICES += ARV752DPW
393 endef
394 TARGET_DEVICES += arcadyan_arv752dpw
395
396 define Device/arcadyan_arv752dpw22
397   DEVICE_VENDOR := Arcadyan
398   DEVICE_MODEL := ARV752DPW22
399   DEVICE_ALT0_VENDOR := Vodafone
400   DEVICE_ALT0_MODEL := Easybox 803
401   IMAGE_SIZE := 7616k
402   DEVICE_DTS := ARV752DPW22
403   DEVICE_PACKAGES := kmod-usb2-pci kmod-usb-uhci kmod-usb-dwc2 kmod-usb-ledtrig-usbport \
404         kmod-ltq-adsl-danube-mei kmod-ltq-adsl-danube \
405         kmod-ltq-adsl-danube-fw-b kmod-ltq-atm-danube \
406         ltq-adsl-app ppp-mod-pppoa \
407         kmod-ltq-tapi kmod-ltq-vmmc \
408         kmod-rt2800-pci wpad-basic
409   SUPPORTED_DEVICES += ARV752DPW22
410 endef
411 TARGET_DEVICES += arcadyan_arv752dpw22
412
413 define Device/arcadyan_arv8539pw22
414   DEVICE_VENDOR := Arcadyan
415   DEVICE_MODEL := ARV8539PW22
416   DEVICE_ALT0_VENDOR := Telekom
417   DEVICE_ALT0_MODEL := Speedport W504V Typ A
418   IMAGE_SIZE := 7616k
419   DEVICE_DTS := ARV8539PW22
420   DEVICE_PACKAGES := kmod-usb-dwc2 \
421         kmod-ltq-adsl-danube-mei kmod-ltq-adsl-danube \
422         kmod-ltq-adsl-danube-fw-b kmod-ltq-atm-danube \
423         ltq-adsl-app ppp-mod-pppoa \
424         kmod-ath9k kmod-owl-loader wpad-basic
425   SUPPORTED_DEVICES += ARV8539PW22
426 endef
427 TARGET_DEVICES += arcadyan_arv8539pw22
428
429 define Device/siemens_gigaset-sx76x
430   DEVICE_VENDOR := Siemens
431   DEVICE_MODEL := Gigaset sx76x
432   IMAGE_SIZE := 7680k
433   DEVICE_DTS := GIGASX76X
434   DEVICE_PACKAGES := kmod-usb-dwc2 \
435         kmod-ltq-adsl-danube-mei kmod-ltq-adsl-danube \
436         kmod-ltq-adsl-danube-fw-b kmod-ltq-atm-danube \
437         ltq-adsl-app ppp-mod-pppoe \
438         kmod-ath5k wpad-basic
439   SUPPORTED_DEVICES += GIGASX76X
440 endef
441 TARGET_DEVICES += siemens_gigaset-sx76x
442
443
444 # AR9
445
446 define Device/bt_homehub-v3a
447   $(Device/NAND)
448   DEVICE_VENDOR := British Telecom
449   DEVICE_MODEL := Home Hub
450   DEVICE_VARIANT := Type A
451   BOARD_NAME := BTHOMEHUBV3A
452   DEVICE_DTS := BTHOMEHUBV3A
453   DEVICE_PACKAGES := kmod-usb-dwc2 \
454         kmod-ltq-adsl-ar9-mei kmod-ltq-adsl-ar9 \
455         kmod-ltq-adsl-ar9-fw-a kmod-ltq-atm-ar9 \
456         kmod-ltq-deu-ar9 \
457         ltq-adsl-app ppp-mod-pppoa \
458         kmod-ath9k kmod-owl-loader wpad-basic \
459         uboot-envtools
460   SUPPORTED_DEVICES += BTHOMEHUBV3A
461 endef
462 TARGET_DEVICES += bt_homehub-v3a
463
464 DGN3500_KERNEL_OFFSET_HEX=0x50000
465 DGN3500_KERNEL_OFFSET_DEC=327680
466 define Device/netgear_dgn3500
467   DEVICE_VENDOR := NETGEAR
468   DEVICE_MODEL := DGN3500
469   DEVICE_DTS := DGN3500
470   IMAGE_SIZE := 16000k
471   IMAGES := \
472         sysupgrade-na.bin sysupgrade.bin \
473         factory-na.img factory.img
474   IMAGE/sysupgrade-na.bin := \
475         append-kernel | append-rootfs | dgn3500-sercom-footer 0x0 "NA" | \
476         pad-rootfs | append-metadata | check-size $$$$(IMAGE_SIZE)
477   IMAGE/sysupgrade.bin := \
478         append-kernel | append-rootfs | dgn3500-sercom-footer 0x0 "WW" | \
479         pad-rootfs | append-metadata | check-size $$$$(IMAGE_SIZE)
480   IMAGE/factory-na.img := \
481         pad-extra $(DGN3500_KERNEL_OFFSET_DEC) | append-kernel | append-rootfs | \
482         dgn3500-sercom-footer $(DGN3500_KERNEL_OFFSET_HEX) "NA" | pad-rootfs | \
483         check-size 16320k | pad-to 16384k
484   IMAGE/factory.img := \
485         pad-extra $(DGN3500_KERNEL_OFFSET_DEC) | append-kernel | append-rootfs | \
486         dgn3500-sercom-footer $(DGN3500_KERNEL_OFFSET_HEX) "WW" | pad-rootfs | \
487         check-size 16320k | pad-to 16384k
488   DEVICE_PACKAGES := kmod-usb-dwc2 kmod-usb-ledtrig-usbport \
489         kmod-ath9k kmod-owl-loader wpad-basic \
490         kmod-ltq-adsl-ar9-mei kmod-ltq-adsl-ar9 \
491         kmod-ltq-adsl-ar9-fw-a kmod-ltq-atm-ar9 \
492         ltq-adsl-app ppp-mod-pppoa \
493         kmod-ltq-deu-ar9
494   SUPPORTED_DEVICES += DGN3500
495 endef
496 TARGET_DEVICES += netgear_dgn3500
497
498 define Device/netgear_dgn3500b
499   DEVICE_VENDOR := NETGEAR
500   DEVICE_MODEL := DGN3500B
501   DEVICE_DTS := DGN3500B
502   IMAGE_SIZE := 16000k
503   IMAGES += factory.img
504   IMAGE/sysupgrade.bin := \
505         append-kernel | append-rootfs | dgn3500-sercom-footer 0x0 "DE" | \
506         pad-rootfs | append-metadata | check-size $$$$(IMAGE_SIZE)
507   IMAGE/factory.img := \
508         pad-extra $(DGN3500_KERNEL_OFFSET_DEC) | append-kernel | append-rootfs | \
509         dgn3500-sercom-footer $(DGN3500_KERNEL_OFFSET_HEX) "DE" | pad-rootfs | \
510         check-size 16320k | pad-to 16384k
511   DEVICE_PACKAGES := kmod-usb-dwc2 kmod-usb-ledtrig-usbport \
512         kmod-ath9k kmod-owl-loader wpad-basic \
513         kmod-ltq-adsl-ar9-mei kmod-ltq-adsl-ar9 \
514         kmod-ltq-adsl-ar9-fw-b kmod-ltq-atm-ar9 \
515         ltq-adsl-app ppp-mod-pppoa \
516         kmod-ltq-deu-ar9
517   SUPPORTED_DEVICES += DGN3500B
518 endef
519 TARGET_DEVICES += netgear_dgn3500b
520
521 define Device/buffalo_wbmr-hp-g300h-a
522   DEVICE_VENDOR := Buffalo
523   DEVICE_MODEL := WBMR-HP-G300H
524   DEVICE_VARIANT := A
525   IMAGE_SIZE := 31488k
526   DEVICE_DTS := WBMR
527   DEVICE_PACKAGES := kmod-usb-dwc2 kmod-usb-ledtrig-usbport \
528         kmod-ltq-adsl-ar9-mei kmod-ltq-adsl-ar9 \
529         kmod-ltq-adsl-ar9-fw-a kmod-ltq-atm-ar9 \
530         ltq-adsl-app ppp-mod-pppoa \
531         kmod-ath9k kmod-owl-loader wpad-basic
532   SUPPORTED_DEVICES := WBMR buffalo,wbmr-hp-g300h
533 endef
534 TARGET_DEVICES += buffalo_wbmr-hp-g300h-a
535
536 define Device/buffalo_wbmr-hp-g300h-b
537   DEVICE_VENDOR := Buffalo
538   DEVICE_MODEL := WBMR-HP-G300H
539   DEVICE_VARIANT := B
540   IMAGE_SIZE := 31488k
541   DEVICE_DTS := WBMR
542   DEVICE_PACKAGES := kmod-usb-dwc2 kmod-usb-ledtrig-usbport \
543         kmod-ltq-adsl-ar9-mei kmod-ltq-adsl-ar9 \
544         kmod-ltq-adsl-ar9-fw-b kmod-ltq-atm-ar9 \
545         ltq-adsl-app ppp-mod-pppoa \
546         kmod-ath9k kmod-owl-loader wpad-basic
547   SUPPORTED_DEVICES := WBMR buffalo,wbmr-hp-g300h
548 endef
549 TARGET_DEVICES += buffalo_wbmr-hp-g300h-b
550
551 define Device/avm_fritz7312
552   $(Device/AVM)
553   DEVICE_MODEL := FRITZ!Box 7312
554   DEVICE_DTS := FRITZ7312
555   IMAGE_SIZE := 15744k
556   DEVICE_PACKAGES := kmod-ath9k kmod-owl-loader wpad-basic \
557         kmod-ltq-adsl-ar9-mei kmod-ltq-adsl-ar9 \
558         kmod-ltq-adsl-ar9-fw-b kmod-ltq-atm-ar9 \
559         ltq-adsl-app ppp-mod-pppoa \
560         kmod-ltq-deu-ar9 -swconfig
561 endef
562 TARGET_DEVICES += avm_fritz7312
563
564 define Device/avm_fritz7320
565   $(Device/AVM)
566   DEVICE_MODEL := FRITZ!Box 7320
567   DEVICE_ALT0_VENDOR := 1&1
568   DEVICE_ALT0_MODEL := HomeServer
569   DEVICE_DTS := FRITZ7320
570   IMAGE_SIZE := 15744k
571   DEVICE_PACKAGES := kmod-ath9k kmod-owl-loader wpad-basic \
572         kmod-ltq-adsl-ar9-mei kmod-ltq-adsl-ar9 \
573         kmod-ltq-adsl-ar9-fw-b kmod-ltq-atm-ar9 \
574         ltq-adsl-app ppp-mod-pppoa \
575         kmod-ltq-deu-ar9 kmod-usb-dwc2 -swconfig
576   SUPPORTED_DEVICES += FRITZ7320
577 endef
578 TARGET_DEVICES += avm_fritz7320
579
580 define Device/zte_h201l
581   DEVICE_VENDOR := ZTE
582   DEVICE_MODEL := H201L
583   IMAGE_SIZE := 7808k
584   DEVICE_DTS := H201L
585   DEVICE_PACKAGES := kmod-ath9k-htc wpad-basic \
586         kmod-ltq-adsl-ar9-mei kmod-ltq-adsl-ar9 \
587         kmod-ltq-adsl-ar9-fw-b kmod-ltq-atm-ar9 \
588         ltq-adsl-app ppp-mod-pppoe \
589         kmod-ltq-deu-ar9 kmod-usb-dwc2 kmod-usb-ledtrig-usbport \
590         kmod-ltq-tapi kmod-ltq-vmmc
591   SUPPORTED_DEVICES += H201L
592 endef
593 TARGET_DEVICES += zte_h201l
594
595 define Device/zyxel_p-2601hn
596   DEVICE_VENDOR := ZyXEL
597   DEVICE_MODEL := P-2601HN
598   DEVICE_VARIANT := F1/F3
599   IMAGE_SIZE := 15616k
600   DEVICE_DTS := P2601HNFX
601   DEVICE_PACKAGES := kmod-rt2800-usb wpad-basic \
602         kmod-ltq-adsl-ar9-mei kmod-ltq-adsl-ar9 \
603         kmod-ltq-adsl-ar9-fw-b kmod-ltq-atm-ar9 \
604         ltq-adsl-app ppp-mod-pppoe \
605         kmod-ltq-deu-ar9 kmod-usb-dwc2
606   SUPPORTED_DEVICES += P2601HNFX
607 endef
608 TARGET_DEVICES += zyxel_p-2601hn
609
610
611 endif
612
613
614 ifeq ($(SUBTARGET),xrx200)
615
616 # VR9
617
618 define Device/zyxel_p-2812hnu-f1
619   $(Device/NAND)
620   DEVICE_VENDOR := ZyXEL
621   DEVICE_MODEL := P-2812HNU
622   DEVICE_VARIANT := F1
623   BOARD_NAME := P2812HNUF1
624   DEVICE_DTS := P2812HNUF1
625   DEVICE_PACKAGES := kmod-rt2800-pci wpad-basic kmod-usb-dwc2 kmod-usb-ledtrig-usbport
626   KERNEL_SIZE := 3072k
627   SUPPORTED_DEVICES += P2812HNUF1
628 endef
629 TARGET_DEVICES += zyxel_p-2812hnu-f1
630
631 define Device/zyxel_p-2812hnu-f3
632   $(Device/NAND)
633   DEVICE_VENDOR := ZyXEL
634   DEVICE_MODEL := P-2812HNU
635   DEVICE_VARIANT := F3
636   BOARD_NAME := P2812HNUF3
637   DEVICE_DTS := P2812HNUF3
638   DEVICE_PACKAGES := kmod-rt2800-pci wpad-basic kmod-usb-dwc2
639   SUPPORTED_DEVICES += P2812HNUF3
640 endef
641 TARGET_DEVICES += zyxel_p-2812hnu-f3
642
643 define Device/arcadyan_arv7519rw22
644   DEVICE_VENDOR := Arcadyan
645   DEVICE_MODEL := ARV7519RW22
646   DEVICE_ALT0_VENDOR := Orange
647   DEVICE_ALT0_MODEL := Livebox
648   DEVICE_ALT0_VARIANT := 2.1
649   DEVICE_ALT1_VENDOR := Astoria Networks
650   DEVICE_ALT1_MODEL := ARV7519RW22
651   IMAGE_SIZE := 31232k
652   DEVICE_DTS := ARV7519RW22
653   DEVICE_PACKAGES := kmod-usb-dwc2
654   SUPPORTED_DEVICES += ARV7519RW22
655 endef
656 TARGET_DEVICES += arcadyan_arv7519rw22
657
658 define Device/alphanetworks_asl56026
659   DEVICE_VENDOR := BT Openreach
660   DEVICE_MODEL := ECI VDSL Modem V-2FUb/I
661   DEVICE_DTS := ASL56026
662   IMAGE_SIZE := 7488k
663 endef
664 TARGET_DEVICES += alphanetworks_asl56026
665
666 define Device/bt_homehub-v5a
667   $(Device/NAND)
668   DEVICE_VENDOR := British Telecom
669   DEVICE_MODEL := Home Hub 5
670   DEVICE_VARIANT := Type A
671   BOARD_NAME := BTHOMEHUBV5A
672   DEVICE_DTS := BTHOMEHUBV5A
673   DEVICE_PACKAGES := kmod-ath9k kmod-owl-loader \
674         kmod-ath10k-ct ath10k-firmware-qca988x-ct wpad-basic kmod-usb-dwc2
675   SUPPORTED_DEVICES += BTHOMEHUBV5A
676 endef
677 TARGET_DEVICES += bt_homehub-v5a
678
679 define Device/netgear_dm200
680   DEVICE_VENDOR := NETGEAR
681   DEVICE_MODEL := DM200
682   DEVICE_DTS := DM200
683   IMAGES := sysupgrade.bin factory.img
684   IMAGE/sysupgrade.bin := append-kernel | \
685         pad-offset 64k 64 | append-uImage-fakehdr filesystem | \
686         pad-offset 64k 64 | append-uImage-fakehdr filesystem | \
687         append-rootfs | pad-rootfs | append-metadata | check-size $$$$(IMAGE_SIZE)
688   IMAGE/factory.img := $$(IMAGE/sysupgrade.bin) | netgear-dni
689   IMAGE_SIZE := 7872k
690   NETGEAR_BOARD_ID := DM200
691   NETGEAR_HW_ID := 29765233+8+0+64+0+0
692 endef
693 DEVICE_VARS += NETGEAR_BOARD_ID NETGEAR_HW_ID
694 TARGET_DEVICES += netgear_dm200
695
696 define Device/lantiq_easy80920-nand
697   $(Device/lantiqFullImage)
698   DEVICE_VENDOR := Lantiq
699   DEVICE_MODEL := VR9 EASY80920
700   DEVICE_VARIANT := NAND
701   DEVICE_DTS := EASY80920NAND
702   IMAGE_SIZE := 64512k
703   DEVICE_PACKAGES := kmod-ath9k kmod-owl-loader wpad-basic kmod-usb-dwc2 kmod-usb-ledtrig-usbport
704 endef
705 TARGET_DEVICES += lantiq_easy80920-nand
706
707 define Device/lantiq_easy80920-nor
708   DEVICE_VENDOR := Lantiq
709   DEVICE_MODEL := VR9 EASY80920
710   DEVICE_VARIANT := NOR
711   DEVICE_DTS := EASY80920NOR
712   IMAGE_SIZE := 7936k
713   DEVICE_PACKAGES := kmod-ath9k kmod-owl-loader wpad-basic kmod-usb-dwc2 kmod-usb-ledtrig-usbport
714 endef
715 TARGET_DEVICES += lantiq_easy80920-nor
716
717 define Device/avm_fritz3370
718   $(Device/AVM)
719   $(Device/NAND)
720   DEVICE_MODEL := FRITZ!Box 3370
721   DEVICE_VARIANT := Rev. 2
722   DEVICE_DTS := FRITZ3370
723   KERNEL_SIZE := 4096k
724   UBINIZE_OPTS := -E 5
725   IMAGES += eva-kernel.bin eva-filesystem.bin
726   IMAGE/eva-kernel.bin := append-kernel
727   IMAGE/eva-filesystem.bin := append-ubi
728   DEVICE_PACKAGES := kmod-ath9k wpad-basic kmod-usb-dwc2 fritz-tffs
729 endef
730
731 define Device/avm_fritz3370-rev2-hynix
732   $(Device/avm_fritz3370)
733   DEVICE_MODEL := FRITZ!Box 3370
734   DEVICE_VARIANT := Rev. 2 (Hynix NAND)
735   DEVICE_DTS := FRITZ3370-REV2-HYNIX
736 endef
737 TARGET_DEVICES += avm_fritz3370-rev2-hynix
738
739 define Device/avm_fritz3370-rev2-micron
740   $(Device/avm_fritz3370)
741   DEVICE_MODEL := FRITZ!Box 3370
742   DEVICE_VARIANT := Rev. 2 (Micron NAND)
743   DEVICE_DTS := FRITZ3370-REV2-MICRON
744 endef
745 TARGET_DEVICES += avm_fritz3370-rev2-micron
746
747 define Device/avm_fritz7360sl
748   $(Device/AVM)
749   DEVICE_MODEL := FRITZ!Box 7360 SL
750   IMAGE_SIZE := 15744k
751   DEVICE_DTS := FRITZ7360SL
752   DEVICE_PACKAGES := kmod-ath9k kmod-owl-loader wpad-basic kmod-usb-dwc2
753   SUPPORTED_DEVICES += FRITZ7360SL
754 endef
755 TARGET_DEVICES += avm_fritz7360sl
756
757 define Device/avm_fritz7412
758   $(Device/AVM)
759   $(Device/NAND)
760   DEVICE_MODEL := FRITZ!Box 7412
761   BOARD_NAME := FRITZ7412
762   DEVICE_DTS := FRITZ7412
763   KERNEL_SIZE := 4096k
764   IMAGE_SIZE := 49152k
765   DEVICE_PACKAGES := kmod-ath9k kmod-owl-loader wpad-basic fritz-tffs-nand fritz-caldata
766 endef
767 TARGET_DEVICES += avm_fritz7412
768
769 define Device/avm_fritz7362sl
770   $(Device/AVM)
771   $(Device/NAND)
772   DEVICE_MODEL := FRITZ!Box 7362 SL
773   KERNEL_SIZE := 4096k
774   IMAGE_SIZE := 49152k
775   DEVICE_DTS := FRITZ7362SL
776   DEVICE_PACKAGES := kmod-ath9k kmod-owl-loader wpad-basic kmod-usb-dwc2 fritz-tffs
777 endef
778 TARGET_DEVICES += avm_fritz7362sl
779
780 define Device/arcadyan_vg3503j
781   DEVICE_VENDOR := BT Openreach
782   DEVICE_MODEL := ECI VDSL Modem V-2FUb/R
783   IMAGE_SIZE := 8000k
784   DEVICE_DTS := VG3503J
785   SUPPORTED_DEVICES += VG3503J
786 endef
787 TARGET_DEVICES += arcadyan_vg3503j
788
789 include tp-link.mk
790
791 define Device/buffalo_wbmr-300hpd
792   DEVICE_VENDOR := Buffalo
793   DEVICE_MODEL := WBMR-300HPD
794   IMAGE_SIZE := 15616k
795   DEVICE_DTS := WBMR300
796   DEVICE_PACKAGES := kmod-mt7603 wpad-basic kmod-usb-dwc2
797   SUPPORTED_DEVICES += WBMR300
798 endef
799 TARGET_DEVICES += buffalo_wbmr-300hpd
800
801 define Device/arcadyan_vgv7510kw22-nor
802   DEVICE_VENDOR := Arcadyan
803   DEVICE_MODEL := VGV7510KW22
804   DEVICE_VARIANT := NOR
805   DEVICE_ALT0_VENDOR := o2
806   DEVICE_ALT0_MODEL := Box 6431
807   DEVICE_ALT0_VARIANT := NOR
808   IMAGE_SIZE := 15232k
809   DEVICE_DTS := VGV7510KW22NOR
810   DEVICE_PACKAGES := kmod-rt2800-pci wpad-basic kmod-usb-dwc2 kmod-ltq-tapi kmod-ltq-vmmc
811   SUPPORTED_DEVICES += VGV7510KW22NOR
812 endef
813 TARGET_DEVICES += arcadyan_vgv7510kw22-nor
814
815 define Device/arcadyan_vgv7510kw22-brn
816   $(Device/lantiqBrnImage)
817   DEVICE_VENDOR := Arcadyan
818   DEVICE_MODEL := VGV7510KW22
819   DEVICE_VARIANT := BRN
820   DEVICE_ALT0_VENDOR := o2
821   DEVICE_ALT0_MODEL := Box 6431
822   DEVICE_ALT0_VARIANT := BRN
823   IMAGE_SIZE := 7168k
824   DEVICE_DTS := VGV7510KW22BRN
825   SIGNATURE := BRNDA6431
826   MAGIC := 0x12345678
827   CRC32_POLY := 0x04c11db7
828   DEVICE_PACKAGES := kmod-rt2800-pci wpad-basic kmod-usb-dwc2 kmod-ltq-tapi kmod-ltq-vmmc
829   SUPPORTED_DEVICES += VGV7510KW22BRN
830 endef
831 TARGET_DEVICES += arcadyan_vgv7510kw22-brn
832
833 define Device/arcadyan_vgv7519-nor
834   DEVICE_VENDOR := Arcadyan
835   DEVICE_MODEL := VGV7519
836   DEVICE_VARIANT := NOR
837   DEVICE_ALT0_VENDOR := KPN
838   DEVICE_ALT0_MODEL := Experiabox 8
839   DEVICE_ALT0_VARIANT := NOR
840   IMAGE_SIZE := 15360k
841   DEVICE_DTS := VGV7519NOR
842   DEVICE_PACKAGES := kmod-rt2800-pci wpad-basic kmod-usb-dwc2 kmod-ltq-tapi kmod-ltq-vmmc
843   SUPPORTED_DEVICES += VGV7519NOR
844 endef
845 TARGET_DEVICES += arcadyan_vgv7519-nor
846
847 define Device/arcadyan_vgv7519-brn
848   $(Device/lantiqBrnImage)
849   DEVICE_VENDOR := Arcadyan
850   DEVICE_MODEL := VGV7519
851   DEVICE_VARIANT := BRN
852   DEVICE_ALT0_VENDOR := KPN
853   DEVICE_ALT0_MODEL := Experiabox 8
854   DEVICE_ALT0_VARIANT := BRN
855   IMAGE_SIZE := 7168k
856   DEVICE_DTS := VGV7519BRN
857   SIGNATURE := 5D00008000
858   MAGIC := 0x12345678
859   CRC32_POLY := 0x2083b8ed
860   DEVICE_PACKAGES := kmod-rt2800-pci wpad-basic kmod-usb-dwc2 kmod-ltq-tapi kmod-ltq-vmmc
861   SUPPORTED_DEVICES += VGV7519BRN
862 endef
863 TARGET_DEVICES += arcadyan_vgv7519-brn
864
865 endif
866
867
868 ifeq ($(SUBTARGET),falcon)
869
870 define Device/lantiq_easy98000-nor
871   DEVICE_VENDOR := Lantiq
872   DEVICE_MODEL := EASY98000 Falcon Eval Board
873   DEVICE_VARIANT := NOR
874   IMAGE_SIZE := 3904k
875   DEVICE_DTS := EASY98000NOR
876   DEVICE_PACKAGES := kmod-dm9000 kmod-i2c-lantiq kmod-eeprom-at24
877 endef
878 TARGET_DEVICES += lantiq_easy98000-nor
879
880 define Device/lantiq_easy98000-nand
881   DEVICE_VENDOR := Lantiq
882   DEVICE_MODEL := EASY98000 Falcon Eval Board
883   DEVICE_VARIANT := NAND
884   IMAGE_SIZE := 3904k
885   DEVICE_DTS := EASY98000NAND
886   DEVICE_PACKAGES := kmod-dm9000 kmod-i2c-lantiq kmod-eeprom-at24
887 endef
888 TARGET_DEVICES += lantiq_easy98000-nand
889
890 define Device/lantiq_easy98000-sflash
891   DEVICE_VENDOR := Lantiq
892   DEVICE_MODEL := EASY98000 Falcon Eval Board
893   DEVICE_VARIANT := SFLASH
894   IMAGE_SIZE := 7424k
895   DEVICE_DTS := EASY98000SFLASH
896   DEVICE_PACKAGES := kmod-dm9000 kmod-i2c-lantiq kmod-eeprom-at24
897 endef
898 TARGET_DEVICES += lantiq_easy98000-sflash
899
900 define Device/lantiq_falcon-mdu
901   DEVICE_VENDOR := Lantiq
902   DEVICE_MODEL := Falcon / VINAXdp MDU Board
903   IMAGE_SIZE := 7424k
904   DEVICE_DTS := FALCON-MDU
905 endef
906 TARGET_DEVICES += lantiq_falcon-mdu
907
908 define Device/lantiq_easy88388
909   DEVICE_VENDOR := Lantiq
910   DEVICE_MODEL := EASY88388 Falcon FTTDP8 Reference Board
911   IMAGE_SIZE := 7424k
912   DEVICE_DTS := EASY88388
913 endef
914 TARGET_DEVICES += lantiq_easy88388
915
916 define Device/lantiq_easy88444
917   DEVICE_VENDOR := Lantiq
918   DEVICE_MODEL := EASY88444 Falcon FTTdp G.FAST Reference Board
919   IMAGE_SIZE := 7424k
920   DEVICE_DTS := EASY88444
921 endef
922 TARGET_DEVICES += lantiq_easy88444
923
924 define Device/lantiq_falcon-sfp
925   DEVICE_VENDOR := Lantiq
926   DEVICE_MODEL := Falcon SFP Stick
927   IMAGE_SIZE := 7424k
928   DEVICE_DTS := FALCON-SFP
929 endef
930 TARGET_DEVICES += lantiq_falcon-sfp
931
932 define Device/lantiq_easy98035synce
933   DEVICE_VENDOR := Lantiq
934   DEVICE_MODEL := Falcon SFP Stick (EASY98035SYNCE)
935   DEVICE_VARIANT := with Synchronous Ethernet
936   IMAGE_SIZE := 7424k
937   DEVICE_DTS := EASY98035SYNCE
938 endef
939 TARGET_DEVICES += lantiq_easy98035synce
940
941 define Device/lantiq_easy98035synce1588
942   DEVICE_VENDOR := Lantiq
943   DEVICE_MODEL := Falcon SFP Stick (EASY98035SYNCE1588)
944   DEVICE_VARIANT := with SyncE and IEEE1588
945   IMAGE_SIZE := 7424k
946   DEVICE_DTS := EASY98035SYNCE1588
947 endef
948 TARGET_DEVICES += lantiq_easy98035synce1588
949
950 define Device/lantiq_easy98020
951   DEVICE_VENDOR := Lantiq
952   DEVICE_MODEL := Falcon SFU Reference Board (EASY98020)
953   DEVICE_VARIANT := v1.0-v1.7
954   IMAGE_SIZE := 7424k
955   DEVICE_DTS := EASY98020
956 endef
957 TARGET_DEVICES += lantiq_easy98020
958
959 define Device/lantiq_easy98020-v18
960   DEVICE_VENDOR := Lantiq
961   DEVICE_MODEL := Falcon SFU Reference Board (EASY98020)
962   DEVICE_VARIANT := v1.8
963   IMAGE_SIZE := 7424k
964   DEVICE_DTS := EASY98020V18
965 endef
966 TARGET_DEVICES += lantiq_easy98020-v18
967
968 define Device/lantiq_easy98021
969   DEVICE_VENDOR := Lantiq
970   DEVICE_MODEL := Falcon HGU Reference Board (EASY98021)
971   IMAGE_SIZE := 7424k
972   DEVICE_DTS := EASY98021
973 endef
974 TARGET_DEVICES += lantiq_easy98021
975
976 endif
977
978 $(eval $(call BuildImage))