+
+define Device/glinet_gl-ar300m-lite
+ $(Device/glinet_gl-ar300m-common-nor)
+ DEVICE_TITLE := GL.iNet GL-AR300M-Lite
+endef
+TARGET_DEVICES += glinet_gl-ar300m-lite
+
+define Device/glinet_gl-ar300m-nor
+ $(Device/glinet_gl-ar300m-common-nor)
+ DEVICE_TITLE := GL.iNet GL-AR300M
+endef
+TARGET_DEVICES += glinet_gl-ar300m-nor
+
+define Device/glinet_gl-ar750s
+ ATH_SOC := qca9563
+ DEVICE_TITLE := GL.iNet GL-AR750S
+ DEVICE_PACKAGES := kmod-usb2 kmod-ath10k-ct ath10k-firmware-qca988x-ct
+ IMAGE_SIZE := 16000k
+ SUPPORTED_DEVICES += gl-ar750s
+endef
+TARGET_DEVICES += glinet_gl-ar750s
+
+define Device/glinet_gl-x750
+ ATH_SOC := qca9531
+ DEVICE_TITLE := GL.iNet GL-X750
+ DEVICE_PACKAGES := kmod-usb-core kmod-usb2 kmod-ath10k-ct ath10k-firmware-qca9887-ct
+ IMAGE_SIZE := 16000k
+endef
+TARGET_DEVICES += glinet_gl-x750
+
+define Device/iodata_etg3-r
+ ATH_SOC := ar9342
+ DEVICE_TITLE := I-O DATA ETG3-R
+ IMAGE_SIZE := 7680k
+endef
+TARGET_DEVICES += iodata_etg3-r
+
+define Device/iodata_wn-ac1167dgr
+ ATH_SOC := qca9557
+ DEVICE_TITLE := I-O DATA WN-AC1167DGR
+ IMAGE_SIZE := 14656k
+ IMAGES += factory.bin
+ IMAGE/factory.bin := append-kernel | pad-to $$$$(BLOCKSIZE) | \
+ append-rootfs | pad-rootfs | check-size $$$$(IMAGE_SIZE) | \
+ senao-header -r 0x30a -p 0x61 -t 2
+ DEVICE_PACKAGES := kmod-usb-core kmod-usb2 kmod-ath10k-ct ath10k-firmware-qca988x-ct
+endef
+TARGET_DEVICES += iodata_wn-ac1167dgr
+
+define Device/iodata_wn-ac1600dgr
+ ATH_SOC := qca9557
+ DEVICE_TITLE := I-O DATA WN-AC1600DGR
+ IMAGE_SIZE := 14656k
+ IMAGES += factory.bin
+ IMAGE/factory.bin := append-kernel | pad-to $$$$(BLOCKSIZE) | \
+ append-rootfs | pad-rootfs | check-size $$$$(IMAGE_SIZE) | \
+ senao-header -r 0x30a -p 0x60 -t 2 -v 200
+ DEVICE_PACKAGES := kmod-usb-core kmod-usb2 kmod-ath10k-ct ath10k-firmware-qca988x-ct
+endef
+TARGET_DEVICES += iodata_wn-ac1600dgr
+
+define Device/iodata_wn-ac1600dgr2
+ ATH_SOC := qca9557
+ DEVICE_TITLE := I-O DATA WN-AC1600DGR2
+ IMAGE_SIZE := 14656k
+ IMAGES += factory.bin
+ IMAGE/factory.bin := append-kernel | pad-to $$$$(BLOCKSIZE) | \
+ append-rootfs | pad-rootfs | check-size $$$$(IMAGE_SIZE) | \
+ senao-header -r 0x30a -p 0x60 -t 2 -v 200
+ DEVICE_PACKAGES := kmod-usb-core kmod-usb2 kmod-ath10k-ct ath10k-firmware-qca988x-ct
+endef
+TARGET_DEVICES += iodata_wn-ac1600dgr2
+
+define Device/iodata_wn-ag300dgr
+ ATH_SOC := ar1022
+ DEVICE_TITLE := I-O DATA WN-AG300DGR
+ IMAGE_SIZE := 15424k
+ IMAGES += factory.bin
+ IMAGE/factory.bin := append-kernel | pad-to $$$$(BLOCKSIZE) | \
+ append-rootfs | pad-rootfs | check-size $$$$(IMAGE_SIZE) | \
+ senao-header -r 0x30a -p 0x47 -t 2
+ DEVICE_PACKAGES := kmod-usb-core kmod-usb2
+endef
+TARGET_DEVICES += iodata_wn-ag300dgr
+
+define Device/jjplus_ja76pf2
+ ATH_SOC := ar7161
+ DEVICE_TITLE := jjPlus JA76PF2
+ DEVICE_PACKAGES += -kmod-ath9k -swconfig -wpad-mini -uboot-envtools fconfig
+ IMAGE/sysupgrade.bin := append-rootfs | pad-rootfs | combined-image | check-size $$$$(IMAGE_SIZE)
+# IMAGE/sysupgrade.bin := append-rootfs | pad-rootfs | check-size $$$$(IMAGE_SIZE) | sysupgrade-tar rootfs=$$$$@ | append-metadata
+ KERNEL := kernel-bin | append-dtb | lzma | pad-to $$(BLOCKSIZE)
+ KERNEL_INITRAMFS := kernel-bin | append-dtb
+ IMAGE_SIZE := 16000k
+endef
+TARGET_DEVICES += jjplus_ja76pf2
+
+define Device/librerouter_librerouter-v1
+ ATH_SOC := qca9558
+ DEVICE_TITLE := LibreRouter v1
+ IMAGE_SIZE := 7936k
+ DEVICE_PACKAGES := kmod-usb-core kmod-usb2
+endef
+TARGET_DEVICES += librerouter_librerouter-v1
+
+define Device/nec_wg1200cr
+ ATH_SOC := qca9563
+ DEVICE_TITLE := NEC Aterm WG1200CR
+ IMAGE_SIZE := 7616k
+ SEAMA_MTDBLOCK := 6
+ SEAMA_SIGNATURE := wrgac72_necpf.2016gui_wg1200cr
+ IMAGES += factory.bin
+ IMAGE/default := \
+ append-kernel | pad-offset $$$$(BLOCKSIZE) 64 | append-rootfs
+ IMAGE/sysupgrade.bin := \
+ $$(IMAGE/default) | seama | pad-rootfs | append-metadata | check-size $$$$(IMAGE_SIZE)
+ IMAGE/factory.bin := \
+ $$(IMAGE/default) | pad-rootfs -x 64 | seama | seama-seal | nec-enc 9gsiy9nzep452pad | \
+ check-size $$$$(IMAGE_SIZE)
+ DEVICE_PACKAGES := kmod-ath10k-ct ath10k-firmware-qca9888-ct
+endef
+TARGET_DEVICES += nec_wg1200cr
+
+define Device/nec_wg800hp
+ ATH_SOC := qca9563
+ DEVICE_TITLE := NEC Aterm WG800HP
+ IMAGE_SIZE := 7104k
+ IMAGES += factory.bin
+ IMAGE/factory.bin := append-kernel | pad-to $$$$(BLOCKSIZE) | \
+ append-rootfs | pad-rootfs | check-size $$$$(IMAGE_SIZE) | \
+ xor-image -p 6A57190601121E4C004C1E1201061957 -x | \
+ nec-fw LASER_ATERM
+ DEVICE_PACKAGES := kmod-ath10k-ct ath10k-firmware-qca9887-ct-htt
+endef
+TARGET_DEVICES += nec_wg800hp