+
+define Device/glinet_gl-ar300m-nor
+ $(Device/glinet_gl-ar300m-common-nand)
+ DEVICE_VARIANT := NOR
+ BLOCKSIZE := 64k
+ SUPPORTED_DEVICES += glinet,gl-ar300m-nand gl-ar300m
+endef
+TARGET_DEVICES += glinet_gl-ar300m-nor
+
+define Device/glinet_gl-ar750s-common
+ SOC := qca9563
+ DEVICE_VENDOR := GL.iNet
+ DEVICE_MODEL := GL-AR750S
+ DEVICE_PACKAGES := kmod-ath10k-ct ath10k-firmware-qca9887-ct kmod-usb2 \
+ kmod-usb-storage block-mount
+ IMAGE_SIZE := 16000k
+endef
+
+define Device/glinet_gl-ar750s-nor-nand
+ $(Device/glinet_gl-ar750s-common)
+ DEVICE_VARIANT := NOR/NAND
+ KERNEL_SIZE := 4096k
+ IMAGE/sysupgrade.bin := sysupgrade-tar | append-metadata
+ SUPPORTED_DEVICES += glinet,gl-ar750s-nor
+endef
+TARGET_DEVICES += glinet_gl-ar750s-nor-nand
+
+define Device/glinet_gl-ar750s-nor
+ $(Device/glinet_gl-ar750s-common)
+ DEVICE_VARIANT := NOR
+ BLOCKSIZE := 64k
+ SUPPORTED_DEVICES += gl-ar750s glinet,gl-ar750s glinet,gl-ar750s-nor-nand
+endef
+TARGET_DEVICES += glinet_gl-ar750s-nor
+
+# fake rootfs is mandatory, pad-offset 129 equals (2 * uimage_header + 0xff)
+define Device/netgear_ath79_nand
+ DEVICE_VENDOR := NETGEAR
+ DEVICE_PACKAGES := kmod-usb2 kmod-usb-ledtrig-usbport
+ KERNEL_SIZE := 4096k
+ BLOCKSIZE := 128k
+ PAGESIZE := 2048
+ IMAGE_SIZE := 25600k
+ KERNEL := kernel-bin | append-dtb | lzma -d20 | \
+ pad-offset $$(KERNEL_SIZE) 129 | netgear-uImage lzma | \
+ append-string -e '\xff' | \
+ append-uImage-fakehdr filesystem $$(NETGEAR_KERNEL_MAGIC)
+ KERNEL_INITRAMFS := kernel-bin | append-dtb | lzma -d20 | netgear-uImage lzma
+ IMAGES := sysupgrade.bin factory.img
+ IMAGE/factory.img := append-kernel | append-ubi | netgear-dni | \
+ check-size
+ IMAGE/sysupgrade.bin := sysupgrade-tar | append-metadata | \
+ check-size
+ UBINIZE_OPTS := -E 5
+endef
+
+define Device/netgear_wndr3700-v4
+ SOC := ar9344
+ DEVICE_MODEL := WNDR3700
+ DEVICE_VARIANT := v4
+ NETGEAR_KERNEL_MAGIC := 0x33373033
+ NETGEAR_BOARD_ID := WNDR3700v4
+ NETGEAR_HW_ID := 29763948+128+128
+ $(Device/netgear_ath79_nand)
+endef
+TARGET_DEVICES += netgear_wndr3700-v4
+
+define Device/netgear_wndr4300
+ SOC := ar9344
+ DEVICE_MODEL := WNDR4300
+ NETGEAR_KERNEL_MAGIC := 0x33373033
+ NETGEAR_BOARD_ID := WNDR4300
+ NETGEAR_HW_ID := 29763948+0+128+128+2x2+3x3
+ $(Device/netgear_ath79_nand)
+endef
+TARGET_DEVICES += netgear_wndr4300
+
+define Device/netgear_wndr4300sw
+ SOC := ar9344
+ DEVICE_MODEL := WNDR4300SW
+ NETGEAR_KERNEL_MAGIC := 0x33373033
+ NETGEAR_BOARD_ID := WNDR4300SW
+ NETGEAR_HW_ID := 29763948+0+128+128+2x2+3x3
+ $(Device/netgear_ath79_nand)
+endef
+TARGET_DEVICES += netgear_wndr4300sw
+
+define Device/netgear_wndr4300-v2
+ SOC := qca9563
+ DEVICE_MODEL := WNDR4300
+ DEVICE_VARIANT := v2
+ NETGEAR_KERNEL_MAGIC := 0x27051956
+ NETGEAR_BOARD_ID := WNDR4500series
+ NETGEAR_HW_ID := 29764821+2+128+128+3x3+3x3+5508012175
+ $(Device/netgear_ath79_nand)
+endef
+TARGET_DEVICES += netgear_wndr4300-v2
+
+define Device/netgear_wndr4500-v3
+ SOC := qca9563
+ DEVICE_MODEL := WNDR4500
+ DEVICE_VARIANT := v3
+ NETGEAR_KERNEL_MAGIC := 0x27051956
+ NETGEAR_BOARD_ID := WNDR4500series
+ NETGEAR_HW_ID := 29764821+2+128+128+3x3+3x3+5508012173
+ $(Device/netgear_ath79_nand)
+endef
+TARGET_DEVICES += netgear_wndr4500-v3
+
+define Device/zyxel_nbg6716
+ SOC := qca9558
+ DEVICE_VENDOR := ZyXEL
+ DEVICE_MODEL := NBG6716
+ DEVICE_PACKAGES := kmod-usb2 kmod-usb-ledtrig-usbport kmod-ath10k-ct \
+ ath10k-firmware-qca988x-ct
+ RAS_BOARD := NBG6716
+ RAS_ROOTFS_SIZE := 29696k
+ RAS_VERSION := "OpenWrt Linux-$(LINUX_VERSION)"
+ KERNEL_SIZE := 4096k
+ BLOCKSIZE := 128k
+ PAGESIZE := 2048
+ KERNEL := kernel-bin | append-dtb | uImage none | zyxel-buildkerneljffs | \
+ check-size 4096k
+ IMAGES := sysupgrade.tar sysupgrade-4M-Kernel.bin factory.bin
+ IMAGE/sysupgrade.tar/squashfs := append-rootfs | pad-to $$$$(BLOCKSIZE) | \
+ sysupgrade-tar rootfs=$$$$@ | append-metadata
+ IMAGE/sysupgrade-4M-Kernel.bin/squashfs := append-kernel | \
+ pad-to $$$$(KERNEL_SIZE) | append-ubi | pad-to 263192576 | gzip
+ IMAGE/factory.bin := append-kernel | pad-to $$$$(KERNEL_SIZE) | append-ubi | \
+ zyxel-factory
+ UBINIZE_OPTS := -E 5
+endef
+TARGET_DEVICES += zyxel_nbg6716