ramips: remove unnecessary DEVICE_PACKAGES for Belkin F7C027
[openwrt/openwrt.git] / target / linux / ramips / image / rt305x.mk
index 96175747d775d579bd3b8625812fdb7d381acbed..6413c4c49fa1e4c776942595f7099e7936510d6c 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/3g150b
+  DTS := 3G150B
+  BLOCKSIZE := 4k
+  IMAGE_SIZE := $(ralink_default_fw_size_4M)
+  UIMAGE_NAME:= Linux Kernel Image
+  DEVICE_TITLE := Tenda 3G150B
+  DEVICE_PACKAGES := kmod-usb-core kmod-usb-dwc2 kmod-usb-ledtrig-usbport
+endef
+TARGET_DEVICES += 3g150b
+
+define Device/3g300m
+  DTS := 3G300M
+  IMAGE_SIZE := $(ralink_default_fw_size_4M)
+  UIMAGE_NAME := 3G150M_SPI Kernel Image
+  DEVICE_TITLE := Tenda 3G300M
+  DEVICE_PACKAGES := kmod-usb-core kmod-usb-dwc2 kmod-usb-ledtrig-usbport
+endef
+TARGET_DEVICES += 3g300m
+
+define Device/3g-6200n
+  DTS := 3G-6200N
+  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 $$$$(IMAGE_SIZE)
+  DEVICE_TITLE := Edimax 3g-6200n
+endef
+TARGET_DEVICES += 3g-6200n
+
+define Device/3g-6200nl
+  DTS := 3G-6200NL
+  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 $$$$(IMAGE_SIZE)
+  DEVICE_TITLE := Edimax 3g-6200nl
+endef
+TARGET_DEVICES += 3g-6200nl
+
+define Device/a5-v11
+  DTS := A5-V11
+  IMAGE_SIZE := $(ralink_default_fw_size_4M)
+  IMAGES += factory.bin
+  IMAGE/factory.bin := \
+       $$(sysupgrade_bin) | check-size $$$$(IMAGE_SIZE) | poray-header -B A5-V11 -F 4M
+  DEVICE_TITLE := A5-V11
+  DEVICE_PACKAGES := kmod-usb-core kmod-usb-ohci kmod-usb2
+  DEFAULT := n
+endef
+TARGET_DEVICES += a5-v11
+
+define Device/air3gii
+  DTS := AIR3GII
+  BLOCKSIZE := 64k
+  IMAGE_SIZE := $(ralink_default_fw_size_4M)
+  DEVICE_TITLE := AirLive Air3GII
+endef
+TARGET_DEVICES += air3gii
+
+define Device/all0256n-4M
+  DTS := ALL0256N-4M
+  IMAGE_SIZE := $(ralink_default_fw_size_4M)
+  DEVICE_TITLE := Allnet ALL0256N (4MB)
+  DEVICE_PACKAGES := rssileds
+endef
+TARGET_DEVICES += all0256n-4M
+
+define Device/all0256n-8M
+  DTS := ALL0256N-8M
+  DEVICE_TITLE := Allnet ALL0256N (8MB)
+  DEVICE_PACKAGES := rssileds
+endef
+TARGET_DEVICES += all0256n-8M
+
+define Device/all5002
+  DTS := ALL5002
+  IMAGE_SIZE := 32448k
+  DEVICE_TITLE := Allnet ALL5002
+  DEVICE_PACKAGES := kmod-usb-core kmod-usb-ohci kmod-usb2 kmod-usb-ledtrig-usbport \
+          kmod-i2c-core kmod-i2c-gpio kmod-hwmon-lm92 kmod-gpio-pcf857x
+endef
+TARGET_DEVICES += all5002
+
+define Device/all5003
+  DTS := ALL5003
+  IMAGE_SIZE := 32448k
+  DEVICE_TITLE := Allnet ALL5003
+  DEVICE_PACKAGES := kmod-usb-core kmod-usb-ohci kmod-usb2 kmod-usb-ledtrig-usbport \
+          kmod-i2c-core kmod-i2c-gpio kmod-hwmon-lm92 kmod-gpio-pcf857x
+endef
+TARGET_DEVICES += all5003
+
+define Device/asl26555-8M
+  DTS := ASL26555-8M
+  IMAGE_SIZE := 7744k
+  SUPPORTED_DEVICES += asl26555
+  DEVICE_TITLE := Alpha ASL26555 
+  DEVICE_PACKAGES := kmod-usb-core kmod-usb-dwc2 kmod-usb-ledtrig-usbport
+endef
+TARGET_DEVICES += asl26555-8M
+
+define Device/asl26555-16M
+  DTS := ASL26555-16M
+  IMAGE_SIZE := 15872k
+  SUPPORTED_DEVICES += asl26555
+  DEVICE_TITLE := Alpha ASL26555 16M
+  DEVICE_PACKAGES := kmod-usb-core kmod-usb-dwc2 kmod-usb-ledtrig-usbport
+endef
+TARGET_DEVICES += asl26555-16M
+
+define Device/atp-52b
+  DTS := ATP-52B
+  IMAGE_SIZE := 7808k
+  DEVICE_TITLE := Argus ATP-52B
+endef
+TARGET_DEVICES += atp-52b
+
+define Device/awm002-evb-4M
+  DTS := AWM002-EVB-4M
+  IMAGE_SIZE := $(ralink_default_fw_size_4M)
+  DEVICE_TITLE := AsiaRF AWM002-EVB (4M)
+  DEVICE_PACKAGES := kmod-usb-core kmod-usb-ohci kmod-usb2 \
+               kmod-i2c-core kmod-i2c-gpio
+endef
+TARGET_DEVICES += awm002-evb-4M
+
+define Device/awm002-evb-8M
+  DTS := AWM002-EVB-8M
+  DEVICE_TITLE := AsiaRF AWM002-EVB (8M)/AsiaRF AWM003 EVB
+  DEVICE_PACKAGES := kmod-usb-core kmod-usb-ohci kmod-usb2 \
+               kmod-i2c-core kmod-i2c-gpio
+endef
+TARGET_DEVICES += awm002-evb-8M
+
+define Device/awapn2403
+  DTS := AWAPN2403
+  BLOCKSIZE := 4k
+  IMAGE_SIZE := $(ralink_default_fw_size_4M)
+  DEVICE_TITLE := AsiaRF AWAPN2403
+endef
+TARGET_DEVICES += awapn2403
+
+define Device/bc2
+  DTS := BC2
+  DEVICE_TITLE := NexAira BC2
+endef
+TARGET_DEVICES += bc2
+
+define Device/broadway
+  DTS := BROADWAY
+  IMAGE_SIZE := 7744k
+  UIMAGE_NAME:= Broadway Kernel Image
+  DEVICE_TITLE := Hauppauge Broadway
+  DEVICE_PACKAGES := kmod-usb-core kmod-usb-dwc2 kmod-usb-ledtrig-usbport
+endef
+TARGET_DEVICES += broadway
+
+define Device/carambola
+  DTS := CARAMBOLA
+  DEVICE_TITLE := 8devices Carambola
+  DEVICE_PACKAGES :=
+endef
+TARGET_DEVICES += carambola
+
+define Device/d105
+  DTS := D105
+  BLOCKSIZE := 64k
+  IMAGE_SIZE := $(ralink_default_fw_size_4M)
+  DEVICE_TITLE := Huawei D105
+endef
+TARGET_DEVICES += d105
+
+define Device/dap-1350
+  DTS := DAP-1350
+  IMAGES += factory.bin factory-NA.bin
+  IMAGE_SIZE := 7488k
+  IMAGE/factory.bin := $$(sysupgrade_bin) | check-size $$$$(IMAGE_SIZE) | \
+       dap-header -s RT3052-AP-DAP1350WW-3
+  IMAGE/factory-NA.bin := $$(sysupgrade_bin) | check-size $$$$(IMAGE_SIZE) | \
+       dap-header -s RT3052-AP-DAP1350-3
+  DEVICE_TITLE := D-Link DAP-1350
+endef
+TARGET_DEVICES += dap-1350
+
+define Device/dcs-930
+  DTS := DCS-930
+  IMAGE_SIZE := $(ralink_default_fw_size_4M)
+  DEVICE_TITLE := D-Link DCS-930
+  DEVICE_PACKAGES := kmod-video-core kmod-video-uvc kmod-sound-core kmod-usb-audio kmod-usb-core kmod-usb-dwc2
+endef
+TARGET_DEVICES += dcs-930
+
+define Device/dcs-930l-b1
+  DTS := DCS-930L-B1
+  IMAGE_SIZE := $(ralink_default_fw_size_4M)
+  DEVICE_TITLE := D-Link DCS-930L B1
+  DEVICE_PACKAGES := kmod-video-core kmod-video-uvc kmod-sound-core kmod-usb-audio kmod-usb-core kmod-usb-ohci kmod-usb2
+endef
+TARGET_DEVICES += dcs-930l-b1
+
+define Device/dir-300-b1
+  DTS := DIR-300-B1
+  IMAGE_SIZE := $(ralink_default_fw_size_4M)
+  IMAGES += factory.bin
+  IMAGE/factory.bin := \
+       $$(sysupgrade_bin) | check-size $$$$(IMAGE_SIZE) | wrg-header wrgn23_dlwbr_dir300b
+  DEVICE_TITLE := D-Link DIR-300 B1
+  DEFAULT := n
+endef
+TARGET_DEVICES += dir-300-b1
 
