ramips: add support for ZTE MF283+
[openwrt/openwrt.git] / target / linux / ramips / image / rt305x.mk
index 193d4e4e57e9cf2b922328921b65c72bba22e87b..c2ae7fab6aaf21a8d95232ecf898f093e67cdc12 100644 (file)
 #
 # RT305X Profiles
 #
+define Build/buffalo-tftp-header
+       ( \
+               echo -n -e "# Airstation FirmWare\nrun u_fw\nreset\n\n" | \
+                       dd bs=512 count=1 conv=sync; \
+               dd if=$@; \
+       ) > $@.tmp && \
+       $(STAGING_DIR_HOST)/bin/buffalo-tftp -i $@.tmp -o $@.new
+       mv $@.new $@
+endef
+
+define Build/dap-header
+       $(STAGING_DIR_HOST)/bin/mkdapimg $(1) -i $@ -o $@.new
+       mv $@.new $@
+endef
+
+define Build/hilink-header
+       $(STAGING_DIR_HOST)/bin/mkhilinkfw -e -i $@ -o $@.new
+       mv $@.new $@
+endef
+
+define Device/7links_px-4885-4m
+  SOC := rt5350
+  IMAGE_SIZE := 3776k
+  DEVICE_VENDOR := 7Links
+  DEVICE_MODEL := PX-4885
+  DEVICE_VARIANT := 4M
+  DEVICE_PACKAGES := kmod-usb-dwc2 kmod-usb2 kmod-usb-ohci \
+       kmod-usb-ledtrig-usbport kmod-leds-gpio
+  SUPPORTED_DEVICES += px-4885-4M
+  DEFAULT := n
+endef
+TARGET_DEVICES += 7links_px-4885-4m
+
+define Device/7links_px-4885-8m
+  SOC := rt5350
+  IMAGE_SIZE := 7872k
+  DEVICE_VENDOR := 7Links
+  DEVICE_MODEL := PX-4885
+  DEVICE_VARIANT := 8M
+  DEVICE_PACKAGES := kmod-usb-dwc2 kmod-usb2 kmod-usb-ohci \
+       kmod-usb-ledtrig-usbport kmod-leds-gpio
+  SUPPORTED_DEVICES += px-4885-8M
+endef
+TARGET_DEVICES += 7links_px-4885-8m
+
+define Device/8devices_carambola
+  SOC := rt3050
+  IMAGE_SIZE := 7872k
+  DEVICE_VENDOR := 8devices
+  DEVICE_MODEL := Carambola
+  DEVICE_PACKAGES :=
+  SUPPORTED_DEVICES += carambola
+endef
+TARGET_DEVICES += 8devices_carambola
+
+define Device/accton_wr6202
+  SOC := rt3052
+  IMAGE_SIZE := 7872k
+  DEVICE_VENDOR := Accton
+  DEVICE_MODEL := WR6202
+  SUPPORTED_DEVICES += wr6202
+endef
+TARGET_DEVICES += accton_wr6202
+
+define Device/airlive_air3gii
+  SOC := rt5350
+  BLOCKSIZE := 64k
+  IMAGE_SIZE := 3776k
+  DEVICE_VENDOR := AirLive
+  DEVICE_MODEL := Air3GII
+  SUPPORTED_DEVICES += air3gii
+  DEFAULT := n
+endef
+TARGET_DEVICES += airlive_air3gii
+
+define Device/alfa-network_w502u
+  SOC := rt3052
+  IMAGE_SIZE := 7872k
+  DEVICE_VENDOR := ALFA
+  DEVICE_MODEL := Networks W502U
+  SUPPORTED_DEVICES += w502u
+endef
+TARGET_DEVICES += alfa-network_w502u
+
+define Device/allnet_all0256n-4m
+  SOC := rt3050
+  IMAGE_SIZE := 3776k
+  DEVICE_VENDOR := Allnet
+  DEVICE_MODEL := ALL0256N
+  DEVICE_VARIANT := 4M
+  DEVICE_PACKAGES := rssileds
+  SUPPORTED_DEVICES += all0256n-4M
+  DEFAULT := n
+endef
+TARGET_DEVICES += allnet_all0256n-4m
+
+define Device/allnet_all0256n-8m
+  SOC := rt3050
+  IMAGE_SIZE := 7872k
+  DEVICE_VENDOR := Allnet
+  DEVICE_MODEL := ALL0256N
+  DEVICE_VARIANT := 8M
+  DEVICE_PACKAGES := rssileds
+  SUPPORTED_DEVICES += all0256n-8M
+endef
+TARGET_DEVICES += allnet_all0256n-8m
+
+define Device/allnet_all5002
+  SOC := rt3352
+  IMAGE_SIZE := 32448k
+  DEVICE_VENDOR := Allnet
+  DEVICE_MODEL := ALL5002
+  DEVICE_PACKAGES := kmod-usb-ohci kmod-usb2 kmod-usb-ledtrig-usbport \
+       kmod-i2c-gpio kmod-hwmon-lm92 kmod-gpio-pcf857x
+  SUPPORTED_DEVICES += all5002
+endef
+TARGET_DEVICES += allnet_all5002
+
+define Device/allnet_all5003
+  SOC := rt5350
+  IMAGE_SIZE := 32448k
+  DEVICE_VENDOR := Allnet
+  DEVICE_MODEL := ALL5003
+  DEVICE_PACKAGES := kmod-usb-ohci kmod-usb2 kmod-usb-ledtrig-usbport \
+       kmod-i2c-gpio kmod-hwmon-lm92 kmod-gpio-pcf857x
+  SUPPORTED_DEVICES += all5003
+endef
+TARGET_DEVICES += allnet_all5003
+
+define Device/alphanetworks_asl26555-16m
+  SOC := rt3050
+  IMAGE_SIZE := 15872k
+  DEVICE_VENDOR := Alpha
+  DEVICE_MODEL := ASL26555
+  DEVICE_VARIANT := 16M
+  DEVICE_PACKAGES := kmod-usb-dwc2 kmod-usb-ledtrig-usbport
+  SUPPORTED_DEVICES += asl26555 asl26555-16M
+endef
+TARGET_DEVICES += alphanetworks_asl26555-16m
+
+define Device/alphanetworks_asl26555-8m
+  SOC := rt3050
+  IMAGE_SIZE := 7744k
+  DEVICE_VENDOR := Alpha
+  DEVICE_MODEL := ASL26555
+  DEVICE_PACKAGES := kmod-usb-dwc2 kmod-usb-ledtrig-usbport
+  SUPPORTED_DEVICES += asl26555 asl26555-8M
+endef
+TARGET_DEVICES += alphanetworks_asl26555-8m
+
+define Device/arcwireless_freestation5
+  SOC := rt3050
+  IMAGE_SIZE := 7872k
+  DEVICE_VENDOR := ARC Wireless
+  DEVICE_MODEL := FreeStation
+  DEVICE_PACKAGES := kmod-usb-dwc2 kmod-rt2500-usb kmod-rt2800-usb \
+       kmod-rt2x00-usb
+  SUPPORTED_DEVICES += freestation5
+endef
+TARGET_DEVICES += arcwireless_freestation5
+
+define Device/argus_atp-52b
+  SOC := rt3052
+  IMAGE_SIZE := 7808k
+  DEVICE_VENDOR := Argus
+  DEVICE_MODEL := ATP-52B
+  SUPPORTED_DEVICES += atp-52b
+endef
+TARGET_DEVICES += argus_atp-52b
+
+define Device/asiarf_awapn2403
+  SOC := rt3052
+  BLOCKSIZE := 4k
+  IMAGE_SIZE := 3776k
+  DEVICE_VENDOR := AsiaRF
+  DEVICE_MODEL := AWAPN2403
+  SUPPORTED_DEVICES += awapn2403
+  DEFAULT := n
+endef
+TARGET_DEVICES += asiarf_awapn2403
+
+define Device/asiarf_awm002-evb-4m
+  SOC := rt5350
+  IMAGE_SIZE := 3776k
+  DEVICE_VENDOR := AsiaRF
+  DEVICE_MODEL := AWM002-EVB
+  DEVICE_VARIANT := 4M
+  DEVICE_PACKAGES := kmod-usb-ohci kmod-usb2 kmod-i2c-gpio
+  SUPPORTED_DEVICES += awm002-evb-4M
+  DEFAULT := n
+endef
+TARGET_DEVICES += asiarf_awm002-evb-4m
+
+define Device/asiarf_awm002-evb-8m
+  SOC := rt5350
+  IMAGE_SIZE := 7872k
+  DEVICE_VENDOR := AsiaRF
+  DEVICE_MODEL := AWM002-EVB/AWM003-EVB
+  DEVICE_VARIANT := 8M
+  DEVICE_PACKAGES := kmod-usb-ohci kmod-usb2 kmod-i2c-gpio
+  SUPPORTED_DEVICES += awm002-evb-8M
+endef
+TARGET_DEVICES += asiarf_awm002-evb-8m
+
+define Device/asus_rt-g32-b1
+  SOC := rt3050
+  BLOCKSIZE := 4k
+  IMAGE_SIZE := 3776k
+  DEVICE_VENDOR := Asus
+  DEVICE_MODEL := RT-G32
+  DEVICE_VARIANT := B1
+  SUPPORTED_DEVICES += rt-g32-b1
+  DEFAULT := n
+endef
+TARGET_DEVICES += asus_rt-g32-b1
+
+define Device/asus_rt-n10-plus
+  SOC := rt3050
+  BLOCKSIZE := 64k
+  IMAGE_SIZE := 3776k
+  DEVICE_VENDOR := Asus
+  DEVICE_MODEL := RT-N10+
+  SUPPORTED_DEVICES += rt-n10-plus
+  DEFAULT := n
+endef
+TARGET_DEVICES += asus_rt-n10-plus
+
+define Device/asus_rt-n13u
+  SOC := rt3052
+  IMAGE_SIZE := 7872k
+  DEVICE_VENDOR := Asus
+  DEVICE_MODEL := RT-N13U
+  DEVICE_PACKAGES := kmod-leds-gpio kmod-rt2800-pci kmod-usb-dwc2
+  SUPPORTED_DEVICES += rt-n13u
+endef
+TARGET_DEVICES += asus_rt-n13u
+
+define Device/asus_wl-330n
+  SOC := rt3050
+  BLOCKSIZE := 4k
+  IMAGE_SIZE := 3776k
+  DEVICE_VENDOR := Asus
+  DEVICE_MODEL := WL-330N
+  SUPPORTED_DEVICES += wl-330n
+  DEFAULT := n
+endef
+TARGET_DEVICES += asus_wl-330n
+
+define Device/asus_wl-330n3g
+  SOC := rt3050
+  BLOCKSIZE := 4k
+  IMAGE_SIZE := 3776k
+  DEVICE_VENDOR := Asus
+  DEVICE_MODEL := WL-330N3G
+  DEVICE_PACKAGES :=
+  SUPPORTED_DEVICES += wl-330n3g
+  DEFAULT := n
+endef
+TARGET_DEVICES += asus_wl-330n3g
+
+define Device/aximcom_mr-102n
+  SOC := rt3052
+  IMAGE_SIZE := 7744k
+  DEVICE_VENDOR := AXIMCom
+  DEVICE_MODEL := MR-102N
+  SUPPORTED_DEVICES += mr-102n
+endef
+TARGET_DEVICES += aximcom_mr-102n
+
+define Device/aztech_hw550-3g
+  SOC := rt3052
+  IMAGE_SIZE := 7872k
+  DEVICE_VENDOR := Aztech
+  DEVICE_MODEL := HW550-3G
+  DEVICE_ALT0_VENDOR := Allnet
+  DEVICE_ALT0_MODEL := ALL0239-3G
+  DEVICE_PACKAGES := kmod-usb-dwc2 kmod-usb-ledtrig-usbport
+  SUPPORTED_DEVICES += hw550-3g
+endef
+TARGET_DEVICES += aztech_hw550-3g
+
+define Device/belkin_f5d8235-v2
+  SOC := rt3052
+  IMAGE_SIZE := 7744k
+  DEVICE_VENDOR := Belkin
+  DEVICE_MODEL := F5D8235
+  DEVICE_VARIANT := v2
+  DEVICE_PACKAGES := kmod-switch-rtl8366rb
+  SUPPORTED_DEVICES += f5d8235-v2
+endef
+TARGET_DEVICES += belkin_f5d8235-v2
+
+define Device/belkin_f7c027
+  SOC := rt5350
+  IMAGE_SIZE := 7616k
+  DEVICE_VENDOR := Belkin
+  DEVICE_MODEL := F7C027
+  SUPPORTED_DEVICES += f7c027
+endef
+TARGET_DEVICES += belkin_f7c027
+
+define Device/buffalo_whr-g300n
+  SOC := rt3052
+  BLOCKSIZE := 64k
+  IMAGE_SIZE := 3712k
+  DEVICE_VENDOR := Buffalo
+  DEVICE_MODEL := WHR-G300N
+  IMAGES += tftp.bin
+  IMAGE/tftp.bin := $$(sysupgrade_bin) | check-size | buffalo-tftp-header
+  SUPPORTED_DEVICES += whr-g300n
+  DEFAULT := n
+endef
+TARGET_DEVICES += buffalo_whr-g300n
+
+define Device/dlink_dap-1350
+  SOC := rt3052
+  IMAGES += factory.bin factory-NA.bin
+  IMAGE_SIZE := 7488k
+  IMAGE/factory.bin := $$(sysupgrade_bin) | check-size | \
+       dap-header -s RT3052-AP-DAP1350WW-3
+  IMAGE/factory-NA.bin := $$(sysupgrade_bin) | check-size | \
+       dap-header -s RT3052-AP-DAP1350-3
+  DEVICE_VENDOR := D-Link
+  DEVICE_MODEL := DAP-1350
+  SUPPORTED_DEVICES += dap-1350
+endef
+TARGET_DEVICES += dlink_dap-1350
+
+define Device/dlink_dcs-930
+  SOC := rt3050
+  IMAGE_SIZE := 3776k
+  DEVICE_VENDOR := D-Link
+  DEVICE_MODEL := DCS-930
+  DEVICE_PACKAGES := kmod-video-core kmod-video-uvc kmod-sound-core \
+       kmod-usb-audio kmod-usb-dwc2
+  SUPPORTED_DEVICES += dcs-930
+  DEFAULT := n
+endef
+TARGET_DEVICES += dlink_dcs-930
+
+define Device/dlink_dcs-930l-b1
+  SOC := rt5350
+  IMAGE_SIZE := 3776k
+  DEVICE_VENDOR := D-Link
+  DEVICE_MODEL := DCS-930L
+  DEVICE_VARIANT := B1
+  DEVICE_PACKAGES := kmod-video-core kmod-video-uvc kmod-sound-core \
+       kmod-usb-audio kmod-usb-ohci kmod-usb2
+  SUPPORTED_DEVICES += dcs-930l-b1
+  DEFAULT := n
+endef
+TARGET_DEVICES += dlink_dcs-930l-b1
+
+define Device/dlink_dir-300-b1
+  SOC := rt3050
+  IMAGE_SIZE := 3776k
+  IMAGES += factory.bin
+  IMAGE/factory.bin := $$(sysupgrade_bin) | check-size | \
+       wrg-header wrgn23_dlwbr_dir300b
+  DEVICE_VENDOR := D-Link
+  DEVICE_MODEL := DIR-300
+  DEVICE_VARIANT := B1
+  SUPPORTED_DEVICES += dir-300-b1
+  DEFAULT := n
+endef
+TARGET_DEVICES += dlink_dir-300-b1
+
+define Device/dlink_dir-300-b7
+  SOC := rt5350
+  BLOCKSIZE := 4k
+  IMAGE_SIZE := 7872k
+  DEVICE_VENDOR := D-Link
+  DEVICE_MODEL := DIR-300
+  DEVICE_VARIANT := B7
+  SUPPORTED_DEVICES += dir-300-b7
+endef
+TARGET_DEVICES += dlink_dir-300-b7
+
+define Device/dlink_dir-320-b1
+  SOC := rt5350
+  IMAGE_SIZE := 7872k
+  DEVICE_VENDOR := D-Link
+  DEVICE_MODEL := DIR-320
+  DEVICE_VARIANT := B1
+  SUPPORTED_DEVICES += dir-320-b1
+endef
+TARGET_DEVICES += dlink_dir-320-b1
+
+define Device/dlink_dir-600-b1
+  SOC := rt3050
+  IMAGE_SIZE := 3776k
+  IMAGES += factory.bin
+  IMAGE/factory.bin := $$(sysupgrade_bin) | check-size | \
+       wrg-header wrgn23_dlwbr_dir600b
+  DEVICE_VENDOR := D-Link
+  DEVICE_MODEL := DIR-600
+  DEVICE_VARIANT := B1/B2
+  SUPPORTED_DEVICES += dir-600-b1 dir-600-b2
+  DEFAULT := n
+endef
+TARGET_DEVICES += dlink_dir-600-b1
+
+define Device/dlink_dir-610-a1
+  $(Device/seama)
+  SOC := rt5350
+  BLOCKSIZE := 4k
+  SEAMA_SIGNATURE := wrgn59_dlob.hans_dir610
+  KERNEL := $(KERNEL_DTB)
+  IMAGE_SIZE := 3776k
+  DEVICE_VENDOR := D-Link
+  DEVICE_MODEL := DIR-610
+  DEVICE_VARIANT := A1
+  SUPPORTED_DEVICES += dir-610-a1
+  DEFAULT := n
+endef
+TARGET_DEVICES += dlink_dir-610-a1
+
+define Device/dlink_dir-615-d
+  SOC := rt3050
+  IMAGE_SIZE := 3776k
+  IMAGES += factory.bin
+  IMAGE/factory.bin := $$(sysupgrade_bin) | check-size | \
+       wrg-header wrgn23_dlwbr_dir615d
+  DEVICE_VENDOR := D-Link
+  DEVICE_MODEL := DIR-615
+  DEVICE_VARIANT := D
+  SUPPORTED_DEVICES += dir-615-d
+  DEFAULT := n
+endef
+TARGET_DEVICES += dlink_dir-615-d
+
+define Device/dlink_dir-615-h1
+  SOC := rt3352
+  BLOCKSIZE := 4k
+  IMAGES += factory.bin
+  IMAGE_SIZE := 3776k
+  IMAGE/factory.bin := $$(sysupgrade_bin) | senao-header -r 0x218 -p 0x30 -t 3
+  DEVICE_VENDOR := D-Link
+  DEVICE_MODEL := DIR-615
+  DEVICE_VARIANT := H1
+  SUPPORTED_DEVICES += dir-615-h1
+  DEFAULT := n
+endef
+TARGET_DEVICES += dlink_dir-615-h1
+
+define Device/dlink_dir-620-a1
+  SOC := rt3050
+  IMAGE_SIZE := 7872k
+  DEVICE_VENDOR := D-Link
+  DEVICE_MODEL := DIR-620
+  DEVICE_VARIANT := A1
+  SUPPORTED_DEVICES += dir-620-a1
+endef
+TARGET_DEVICES += dlink_dir-620-a1
+
+define Device/dlink_dir-620-d1
+  SOC := rt3352
+  IMAGE_SIZE := 7872k
+  DEVICE_VENDOR := D-Link
+  DEVICE_MODEL := DIR-620
+  DEVICE_VARIANT := D1
+  SUPPORTED_DEVICES += dir-620-d1
+endef
+TARGET_DEVICES += dlink_dir-620-d1
+
+define Device/dlink_dwr-512-b
+  SOC := rt5350
+  IMAGE_SIZE := 8064k
+  DEVICE_VENDOR := D-Link
+  DEVICE_MODEL := DWR-512
+  DEVICE_VARIANT := B
+  DEVICE_PACKAGES := jboot-tools kmod-usb2 kmod-spi-dev kmod-usb-serial \
+       kmod-usb-serial-option kmod-usb-net-cdc-ether comgt-ncm
+  DLINK_ROM_ID := DLK6E2412001
+  DLINK_FAMILY_MEMBER := 0x6E24
+  DLINK_FIRMWARE_SIZE := 0x7E0000
+  KERNEL := $(KERNEL_DTB)
+  IMAGES += factory.bin
+  IMAGE/sysupgrade.bin := mkdlinkfw | pad-rootfs | append-metadata
+  IMAGE/factory.bin := mkdlinkfw | pad-rootfs | mkdlinkfw-factory
+  SUPPORTED_DEVICES += dwr-512-b
+endef
+TARGET_DEVICES += dlink_dwr-512-b
+
+define Device/easyacc_wizard-8800
+  SOC := rt5350
+  IMAGE_SIZE := 7872k
+  UIMAGE_NAME:= Linux Kernel Image
+  DEVICE_VENDOR := EasyAcc
+  DEVICE_MODEL := WIZARD 8800
+  SUPPORTED_DEVICES += wizard8800
+endef
+TARGET_DEVICES += easyacc_wizard-8800
+
+define Device/edimax_3g-6200n
+  SOC := rt3050
+  IMAGE_SIZE := 3648k
+  IMAGE/sysupgrade.bin := append-kernel | append-rootfs | \
+       edimax-header -s CSYS -m 3G62 -f 0x50000 -S 0x01100000 | pad-rootfs | \
+       append-metadata | check-size
+  DEVICE_VENDOR := Edimax
+  DEVICE_MODEL := 3g-6200n
+  SUPPORTED_DEVICES += 3g-6200n
+  DEFAULT := n
+endef
+TARGET_DEVICES += edimax_3g-6200n
+
+define Device/edimax_3g-6200nl
+  SOC := rt3050
+  IMAGE_SIZE := 3648k
+  IMAGE/sysupgrade.bin := append-kernel | append-rootfs | \
+       edimax-header -s CSYS -m 3G62 -f 0x50000 -S 0x01100000 | pad-rootfs | \
+       append-metadata | check-size
+  DEVICE_VENDOR := Edimax
+  DEVICE_MODEL := 3g-6200nl
+  SUPPORTED_DEVICES += 3g-6200nl
+  DEFAULT := n
+endef
+TARGET_DEVICES += edimax_3g-6200nl
+
+define Device/engenius_esr-9753
+  SOC := rt3052
+  BLOCKSIZE := 64k
+  IMAGE_SIZE := 3776k
+  DEVICE_VENDOR := EnGenius
+  DEVICE_MODEL := ESR-9753
+  SUPPORTED_DEVICES += esr-9753
+  DEFAULT := n
+endef
+TARGET_DEVICES += engenius_esr-9753
+
+define Device/fon_fonera-20n
+  SOC := rt3052
+  IMAGE_SIZE := 7872k
+  IMAGES += factory.bin
+  IMAGE/factory.bin := $$(sysupgrade_bin) | \
+       edimax-header -s RSDK -m NL1T -f 0x50000 -S 0xc0000
+  DEVICE_VENDOR := Fon
+  DEVICE_MODEL := Fonera 2.0N
+  DEVICE_PACKAGES := kmod-usb-dwc2 kmod-usb-ledtrig-usbport
+  SUPPORTED_DEVICES += fonera20n
+endef
+TARGET_DEVICES += fon_fonera-20n
+
+define Device/hame_mpr-a1
+  SOC := rt5350
+  BLOCKSIZE := 4k
+  IMAGE_SIZE := 3776k
+  UIMAGE_NAME:= Linux Kernel Image
+  DEVICE_VENDOR := HAME
+  DEVICE_MODEL := MPR
+  DEVICE_VARIANT := A1
+  DEVICE_PACKAGES := kmod-usb-ohci kmod-usb2
+  SUPPORTED_DEVICES += mpr-a1
+  DEFAULT := n
+endef
+TARGET_DEVICES += hame_mpr-a1
+
+define Device/hame_mpr-a2
+  SOC := rt5350
+  IMAGE_SIZE := 7872k
+  UIMAGE_NAME:= Linux Kernel Image
+  DEVICE_VENDOR := HAME
+  DEVICE_MODEL := MPR
+  DEVICE_VARIANT := A2
+  DEVICE_PACKAGES := kmod-usb-ohci kmod-usb2
+  SUPPORTED_DEVICES += mpr-a2
+endef
+TARGET_DEVICES += hame_mpr-a2
+
+define Device/hauppauge_broadway
+  SOC := rt3052
+  IMAGE_SIZE := 7744k
+  UIMAGE_NAME:= Broadway Kernel Image
+  DEVICE_VENDOR := Hauppauge
+  DEVICE_MODEL := Broadway
+  DEVICE_PACKAGES := kmod-usb-dwc2 kmod-usb-ledtrig-usbport
+  SUPPORTED_DEVICES += broadway
+endef
+TARGET_DEVICES += hauppauge_broadway
+
+define Device/hilink_hlk-rm04
+  SOC := rt5350
+  IMAGE_SIZE := 3776k
+  IMAGES += factory.bin
+  IMAGE/factory.bin := $$(sysupgrade_bin) | check-size | hilink-header
+  DEVICE_VENDOR := Hi-Link
+  DEVICE_MODEL := HLK-RM04
+  SUPPORTED_DEVICES += hlk-rm04
+  DEFAULT := n
+endef
+TARGET_DEVICES += hilink_hlk-rm04
+
+define Device/hootoo_ht-tm02
+  SOC := rt5350
+  IMAGE_SIZE := 7872k
+  DEVICE_VENDOR := HooToo
+  DEVICE_MODEL := HT-TM02
+  DEVICE_PACKAGES := kmod-usb-ohci kmod-usb2 kmod-usb-ledtrig-usbport
+  SUPPORTED_DEVICES += ht-tm02
+  DEFAULT := n
+endef
+TARGET_DEVICES += hootoo_ht-tm02
+
+define Device/huawei_d105
+  SOC := rt3050
+  BLOCKSIZE := 64k
+  IMAGE_SIZE := 3776k
+  DEVICE_VENDOR := Huawei
+  DEVICE_MODEL := D105
+  SUPPORTED_DEVICES += d105
+  DEFAULT := n
+endef
+TARGET_DEVICES += huawei_d105
+
+define Device/huawei_hg255d
+  SOC := rt3052
+  IMAGE_SIZE := 15744k
+  DEVICE_VENDOR := HuaWei
+  DEVICE_MODEL := HG255D
+  SUPPORTED_DEVICES += hg255d
+endef
+TARGET_DEVICES += huawei_hg255d
+
+define Device/intenso_memory2move
+  SOC := rt5350
+  IMAGE_SIZE := 7872k
+  UIMAGE_NAME:= Linux Kernel Image
+  DEVICE_VENDOR := Intenso
+  DEVICE_MODEL := Memory 2 Move
+  DEVICE_PACKAGES := kmod-usb2 kmod-usb-storage kmod-scsi-core kmod-fs-ext4 \
+       kmod-fs-vfat block-mount
+  SUPPORTED_DEVICES += m2m
+endef
+TARGET_DEVICES += intenso_memory2move
+
+define Device/jcg_jhr-n805r
+  SOC := rt3050
+  IMAGE_SIZE := 3776k
+  IMAGES += factory.bin
+  IMAGE/factory.bin := $$(sysupgrade_bin) | check-size | jcg-header 29.24
+  DEVICE_VENDOR := JCG
+  DEVICE_MODEL := JHR-N805R
+  SUPPORTED_DEVICES += jhr-n805r
+  DEFAULT := n
+endef
+TARGET_DEVICES += jcg_jhr-n805r
+
+define Device/jcg_jhr-n825r
+  SOC := rt3052
+  IMAGE_SIZE := 3776k
+  IMAGES += factory.bin
+  IMAGE/factory.bin := $$(sysupgrade_bin) | check-size | jcg-header 23.24
+  DEVICE_VENDOR := JCG
+  DEVICE_MODEL := JHR-N825R
+  SUPPORTED_DEVICES += jhr-n825r
+  DEFAULT := n
+endef
+TARGET_DEVICES += jcg_jhr-n825r
+
+define Device/jcg_jhr-n926r
+  SOC := rt3052
+  IMAGE_SIZE := 3776k
+  IMAGES += factory.bin
+  IMAGE/factory.bin := $$(sysupgrade_bin) | check-size | jcg-header 25.24
+  DEVICE_VENDOR := JCG
+  DEVICE_MODEL := JHR-N926R
+  SUPPORTED_DEVICES += jhr-n926r
+  DEFAULT := n
+endef
+TARGET_DEVICES += jcg_jhr-n926r
+
+define Device/mofinetwork_mofi3500-3gn
+  SOC := rt3052
+  IMAGE_SIZE := 7872k
+  DEVICE_VENDOR := MoFi Network
+  DEVICE_MODEL := MOFI3500-3GN
+  SUPPORTED_DEVICES += mofi3500-3gn
+endef
+TARGET_DEVICES += mofinetwork_mofi3500-3gn
+
+define Device/netcore_nw718
+  SOC := rt3050
+  IMAGE_SIZE := 3712k
+  UIMAGE_NAME:= ARA1B4NCRNW718;1
+  DEVICE_VENDOR := Netcore
+  DEVICE_MODEL := NW718
+  SUPPORTED_DEVICES += nw718
+  DEFAULT := n
+endef
+TARGET_DEVICES += netcore_nw718
+
+define Device/netgear_wnce2001
+  SOC := rt3052
+  IMAGE_SIZE := 3392k
+  IMAGES += factory.bin factory-NA.bin
+  IMAGE/factory.bin := $$(sysupgrade_bin) | check-size | \
+       dap-header -s RT3052-AP-WNCE2001-3 -r WW -v 1.0.0.99
+  IMAGE/factory-NA.bin := $$(sysupgrade_bin) | check-size | \
+       dap-header -s RT3052-AP-WNCE2001-3 -r NA -v 1.0.0.99
+  DEVICE_VENDOR := NETGEAR
+  DEVICE_MODEL := WNCE2001
+  SUPPORTED_DEVICES += wnce2001
+  DEFAULT := n
+endef
+TARGET_DEVICES += netgear_wnce2001
+
+define Device/nexaira_bc2
+  SOC := rt3052
+  IMAGE_SIZE := 7872k
+  DEVICE_VENDOR := NexAira
+  DEVICE_MODEL := BC2
+  SUPPORTED_DEVICES += bc2
+endef
+TARGET_DEVICES += nexaira_bc2
+
+define Device/nexx_wt1520-4m
+  SOC := rt5350
+  IMAGE_SIZE := 3776k
+  IMAGES += factory.bin
+  IMAGE/factory.bin := $$(sysupgrade_bin) | check-size | \
+       poray-header -B WT1520 -F 4M
+  DEVICE_VENDOR := Nexx
+  DEVICE_MODEL := WT1520
+  DEVICE_VARIANT := 4M
+  SUPPORTED_DEVICES += wt1520-4M
+  DEFAULT := n
+endef
+TARGET_DEVICES += nexx_wt1520-4m
+
+define Device/nexx_wt1520-8m
+  SOC := rt5350
+  IMAGE_SIZE := 7872k
+  IMAGES += factory.bin
+  IMAGE/factory.bin := $$(sysupgrade_bin) | check-size | \
+       poray-header -B WT1520 -F 8M
+  DEVICE_VENDOR := Nexx
+  DEVICE_MODEL := WT1520
+  DEVICE_VARIANT := 8M
+  SUPPORTED_DEVICES += wt1520-8M
+endef
+TARGET_DEVICES += nexx_wt1520-8m
+
+define Device/nixcore_x1-16m
+  SOC := rt5350
+  IMAGE_SIZE := 16064k
+  DEVICE_VENDOR := Nixcore
+  DEVICE_MODEL := X1
+  DEVICE_VARIANT := 16M
+  DEVICE_PACKAGES := kmod-usb-ohci kmod-usb2 kmod-i2c-ralink kmod-spi-dev
+  SUPPORTED_DEVICES += nixcore-x1 nixcore-x1-16M
+endef
+TARGET_DEVICES += nixcore_x1-16m
+
+define Device/nixcore_x1-8m
+  SOC := rt5350
+  IMAGE_SIZE := 7872k
+  DEVICE_VENDOR := Nixcore
+  DEVICE_MODEL := X1
+  DEVICE_VARIANT := 8M
+  DEVICE_PACKAGES := kmod-usb-ohci kmod-usb2 kmod-i2c-ralink kmod-spi-dev
+  SUPPORTED_DEVICES += nixcore-x1 nixcore-x1-8M
+endef
+TARGET_DEVICES += nixcore_x1-8m
+
+define Device/olimex_rt5350f-olinuxino
+  $(Device/uimage-lzma-loader)
+  SOC := rt5350
+  IMAGE_SIZE := 7872k
+  DEVICE_VENDOR := OLIMEX
+  DEVICE_MODEL := RT5350F-OLinuXino
+  DEVICE_PACKAGES := kmod-usb-ohci kmod-usb2 kmod-i2c-ralink kmod-spi-dev
+  SUPPORTED_DEVICES += rt5350f-olinuxino
+endef
+TARGET_DEVICES += olimex_rt5350f-olinuxino
+
+define Device/olimex_rt5350f-olinuxino-evb
+  $(Device/uimage-lzma-loader)
+  SOC := rt5350
+  IMAGE_SIZE := 7872k
+  DEVICE_VENDOR := OLIMEX
+  DEVICE_MODEL := RT5350F-OLinuXino-EVB
+  DEVICE_PACKAGES := kmod-usb-ohci kmod-usb2 kmod-i2c-ralink kmod-spi-dev
+  SUPPORTED_DEVICES += rt5350f-olinuxino-evb
+endef
+TARGET_DEVICES += olimex_rt5350f-olinuxino-evb
+
+define Device/omnima_miniembplug
+  SOC := rt5350
+  IMAGE_SIZE := 7872k
+  DEVICE_VENDOR := Omnima
+  DEVICE_MODEL := MiniEMBPlug
+  SUPPORTED_DEVICES += miniembplug
+endef
+TARGET_DEVICES += omnima_miniembplug
+
+define Device/omnima_miniembwifi
+  SOC := rt3052
+  IMAGE_SIZE := 7872k
+  DEVICE_VENDOR := Omnima
+  DEVICE_MODEL := MiniEMBWiFi
+  SUPPORTED_DEVICES += miniembwifi
+endef
+TARGET_DEVICES += omnima_miniembwifi
+
+define Device/petatel_psr-680w
+  SOC := rt3052
+  BLOCKSIZE := 64k
+  IMAGE_SIZE := 3776k
+  DEVICE_VENDOR := Petatel
+  DEVICE_MODEL := PSR-680W Wireless 3G Router
+  SUPPORTED_DEVICES += psr-680w
+  DEFAULT := n
+endef
+TARGET_DEVICES += petatel_psr-680w
+
+define Device/planex_mzk-dp150n
+  SOC := rt5350
+  BLOCKSIZE := 64k
+  IMAGE_SIZE := 3776k
+  DEVICE_VENDOR := Planex
+  DEVICE_MODEL := MZK-DP150N
+  DEVICE_PACKAGES := kmod-spi-dev
+  SUPPORTED_DEVICES += mzk-dp150n
+  DEFAULT := n
+endef
+TARGET_DEVICES += planex_mzk-dp150n
+
+define Device/planex_mzk-w300nh2
+  SOC := rt3052
+  IMAGE_SIZE := 3648k
+  IMAGES += factory.bin
+  IMAGE/factory.bin := $$(sysupgrade_bin) | \
+       edimax-header -s CSYS -m RN52 -f 0x50000 -S 0xc0000
+  DEVICE_VENDOR := Planex
+  DEVICE_MODEL := MZK-W300NH2
+  SUPPORTED_DEVICES += mzk-w300nh2
+  DEFAULT := n
+endef
+TARGET_DEVICES += planex_mzk-w300nh2
+
+define Device/planex_mzk-wdpr
+  SOC := rt3052
+  IMAGE_SIZE := 6656k
+  DEVICE_VENDOR := Planex
+  DEVICE_MODEL := MZK-WDPR
+  SUPPORTED_DEVICES += mzk-wdpr
+endef
+TARGET_DEVICES += planex_mzk-wdpr
+
+define Device/poray_ip2202
+  SOC := rt3052
+  IMAGE_SIZE := 7872k
+  DEVICE_VENDOR := Poray
+  DEVICE_MODEL := IP2202
+  SUPPORTED_DEVICES += ip2202
+endef
+TARGET_DEVICES += poray_ip2202
+
+define Device/poray_m3
+  SOC := rt5350
+  IMAGE_SIZE := 3776k
+  IMAGES += factory.bin
+  IMAGE/factory.bin := $$(sysupgrade_bin) | check-size | \
+       poray-header -B M3 -F 4M
+  DEVICE_VENDOR := Poray
+  DEVICE_MODEL := M3
+  DEVICE_PACKAGES := kmod-usb2
+  SUPPORTED_DEVICES += m3
+  DEFAULT := n
+endef
+TARGET_DEVICES += poray_m3
+
+define Device/poray_m4-4m
+  SOC := rt5350
+  IMAGE_SIZE := 3776k
+  IMAGES += factory.bin
+  IMAGE/factory.bin := $$(sysupgrade_bin) | check-size | \
+       poray-header -B M4 -F 4M
+  DEVICE_VENDOR := Poray
+  DEVICE_MODEL := M4
+  DEVICE_VARIANT := 4M
+  DEVICE_PACKAGES := kmod-usb2
+  SUPPORTED_DEVICES += m4-4M
+  DEFAULT := n
+endef
+TARGET_DEVICES += poray_m4-4m
+
+define Device/poray_m4-8m
+  SOC := rt5350
+  IMAGE_SIZE := 7872k
+  IMAGES += factory.bin
+  IMAGE/factory.bin := $$(sysupgrade_bin) | check-size | \
+       poray-header -B M4 -F 8M
+  DEVICE_VENDOR := Poray
+  DEVICE_MODEL := M4
+  DEVICE_VARIANT := 8M
+  DEVICE_PACKAGES := kmod-usb2
+  SUPPORTED_DEVICES += m4-8M
+endef
+TARGET_DEVICES += poray_m4-8m
+
+define Device/poray_x5
+  SOC := rt5350
+  IMAGE_SIZE := 7872k
+  IMAGES += factory.bin
+  IMAGE/factory.bin := $$(sysupgrade_bin) | check-size | \
+       poray-header -B X5 -F 8M
+  DEVICE_VENDOR := Poray
+  DEVICE_MODEL := X5/X6
+  DEVICE_PACKAGES := kmod-usb2
+  SUPPORTED_DEVICES += x5
+endef
+TARGET_DEVICES += poray_x5
+
+define Device/poray_x8
+  SOC := rt5350
+  IMAGE_SIZE := 7872k
+  IMAGES += factory.bin
+  IMAGE/factory.bin := $$(sysupgrade_bin) | check-size | \
+       poray-header -B X8 -F 8M
+  DEVICE_VENDOR := Poray
+  DEVICE_MODEL := X8
+  DEVICE_PACKAGES := kmod-usb2
+  SUPPORTED_DEVICES += x8
+endef
+TARGET_DEVICES += poray_x8
+
+define Device/prolink_pwh2004
+  SOC := rt3052
+  IMAGE_SIZE := 7872k
+  DEVICE_VENDOR := Prolink
+  DEVICE_MODEL := PWH2004
+  DEVICE_PACKAGES :=
+  SUPPORTED_DEVICES += pwh2004
+endef
+TARGET_DEVICES += prolink_pwh2004
+
+define Device/ralink_v22rw-2x2
+  SOC := rt3052
+  BLOCKSIZE := 64k
+  IMAGE_SIZE := 3776k
+  DEVICE_VENDOR := Ralink
+  DEVICE_MODEL := AP-RT3052-V22RW-2X2
+  SUPPORTED_DEVICES += v22rw-2x2
+  DEFAULT := n
+endef
+TARGET_DEVICES += ralink_v22rw-2x2
+
+define Device/sitecom_wl-351
+  SOC := rt3052
+  BLOCKSIZE := 64k
+  IMAGE_SIZE := 3776k
+  DEVICE_VENDOR := Sitecom
+  DEVICE_MODEL := WL-351 v1
+  DEVICE_PACKAGES := kmod-switch-rtl8366rb
+  SUPPORTED_DEVICES += wl-351
+  DEFAULT := n
+endef
+TARGET_DEVICES += sitecom_wl-351
+
+define Device/skyline_sl-r7205
+  SOC := rt3052
+  BLOCKSIZE := 64k
+  IMAGE_SIZE := 3776k
+  DEVICE_VENDOR := Skyline
+  DEVICE_MODEL := SL-R7205 Wireless 3G Router
+  SUPPORTED_DEVICES += sl-r7205
+  DEFAULT := n
+endef
+TARGET_DEVICES += skyline_sl-r7205
+
+define Device/sparklan_wcr-150gn
+  SOC := rt3050
+  BLOCKSIZE := 64k
+  IMAGE_SIZE := 3776k
+  DEVICE_VENDOR := Sparklan
+  DEVICE_MODEL := WCR-150GN
+  SUPPORTED_DEVICES += wcr-150gn
+  DEFAULT := n
+endef
+TARGET_DEVICES += sparklan_wcr-150gn
+
+define Device/teltonika_rut5xx
+  SOC := rt3050
+  IMAGE_SIZE := 16064k
+  DEVICE_VENDOR := Teltonika
+  DEVICE_MODEL := RUT5XX
+  DEVICE_PACKAGES := om-watchdog
+  SUPPORTED_DEVICES += rut5xx
+endef
+TARGET_DEVICES += teltonika_rut5xx
+
+define Device/tenda_3g150b
+  SOC := rt5350
+  BLOCKSIZE := 4k
+  IMAGE_SIZE := 3776k
+  UIMAGE_NAME:= Linux Kernel Image
+  DEVICE_VENDOR := Tenda
+  DEVICE_MODEL := 3G150B
+  DEVICE_PACKAGES := kmod-usb-dwc2 kmod-usb-ledtrig-usbport
+  SUPPORTED_DEVICES += 3g150b
+  DEFAULT := n
+endef
+TARGET_DEVICES += tenda_3g150b
+
+define Device/tenda_3g300m
+  SOC := rt3052
+  IMAGE_SIZE := 3776k
+  UIMAGE_NAME := 3G150M_SPI Kernel Image
+  DEVICE_VENDOR := Tenda
+  DEVICE_MODEL := 3G300M
+  DEVICE_PACKAGES := kmod-usb-dwc2 kmod-usb-ledtrig-usbport
+  SUPPORTED_DEVICES += 3g300m
+  DEFAULT := n
+endef
+TARGET_DEVICES += tenda_3g300m
+
+define Device/tenda_w150m
+  SOC := rt3050
+  IMAGE_SIZE := 3776k
+  UIMAGE_NAME:= W150M Kernel Image
+  DEVICE_VENDOR := Tenda
+  DEVICE_MODEL := W150M
+  SUPPORTED_DEVICES += w150m
+  DEFAULT := n
+endef
+TARGET_DEVICES += tenda_w150m
+
+define Device/tenda_w306r-v2
+  SOC := rt3052
+  IMAGE_SIZE := 3776k
+  UIMAGE_NAME:= linkn Kernel Image
+  DEVICE_VENDOR := Tenda
+  DEVICE_MODEL := W306R
+  DEVICE_VARIANT := V2.0
+  SUPPORTED_DEVICES += w306r-v20
+  DEFAULT := n
+endef
+TARGET_DEVICES += tenda_w306r-v2
+
+define Device/trendnet_tew-638apb-v2
+  SOC := rt3050
+  BLOCKSIZE := 64k
+  IMAGE_SIZE := 3776k
+  IMAGE/sysupgrade.bin := $$(sysupgrade_bin) | umedia-header 0x026382 | \
+       append-metadata | check-size
+  DEVICE_VENDOR := TRENDnet
+  DEVICE_MODEL := TEW-638APB
+  DEVICE_VARIANT := v2
+  SUPPORTED_DEVICES += tew-638apb-v2
+  DEFAULT := n
+endef
+TARGET_DEVICES += trendnet_tew-638apb-v2
+
+define Device/trendnet_tew-714tru
+  SOC := rt5350
+  IMAGE_SIZE := 7872k
+  DEVICE_VENDOR := TRENDnet
+  DEVICE_MODEL := TEW-714TRU
+  SUPPORTED_DEVICES += tew-714tru
+endef
+TARGET_DEVICES += trendnet_tew-714tru
+
+define Device/unbranded_a5-v11
+  SOC := rt5350
+  IMAGE_SIZE := 3776k
+  IMAGES += factory.bin
+  IMAGE/factory.bin := $$(sysupgrade_bin) | check-size | \
+       poray-header -B A5-V11 -F 4M
+  DEVICE_VENDOR :=
+  DEVICE_MODEL := A5-V11
+  DEVICE_PACKAGES := kmod-usb-ohci kmod-usb2
+  SUPPORTED_DEVICES += a5-v11
+  DEFAULT := n
+endef
+TARGET_DEVICES += unbranded_a5-v11
+
+define Device/unbranded_wr512-3gn-4m
+  SOC := rt3052
+  IMAGE_SIZE := 3776k
+  DEVICE_VENDOR := Ralink
+  DEVICE_MODEL := WR512-3GN
+  DEVICE_VARIANT := 4M
+  SUPPORTED_DEVICES += wr512-3gn-4M
+  DEFAULT := n
+endef
+TARGET_DEVICES += unbranded_wr512-3gn-4m
 
