+define Device/linksys_ea9200
+ DEVICE_VENDOR := Linksys
+ DEVICE_MODEL := EA9200
+ DEVICE_VARIANT := v1
+ DEVICE_PACKAGES := $(BRCMFMAC_43602A1) $(USB3_PACKAGES)
+ BROKEN := y
+endef
+TARGET_DEVICES += linksys_ea9200
+
+define Device/linksys_ea9500
+ DEVICE_VENDOR := Linksys
+ DEVICE_MODEL := EA9500
+ DEVICE_PACKAGES := $(BRCMFMAC_4366C0) $(USB3_PACKAGES)
+ DEVICE_DTS := bcm47094-linksys-panamera
+ BROKEN := y
+endef
+TARGET_DEVICES += linksys_ea9500
+
+define Device/luxul
+ DEVICE_VENDOR := Luxul
+ IMAGES := lxl
+ IMAGE/lxl := append-ubi | trx-nand | luxul-lxl
+endef
+
+define Device/luxul_abr-4500
+ $(Device/luxul)
+ DEVICE_MODEL := ABR-4500
+ DEVICE_PACKAGES := $(USB3_PACKAGES)
+ LUXUL_BOARD := ABR-4500
+endef
+TARGET_DEVICES += luxul_abr-4500
+
+define Device/luxul_xap-1610
+ $(Device/luxul)
+ DEVICE_MODEL := XAP-1610
+ DEVICE_PACKAGES := $(BRCMFMAC_4366C0)
+ IMAGE/lxl := append-rootfs | trx-serial | luxul-lxl
+ LUXUL_BOARD := XAP-1610
+endef
+TARGET_DEVICES += luxul_xap-1610
+
+define Device/luxul_xbr-4500
+ $(Device/luxul)
+ DEVICE_MODEL := XBR-4500
+ DEVICE_PACKAGES := $(USB3_PACKAGES)
+ LUXUL_BOARD := XBR-4500
+endef
+TARGET_DEVICES += luxul_xbr-4500
+
+define Device/luxul_xwr-3150
+ $(Device/luxul)
+ DEVICE_MODEL := XWR-3150
+ DEVICE_PACKAGES := $(BRCMFMAC_4366C0) $(USB3_PACKAGES)
+ DEVICE_DTS := bcm47094-luxul-xwr-3150-v1
+ LUXUL_BOARD := XWR-3150
+endef
+TARGET_DEVICES += luxul_xwr-3150
+
+define Device/meraki_mr32
+ DEVICE_VENDOR := Meraki
+ DEVICE_MODEL := MR32
+ DEVICE_PACKAGES := $(B43) kmod-i2c-bcm-iproc kmod-i2c-gpio kmod-eeprom-at24 \
+ kmod-leds-pwm kmod-hwmon-ina2xx kmod-bluetooth
+ DEVICE_DTS := bcm53016-meraki-mr32
+# Meraki FW r23 tries to resize the part.safe partition before it will
+# flash the image. This is a bit of a problem, since resizing will fail
+# if the partition is smaller than the old one.
+ KERNEL_LOADADDR := 0x00008000
+ KERNEL_INITRAMFS_SUFFIX := .bin
+ KERNEL_INITRAMFS := kernel-bin | fit none $$(DTS_DIR)/$$(DEVICE_DTS).dtb | \
+ pad-to 10362880
+ KERNEL := kernel-bin | fit none $$(DTS_DIR)/$$(DEVICE_DTS).dtb
+ IMAGES := sysupgrade.bin
+# Currently the only device that uses the new image check
+ IMAGE/sysupgrade.bin := sysupgrade-tar | append-metadata
+
+# The loader is specifically looking for fdt@2:
+# [ 3.190000] find_itb_subimage: error finding fdt@2: FDT_ERR_NOTFOUND
+# The image won't boot, if it isn't found. :(
+ DEVICE_FDT_NUM := 2
+endef
+TARGET_DEVICES += meraki_mr32
+
+define Device/netgear
+ DEVICE_VENDOR := NETGEAR
+ IMAGES := chk
+ IMAGE/chk := append-ubi | trx-nand | netgear-chk
+ NETGEAR_REGION := 1
+endef
+
+define Device/netgear_r6250
+ DEVICE_MODEL := R6250
+ DEVICE_PACKAGES := $(B43) $(USB3_PACKAGES)
+ $(Device/netgear)
+ NETGEAR_BOARD_ID := U12H245T00_NETGEAR
+endef
+TARGET_DEVICES += netgear_r6250
+
+define Device/netgear_r6300-v2
+ DEVICE_MODEL := R6300
+ DEVICE_VARIANT := v2
+ DEVICE_PACKAGES := $(B43) $(USB3_PACKAGES)
+ $(Device/netgear)
+ NETGEAR_BOARD_ID := U12H240T00_NETGEAR
+endef
+TARGET_DEVICES += netgear_r6300-v2
+
+define Device/netgear_r7000
+ DEVICE_MODEL := R7000
+ DEVICE_PACKAGES := $(USB3_PACKAGES)
+ $(Device/netgear)
+ NETGEAR_BOARD_ID := U12H270T00_NETGEAR
+endef
+TARGET_DEVICES += netgear_r7000
+
+define Device/netgear_r7900
+ DEVICE_MODEL := R7900
+ DEVICE_PACKAGES := $(BRCMFMAC_43602A1) $(USB3_PACKAGES)
+ $(Device/netgear)
+ NETGEAR_BOARD_ID := U12H315T30_NETGEAR
+endef
+TARGET_DEVICES += netgear_r7900
+
+define Device/netgear_r8000
+ DEVICE_MODEL := R8000
+ DEVICE_PACKAGES := $(BRCMFMAC_43602A1) $(USB3_PACKAGES)
+ $(Device/netgear)
+ NETGEAR_BOARD_ID := U12H315T00_NETGEAR
+endef
+TARGET_DEVICES += netgear_r8000
+
+define Device/netgear_r8500
+ DEVICE_MODEL := R8500
+ DEVICE_PACKAGES := $(BRCMFMAC_4366B1) $(USB3_PACKAGES)
+ $(Device/netgear)
+ NETGEAR_BOARD_ID := U12H334T00_NETGEAR
+ DEFAULT := n
+endef
+TARGET_DEVICES += netgear_r8500
+
+define Device/smartrg_sr400ac
+ DEVICE_VENDOR := SmartRG
+ DEVICE_MODEL := SR400ac
+ DEVICE_PACKAGES := $(BRCMFMAC_43602A1) $(USB3_PACKAGES)
+ IMAGES := trx
+ IMAGE/trx := append-rootfs | trx-serial
+ KERNEL_INITRAMFS_SUFFIX := .bin
+ KERNEL_INITRAMFS := kernel-bin | append-dtb | lzma-d16
+endef
+TARGET_DEVICES += smartrg_sr400ac
+
+define Device/phicomm_k3
+ DEVICE_VENDOR := PHICOMM
+ DEVICE_MODEL := K3
+ DEVICE_PACKAGES := $(BRCMFMAC_4366C0) $(USB3_PACKAGES)
+ IMAGES := trx
+endef
+TARGET_DEVICES += phicomm_k3
+
+define Device/tenda_ac9
+ DEVICE_VENDOR := Tenda
+ DEVICE_MODEL := AC9
+ DEVICE_PACKAGES := $(B43) $(USB2_PACKAGES)
+ IMAGES := trx
+ IMAGE/trx := append-rootfs | trx-serial
+endef
+TARGET_DEVICES += tenda_ac9
+
+define Device/tplink_archer-c5-v2
+ DEVICE_VENDOR := TP-Link
+ DEVICE_MODEL := Archer C5
+ DEVICE_VARIANT := v2
+ DEVICE_PACKAGES := $(B43) $(USB2_PACKAGES)
+ IMAGES := bin
+ IMAGE/bin := append-rootfs | bcm53xx-tplink-safeloader
+ TPLINK_BOARD := ARCHER-C5-V2
+ BROKEN := y
+endef
+TARGET_DEVICES += tplink_archer-c5-v2
+
+define Device/tplink_archer-c9-v1
+ DEVICE_VENDOR := TP-Link
+ DEVICE_MODEL := Archer C9
+ DEVICE_VARIANT := v1
+ DEVICE_PACKAGES := $(USB3_PACKAGES)
+ IMAGES := bin
+ IMAGE/bin := append-rootfs | bcm53xx-tplink-safeloader
+ TPLINK_BOARD := ARCHERC9
+ BROKEN := y
+endef
+TARGET_DEVICES += tplink_archer-c9-v1