-# 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
-
-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/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/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/dir-300-b7
+  DTS := DIR-300-B7
+  BLOCKSIZE := 4k
+  IMAGE_SIZE := $(ralink_default_fw_size_4M)
+  DEVICE_TITLE := D-Link DIR-300 B7
+  DEFAULT := n
+endef
+TARGET_DEVICES += dir-300-b7
+
+define Device/dir-320-b1
+  DTS := DIR-320-B1
+  DEVICE_TITLE := D-Link DIR-320 B1
+endef
+TARGET_DEVICES += dir-320-b1
+
+define Device/dir-600-b1
+  DTS := DIR-600-B1
+  IMAGE_SIZE := $(ralink_default_fw_size_4M)
+  SUPPORTED_DEVICES := dir-600-b1 dir-600-b2
+  IMAGES += factory.bin
+  IMAGE/factory.bin := \
+       $$(sysupgrade_bin) | check-size $$$$(IMAGE_SIZE) | wrg-header wrgn23_dlwbr_dir600b
+  DEVICE_TITLE := D-Link DIR-600 B1/B2
+endef
+TARGET_DEVICES += dir-600-b1
+
+define Device/dir-610-a1
+  $(Device/seama)
+  DTS := DIR-610-A1
+  BLOCKSIZE := 4k
+  SEAMA_SIGNATURE := wrgn59_dlob.hans_dir610
+  KERNEL := $(KERNEL_DTB)
+  IMAGE_SIZE := $(ralink_default_fw_size_4M)
+  DEVICE_TITLE := D-Link DIR-610 A1 
+  DEVICE_PACKAGES := kmod-ledtrig-netdev kmod-ledtrig-timer
+endef
+TARGET_DEVICES += dir-610-a1
+
+define Device/dir-615-d
+  DTS := DIR-615-D
+  IMAGE_SIZE := $(ralink_default_fw_size_4M)
+  IMAGES += factory.bin
+  IMAGE/factory.bin := \
+       $$(sysupgrade_bin) | check-size $$$$(IMAGE_SIZE) | wrg-header wrgn23_dlwbr_dir615d
+  DEVICE_TITLE := D-Link DIR-615 D
+endef
+TARGET_DEVICES += dir-615-d
+
+
+define Device/dir-615-h1
+  DTS := DIR-615-H1
+  BLOCKSIZE := 4k
+  IMAGES += factory.bin
+  IMAGE_SIZE := $(ralink_default_fw_size_4M)
+  IMAGE/factory.bin := \
+       $$(sysupgrade_bin) | senao-header -r 0x218 -p 0x30 -t 3
+  DEVICE_TITLE := D-Link DIR-615 H1
+endef
+TARGET_DEVICES += dir-615-h1
+
+define Device/dir-620-a1
+  DTS := DIR-620-A1
+  DEVICE_TITLE := D-Link DIR-620 A1
+endef
+TARGET_DEVICES += dir-620-a1
+
+define Device/dir-620-d1
+  DTS := DIR-620-D1
+  DEVICE_TITLE := D-Link DIR-620 D1
+endef
+TARGET_DEVICES += dir-620-d1
+
+define Device/dwr-512-b
+  DTS := DWR-512-B
+  IMAGE_SIZE := 7800k
+  DEVICE_TITLE := D-Link DWR-512 B
+  DEVICE_PACKAGES := jboot-tools kmod-usb2 kmod-spi-dev kmod-usb-serial \
+                       kmod-usb-serial-option kmod-usb-net 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
+endef
+TARGET_DEVICES += dwr-512-b
+
+define Device/esr-9753
+  DTS := ESR-9753
+  BLOCKSIZE := 64k
+  IMAGE_SIZE := $(ralink_default_fw_size_4M)
+  DEVICE_TITLE := EnGenius ESR-9753
+endef
+TARGET_DEVICES += esr-9753
+
+define Device/f5d8235-v2
+  DTS := F5D8235_V2
+  IMAGE_SIZE := 7744k
+  DEVICE_TITLE := Belkin F5D8235 v2
+  DEVICE_PACKAGES := kmod-switch-rtl8366rb
+endef
+TARGET_DEVICES += f5d8235-v2
+
+define Device/f7c027
+  DTS := F7C027
+  IMAGE_SIZE := 7616k
+  DEVICE_TITLE := Belkin F7C027
+endef
+TARGET_DEVICES += f7c027
+
+define Device/fonera20n
+  DTS := FONERA20N
+  IMAGES += factory.bin
+  IMAGE/factory.bin := $$(sysupgrade_bin) | \
+       edimax-header -s RSDK -m NL1T -f 0x50000 -S 0xc0000
+  DEVICE_TITLE := Fonera 2.0N
+  DEVICE_PACKAGES := kmod-usb-core kmod-usb-dwc2 kmod-usb-ledtrig-usbport
+endef
+TARGET_DEVICES += fonera20n
+
+define Device/freestation5
+  DTS := FREESTATION5
+  DEVICE_TITLE := ARC Wireless FreeStation
+  DEVICE_PACKAGES := kmod-usb-dwc2 kmod-rt2500-usb kmod-rt2800-usb kmod-rt2x00-usb
+endef
+TARGET_DEVICES += freestation5
+
+define Device/hg255d
+  DTS := HG255D
+  IMAGE_SIZE := $(ralink_default_fw_size_16M)
+  DEVICE_TITLE := HuaWei HG255D
+endef
+TARGET_DEVICES += hg255d
+
+define Device/hlk-rm04
+  DTS := HLKRM04
+  IMAGES += factory.bin
+  IMAGE/factory.bin := \
+       $$(sysupgrade_bin) | check-size $$$$(IMAGE_SIZE) | hilink-header
+  DEVICE_TITLE := Hi-Link HLK-RM04
+endef
+TARGET_DEVICES += hlk-rm04
+
+define Device/ht-tm02
+  DTS := HT-TM02
+  DEVICE_TITLE := HooToo HT-TM02
+  DEVICE_PACKAGES := kmod-usb-core kmod-usb-ohci kmod-usb2 kmod-usb-ledtrig-usbport
+endef
+TARGET_DEVICES += ht-tm02
+
+define Device/hw550-3g
+  DTS := HW550-3G
+  DEVICE_TITLE := Aztech HW550-3G
+  DEVICE_PACKAGES := kmod-usb-core kmod-usb-dwc2 kmod-usb-ledtrig-usbport
+endef
+TARGET_DEVICES += hw550-3g
+
+define Device/ip2202
+  DTS := IP2202
+  DEVICE_TITLE := Poray IP2202
+endef
+TARGET_DEVICES += ip2202
+
+define Device/jhr-n805r
+  DTS := JHR-N805R
+  IMAGE_SIZE := $(ralink_default_fw_size_4M)
+  IMAGES += factory.bin
+  IMAGE/factory.bin := \
+       $$(sysupgrade_bin) | check-size $$$$(IMAGE_SIZE) | jcg-header 29.24
+  DEVICE_TITLE := JCG JHR-N805R
+endef
+TARGET_DEVICES += jhr-n805r
+
+define Device/jhr-n825r
+  DTS := JHR-N825R
+  IMAGE_SIZE := $(ralink_default_fw_size_4M)
+  IMAGES += factory.bin
+  IMAGE/factory.bin := \
+       $$(sysupgrade_bin) | check-size $$$$(IMAGE_SIZE) | jcg-header 23.24
+  DEVICE_TITLE := JCG JHR-N825R
+endef
+TARGET_DEVICES += jhr-n825r
+
+define Device/jhr-n926r
+  DTS := JHR-N926R
+  IMAGE_SIZE := $(ralink_default_fw_size_4M)
+  IMAGES += factory.bin
+  IMAGE/factory.bin := \
+       $$(sysupgrade_bin) | check-size $$$$(IMAGE_SIZE) | jcg-header 25.24
+  DEVICE_TITLE := JCG JHR-N926R
+endef
+TARGET_DEVICES += jhr-n926r
+
+define Device/m2m
+  DTS := M2M
+  UIMAGE_NAME:= Linux Kernel Image
+  DEVICE_TITLE := Intenso Memory 2 Move
+  DEVICE_PACKAGES := kmod-ledtrig-netdev kmod-ledtrig-timer \
+               kmod-usb-core kmod-usb2 kmod-usb-storage kmod-scsi-core \
+               kmod-fs-ext4 kmod-fs-vfat block-mount
+endef
+TARGET_DEVICES += m2m
+
+define Device/m3
+  DTS := M3
+  IMAGE_SIZE := $(ralink_default_fw_size_4M)
+  IMAGES += factory.bin
+  IMAGE/factory.bin := \
+       $$(sysupgrade_bin) | check-size $$$$(IMAGE_SIZE) | poray-header -B M3 -F 4M
+  DEVICE_TITLE := Poray M3
+  DEVICE_PACKAGES := kmod-usb-core kmod-usb2 kmod-ledtrig-netdev \
+       kmod-ledtrig-timer
+endef
+TARGET_DEVICES += m3
+
+define Device/m4-4M
+  DTS := M4-4M
+  IMAGE_SIZE := $(ralink_default_fw_size_4M)
+  IMAGES += factory.bin
+  IMAGE/factory.bin := \
+       $$(sysupgrade_bin) | check-size $$$$(IMAGE_SIZE) | poray-header -B M4 -F 4M
+  DEVICE_TITLE := Poray M4 (4MB)
+  DEVICE_PACKAGES := kmod-usb-core kmod-usb2 kmod-ledtrig-netdev \
+       kmod-ledtrig-timer
+endef
+TARGET_DEVICES += m4-4M
+
+define Device/m4-8M
+  DTS := M4-8M
+  IMAGES += factory.bin
+  IMAGE/factory.bin := \
+       $$(sysupgrade_bin) | check-size $$$$(IMAGE_SIZE) | poray-header -B M4 -F 8M
+  DEVICE_TITLE := Poray M4 (8MB)
+  DEVICE_PACKAGES := kmod-usb-core kmod-usb2 kmod-ledtrig-netdev kmod-ledtrig-timer
+endef
+TARGET_DEVICES += m4-8M
+
+define Device/miniembplug
+  DTS := MINIEMBPLUG
+  DEVICE_TITLE := Omnima MiniEMBPlug
+endef
+TARGET_DEVICES += miniembplug
+
+define Device/miniembwifi
+  DTS := MINIEMBWIFI
+  DEVICE_TITLE := Omnima MiniEMBWiFi
+endef
+TARGET_DEVICES += miniembwifi
+
+define Device/mofi3500-3gn
+  DTS := MOFI3500-3GN
+  DEVICE_TITLE := MoFi Network MOFI3500-3GN
+endef
+TARGET_DEVICES += mofi3500-3gn
+
+define Device/mpr-a1
+  DTS := MPRA1
+  BLOCKSIZE := 4k
+  IMAGE_SIZE := $(ralink_default_fw_size_4M)
+  UIMAGE_NAME:= Linux Kernel Image
+  DEVICE_TITLE := HAME MPR-A1
+  DEVICE_PACKAGES := kmod-usb-core kmod-usb-ohci kmod-usb2 kmod-ledtrig-netdev
+endef
+TARGET_DEVICES += mpr-a1
+
+define Device/mpr-a2
+  DTS := MPRA2
+  UIMAGE_NAME:= Linux Kernel Image
+  DEVICE_TITLE := HAME MPR-A2
+  DEVICE_PACKAGES := kmod-usb-core kmod-usb-ohci kmod-usb2 kmod-ledtrig-netdev
+endef
+TARGET_DEVICES += mpr-a2
+
+define Device/mr-102n
+  DTS := MR-102N
+  DEVICE_TITLE := AXIMCom MR-102N
+endef
+TARGET_DEVICES += mr-102n
+
+define Device/mzk-dp150n
+  DTS := MZK-DP150N
+  BLOCKSIZE := 64k
+  IMAGE_SIZE := $(ralink_default_fw_size_4M)
+  DEVICE_TITLE := Planex MZK-DP150N
+  DEVICE_PACKAGES := kmod-spi-dev
+endef
+TARGET_DEVICES += mzk-dp150n
+
+define Device/mzk-w300nh2
+  DTS := MZK-W300NH2
+  IMAGE_SIZE := 3648k
+  IMAGES += factory.bin
+  IMAGE/factory.bin := $$(sysupgrade_bin) | \
+       edimax-header -s CSYS -m RN52 -f 0x50000 -S 0xc0000
+  DEVICE_TITLE := Planex MZK-W300NH2
+endef
+TARGET_DEVICES += mzk-w300nh2
+
+define Device/mzk-wdpr
+  DTS := MZK-WDPR
+  DEVICE_TITLE := Planex MZK-WDPR
+endef
+TARGET_DEVICES += mzk-wdpr
+
+define Device/nbg-419n
+  DTS := NBG-419N
+  BLOCKSIZE := 64k
+  IMAGE_SIZE := $(ralink_default_fw_size_4M)
+  DEVICE_TITLE := ZyXEL NBG-419N
+endef
+TARGET_DEVICES += nbg-419n
+
+define Device/nbg-419n2
+  DTS := NBG-419N2
+  IMAGE_SIZE := $(ralink_default_fw_size_8M)
+  DEVICE_TITLE := ZyXEL NBG-419N2
+endef
+TARGET_DEVICES += nbg-419n2
+
+define Device/ncs601w
+  DTS := NCS601W
+  DEVICE_TITLE := Wansview NCS601W
+  DEVICE_PACKAGES := kmod-video-core kmod-video-uvc \
+               kmod-usb-core kmod-usb-ohci
+endef
+TARGET_DEVICES += ncs601w
+
+define Device/nixcore-x1-8M
+  DTS := NIXCORE-8M
+  IMAGE_SIZE := 7872k
+  SUPPORTED_DEVICES += nixcore-x1
+  DEVICE_TITLE := NixcoreX1 (8M)
+  DEVICE_PACKAGES := kmod-usb-core kmod-usb-ohci kmod-usb2 kmod-i2c-core kmod-i2c-ralink kmod-spi-dev
+endef
+TARGET_DEVICES += nixcore-x1-8M
+
+define Device/nixcore-x1-16M
+  DTS := NIXCORE-16M
+  IMAGE_SIZE := 16064k
+  SUPPORTED_DEVICES += nixcore-x1
+  DEVICE_TITLE := NixcoreX1 (16M)
+  DEVICE_PACKAGES := kmod-usb-core kmod-usb-ohci kmod-usb2 kmod-i2c-core kmod-i2c-ralink kmod-spi-dev
+endef
+TARGET_DEVICES += nixcore-x1-16M
+
+define Device/nw718
+  DTS := NW718
+  IMAGE_SIZE := 3712k
+  UIMAGE_NAME:= ARA1B4NCRNW718;1
+  DEVICE_TITLE := Netcore NW718
+endef
+TARGET_DEVICES += nw718
+
+define Device/psr-680w
+  DTS := PSR-680W
+  BLOCKSIZE := 64k
+  IMAGE_SIZE := $(ralink_default_fw_size_4M)
+  DEVICE_TITLE := Petatel PSR-680W Wireless 3G Router
+endef
+TARGET_DEVICES += psr-680w
+
+define Device/pwh2004
+  DTS := PWH2004
+  DEVICE_TITLE := Prolink PWH2004
+  DEVICE_PACKAGES :=
+endef
+TARGET_DEVICES += pwh2004
+
+define Device/px-4885-4M
+  DTS := PX-4885-4M
+  IMAGE_SIZE := $(ralink_default_fw_size_4M)
+  DEVICE_TITLE := 7Links PX-4885 (4M)
+  DEVICE_PACKAGES := kmod-usb-core kmod-usb-dwc2 kmod-usb2 kmod-usb-ohci \
+       kmod-usb-ledtrig-usbport kmod-leds-gpio
+endef
+TARGET_DEVICES += px-4885-4M
+
+define Device/px-4885-8M
+  DTS := PX-4885-8M
+  DEVICE_TITLE := 7Links PX-4885 (8M)
+  DEVICE_PACKAGES := kmod-usb-core kmod-usb-dwc2 kmod-usb2 kmod-usb-ohci \
+       kmod-usb-ledtrig-usbport kmod-leds-gpio
+endef
+TARGET_DEVICES += px-4885-8M
+
+define Device/rt5350f-olinuxino
+  DTS := RT5350F-OLINUXINO
+  DEVICE_TITLE := RT5350F-OLinuXino
+  DEVICE_PACKAGES := kmod-usb-core kmod-usb-ohci kmod-usb2 \
+               kmod-i2c-core kmod-i2c-ralink \
+               kmod-spi-dev
+endef
+TARGET_DEVICES += rt5350f-olinuxino
+
+define Device/rt5350f-olinuxino-evb
+  DTS := RT5350F-OLINUXINO-EVB
+  DEVICE_TITLE := RT5350F-OLinuXino-EVB
+  DEVICE_PACKAGES := kmod-usb-core kmod-usb-ohci kmod-usb2 \
+               kmod-i2c-core kmod-i2c-ralink \
+               kmod-spi-dev
+endef
+TARGET_DEVICES += rt5350f-olinuxino-evb
+
+define Device/rt-g32-b1
+  DTS := RT-G32-B1
+  BLOCKSIZE := 4k
+  IMAGE_SIZE := $(ralink_default_fw_size_4M)
+  DEVICE_TITLE := Asus RT-G32 B1
+endef
+TARGET_DEVICES += rt-g32-b1
+
+define Device/rt-n10-plus
+  DTS := RT-N10-PLUS
+  BLOCKSIZE := 64k
+  IMAGE_SIZE := $(ralink_default_fw_size_4M)
+  DEVICE_TITLE := Asus RT-N10+
+  DEFAULT := n
+endef
+TARGET_DEVICES += rt-n10-plus
+
+define Device/rt-n13u
+  DTS := RT-N13U
+  DEVICE_TITLE := Asus RT-N13U
+  DEVICE_PACKAGES := kmod-leds-gpio kmod-rt2800-pci kmod-usb-dwc2
+endef
+TARGET_DEVICES += rt-n13u
+
+define Device/rut5xx
+  DTS := RUT5XX
+  DEVICE_TITLE := Teltonika RUT5XX
+  DEVICE_PACKAGES := om-watchdog
+endef
+TARGET_DEVICES += rut5xx
+
+define Device/sl-r7205
+  DTS := SL-R7205
+  BLOCKSIZE := 64k
+  IMAGE_SIZE := $(ralink_default_fw_size_4M)
+  DEVICE_TITLE := Skyline SL-R7205 Wireless 3G Router
+endef
+TARGET_DEVICES += sl-r7205
+
+define Device/tew-638apb-v2
+  DTS := TEW-638APB-V2
+  BLOCKSIZE := 64k
+  IMAGE_SIZE := $(ralink_default_fw_size_4M)
+  IMAGE/sysupgrade.bin := $$(sysupgrade_bin) | umedia-header 0x026382 | \
+        append-metadata | check-size $$$$(IMAGE_SIZE)
+  DEVICE_TITLE := TRENDnet TEW-638APB v2
+endef
+TARGET_DEVICES += tew-638apb-v2
+
+define Device/tew-714tru
+  DTS := TEW-714TRU
+  DEVICE_TITLE := TRENDnet TEW-714TRU
+endef
+TARGET_DEVICES += tew-714tru
+
+define Device/ur-326n4g
+  DTS := UR-326N4G
+  BLOCKSIZE := 64k
+  IMAGE_SIZE := $(ralink_default_fw_size_4M)
+  DEVICE_TITLE := UPVEL UR-326N4G
+  DEVICE_PACKAGES := kmod-usb-core kmod-usb-dwc2 kmod-usb-ledtrig-usbport
+endef
+TARGET_DEVICES += ur-326n4g
+
+define Device/ur-336un
+  DTS := UR-336UN
+  DEVICE_TITLE := UPVEL UR-336UN
+  DEVICE_PACKAGES := kmod-usb-core kmod-usb-dwc2 kmod-usb-ledtrig-usbport
+endef
+TARGET_DEVICES += ur-336un
+
+define Device/v22rw-2x2
+  DTS := V22RW-2X2
+  BLOCKSIZE := 64k
+  IMAGE_SIZE := $(ralink_default_fw_size_4M)
+  DEVICE_TITLE := Ralink AP-RT3052-V22RW-2X2
+endef
+TARGET_DEVICES += v22rw-2x2
+
+define Device/vocore-8M
+  DTS := VOCORE-8M
+  IMAGE_SIZE := 7872k
+  SUPPORTED_DEVICES += vocore
+  DEVICE_TITLE := VoCore (8M)
+  DEVICE_PACKAGES := kmod-usb-core kmod-usb-ohci kmod-usb2 \
+               kmod-i2c-core kmod-i2c-ralink \
+               kmod-spi-dev
+endef
+TARGET_DEVICES += vocore-8M
+
+define Device/vocore-16M
+  DTS := VOCORE-16M
+  IMAGE_SIZE := 16064k
+  SUPPORTED_DEVICES += vocore
+  DEVICE_TITLE := VoCore (16M)
+  DEVICE_PACKAGES := kmod-usb-core kmod-usb-ohci kmod-usb2 \
+               kmod-i2c-core kmod-i2c-ralink \
+               kmod-spi-dev
+endef
+TARGET_DEVICES += vocore-16M
+
+define Device/w150m
+  DTS := W150M
+  IMAGE_SIZE := $(ralink_default_fw_size_4M)
+  UIMAGE_NAME:= W150M Kernel Image
+  DEVICE_TITLE := Tenda W150M
+endef
+TARGET_DEVICES += w150m
+
+define Device/w306r-v20
+  DTS := W306R_V20
+  IMAGE_SIZE := $(ralink_default_fw_size_4M)
+  UIMAGE_NAME:= linkn Kernel Image
+  DEVICE_TITLE := Tenda W306R V2.0
+endef
+TARGET_DEVICES += w306r-v20
+
+define Device/w502u
+  DTS := W502U
+  DEVICE_TITLE := ALFA Networks W502U
+endef
+TARGET_DEVICES += w502u
+
+define Device/wcr-150gn
+  DTS := WCR150GN
+  BLOCKSIZE := 64k
+  IMAGE_SIZE := $(ralink_default_fw_size_4M)
+  DEVICE_TITLE := Sparklan WCR-150GN
+endef
+TARGET_DEVICES += wcr-150gn
+
+define Device/whr-g300n
+  DTS := WHR-G300N
+  BLOCKSIZE := 64k
+  IMAGE_SIZE := 3801088
+  DEVICE_TITLE := Buffalo WHR-G300N
+  IMAGES += tftp.bin
+  IMAGE/tftp.bin := $$(sysupgrade_bin) | \
+    check-size $$$$(IMAGE_SIZE) | buffalo-tftp-header
+endef
+TARGET_DEVICES += whr-g300n
+
+define Device/wizard8800
+  DTS := WIZARD8800
+  UIMAGE_NAME:= Linux Kernel Image
+  DEVICE_TITLE := EasyAcc WIZARD 8800
+endef
+TARGET_DEVICES += wizard8800
+
+define Device/wizfi630a
+  DTS := WIZFI630A
+  IMAGE_SIZE := $(ralink_default_fw_size_16M)
+  DEVICE_TITLE := WIZnet WizFi630A
+endef
+TARGET_DEVICES += wizfi630a
+
+define Device/wl-330n
+  DTS := WL-330N
+  BLOCKSIZE := 4k
+  IMAGE_SIZE := $(ralink_default_fw_size_4M)
+  DEVICE_TITLE := Asus WL-330N
+endef
+TARGET_DEVICES += wl-330n
+
+define Device/wl-330n3g
+  DTS := WL-330N3G
+  BLOCKSIZE := 4k
+  IMAGE_SIZE := $(ralink_default_fw_size_4M)
+  DEVICE_TITLE := Asus WL-330N3G
+  DEVICE_PACKAGES :=
+endef
+TARGET_DEVICES += wl-330n3g
+
+define Device/wl-351
+  DTS := WL-351
+  BLOCKSIZE := 64k
+  IMAGE_SIZE := $(ralink_default_fw_size_4M)
+  DEVICE_TITLE := Sitecom WL-351 v1
+  DEVICE_PACKAGES := kmod-switch-rtl8366rb kmod-swconfig swconfig
+  DEFAULT := n
+endef
+TARGET_DEVICES += wl-351
+
+define Device/wnce2001
+  DTS := WNCE2001
+  IMAGE_SIZE := $(ralink_default_fw_size_4M)
+  IMAGES += factory.bin factory-NA.bin
+  IMAGE/factory.bin := $$(sysupgrade_bin) | check-size $$$$(IMAGE_SIZE) | \
+       dap-header -s RT3052-AP-WNCE2001-3 -r WW -v 1.0.0.99
+  IMAGE/factory-NA.bin := $$(sysupgrade_bin) | check-size $$$$(IMAGE_SIZE) | \
+       dap-header -s RT3052-AP-WNCE2001-3 -r NA -v 1.0.0.99
+  DEVICE_TITLE := Netgear WNCE2001
+endef
+TARGET_DEVICES += wnce2001
+
+define Device/wr512-3gn-4M
+  DTS := WR512-3GN-4M
+  IMAGE_SIZE := $(ralink_default_fw_size_4M)
+  DEVICE_TITLE := WR512-3GN (4M)
+  DEFAULT := n
+endef
+TARGET_DEVICES += wr512-3gn-4M
+
+define Device/wr512-3gn-8M
+  DTS := WR512-3GN-8M
+  DEVICE_TITLE := WR512-3GN (8M)
+endef
+TARGET_DEVICES += wr512-3gn-8M
+
+define Device/wr6202
+  DTS := WR6202
+  DEVICE_TITLE := AWB WR6202
+endef
+TARGET_DEVICES += wr6202
+
+define Device/wt1520-4M
+  DTS := WT1520-4M
+  IMAGE_SIZE := $(ralink_default_fw_size_4M)
+  IMAGES += factory.bin
+  IMAGE/factory.bin := \
+       $$(sysupgrade_bin) | check-size $$$$(IMAGE_SIZE) | poray-header -B WT1520 -F 4M
+  DEVICE_TITLE := Nexx WT1520 (4MB)
+endef
+TARGET_DEVICES += wt1520-4M
+
+define Device/wt1520-8M
+  DTS := WT1520-8M
+  IMAGES += factory.bin
+  IMAGE/factory.bin := \
+       $$(sysupgrade_bin) | check-size $$$$(IMAGE_SIZE) | poray-header -B WT1520 -F 8M
+  DEVICE_TITLE := Nexx WT1520 (8MB)
+endef
+TARGET_DEVICES += wt1520-8M
+
+define Device/x5
+  DTS := X5
+  IMAGES += factory.bin
+  IMAGE/factory.bin := \
+       $$(sysupgrade_bin) | check-size $$$$(IMAGE_SIZE) | poray-header -B X5 -F 8M
+  DEVICE_TITLE := Poray X5/X6
+  DEVICE_PACKAGES := kmod-usb-core kmod-usb2 kmod-ledtrig-netdev kmod-ledtrig-timer
+endef
+TARGET_DEVICES += x5
+
+
+define Device/x8
+  DTS := X8
+  IMAGES += factory.bin
+  IMAGE/factory.bin := \
+       $$(sysupgrade_bin) | check-size $$$$(IMAGE_SIZE) | poray-header -B X8 -F 8M
+  DEVICE_TITLE := Poray X8
+  DEVICE_PACKAGES := kmod-usb-core kmod-usb2 kmod-ledtrig-netdev kmod-ledtrig-timer
+endef
+TARGET_DEVICES += x8
+
+define Device/xdxrn502j
+  DTS := XDXRN502J
+  BLOCKSIZE := 64k
+  IMAGE_SIZE := $(ralink_default_fw_size_4M)
+  DEVICE_TITLE := XDX RN502J
+endef
+TARGET_DEVICES += xdxrn502j
+
+define Device/kn
+  DTS := kn
+  BLOCKSIZE := 64k
+  IMAGE_SIZE := 7872k
+  DEVICE_TITLE := ZyXEL Keenetic
+  DEVICE_PACKAGES := kmod-usb-core kmod-usb2 kmod-usb-ehci kmod-usb-ledtrig-usbport
+endef
+TARGET_DEVICES += kn
+
+define Device/zyxel_keenetic-start
+  DTS := kn_st
+  IMAGE_SIZE := $(ralink_default_fw_size_4M)
+  DEVICE_TITLE := ZyXEL Keenetic Start
+endef
+TARGET_DEVICES += zyxel_keenetic-start
 
+define Device/zorlik_zl5900v2
+  DTS := ZL5900V2
+  DEVICE_TITLE := Zorlik ZL5900V2
+  DEVICE_PACKAGES := kmod-usb-core kmod-usb-ohci kmod-usb2 kmod-ledtrig-netdev
 endef
+TARGET_DEVICES += zorlik_zl5900v2