-# sign an image to make it work with edimax tftp recovery
-define BuildFirmware/Edimax/squashfs
-       $(call BuildFirmware/OF,$(1),$(2),$(3),$(4))
-       if [ -e "$(call sysupname,$(1),$(2))" ]; then \
-               mkedimaximg -i $(call sysupname,$(1),$(2)) \
-                       -o $(call imgname,$(1),$(2))-factory.bin \
-                       -s $(5) -m $(6) -f $(7) -S $(8); \
-       fi
-endef
-BuildFirmware/Edimax/initramfs=$(call BuildFirmware/OF/initramfs,$(1),$(2),$(3))
-
-# Sign Poray images
-define BuildFirmware/Poray4M/squashfs
-       $(call BuildFirmware/Default4M/$(1),$(1),$(2),$(3))
-       if [ -e "$(call sysupname,$(1),$(2))" ]; then \
-               mkporayfw -B $(3) -F 4M \
-                       -f $(call sysupname,$(1),$(2)) \
-                       -o $(call imgname,$(1),$(2))-factory.bin; \
-       fi
-endef
-BuildFirmware/Poray4M/initramfs=$(call BuildFirmware/OF/initramfs,$(1),$(2),$(3))
-
-define BuildFirmware/Poray8M/squashfs
-       $(call BuildFirmware/Default8M/$(1),$(1),$(2),$(3))
-       if [ -e "$(call sysupname,$(1),$(2))" ]; then \
-               mkporayfw -B $(3) -F 8M \
-                       -f $(call sysupname,$(1),$(2)) \
-                       -o $(call imgname,$(1),$(2))-factory.bin; \
-       fi
-endef
-BuildFirmware/Poray8M/initramfs=$(call BuildFirmware/OF/initramfs,$(1),$(2),$(3))
-
-asl26555_8mb_mtd_size=7929856
-asl26555_16mb_mtd_size=16252928
-define BuildFirmware/ASL26555/squashfs
-       $(call BuildFirmware/CustomFlash/$(1),$(1),$(2)-8M,$(3)-8M,$(asl26555_8mb_mtd_size))
-       $(call BuildFirmware/CustomFlash/$(1),$(1),$(2)-16M,$(3)-16M,$(asl26555_16mb_mtd_size))
-endef
-define BuildFirmware/ASL26555/initramfs
-       $(call BuildFirmware/OF/initramfs,$(1),$(2)-8M,$(3)-8M)
-       $(call BuildFirmware/OF/initramfs,$(1),$(2)-16M,$(3)-16M)
-endef
-
-define BuildFirmware/JCG/squashfs
-       $(call BuildFirmware/Default4M/$(1),$(1),$(2),$(3))
-       -jcgimage -o $(call imgname,$(1),$(2))-factory.bin \
-               -u $(call sysupname,$(1),$(2)) -v $(4)
-endef
-
-define BuildFirmware/DIR300B1/squashfs
-       $(call BuildFirmware/Default4M/$(1),$(1),$(2),$(3))
-       -mkwrgimg -s $(4) -d /dev/mtdblock/2 \
-               -i $(call sysupname,$(1),$(2)) \
-               -o $(call imgname,$(1),$(2))-factory.bin
-endef
-BuildFirmware/DIR300B1/initramfs=$(call BuildFirmware/OF/initramfs,$(1),$(2),$(3))
-
-define BuildFirmware/DIR615H1/squashfs
-       $(call BuildFirmware/Default4M/$(1),$(1),dir-615-h1,DIR-615-H1)
-       -mksenaofw -e $(call sysupname,$(1),dir-615-h1) \
-               -o $(call imgname,$(1),dir-615-h1)-factory.bin \
-               -r 0x218 -p 0x30 -t 3
-endef
-BuildFirmware/DIR615H1/initramfs=$(call BuildFirmware/OF/initramfs,$(1),dir-615-h1,DIR-615-H1)
-
-# sign dap 1350 based images
-dap1350_mtd_size=7667712
-define BuildFirmware/dap1350/squashfs
-       $(call BuildFirmware/CustomFlash/$(1),$(1),$(2),$(3),$(dap1350_mtd_size))
-       -mkdapimg -s $(4) \
-               -i $(call sysupname,$(1),$(2)) \
-               -o $(call imgname,$(1),$(2))-factory.bin
-endef
-BuildFirmware/dap1350/initramfs=$(call BuildFirmware/OF/initramfs,$(1),$(2),$(3))
-
-define BuildFirmware/DCS930/squashfs
-       $(call BuildFirmware/Default4M/squashfs,squashfs,$(2),$(3))
-       dd if=$(KDIR)/vmlinux-$(2).bin.lzma of=$(KDIR)/image.$(2).combined bs=1048512 count=1 conv=sync
-       cat $(KDIR)/root.squashfs >> $(KDIR)/image.$(2).combined
-       $(call MkImage,lzma,$(KDIR)/image.$(2).combined,$(KDIR)/image.$(2))
-       $(call prepare_generic_squashfs,$(KDIR)/image.$(2))
-       if [ `stat -c%s "$(KDIR)/image.$(2)"` -gt $(ralink_default_fw_size_4M) ]; then \
-               echo "Warning: $(KDIR)/image.$(2)  is too big" >&2; \
-       else \
-               dd if=$(KDIR)/image.$(2) of=$(KDIR)/dcs.tmp bs=64K count=5 conv=sync ;\
-               cat $(KDIR)/image.$(2) >> $(KDIR)/dcs.tmp ; \
-               dd if=$(KDIR)/dcs.tmp of=$(call imgname,$(1),$(2))-factory.bin bs=4096k count=1 conv=sync ;\
-               $(STAGING_DIR_HOST)/bin/mkdcs932 $(call imgname,$(1),$(2))-factory.bin ; \
-       fi
-endef
-BuildFirmware/DCS930/initramfs=$(call BuildFirmware/OF/initramfs,$(1),$(2),$(3))
-
-BuildFirmware/HLKRM04/squashfs=$(call BuildFirmware/Default4M/squashfs,$(1),$(2),$(3),$(4))
-define BuildFirmware/HLKRM04/initramfs
-       $(call BuildFirmware/OF/initramfs,$(1),$(2),$(3),$(4))
-       mkhilinkfw -e -i$(call imgname,$(1),$(2))-uImage.bin -o $(call imgname,$(1),$(2))-factory.bin;
-endef
-
-nixcore_8mb_mtd_size=8060928
-nixcore_16mb_mtd_size=16449536
-define BuildFirmware/NIXCORE/squashfs
-       $(call BuildFirmware/CustomFlash/$(1),$(1),$(2)-8M,$(3)-8M,$(nixcore_8mb_mtd_size))
-       $(call BuildFirmware/CustomFlash/$(1),$(1),$(2)-16M,$(3)-16M,$(nixcore_16mb_mtd_size))
-endef
-define BuildFirmware/NIXCORE/initramfs
-       $(call BuildFirmware/OF/initramfs,$(1),$(2)-8M,$(3)-8M)
-       $(call BuildFirmware/OF/initramfs,$(1),$(2)-16M,$(3)-16M)
-endef
-
-vocore_8mb_mtd_size=8060928
-vocore_16mb_mtd_size=16449536
-define BuildFirmware/VOCORE/squashfs
-       $(call BuildFirmware/CustomFlash/$(1),$(1),$(2)-8M,$(3)-8M,$(vocore_8mb_mtd_size))
-       $(call BuildFirmware/CustomFlash/$(1),$(1),$(2)-16M,$(3)-16M,$(vocore_16mb_mtd_size))
-endef
-define BuildFirmware/VOCORE/initramfs
-       $(call BuildFirmware/OF/initramfs,$(1),$(2)-8M,$(3)-8M)
-       $(call BuildFirmware/OF/initramfs,$(1),$(2)-16M,$(3)-16M)
-endef
-
-# sign Buffalo images
-define BuildFirmware/Buffalo
-       if [ -e "$(call sysupname,$(1),$(2))" ]; then \
-               buffalo-enc -p $(3) -v 1.76 \
-                       -i $(KDIR)/vmlinux-$(2).uImage \
-                       -o $(KDIR)/vmlinux-$(2).uImage.enc; \
-               buffalo-enc -p $(3) -v 1.76 \
-                       -i $(KDIR)/root.$(1) \
-                       -o $(KDIR)/root.$(2).enc; \
-               buffalo-tag -b $(3) -p $(3) -a ram -v 1.76 -m 1.01 \
-                       -l mlang8 -f 1 -r EU \
-                       -i $(KDIR)/vmlinux-$(2).uImage.enc \
-                       -i $(KDIR)/root.$(2).enc \
-                       -o $(call imgname,$(1),$(2))-factory-EU.bin; \
-       fi
-endef
-
-# FIXME: this looks broken
-buffalo_whrg300n_mtd_size=3801088
-define BuildFirmware/WHRG300N/squashfs
-       $(call BuildFirmware/Default4M/$(1),$(1),whr-g300n,WHR-G300N)
-       # the following line has a bad argument 3 ... the old Makefile was already broken       
-       $(call BuildFirmware/Buffalo,$(1),whr-g300n,whr-g300n)
-       if [ -e "$(call sysupname,$(1),$(2))" ]; then \
-               ( \
-                       echo -n -e "# Airstation FirmWare\nrun u_fw\nreset\n\n" | \
-                               dd bs=512 count=1 conv=sync; \
-                       dd if=$(call sysupname,$(1),whr-g300n); \
-               ) > $(KDIR)/whr-g300n-tftp.tmp && \
-               buffalo-tftp -i $(KDIR)/whr-g300n-tftp.tmp \
-                       -o $(call imgname,$(1),whr-g300n)-tftp.bin; \
-       fi
-endef
-BuildFirmware/WHRG300N/initramfs=$(call BuildFirmware/OF/initramfs,$(1),whr-g300n,WHR-G300N)
-
-kernel_size_wl341v3=917504
-rootfs_size_wl341v3=2949120
-define BuildFirmware/WL-341V3/squashfs
-       $(call BuildFirmware/Default4M/$(1),$(1),wl-341v3,WL-341V3)
-       # This code looks broken and really needs to be converted to C
-       if [ -e "$(call sysupname,$(1),$(2))" ]; then \
-               ( \
-                       dd if=/dev/zero bs=195936 count=1; \
-                       echo "1.01"; \
-                       dd if=/dev/zero bs=581 count=1; \
-                       echo -n -e "\x73\x45\x72\x43\x6F\x4D\x6D\x00\x01\x00\x00\x59\x4E\x37\x95\x58\x10\x00\x20\x00\x28\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x11\x03\x00\x00\x80\x00\x00\x00\x00\x03\x00\x00\x10\x12\x00\x00\x00\x10\x73\x45\x72\x43\x6F\x4D\x6D"; \
-                       dd if=/dev/zero bs=65552 count=1; \
-                       dd if=$(KDIR)/vmlinux-$(2).uImage bs=$(kernel_size_wl341v3) conv=sync; \
-                       dd if=$(KDIR)/root.$(1) bs=64k conv=sync; \
-                       dd if=/dev/zero bs=`expr 4194304 - 262144 - 16 - $(kernel_size_wl341v3) - \( \( \( \`stat -c%s $(KDIR)/root.$(1)\` / 65536 \) + 1 \) \* 65536 \)` count=1; \
-                       echo -n -e "\x11\x03\x80\x00\x10\x12\x90\xF7\x65\x52\x63\x4F\x6D\x4D\x00\x00"; \
-               ) > $(call imgname,$(1),$(2))-factory.bin; \
-       fi
-endef
-BuildFirmware/WL-341V3/initramfs=$(call BuildFirmware/OF/initramfs,$(1),wl-341v3,WL-341V3)
-
-define BuildFirmware/WNCE2001/squashfs
-       $(call BuildFirmware/Default4M/$(1),$(1),$(2),$(3))
-       -mkdapimg -s RT3052-AP-WNCE2001-3 -r WW -v 1.0.0.99 \
-               -i $(call sysupname,$(1),$(2)) \
-               -o $(call imgname,$(1),$(2))-factory-worldwide.bin
-       -mkdapimg -s RT3052-AP-WNCE2001-3 -r NA -v 1.0.0.99 \
-               -i $(call sysupname,$(1),$(2)) \
-               -o $(call imgname,$(1),$(2))-factory-northamerica.bin
-endef
-BuildFirmware/WNCE2001/initramfs=$(call BuildFirmware/OF/initramfs,$(1),$(2),$(3))
-
-
-
-define BuildFirmware/UIMAGE_8M
-       $(call MkCombineduImage,$(1),$(2),$(call mkcmdline,$(3),$(4),$(5)) $(call mkmtd/$(6),$(mtdlayout_8M)),$(kernel_size_8M),$(rootfs_size_8M),$(7))
-endef
-define Image/Build/Profile/ALL02393G
-       $(call Image/Build/Template/$(image_type)/$(1),UIMAGE_8M,all0239-3g,ALL0239-3G,ttyS1,57600,phys)
-endef
-
-
-Image/Build/Profile/DIR610A1=$(call BuildFirmware/Seama/$(1),$(1),dir-610-a1,DIR-610-A1,wrgn59_dlob.hans_dir610,$(ralink_default_fw_size_4M))
-edimax_3g6200n_mtd_size=3735552
-Image/Build/Profile/3G6200N=$(call BuildFirmware/Edimax/$(1),$(1),3g-6200n,3G-6200N,$(edimax_3g6200n_mtd_size),CSYS,3G62,0x50000,0xc0000)
-Image/Build/Profile/3G6200NL=$(call BuildFirmware/Edimax/$(1),$(1),3g-6200nl,3G-6200NL,$(edimax_3g6200n_mtd_size),CSYS,3G62,0x50000,0xc0000)
-Image/Build/Profile/3G300M=$(call BuildFirmware/CustomFlashFactory/$(1),$(1),3g300m,3G300M,$(ralink_default_fw_size_4M),3G150M_SPI Kernel Image,factory)
-Image/Build/Profile/A5-V11=$(call BuildFirmware/Poray4M/$(1),$(1),a5-v11,A5-V11)
-Image/Build/Profile/AIR3GII=$(call BuildFirmware/Default4M/$(1),$(1),air3gii,AIR3GII)
-Image/Build/Profile/ALL0256N=$(call BuildFirmware/DefaultDualSize/$(1),$(1),all0256n,ALL0256N)
-allnet_all5002_mtd_size=33226752
-Image/Build/Profile/ALL5002=$(call BuildFirmware/CustomFlash/$(1),$(1),all5002,ALL5002,$(allnet_all5002_mtd_size))
-Image/Build/Profile/ALL5003=$(call BuildFirmware/CustomFlash/$(1),$(1),all5003,ALL5003,$(allnet_all5002_mtd_size))
-argus_atp52b_mtd_size=7995392
-Image/Build/Profile/ATP-52B=$(call BuildFirmware/CustomFlash/$(1),$(1),atp-52b,ATP-52B,$(argus_atp52b_mtd_size))
-Image/Build/Profile/ASL26555=$(call BuildFirmware/ASL26555/$(1),$(1),asl26555,ASL26555)
-Image/Build/Profile/AWM002EVB=$(call BuildFirmware/DefaultDualSize/$(1),$(1),awm002-evb,AWM002-EVB)
-Image/Build/Profile/AWM003EVB=$(call BuildFirmware/Default8M/$(1),$(1),awm003-evb,AWM003-EVB)
-Image/Build/Profile/AWAPN2403=$(call BuildFirmware/Default4M/$(1),$(1),awmapn2403,AWAPN2403)
-Image/Build/Profile/BC2=$(call BuildFirmware/Default8M/$(1),$(1),bc2,BC2)
-broadway_mtd_size=7929856
-Image/Build/Profile/BROADWAY=$(call BuildFirmware/CustomFlashFactory/$(1),$(1),broadway,BROADWAY,$(broadway_mtd_size),Broadway Kernel Image,factory)
-Image/Build/Profile/CARAMBOLA=$(call BuildFirmware/Default8M/$(1),$(1),carambola,CARAMBOLA)
-Image/Build/Profile/D105=$(call BuildFirmware/Default4M/$(1),$(1),d105,D105)
-Image/Build/Profile/JHR-N805R=$(call BuildFirmware/JCG/$(1),$(1),jhr-n805r,JHR-N805R,29.24)
-Image/Build/Profile/JHR-N825R=$(call BuildFirmware/JCG/$(1),$(1),jhr-n825r,JHR-N825R,23.24)
-Image/Build/Profile/JHR-N926R=$(call BuildFirmware/JCG/$(1),$(1),jhr-n926r,JHR-N926R,25.24)
-define Image/Build/Profile/JCG
-       $(call Image/Build/Profile/JHR-N805R,$(1))
-       $(call Image/Build/Profile/JHR-N825R,$(1))
-       $(call Image/Build/Profile/JHR-N926R,$(1))
-endef
-Image/Build/Profile/DIR-300-B1=$(call BuildFirmware/DIR300B1/$(1),$(1),dir-300-b1,DIR-300-B1,wrgn23_dlwbr_dir300b)
-Image/Build/Profile/DIR-600-B1=$(call BuildFirmware/DIR300B1/$(1),$(1),dir-600-b1,DIR-600-B1,wrgn23_dlwbr_dir600b)
-Image/Build/Profile/DIR-600-B2=$(call BuildFirmware/DIR300B1/$(1),$(1),dir-600-b2,DIR-600-B2,wrgn23_dlwbr_dir600b)
-Image/Build/Profile/DIR-615-D=$(call BuildFirmware/DIR300B1/$(1),$(1),dir-615-d,DIR-615-D,wrgn23_dlwbr_dir615d)
-Image/Build/Profile/DIR-620-A1=$(call BuildFirmware/Default8M/$(1),$(1),dir-620-a1,DIR-620-A1)
-Image/Build/Profile/DIR-620-D1=$(call BuildFirmware/Default8M/$(1),$(1),dir-620-d1,DIR-620-D1)
-Image/Build/Profile/DIR615H1=$(call BuildFirmware/DIR615H1/$(1),$(1))
-Image/Build/Profile/DAP1350=$(call BuildFirmware/dap1350/$(1),$(1),dap-1350,DAP-1350,RT3052-AP-DAP1350-3)
-Image/Build/Profile/DAP1350WW=$(call BuildFirmware/dap1350/$(1),$(1),dap-1350WW,DAP-1350,RT3052-AP-DAP1350WW-3)
-Image/Build/Profile/DCS930=$(call BuildFirmware/DCS930/$(1),$(1),dcs-930,DCS-930)
-Image/Build/Profile/DCS930LB1=$(call BuildFirmware/DCS930/$(1),$(1),dcs-930l-b1,DCS-930L-B1)
-Image/Build/Profile/ESR-9753=$(call BuildFirmware/Default4M/$(1),$(1),esr-9753,ESR-9753)
-Image/Build/Profile/HW550-3G=$(call BuildFirmware/Default8M/$(1),$(1),hw550-3g,HW550-3G)
-belkin_f5d8235v2_mtd_size=7929856
-Image/Build/Profile/F5D8235V2=$(call BuildFirmware/CustomFlash/$(1),$(1),f5d8235v2,F5D8235_V2,$(belkin_f5d8235v2_mtd_size))
-# 0x770000
-belkin_f7c027_mtd_size=7798784
-Image/Build/Profile/F7C027=$(call BuildFirmware/CustomFlash/$(1),$(1),f7c027,F7C027,$(belkin_f7c027_mtd_size))
-Image/Build/Profile/FONERA20N=$(call BuildFirmware/Edimax/$(1),$(1),fonera20n,FONERA20N,$(ralink_default_fw_size_8M),RSDK,NL1T,0x50000,0xc0000)
-Image/Build/Profile/RT-N13U=$(call BuildFirmware/Default8M/$(1),$(1),rt-n13u,RT-N13U)
-#Image/Build/Profile/HG255D=$(call BuildFirmware/Default16M/$(1),$(1),hg255d,HG255D)
-Image/Build/Profile/FREESTATION5=$(call BuildFirmware/Default8M/$(1),$(1),freestation5,FREESTATION5)
-Image/Build/Profile/IP2202=$(call BuildFirmware/Default8M/$(1),$(1),ip2202,IP2202)
-Image/Build/Profile/HLKRM04=$(call BuildFirmware/HLKRM04/$(1),$(1),hlk-rm04,HLKRM04,HLK-RM04)
-Image/Build/Profile/HT-TM02=$(call BuildFirmware/Default8M/$(1),$(1),ht-tm02,HT-TM02)
-Image/Build/Profile/M3=$(call BuildFirmware/Poray4M/$(1),$(1),m3,M3)
-Image/Build/Profile/M4=$(call BuildFirmware/PorayDualSize/$(1),$(1),m4,M4)
-Image/Build/Profile/MOFI3500-3GN=$(call BuildFirmware/Default8M/$(1),$(1),mofi3500-3gn,MOFI3500-3GN)
-# Kernel name should be "Linux Kernel Image" to make the OpenWrt image installable from factory Web UI
-Image/Build/Profile/3G150B=$(call BuildFirmware/Default4M/$(1),$(1),3g150b,3G150B,Linux Kernel Image)
-Image/Build/Profile/MR102N=$(call BuildFirmware/Default8M/$(1),$(1),mr-102n,MR-102N)
-Image/Build/Profile/MPRA1=$(call BuildFirmware/Default4M/$(1),$(1),mpr-a1,MPRA1,Linux Kernel Image)
-Image/Build/Profile/MPRA2=$(call BuildFirmware/Default8M/$(1),$(1),mpr-a2,MPRA2,Linux Kernel Image)
-Image/Build/Profile/DIR-300-B7=$(call BuildFirmware/Default4M/$(1),$(1),dir-300-b7,DIR-300-B7)
-Image/Build/Profile/DIR-320-B1=$(call BuildFirmware/Default8M/$(1),$(1),dir-320-b1,DIR-320-B1)
-Image/Build/Profile/NBG-419N=$(call BuildFirmware/Default4M/$(1),$(1),nbg-419n,NBG-419N)
-Image/Build/Profile/MZKW300NH2=$(call BuildFirmware/Edimax/$(1),$(1),mzk-w300nh2,MZK-W300NH2,$(mzkw300nh2_mtd_size),CSYS,RN52,0x50000,0xc0000)
-Image/Build/Profile/MZKWDPR=$(call BuildFirmware/Default8M/$(1),$(1),mzk-wdpr,MZK-WDPR)
-Image/Build/Profile/NCS601W=$(call BuildFirmware/Default8M/$(1),$(1),ncs601W,NCS601W)
-nw718_mtd_size=3801088
-Image/Build/Profile/NIXCORE=$(call BuildFirmware/NIXCORE/$(1),$(1),nixcore,NIXCORE)
-Image/Build/Profile/NW718=$(call BuildFirmware/CustomFlashFactory/$(1),$(1),nw718m,NW718,$(nw718_mtd_size),ARA1B4NCRNW718;1,factory)
-Image/Build/Profile/M2M=$(call BuildFirmware/Default8M/$(1),$(1),m2m,M2M,Linux Kernel Image)
-Image/Build/Profile/MINIEMBPLUG=$(call BuildFirmware/Default8M/$(1),$(1),miniembplug,MINIEMBPLUG)
-Image/Build/Profile/MINIEMBWIFI=$(call BuildFirmware/Default8M/$(1),$(1),miniembwifi,MINIEMBWIFI)
-Image/Build/Profile/PSR-680W=$(call BuildFirmware/Default4M/$(1),$(1),psr-680w,PSR-680W)
-Image/Build/Profile/PWH2004=$(call BuildFirmware/Default8M/$(1),$(1),pwh2004,PWH2004)
-Image/Build/Profile/PX-4885=$(call BuildFirmware/DefaultDualSize/$(1),$(1),px-4885,PX-4885)
-Image/Build/Profile/RT5350F-OLINUXINO=$(call BuildFirmware/Default8M/$(1),$(1),rt5350f-olinuxino,RT5350F-OLINUXINO)
-Image/Build/Profile/RT5350F-OLINUXINO-EVB=$(call BuildFirmware/Default8M/$(1),$(1),rt5350f-olinuxino-evb,RT5350F-OLINUXINO-EVB)
-Image/Build/Profile/RTG32B1=$(call BuildFirmware/Default4M/$(1),$(1),rt-g32-b1,RT-G32-B1)
-Image/Build/Profile/RTN10PLUS=$(call BuildFirmware/Default4M/$(1),$(1),rt-n10-plus,RT-N10-PLUS)
-Image/Build/Profile/RUT5XX=$(call BuildFirmware/Default8M/$(1),$(1),rut5xx,RUT5XX)
-Image/Build/Profile/SL-R7205=$(call BuildFirmware/Default4M/$(1),$(1),sl-r7205,SL-R7205)
-Image/Build/Profile/V22RW-2X2=$(call BuildFirmware/Default4M/$(1),$(1),v22rw-2x2,V22RW-2X2)
-Image/Build/Profile/VOCORE=$(call BuildFirmware/VOCORE/$(1),$(1),vocore,VOCORE)
-Image/Build/Profile/W150M=$(call BuildFirmware/CustomFlashFactory/$(1),$(1),w150m,W150M,$(ralink_default_fw_size_4M),W150M Kernel Image,factory)
-Image/Build/Profile/W306R_V20=$(call BuildFirmware/CustomFlashFactory/$(1),$(1),w306r-v20,W306R_V20,$(ralink_default_fw_size_4M),linkn Kernel Image,factory)
-Image/Build/Profile/W502U=$(call BuildFirmware/Default8M/$(1),$(1),w502u,W502U)
-Image/Build/Profile/WCR150GN=$(call BuildFirmware/Default4M/$(1),$(1),wcr150gn,WCR150GN)
-Image/Build/Profile/MZK-DP150N=$(call BuildFirmware/Default4M/$(1),$(1),mzk-dp150n,MZK-DP150N)
-Image/Build/Profile/WHRG300N=$(call BuildFirmware/WHRG300N/$(1),$(1))
-Image/Build/Profile/WIZARD8800=$(call BuildFirmware/Default8M/$(1),$(1),wizard-8800,WIZARD8800,Linux Kernel Image)
-Image/Build/Profile/WIZFI630A=$(call BuildFirmware/Default16M/$(1),$(1),wizfi630a,WIZFI630A)
-Image/Build/Profile/WL-330N=$(call BuildFirmware/Default4M/$(1),$(1),wl-330n,WL-330N)
-Image/Build/Profile/WL-330N3G=$(call BuildFirmware/Default4M/$(1),$(1),wl-330n3g,WL-330N3G)
-Image/Build/Profile/WL-341V3=$(call BuildFirmware/WL-341V3/$(1),$(1))
-Image/Build/Profile/WL-351=$(call BuildFirmware/Default4M/$(1),$(1),wl-351,WL-351)
-Image/Build/Profile/WNCE2001=$(call BuildFirmware/WNCE2001/$(1),$(1),wnce2001,WNCE2001)
-Image/Build/Profile/WR512-3GN=$(call BuildFirmware/DefaultDualSize/$(1),$(1),wr512-3ng,WR512-3GN)
-Image/Build/Profile/WT1520=$(call BuildFirmware/PorayDualSize/$(1),$(1),wt1520,WT1520)
-Image/Build/Profile/UR-326N4G=$(call BuildFirmware/Default4M/$(1),$(1),ur-326n4g,UR-326N4G)
-Image/Build/Profile/UR-336UN=$(call BuildFirmware/Default8M/$(1),$(1),ur-336un,UR-336UN)
-Image/Build/Profile/WR6202=$(call BuildFirmware/Default8M/$(1),$(1),wr6202,WR6202)
-Image/Build/Profile/X5=$(call BuildFirmware/Poray8M/$(1),$(1),x5,X5)
-Image/Build/Profile/X8=$(call BuildFirmware/Poray8M/$(1),$(1),x8,X8)
-Image/Build/Profile/XDXRN502J=$(call BuildFirmware/Default4M/$(1),$(1),xdxrn502j,XDXRN502J)
-
-
-define Image/Build/Profile/Default
-       $(call Image/Build/Profile/3G6200N,$(1))
-       $(call Image/Build/Profile/3G6200NL,$(1))
-       $(call Image/Build/Profile/3G150B,$(1))
-       $(call Image/Build/Profile/3G300M,$(1))
-       $(call Image/Build/Profile/A5-V11,$(1))
-       $(call Image/Build/Profile/AIR3GII,$(1))
-       $(call Image/Build/Profile/ALL02393G,$(1))
-       $(call Image/Build/Profile/ALL0256N,$(1))
-       $(call Image/Build/Profile/ALL5002,$(1))
-       $(call Image/Build/Profile/ALL5003,$(1))
-       $(call Image/Build/Profile/ASL26555,$(1))
-       $(call Image/Build/Profile/ATP-52B,$(1))
-       $(call Image/Build/Profile/AWM002EVB,$(1))
-       $(call Image/Build/Profile/AWAPN2403,$(1))
-       $(call Image/Build/Profile/BC2,$(1))
-       $(call Image/Build/Profile/BROADWAY,$(1))
-       $(call Image/Build/Profile/CARAMBOLA,$(1))
-       $(call Image/Build/Profile/D105,$(1))
-       $(call Image/Build/Profile/DIR-300-B1,$(1))
-       $(call Image/Build/Profile/DIR-600-B1,$(1))
-       $(call Image/Build/Profile/DIR-300-B7,$(1))
-       $(call Image/Build/Profile/DIR-320-B1,$(1))
-       $(call Image/Build/Profile/DIR-600-B2,$(1))
-       $(call Image/Build/Profile/DIR610A1,$(1))
-       $(call Image/Build/Profile/DIR-615-D,$(1))
-       $(call Image/Build/Profile/DIR-620-A1,$(1))
-       $(call Image/Build/Profile/DIR-620-D1,$(1))
-       $(call Image/Build/Profile/DIR615H1,$(1))
-       $(call Image/Build/Profile/DAP1350,$(1))
-       $(call Image/Build/Profile/DAP1350WW,$(1))
-       $(call Image/Build/Profile/DCS930,$(1))
-       $(call Image/Build/Profile/DCS930LB1,$(1))
-       $(call Image/Build/Profile/ESR-9753,$(1))
-       $(call Image/Build/Profile/F7C027,$(1))
-       $(call Image/Build/Profile/F5D8235V2,$(1))
-       $(call Image/Build/Profile/FONERA20N,$(1))
-       $(call Image/Build/Profile/FREESTATION5,$(1))
-#      $(call Image/Build/Profile/HG255D,$(1))
-       $(call Image/Build/Profile/HLKRM04,$(1))
-       $(call Image/Build/Profile/HT-TM02,$(1))
-       $(call Image/Build/Profile/HW550-3G,$(1))
-       $(call Image/Build/Profile/IP2202,$(1))
-       $(call Image/Build/Profile/JHR-N805R,$(1))
-       $(call Image/Build/Profile/JHR-N825R,$(1))
-       $(call Image/Build/Profile/JHR-N926R,$(1))
-       $(call Image/Build/Profile/M2M,$(1))
-       $(call Image/Build/Profile/M3,$(1))
-       $(call Image/Build/Profile/M4,$(1))
-       $(call Image/Build/Profile/MOFI3500-3GN,$(1))
-       $(call Image/Build/Profile/MR102N,$(1))
-       $(call Image/Build/Profile/MPRA1,$(1))
-       $(call Image/Build/Profile/MPRA2,$(1))
-       $(call Image/Build/Profile/MZKW300NH2,$(1))
-       $(call Image/Build/Profile/MZKWDPR,$(1))
-       $(call Image/Build/Profile/NBG-419N,$(1))
-       $(call Image/Build/Profile/NCS601W,$(1))
-       $(call Image/Build/Profile/NIXCORE,$(1))
-       $(call Image/Build/Profile/NW718,$(1))
-       $(call Image/Build/Profile/MINIEMBWIFI,$(1))
-       $(call Image/Build/Profile/MINIEMBPLUG,$(1))
-       $(call Image/Build/Profile/PSR-680W,$(1))
-       $(call Image/Build/Profile/PWH2004,$(1))
-       $(call Image/Build/Profile/PX-4885,$(1))
-       $(call Image/Build/Profile/RT5350F-OLINUXINO,$(1))
-       $(call Image/Build/Profile/RT5350F-OLINUXINO-EVB,$(1))
-       $(call Image/Build/Profile/RTG32B1,$(1))
-       $(call Image/Build/Profile/RTN10PLUS,$(1))
-       $(call Image/Build/Profile/RT-N13U,$(1))
-       $(call Image/Build/Profile/RUT5XX,$(1))
-       $(call Image/Build/Profile/SL-R7205,$(1))
-       $(call Image/Build/Profile/UR-326N4G,$(1))
-       $(call Image/Build/Profile/V22RW-2X2,$(1))
-       $(call Image/Build/Profile/VOCORE,$(1))
-       $(call Image/Build/Profile/W150M,$(1))
-       $(call Image/Build/Profile/W306R_V20,$(1))
-       $(call Image/Build/Profile/W502U,$(1))
-       $(call Image/Build/Profile/WCR150GN,$(1))
-       $(call Image/Build/Profile/WHRG300N,$(1))
-       $(call Image/Build/Profile/WIZARD8800,$(1))
-       $(call Image/Build/Profile/WIZFI630A,$(1))
-       $(call Image/Build/Profile/WL-330N,$(1))
-       $(call Image/Build/Profile/WL-330N3G,$(1))
-       $(call Image/Build/Profile/WL-341V3,$(1))
-       $(call Image/Build/Profile/WNCE2001,$(1))
-       $(call Image/Build/Profile/WR512-3GN,$(1))
-       $(call Image/Build/Profile/WR6202,$(1))
-       $(call Image/Build/Profile/WT1520,$(1))
-       $(call Image/Build/Profile/X5,$(1))
-       $(call Image/Build/Profile/X8,$(1))
-       $(call Image/Build/Profile/XDXRN502J,$(1))
-       $(call Image/Build/Profile/MZK-DP150N,$(1))
+define Device/unbranded_wr512-3gn-8m
+  SOC := rt3052
+  IMAGE_SIZE := 7872k
+  DEVICE_VENDOR := Ralink
+  DEVICE_MODEL := WR512-3GN
+  DEVICE_VARIANT := 8M
+  SUPPORTED_DEVICES += wr512-3gn-8M
+endef
+TARGET_DEVICES += unbranded_wr512-3gn-8m
+
+define Device/unbranded_xdx-rn502j
+  SOC := rt3052
+  BLOCKSIZE := 64k
+  IMAGE_SIZE := 3776k
+  DEVICE_VENDOR := XDX
+  DEVICE_MODEL := RN502J
+  SUPPORTED_DEVICES += xdxrn502j
+  DEFAULT := n
+endef
+TARGET_DEVICES += unbranded_xdx-rn502j
+
+define Device/upvel_ur-326n4g
+  SOC := rt3052
+  BLOCKSIZE := 64k
+  IMAGE_SIZE := 3776k
+  DEVICE_VENDOR := UPVEL
+  DEVICE_MODEL := UR-326N4G
+  DEVICE_PACKAGES := kmod-usb-dwc2 kmod-usb-ledtrig-usbport
+  SUPPORTED_DEVICES += ur-326n4g
+  DEFAULT := n
+endef
+TARGET_DEVICES += upvel_ur-326n4g
+
+define Device/upvel_ur-336un
+  SOC := rt3052
+  IMAGE_SIZE := 7872k
+  DEVICE_VENDOR := UPVEL
+  DEVICE_MODEL := UR-336UN
+  DEVICE_PACKAGES := kmod-usb-dwc2 kmod-usb-ledtrig-usbport
+  SUPPORTED_DEVICES += ur-336un
+endef
+TARGET_DEVICES += upvel_ur-336un
+
+define Device/vocore_vocore-16m
+  SOC := rt5350
+  IMAGE_SIZE := 16064k
+  DEVICE_VENDOR := VoCore
+  DEVICE_MODEL := VoCore
+  DEVICE_VARIANT := 16M
+  DEVICE_PACKAGES := kmod-usb-ohci kmod-usb2 kmod-i2c-ralink kmod-spi-dev
+  SUPPORTED_DEVICES += vocore vocore-16M
+endef
+TARGET_DEVICES += vocore_vocore-16m
+
+define Device/vocore_vocore-8m
+  SOC := rt5350
+  IMAGE_SIZE := 7872k
+  DEVICE_VENDOR := VoCore
+  DEVICE_MODEL := VoCore
+  DEVICE_VARIANT := 8M
+  DEVICE_PACKAGES := kmod-usb-ohci kmod-usb2 kmod-i2c-ralink kmod-spi-dev
+  SUPPORTED_DEVICES += vocore vocore-8M
+endef
+TARGET_DEVICES += vocore_vocore-8m
+
+define Device/wansview_ncs601w
+  SOC := rt5350
+  IMAGE_SIZE := 7872k
+  DEVICE_VENDOR := Wansview
+  DEVICE_MODEL := NCS601W
+  DEVICE_PACKAGES := kmod-video-core kmod-video-uvc kmod-usb-ohci
+  SUPPORTED_DEVICES += ncs601w
+endef
+TARGET_DEVICES += wansview_ncs601w
+
+define Device/wiznet_wizfi630a
+  SOC := rt5350
+  IMAGE_SIZE := 16064k
+  DEVICE_VENDOR := WIZnet
+  DEVICE_MODEL := WizFi630A
+  SUPPORTED_DEVICES += wizfi630a
+endef
+TARGET_DEVICES += wiznet_wizfi630a
+
+define Device/zorlik_zl5900v2
+  SOC := rt5350
+  IMAGE_SIZE := 7872k
+  DEVICE_VENDOR := Zorlik
+  DEVICE_MODEL := ZL5900V2
+  DEVICE_PACKAGES := kmod-usb-ohci kmod-usb2
+endef
+TARGET_DEVICES += zorlik_zl5900v2
+
+define Device/zte_mf283plus
+  SOC := rt3352
+  IMAGE_SIZE := 15872k
+  DEVICE_VENDOR := ZTE
+  DEVICE_MODEL := MF283+
+  DEVICE_PACKAGES := kmod-usb-ohci kmod-usb2 kmod-usb-net-qmi-wwan uqmi \
+       kmod-usb-serial kmod-usb-serial-option
+endef
+TARGET_DEVICES += zte_mf283plus
+
+define Device/zyxel_keenetic
+  SOC := rt3052
+  BLOCKSIZE := 64k
+  IMAGE_SIZE := 7872k
+  DEVICE_VENDOR := ZyXEL
+  DEVICE_MODEL := Keenetic
+  DEVICE_PACKAGES := kmod-usb2 kmod-usb-ehci kmod-usb-ledtrig-usbport \
+       kmod-usb-dwc2
+  SUPPORTED_DEVICES += kn
+endef
+TARGET_DEVICES += zyxel_keenetic
+
+define Device/zyxel_keenetic-lite-b
+  SOC := rt5350
+  IMAGE_SIZE := 7872k
+  DEVICE_VENDOR := ZyXEL
+  DEVICE_MODEL := Keenetic Lite
+  DEVICE_VARIANT := B
+endef
+TARGET_DEVICES += zyxel_keenetic-lite-b
+
+define Device/zyxel_keenetic-start
+  SOC := rt5350
+  IMAGE_SIZE := 3776k
+  DEVICE_VENDOR := ZyXEL
+  DEVICE_MODEL := Keenetic Start
+  DEFAULT := n
+endef
+TARGET_DEVICES += zyxel_keenetic-start
+
+define Device/zyxel_nbg-419n
+  SOC := rt3052
+  BLOCKSIZE := 64k
+  IMAGE_SIZE := 3776k
+  DEVICE_VENDOR := ZyXEL
+  DEVICE_MODEL := NBG-419N
+  SUPPORTED_DEVICES += nbg-419n
+  DEFAULT := n
+endef
+TARGET_DEVICES += zyxel_nbg-419n
 
+define Device/zyxel_nbg-419n-v2
+  SOC := rt3352
+  IMAGE_SIZE := 7872k
+  DEVICE_VENDOR := ZyXEL
+  DEVICE_MODEL := NBG-419N
+  DEVICE_VARIANT := v2
+  SUPPORTED_DEVICES += nbg-419n2
 endef
+TARGET_DEVICES += zyxel_nbg-419n-v2