ar71xx: image: keep custom Build/* functions in separate files
[openwrt/openwrt.git] / target / linux / ar71xx / image / generic.mk
index 37ffbe7ffa18acf5dd109e075d2ea56b9bfea8a9..158d5662fe40e2de34a49ec89cd5f3b3f524db27 100644 (file)
@@ -1,3 +1,80 @@
+DEVICE_VARS += DAP_SIGNATURE NETGEAR_BOARD_ID NETGEAR_HW_ID NETGEAR_KERNEL_MAGIC SEAMA_SIGNATURE
+
+define Build/mkbuffaloimg
+       $(STAGING_DIR_HOST)/bin/mkbuffaloimg -B $(BOARDNAME) \
+               -R $$(($(subst k, * 1024,$(ROOTFS_SIZE)))) \
+               -K $$(($(subst k, * 1024,$(KERNEL_SIZE)))) \
+               -i $@ -o $@.new
+       mv $@.new $@
+endef
+
+define Build/mkwrggimg
+       $(STAGING_DIR_HOST)/bin/mkwrggimg -b \
+               -i $@ -o $@.imghdr -d /dev/mtdblock/1 \
+               -m $(BOARDNAME) -s $(DAP_SIGNATURE) \
+               -v LEDE -B $(REVISION)
+       mv $@.imghdr $@
+endef
+
+define Build/netgear-squashfs
+       rm -rf $@.fs $@.squashfs
+       mkdir -p $@.fs/image
+       cp $@ $@.fs/image/uImage
+       $(STAGING_DIR_HOST)/bin/mksquashfs-lzma \
+               $@.fs $@.squashfs \
+               -noappend -root-owned -be -b 65536 \
+               $(if $(SOURCE_DATE_EPOCH),-fixed-time $(SOURCE_DATE_EPOCH))
+
+       dd if=/dev/zero bs=1k count=1 >> $@.squashfs
+       mkimage \
+               -A mips -O linux -T filesystem -C none \
+               -M $(NETGEAR_KERNEL_MAGIC) \
+               -a 0xbf070000 -e 0xbf070000 \
+               -n 'MIPS OpenWrt Linux-$(LINUX_VERSION)' \
+               -d $@.squashfs $@
+       rm -rf $@.squashfs $@.fs
+endef
+
+define Build/netgear-uImage
+       $(call Build/uImage,$(1) -M $(NETGEAR_KERNEL_MAGIC))
+endef
+
+define Build/relocate-kernel
+       rm -rf $@.relocate
+       $(CP) ../../generic/image/relocate $@.relocate
+       $(MAKE) -j1 -C $@.relocate KERNEL_ADDR=$(KERNEL_LOADADDR) CROSS_COMPILE=$(TARGET_CROSS)
+       ( \
+               dd if=$@.relocate/loader.bin bs=32 conv=sync && \
+               perl -e '@s = stat("$@"); print pack("N", @s[7])' && \
+               cat "$@" \
+       ) > "$@.new"
+       mv "$@.new" "$@"
+       rm -rf $@.relocate
+endef
+
+define Build/seama
+       $(STAGING_DIR_HOST)/bin/seama -i $@ $(if $(1),$(1),-m "dev=/dev/mtdblock/1" -m "type=firmware")
+       mv $@.seama $@
+endef
+
+define Build/seama-seal
+       $(call Build/seama,-s $@.seama $(1))
+endef
+
+define Build/uImageHiWiFi
+       # Field ih_name needs to start with "tw150v1"
+       mkimage -A $(LINUX_KARCH) \
+               -O linux -T kernel \
+               -C $(1) -a $(KERNEL_LOADADDR) -e $(if $(KERNEL_ENTRY),$(KERNEL_ENTRY),$(KERNEL_LOADADDR)) \
+               -n 'tw150v1 $(call toupper,$(LINUX_KARCH)) LEDE Linux-$(LINUX_VERSION)' -d $@ $@.new
+       @mv $@.new $@
+endef
+
+define Build/wrgg-pad-rootfs
+       $(STAGING_DIR_HOST)/bin/padjffs2 $(IMAGE_ROOTFS) -c 64 >>$@
+endef
+
+
 define Device/ap531b0
   DEVICE_TITLE := Rockeetech AP531B0
   DEVICE_PACKAGES := kmod-usb-core kmod-usb2
@@ -113,7 +190,7 @@ TARGET_DEVICES += cpe870
 define Device/dragino2
   BOARDNAME := DRAGINO2
   CONSOLE := ttyATH0,115200
-  DEVICE_PACKAGES := kmod-usb-core kmod-usb-ohci kmod-usb2 kmod-usb-ledtrig-usbport
+  DEVICE_PACKAGES := kmod-usb-core kmod-usb2 kmod-usb-ledtrig-usbport
   DEVICE_TITLE := Dragino 2 (MS14)
   IMAGE_SIZE := 16000k
   MTDPARTS := spi0.0:256k(u-boot)ro,16000k(firmware),64k(config)ro,64k(art)ro
@@ -151,7 +228,7 @@ TARGET_DEVICES += gl-ar300
 
 define Device/gl-ar300m
   DEVICE_TITLE := GL AR300M
-  DEVICE_PACKAGES := kmod-usb-core kmod-usb2 uboot-envtools
+  DEVICE_PACKAGES := kmod-usb-core kmod-usb2
   BOARDNAME = GL-AR300M
   IMAGE_SIZE = 16000k
   MTDPARTS = spi0.0:256k(u-boot)ro,64k(u-boot-env),16000k(firmware),64k(art)ro
@@ -213,6 +290,16 @@ define Device/mr16
 endef
 TARGET_DEVICES += mr16
 
+define Device/dr344
+  DEVICE_TITLE := Wallys DR344
+  BOARDNAME = DR344
+  KERNEL_SIZE := 1408k
+  IMAGE_SIZE = 7744k
+  MTDPARTS = spi0.0:256k(u-boot)ro,64k(u-boot-env)ro,6336k(rootfs),1408k(kernel),64k(nvram),64k(art)ro,7744k@0x50000(firmware)
+  IMAGE/sysupgrade.bin = append-rootfs | pad-rootfs | pad-to 6336k | append-kernel | check-size $$$$(IMAGE_SIZE)
+endef
+TARGET_DEVICES += dr344
+
 define Device/dr531
   DEVICE_TITLE := Wallys DR531
   DEVICE_PACKAGES := kmod-usb-core kmod-usb2
@@ -239,7 +326,7 @@ define Device/wndr3700
 endef
 
 define Device/wndr3700v2
-$(Device/wndr3700)
+  $(Device/wndr3700)
   DEVICE_TITLE := NETGEAR WNDR3700 v2
   NETGEAR_BOARD_ID = WNDR3700v2
   NETGEAR_KERNEL_MAGIC = 0x33373031
@@ -250,26 +337,26 @@ $(Device/wndr3700)
 endef
 
 define Device/wndr3800
-$(Device/wndr3700v2)
+  $(Device/wndr3700v2)
   DEVICE_TITLE := NETGEAR WNDR3800
   NETGEAR_BOARD_ID = WNDR3800
   NETGEAR_HW_ID = 29763654+16+128
 endef
 
 define Device/wndr3800ch
-$(Device/wndr3800)
+  $(Device/wndr3800)
   DEVICE_TITLE := NETGEAR WNDR3800 (Ch)
   NETGEAR_BOARD_ID = WNDR3800CH
 endef
 
 define Device/wndrmac
-$(Device/wndr3700v2)
+  $(Device/wndr3700v2)
   DEVICE_TITLE := NETGEAR WNDRMAC
   NETGEAR_BOARD_ID = WNDRMAC
 endef
 
 define Device/wndrmacv2
-$(Device/wndr3800)
+  $(Device/wndr3800)
   DEVICE_TITLE := NETGEAR WNDRMAC v2
   NETGEAR_BOARD_ID = WNDRMACv2
 endef
@@ -278,7 +365,6 @@ TARGET_DEVICES += wndr3700 wndr3700v2 wndr3800 wndr3800ch wndrmac wndrmacv2
 
 define Device/cap324
   DEVICE_TITLE := PowerCloud CAP324 Cloud AP
-  DEVICE_PACKAGES := uboot-envtools
   BOARDNAME := CAP324
   DEVICE_PROFILE := CAP324
   IMAGE_SIZE = 15296k
@@ -289,7 +375,6 @@ TARGET_DEVICES += cap324
 
 define Device/cap324-nocloud
   DEVICE_TITLE := PowerCloud CAP324 Cloud AP (No-Cloud)
-  DEVICE_PACKAGES := uboot-envtools
   BOARDNAME := CAP324
   DEVICE_PROFILE := CAP324
   IMAGE_SIZE = 16000k
@@ -300,7 +385,6 @@ TARGET_DEVICES += cap324-nocloud
 
 define Device/cr3000
   DEVICE_TITLE := PowerCloud CR3000 Cloud Router
-  DEVICE_PACKAGES := uboot-envtools
   BOARDNAME := CR3000
   DEVICE_PROFILE := CR3000
   IMAGE_SIZE = 7104k
@@ -311,7 +395,6 @@ TARGET_DEVICES += cr3000
 
 define Device/cr3000-nocloud
   DEVICE_TITLE := PowerCloud CR3000 (No-Cloud)
-  DEVICE_PACKAGES := uboot-envtools
   BOARDNAME := CR3000
   DEVICE_PROFILE := CR3000
   IMAGE_SIZE = 7808k
@@ -322,7 +405,7 @@ TARGET_DEVICES += cr3000-nocloud
 
 define Device/cr5000
   DEVICE_TITLE := PowerCloud CR5000 Cloud Router
-  DEVICE_PACKAGES := uboot-envtools kmod-usb2 kmod-usb-ohci kmod-usb-ledtrig-usbport kmod-usb-core
+  DEVICE_PACKAGES := kmod-usb2 kmod-usb-ledtrig-usbport kmod-usb-core
   BOARDNAME := CR5000
   DEVICE_PROFILE := CR5000
   IMAGE_SIZE = 7104k
@@ -333,7 +416,7 @@ TARGET_DEVICES += cr5000
 
 define Device/cr5000-nocloud
   DEVICE_TITLE := PowerCloud CR5000 (No-Cloud)
-  DEVICE_PACKAGES := uboot-envtools kmod-usb2 kmod-usb-ohci kmod-usb-ledtrig-usbport kmod-usb-core
+  DEVICE_PACKAGES := kmod-usb2 kmod-usb-ledtrig-usbport kmod-usb-core
   BOARDNAME := CR5000
   DEVICE_PROFILE := CR5000
   IMAGE_SIZE = 7808k
@@ -505,7 +588,7 @@ TARGET_DEVICES += onion-omega
 
 define Device/sc1750
   DEVICE_TITLE := Abicom SC1750
-  DEVICE_PACKAGES := kmod-usb-core kmod-usb-ohci kmod-usb2 kmod-usb-ledtrig-usbport
+  DEVICE_PACKAGES := kmod-usb-core kmod-usb2 kmod-usb-ledtrig-usbport
   BOARDNAME = SC1750
   IMAGE_SIZE = 15744k
   MTDPARTS = spi0.0:256k(u-boot)ro,64k(u-boot-env),15744k(firmware),128k(APConfig),128k(kplog),64k(ART)
@@ -514,7 +597,7 @@ TARGET_DEVICES += sc1750
 
 define Device/sc300m
   DEVICE_TITLE := Abicom SC300M
-  DEVICE_PACKAGES := kmod-usb-core kmod-usb-ohci kmod-usb2 kmod-usb-ledtrig-usbport
+  DEVICE_PACKAGES := kmod-usb-core kmod-usb2 kmod-usb-ledtrig-usbport
   BOARDNAME = SC300M
   IMAGE_SIZE = 15744k
   MTDPARTS = spi0.0:256k(u-boot)ro,64k(u-boot-env),15744k(firmware),128k(APConfig),128k(kplog),64k(ART)
@@ -523,7 +606,7 @@ TARGET_DEVICES += sc300m
 
 define Device/sc450
   DEVICE_TITLE := Abicom SC450
-  DEVICE_PACKAGES := kmod-usb-core kmod-usb-ohci kmod-usb2 kmod-usb-ledtrig-usbport
+  DEVICE_PACKAGES := kmod-usb-core kmod-usb2 kmod-usb-ledtrig-usbport
   BOARDNAME = SC450
   IMAGE_SIZE = 15744k
   MTDPARTS = spi0.0:256k(u-boot)ro,64k(u-boot-env),15744k(firmware),128k(APConfig),128k(kplog),64k(ART)
@@ -639,15 +722,6 @@ endef
 TARGET_DEVICES += c-55
 
 
-define Build/uImageHiWiFi
-       # Field ih_name needs to start with "tw150v1"
-       mkimage -A $(LINUX_KARCH) \
-               -O linux -T kernel \
-               -C $(1) -a $(KERNEL_LOADADDR) -e $(if $(KERNEL_ENTRY),$(KERNEL_ENTRY),$(KERNEL_LOADADDR)) \
-               -n 'tw150v1 $(call toupper,$(LINUX_KARCH)) LEDE Linux-$(LINUX_VERSION)' -d $@ $@.new
-       @mv $@.new $@
-endef
-
 define Device/hiwifi-hc6361
   DEVICE_TITLE := HiWiFi HC6361
   DEVICE_PACKAGES := kmod-usb-core kmod-usb2 kmod-usb-storage \
@@ -662,15 +736,6 @@ endef
 TARGET_DEVICES += hiwifi-hc6361
 
 
-define Build/seama
-       $(STAGING_DIR_HOST)/bin/seama -i $@ $(if $(1),$(1),-m "dev=/dev/mtdblock/1" -m "type=firmware")
-       mv $@.seama $@
-endef
-
-define Build/seama-seal
-       $(call Build/seama,-s $@.seama $(1))
-endef
-
 define Device/seama
   LOADER_TYPE := bin
   BLOCKSIZE := 64k
@@ -691,11 +756,10 @@ define Device/seama
        seama-seal -m "signature=$$$$(SEAMA_SIGNATURE)" | \
        check-size $$$$(IMAGE_SIZE)
   SEAMA_SIGNATURE :=
-  DEVICE_VARS += SEAMA_SIGNATURE
 endef
 
 define Device/dir-869-a1
-$(Device/seama)
+  $(Device/seama)
   DEVICE_TITLE := D-Link DIR-869 rev. A1
   DEVICE_PACKAGES := kmod-ath10k ath10k-firmware-qca988x
   BOARDNAME = DIR-869-A1
@@ -709,7 +773,7 @@ $(Device/seama)
 endef
 
 define Device/mynet-n600
-$(Device/seama)
+  $(Device/seama)
   DEVICE_TITLE := Western Digital My Net N600
   DEVICE_PACKAGES := kmod-usb-core kmod-usb2
   BOARDNAME = MYNET-N600
@@ -719,7 +783,7 @@ $(Device/seama)
 endef
 
 define Device/mynet-n750
-$(Device/seama)
+  $(Device/seama)
   DEVICE_TITLE := Western Digital My Net N750
   DEVICE_PACKAGES := kmod-usb-core kmod-usb2
   BOARDNAME = MYNET-N750
@@ -729,7 +793,7 @@ $(Device/seama)
 endef
 
 define Device/qihoo-c301
-$(Device/seama)
+  $(Device/seama)
   DEVICE_TITLE := Qihoo C301
   DEVICE_PACKAGES :=  kmod-usb-core kmod-usb2 kmod-usb-ledtrig-usbport kmod-ath10k ath10k-firmware-qca988x
   BOARDNAME = QIHOO-C301
@@ -740,21 +804,9 @@ endef
 
 TARGET_DEVICES += dir-869-a1 mynet-n600 mynet-n750 qihoo-c301
 
-define Build/mkwrggimg
-       $(STAGING_DIR_HOST)/bin/mkwrggimg -b \
-               -i $@ -o $@.imghdr -d /dev/mtdblock/1 \
-               -m $(BOARDNAME) -s $(DAP_SIGNATURE) \
-               -v LEDE -B $(REVISION)
-       mv $@.imghdr $@
-endef
-
-define Build/wrgg-pad-rootfs
-       $(STAGING_DIR_HOST)/bin/padjffs2 $(IMAGE_ROOTFS) -c 64 >>$@
-endef
-
 define Device/dap-2695-a1
   DEVICE_TITLE := D-Link DAP-2695 rev. A1
-  DEVICE_PACKAGES := ath10k-firmware-qca988x kmod-ath10k uboot-envtools
+  DEVICE_PACKAGES := ath10k-firmware-qca988x kmod-ath10k
   BOARDNAME = DAP-2695-A1
   IMAGES := factory.img sysupgrade.bin
   IMAGE_SIZE = 15360k
@@ -764,19 +816,10 @@ define Device/dap-2695-a1
   KERNEL_INITRAMFS := $$(KERNEL) | mkwrggimg
   MTDPARTS = spi0.0:256k(bootloader)ro,64k(bdcfg)ro,64k(rgdb)ro,64k(langpack)ro,15360k(firmware),448k(captival)ro,64k(certificate)ro,64k(radiocfg)ro
   DAP_SIGNATURE := wapac02_dkbs_dap2695
-  DEVICE_VARS += DAP_SIGNATURE
 endef
 
 TARGET_DEVICES += dap-2695-a1
 
-define Build/mkbuffaloimg
-       $(STAGING_DIR_HOST)/bin/mkbuffaloimg -B $(BOARDNAME) \
-               -R $$(($(subst k, * 1024,$(ROOTFS_SIZE)))) \
-               -K $$(($(subst k, * 1024,$(KERNEL_SIZE)))) \
-               -i $@ -o $@.new
-       mv $@.new $@
-endef
-
 define Device/bhr-4grv2
   DEVICE_TITLE := Buffalo BHR-4GRV2
   BOARDNAME := BHR-4GRV2
@@ -789,3 +832,52 @@ define Device/bhr-4grv2
   IMAGE/factory.bin = append-kernel | pad-to $$$$(KERNEL_SIZE) | append-rootfs | pad-rootfs | mkbuffaloimg
 endef
 TARGET_DEVICES += bhr-4grv2
+
+define Device/wpj-16m
+  DEVICE_PACKAGES := kmod-usb-core kmod-usb2 kmod-usb-ledtrig-usbport
+  MTDPARTS := spi0.0:192k(u-boot)ro,16128k(firmware),64k(art)ro
+  IMAGE_SIZE := 16128k
+endef
+
+define Device/wpj342
+  $(Device/wpj-16m)
+  DEVICE_TITLE := Compex WPJ342 (16MB flash)
+  BOARDNAME := WPJ342
+endef
+
+define Device/wpj344
+  $(Device/wpj-16m)
+  DEVICE_TITLE := Compex WPJ344 (16MB flash)
+  BOARDNAME := WPJ344
+endef
+
+define Device/wpj531
+  $(Device/wpj-16m)
+  DEVICE_TITLE := Compex WPJ531 (16MB flash)
+  BOARDNAME := WPJ531
+endef
+
+define Device/wpj558
+  $(Device/wpj-16m)
+  DEVICE_TITLE := Compex WPJ558 (16MB flash)
+  BOARDNAME := WPJ558
+endef
+
+define Device/wpj563
+  $(Device/wpj-16m)
+  DEVICE_TITLE := Compex WPJ563 (16MB flash)
+  BOARDNAME := WPJ563
+endef
+TARGET_DEVICES += wpj342 wpj344 wpj531 wpj558 wpj563
+
+define Device/zbt-we1526
+  DEVICE_TITLE := Zbtlink ZBT-WE1526
+  DEVICE_PACKAGES := kmod-usb-core kmod-usb2
+  BOARDNAME := ZBT-WE1526
+  IMAGE_SIZE := 16000k
+  KERNEL_SIZE := 1472k
+  ROOTFS_SIZE := 14528k
+  MTDPARTS := spi0.0:256k(u-boot)ro,64k(u-boot-env)ro,14528k(rootfs),1472k(kernel),64k(art)ro,16000k@0x50000(firmware)
+  IMAGE/sysupgrade.bin = append-rootfs | pad-rootfs | pad-to $$$$(ROOTFS_SIZE) | append-kernel | check-size $$$$(IMAGE_SIZE)
+endef
+TARGET_DEVICES += zbt-we1526