+define Device/cf-e320n-v2
+ $(Device/cf-e316n-v2)
+ DEVICE_TITLE := COMFAST CF-E320N v2
+ DEVICE_PACKAGES += kmod-usb-core kmod-usb2
+ BOARDNAME := CF-E320N-V2
+endef
+TARGET_DEVICES += cf-e320n-v2
+
+define Device/cf-e355ac-v1
+ DEVICE_TITLE := COMFAST CF-E355AC v1
+ DEVICE_PACKAGES := kmod-usb-core kmod-usb2 kmod-ath10k ath10k-firmware-qca988x \
+ -swconfig -uboot-envtools
+ BOARDNAME := CF-E355AC-V1
+ IMAGE_SIZE := 16192k
+ MTDPARTS := spi0.0:64k(u-boot)ro,64k(art)ro,16192k(firmware),64k(art-backup)ro
+endef
+TARGET_DEVICES += cf-e355ac-v1
+
+define Device/cf-e355ac-v2
+ $(Device/cf-e355ac-v1)
+ DEVICE_TITLE := COMFAST CF-E355AC v2
+ DEVICE_PACKAGES := kmod-usb-core kmod-usb2 kmod-ath10k ath10k-firmware-qca9888 \
+ -swconfig -uboot-envtools
+ BOARDNAME := CF-E355AC-V2
+endef
+TARGET_DEVICES += cf-e355ac-v2
+
+define Device/cf-e375ac
+ DEVICE_TITLE := COMFAST CF-E375AC
+ DEVICE_PACKAGES := kmod-usb-core kmod-usb2 kmod-ath10k ath10k-firmware-qca9888 \
+ -uboot-envtools
+ BOARDNAME := CF-E375AC
+ IMAGE_SIZE := 16000k
+ MTDPARTS := spi0.0:256k(u-boot)ro,64k(art)ro,16000k(firmware),64k(art-backup)ro
+endef
+TARGET_DEVICES += cf-e375ac
+
+define Device/cf-e380ac-v1
+ DEVICE_TITLE := COMFAST CF-E380AC v1
+ DEVICE_PACKAGES := kmod-usb-core kmod-usb2 kmod-ath10k ath10k-firmware-qca988x \
+ -swconfig -uboot-envtools
+ BOARDNAME := CF-E380AC-V1
+ IMAGE_SIZE := 16128k
+ MTDPARTS := spi0.0:128k(u-boot)ro,64k(art)ro,16128k(firmware),64k(art-backup)ro
+endef
+TARGET_DEVICES += cf-e380ac-v1
+
+define Device/cf-e380ac-v2
+ $(Device/cf-e380ac-v1)
+ DEVICE_TITLE := COMFAST CF-E380AC v2
+ BOARDNAME := CF-E380AC-V2
+ IMAGE_SIZE := 16000k
+ MTDPARTS := spi0.0:256k(u-boot)ro,64k(art)ro,16000k(firmware),64k(art-backup)ro
+endef
+TARGET_DEVICES += cf-e380ac-v2
+
+define Device/cf-e385ac
+ DEVICE_TITLE := COMFAST CF-E385AC
+ DEVICE_PACKAGES := kmod-usb-core kmod-usb2 kmod-ath10k ath10k-firmware-qca9984 \
+ -uboot-envtools
+ BOARDNAME := CF-E385AC
+ IMAGE_SIZE := 16000k
+ MTDPARTS := spi0.0:256k(u-boot)ro,64k(art)ro,16000k(firmware),64k(art-backup)ro
+endef
+TARGET_DEVICES += cf-e385ac
+
+define Device/cf-e520n
+ DEVICE_TITLE := COMFAST CF-E520N
+ DEVICE_PACKAGES := kmod-usb-core kmod-usb2 -swconfig -uboot-envtools
+ BOARDNAME := CF-E520N
+ IMAGE_SIZE := 8000k
+ MTDPARTS := spi0.0:64k(u-boot)ro,64k(art)ro,8000k(firmware),64k(art-backup)ro
+endef
+TARGET_DEVICES += cf-e520n
+
+define Device/cf-e530n
+ $(Device/cf-e520n)
+ DEVICE_TITLE := COMFAST CF-E530N
+ BOARDNAME := CF-E530N
+endef
+TARGET_DEVICES += cf-e530n
+
+define Device/cpe505n
+ DEVICE_TITLE := P&W CPE505N
+ BOARDNAME := CPE505N
+ IMAGE_SIZE := 16000k
+ MTDPARTS := spi0.0:256k(u-boot)ro,64k(u-boot-env)ro,16000k(firmware),64k(art)ro
+endef
+TARGET_DEVICES += cpe505n
+
+define Device/cpe830
+ $(Device/ap90q)
+ DEVICE_TITLE := YunCore CPE830
+ DEVICE_PACKAGES := rssileds
+ BOARDNAME := CPE830
+endef
+TARGET_DEVICES += cpe830
+
+define Device/cpe870
+ DEVICE_TITLE := YunCore CPE870
+ DEVICE_PACKAGES := rssileds
+ BOARDNAME := CPE870
+ IMAGE_SIZE := 7936k
+ MTDPARTS := spi0.0:64k(u-boot)ro,64k(u-boot-env),7936k(firmware),64k(config)ro,64k(art)ro
+endef
+TARGET_DEVICES += cpe870
+
+define Device/dragino2
+ BOARDNAME := DRAGINO2
+ CONSOLE := ttyATH0,115200
+ 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
+endef
+TARGET_DEVICES += dragino2
+
+define Device/e1700ac-v2-16M
+ DEVICE_TITLE := WHQX E1700AC v2 (16MB flash)
+ DEVICE_PACKAGES := kmod-ath10k ath10k-firmware-qca988x kmod-usb-core \
+ kmod-usb2 kmod-usb-ledtrig-usbport
+ BOARDNAME := E1700AC-V2
+ SUPPORTED_DEVICES := e1700ac-v2
+ IMAGE_SIZE := 15936k
+ MTDPARTS := spi0.0:256k(u-boot)ro,64k(u-boot-env),64k(pri-data)ro,64k(art)ro,-(firmware)
+ IMAGE/sysupgrade.bin := append-kernel | pad-to $$$$(BLOCKSIZE) |\
+ append-rootfs | pad-rootfs | append-metadata | check-size $$$$(IMAGE_SIZE)
+endef
+TARGET_DEVICES += e1700ac-v2-16M
+
+define Device/e1700ac-v2-8M
+ $(Device/e1700ac-v2-16M)
+ DEVICE_TITLE := WHQX E1700AC v2 (8MB flash)
+ IMAGE_SIZE := 7744k
+endef
+TARGET_DEVICES += e1700ac-v2-8M
+
+define Device/e600g-v2-16M
+ DEVICE_TITLE := WHQX E600G v2 (16MB flash)
+ DEVICE_PACKAGES := kmod-usb-core kmod-usb2 -swconfig
+ BOARDNAME := E600G-V2
+ SUPPORTED_DEVICES := e600g-v2
+ IMAGE_SIZE := 15936k
+ MTDPARTS := spi0.0:256k(u-boot)ro,64k(u-boot-env),64k(pri-data)ro,64k(art)ro,-(firmware)
+ IMAGE/sysupgrade.bin := append-kernel | pad-to $$$$(BLOCKSIZE) |\
+ append-rootfs | pad-rootfs | append-metadata | check-size $$$$(IMAGE_SIZE)
+endef
+TARGET_DEVICES += e600g-v2-16M
+
+define Device/e600g-v2-8M
+ $(Device/e600g-v2-16M)
+ DEVICE_TITLE := WHQX E600G v2 (8MB flash)
+ IMAGE_SIZE := 7744k
+endef
+TARGET_DEVICES += e600g-v2-8M
+
+define Device/e600gac-v2-16M
+ DEVICE_TITLE := WHQX E600GAC v2 (16MB flash)
+ DEVICE_PACKAGES := kmod-ath10k ath10k-firmware-qca9887 kmod-usb-core \
+ kmod-usb2 -swconfig
+ BOARDNAME := E600GAC-V2
+ SUPPORTED_DEVICES := e600gac-v2
+ IMAGE_SIZE := 15936k
+ MTDPARTS := spi0.0:256k(u-boot)ro,64k(u-boot-env),64k(pri-data)ro,64k(art)ro,-(firmware)
+ IMAGE/sysupgrade.bin := append-kernel | pad-to $$$$(BLOCKSIZE) |\
+ append-rootfs | pad-rootfs | append-metadata | check-size $$$$(IMAGE_SIZE)
+endef
+TARGET_DEVICES += e600gac-v2-16M
+
+define Device/e600gac-v2-8M
+ $(Device/e600gac-v2-16M)
+ DEVICE_TITLE := WHQX E600GAC v2 (8MB flash)
+ IMAGE_SIZE := 7744k
+endef
+TARGET_DEVICES += e600gac-v2-8M
+
+define Device/ew-balin
+ DEVICE_TITLE := Embedded Wireless Balin Platform
+ DEVICE_PACKAGES := kmod-usb-core kmod-usb-chipidea
+ BOARDNAME := EW-BALIN
+ IMAGE_SIZE := 16000k
+ MTDPARTS := spi0.0:256k(u-boot)ro,64k(u-boot-env),16000k(firmware),64k(art)ro
+endef
+TARGET_DEVICES += ew-balin
+
+define Device/ew-dorin
+ $(Device/ew-balin)
+ DEVICE_TITLE := Embedded Wireless Dorin Platform
+ BOARDNAME := EW-DORIN
+ CONSOLE := ttyATH0,115200
+endef
+TARGET_DEVICES += ew-dorin
+
+define Device/ew-dorin-router
+ $(Device/ew-dorin)
+ DEVICE_TITLE := Embedded Wireless Dorin Router Platform
+ BOARDNAME := EW-DORIN-ROUTER
+endef
+TARGET_DEVICES += ew-dorin-router
+
+define Device/rme-eg200
+ DEVICE_TITLE := eTactica EG-200
+ DEVICE_PACKAGES := kmod-usb-core kmod-usb2 kmod-ledtrig-oneshot \
+ kmod-usb-serial kmod-usb-serial-ftdi \
+ kmod-usb-storage \
+ kmod-fs-ext4
+ BOARDNAME := RME-EG200
+ IMAGE_SIZE := 16000k
+ CONSOLE := ttyATH0,115200
+ MTDPARTS := spi0.0:256k(u-boot)ro,64k(u-boot-env)ro,16000k(firmware),64k(art)ro
+endef
+TARGET_DEVICES += rme-eg200
+