+
+
+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 \
+ kmod-fs-ext4 kmod-nls-iso8859-1 e2fsprogs
+ BOARDNAME := HiWiFi-HC6361
+ DEVICE_PROFILE := HIWIFI_HC6361
+ IMAGE_SIZE := 16128k
+ KERNEL := kernel-bin | patch-cmdline | lzma | uImageHiWiFi lzma
+ CONSOLE := ttyATH0,115200
+ MTDPARTS := spi0.0:64k(u-boot)ro,64k(bdinfo)ro,16128k(firmware),64k(backup)ro,64k(art)ro
+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
+ CONSOLE := ttyS0,115200
+ LOADER_TYPE := bin
+ BLOCKSIZE := 64k
+ KERNEL := kernel-bin | patch-cmdline | relocate-kernel | lzma
+ KERNEL_INITRAMFS := kernel-bin | patch-cmdline | lzma | seama
+ KERNEL_INITRAMFS_SUFFIX = $$(KERNEL_SUFFIX).seama
+ IMAGES := sysupgrade.bin factory.bin
+
+ # 64 bytes offset:
+ # - 28 bytes seama_header
+ # - 36 bytes of META data (4-bytes aligned)
+ IMAGE/default := append-kernel | pad-offset $$$$(BLOCKSIZE) 64 | append-rootfs
+ IMAGE/sysupgrade.bin := \
+ $$(IMAGE/default) | seama | pad-rootfs | \
+ check-size $$$$(IMAGE_SIZE)
+ IMAGE/factory.bin := \
+ $$(IMAGE/default) | seama | pad-rootfs | \
+ 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_TITLE := D-Link DIR-869 rev. A1
+ DEVICE_PACKAGES := kmod-ath10k ath10k-firmware-qca988x
+ BOARDNAME = DIR-869-A1
+ IMAGE_SIZE = 15872k
+ MTDPARTS = spi0.0:256k(u-boot)ro,64k(u-boot-env)ro,64k(devdata)ro,64k(devconf)ro,15872k(firmware),64k(radiocfg)ro
+ SEAMA_SIGNATURE := wrgac54_dlink.2015_dir869
+ IMAGE/factory.bin := \
+ $$(IMAGE/default) | pad-rootfs -x 64 | \
+ seama | seama-seal -m "signature=$$$$(SEAMA_SIGNATURE)" | \
+ check-size $$$$(IMAGE_SIZE)
+endef
+
+define Device/mynet-n600
+$(Device/seama)
+ DEVICE_TITLE := Western Digital My Net N600
+ DEVICE_PACKAGES := kmod-usb-core kmod-usb2
+ BOARDNAME = MYNET-N600
+ IMAGE_SIZE = 15808k
+ MTDPARTS = spi0.0:256k(u-boot)ro,64k(u-boot-env)ro,64k(devdata)ro,64k(devconf)ro,15872k(firmware),64k(radiocfg)ro
+ SEAMA_SIGNATURE := wrgnd16_wd_db600
+endef
+
+define Device/mynet-n750
+$(Device/seama)
+ DEVICE_TITLE := Western Digital My Net N750
+ DEVICE_PACKAGES := kmod-usb-core kmod-usb2
+ BOARDNAME = MYNET-N750
+ IMAGE_SIZE = 15808k
+ MTDPARTS = spi0.0:256k(u-boot)ro,64k(u-boot-env)ro,64k(devdata)ro,64k(devconf)ro,15872k(firmware),64k(radiocfg)ro
+ SEAMA_SIGNATURE := wrgnd13_wd_av
+endef
+
+define Device/qihoo-c301
+$(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
+ IMAGE_SIZE = 15744k
+ MTDPARTS = spi0.0:256k(u-boot)ro,64k(u-boot-env),64k(devdata),64k(devconf),15744k(firmware),64k(warm_start),64k(action_image_config),64k(radiocfg)ro;spi0.1:15360k(upgrade2),1024k(privatedata)
+ SEAMA_SIGNATURE := wrgac26_qihoo360_360rg
+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
+ BOARDNAME = DAP-2695-A1
+ IMAGES := factory.img sysupgrade.bin
+ IMAGE_SIZE = 15360k
+ IMAGE/factory.img = append-kernel | pad-offset 65536 160 | append-rootfs | wrgg-pad-rootfs | mkwrggimg | check-size $$$$(IMAGE_SIZE)
+ IMAGE/sysupgrade.bin = append-kernel | pad-offset 65536 160 | mkwrggimg | append-rootfs | wrgg-pad-rootfs | check-size $$$$(IMAGE_SIZE)
+ KERNEL := kernel-bin | patch-cmdline | relocate-kernel | lzma
+ 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
+ ROOTFS_SIZE := 14528k
+ KERNEL_SIZE := 1472k
+ IMAGE_SIZE := 16000k
+ MTDPARTS := spi0.0:256k(u-boot)ro,64k(u-boot-env)ro,14528k(rootfs),1472k(kernel),64k(art)ro,16000k@0x50000(firmware)
+ IMAGES := sysupgrade.bin factory.bin
+ IMAGE/sysupgrade.bin = append-rootfs | pad-rootfs | pad-to $$$$(ROOTFS_SIZE) | append-kernel | check-size $$$$(IMAGE_SIZE)
+ IMAGE/factory.bin = append-kernel | pad-to $$$$(KERNEL_SIZE) | append-rootfs | mkbuffaloimg
+endef
+TARGET_DEVICES += bhr-4grv2