+mtdlayout_4M=mtdparts=physmap-flash.0:192k(u-boot)ro,64k(u-boot-env)ro,64k(factory)ro,832k(kernel),2944k(rootfs),3776k@0x50000(firmware)
+define Image/Build/Template/GENERIC_4M
+ $(call BuildFirmware/Generic,$(1),$(2),board=$(3),mtdlayout_4M,851968,3014656)
+endef
+
+mtdlayout_8M=mtdparts=physmap-flash.0:192k(u-boot)ro,64k(u-boot-env)ro,64k(factory)ro,832k(kernel),7040k(rootfs),7872k@0x50000(firmware)
+define Image/Build/Template/GENERIC_8M
+ $(call BuildFirmware/Generic,$(1),$(2),board=$(3),mtdlayout_8M,851968,7208960)
+endef
+
+define Image/Build/Profile/DIR300B1
+ $(call Image/Build/Template/GENERIC_4M,$(1),dir-300-b1,DIR-300-revB)
+endef
+
+define Image/Build/Profile/FONERA20N
+ $(call Image/Build/Template/GENERIC_8M,$(1),fonera20n,FONERA20N)
+endef
+
+define Image/Build/Profile/V22RW2X2
+ $(call Image/Build/Template/GENERIC_4M,$(1),v22rw-2x2,V22RW-2X2)
+endef
+
+define Image/Build/Profile/WHRG300N
+ $(call Image/Build/Template/GENERIC_4M,$(1),whr-g300n,WHR-G300N)
+endef
+
+ifeq ($(CONFIG_RALINK_RT305X),y)
+define Image/Build/Profile/Default
+ $(call Image/Build/Profile/DIR300B1,$(1))
+ $(call Image/Build/Profile/FONERA20N,$(1))
+ $(call Image/Build/Profile/V22RW2X2,$(1))
+ $(call Image/Build/Profile/WHRG300N,$(1))
+endef
+endif
+