+ $(call PatchKernelLzma,$(2),$(3))
+ -$(STAGING_DIR_HOST)/bin/mkmylofw -B $(2) -s $(4) \
+ -p0x030000:0xe0000:al:0x80060000:kernel:$(KDIR_TMP)/vmlinux-$(2).bin.lzma \
+ -p0x110000:0:::rootfs:$(KDIR)/root.$(1) \
+ $(call imgname,$(1),$(2))-$(5)-factory.img
+endef
+
+ubntxm_mtdlayout=mtdparts=spi0.0:256k(u-boot)ro,64k(u-boot-env)ro,1024k(kernel),6528k(rootfs),256k(cfg)ro,64k(EEPROM)ro,7552k@0x50000(firmware)
+define Image/Build/UBNTXM
+ $(call MkuImageLzma,$(2),$(3) $(ubntxm_mtdlayout))
+ $(call Sysupgrade/KRuImage,$(1),$(2),1048576,6684672)
+ dd if=$(KDIR_TMP)/vmlinux-$(2).uImage of=$(KDIR_TMP)/vmlinux-$(2).uImage.bin bs=1024k conv=sync
+ -$(STAGING_DIR_HOST)/bin/mkfwimage \
+ -B $(4) -v $(5).$(6).v6.0.0-OpenWrt-$(REVISION) \
+ -k $(KDIR_TMP)/vmlinux-$(2).uImage.bin \
+ -r $(BIN_DIR)/$(IMG_PREFIX)-root.$(1) \
+ -o $(call factoryname,$(1),$(2))
+endef
+
+define Image/Build/UBNT
+ $(call PatchKernelLzma,$(2),$(3))
+ dd if=$(KDIR_TMP)/vmlinux-$(2).bin.lzma of=$(KDIR_TMP)/vmlinux-$(2).lzma bs=64k conv=sync
+ -$(STAGING_DIR_HOST)/bin/mkfwimage \
+ -B $(4) -v $(5).$(6).OpenWrt.$(REVISION) \
+ -k $(KDIR_TMP)/vmlinux-$(2).lzma \
+ -r $(BIN_DIR)/$(IMG_PREFIX)-root.$(1) \
+ -o $(call factoryname,$(1),$(2))
+ -sh $(TOPDIR)/scripts/combined-image.sh \
+ "$(KDIR_TMP)/vmlinux-$(2).lzma" \
+ "$(BIN_DIR)/$(IMG_PREFIX)-root.$(1)" \
+ $(call sysupname,$(1),$(2))
+endef
+
+planex_mtdlayout=mtdparts=spi0.0:256k(u-boot)ro,64k(u-boot-env)ro,960k(kernel),6784k(rootfs),128k(art)ro,7744k@0x50000(firmware)
+define Image/Build/Planex/loader
+ $(call Image/BuildLoaderAlone,$(1),gz,$(2) $(planex_mtdlayout),0x52000,0)
+endef
+
+define Image/Build/Planex
+ [ -e "$(KDIR)/loader-$(2).gz" ]
+ $(call MkuImage,gzip,,$(KDIR)/loader-$(2).gz,$(KDIR_TMP)/vmlinux-$(2).uImage)
+ $(call MkuImageOKLI,$(2))
+ ( \
+ dd if=$(KDIR_TMP)/vmlinux-$(2).uImage bs=8k count=1 conv=sync; \
+ dd if=$(KDIR_TMP)/vmlinux-$(2).okli; \
+ ) > $(KDIR_TMP)/kernel-$(2).bin
+ $(call Sysupgrade/KR,$(1),$(KDIR_TMP)/kernel-$(2).bin,983040,6815744,$(2))
+ if [ -e "$(call sysupname,$(1),$(2))" ]; then \
+ $(STAGING_DIR_HOST)/bin/mkplanexfw \
+ -B $(2) \
+ -v 2.00.00 \
+ -i $(call sysupname,$(1),$(2)) \
+ -o $(call factoryname,$(1),$(2)); \
+ fi
+endef
+
+alfa_mtdlayout_8M=mtdparts=spi0.0:256k(u-boot)ro,64k(u-boot-env)ro,6144k(rootfs),1600k(kernel),64k(nvram),64k(art)ro,7744k@0x50000(firmware)
+define Image/Build/ALFA
+ $(call MkuImageLzma,$(2),$(3))
+ $(call Sysupgrade/RKuImage,$(1),$(2),$(4),$(5))
+ if [ -e "$(call sysupname,$(1),$(2))" ]; then \
+ rm -rf $(KDIR)/$(1); \
+ mkdir -p $(KDIR)/$(1); \
+ cd $(KDIR)/$(1); \
+ cp $(KDIR_TMP)/vmlinux-$(2).uImage $(KDIR)/$(1)/$(6); \
+ cp $(KDIR)/root.$(1) $(KDIR)/$(1)/$(7); \
+ $(TAR) zcf $(call factoryname,$(1),$(2)) -C $(KDIR)/$(1) $(6) $(7); \
+ ( \
+ echo WRM7222C | dd bs=32 count=1 conv=sync; \
+ echo -ne '\xfe'; \
+ ) >> $(call factoryname,$(1),$(2)); \
+ fi
+endef
+
+define Image/Build/TPLINKOLD/loader
+ $(call Image/BuildLoaderAlone,$(1),gz,$(2),0x22000,0)
+endef
+
+define Image/Build/TPLINKOLD
+ [ -e "$(KDIR)/loader-$(2).gz" ]
+ $(call MkuImageOKLI,$(2))
+ ( \
+ dd if=$(KDIR)/loader-$(2).gz bs=7680 count=1 conv=sync; \
+ dd if=$(KDIR_TMP)/vmlinux-$(2).okli conv=sync; \
+ ) > $(KDIR_TMP)/kernel-$(2).bin
+ -$(STAGING_DIR_HOST)/bin/mktplinkfw \
+ -H $(4) -W $(5) -F $(6) -N OpenWrt -V $(REVISION)\
+ -k $(KDIR_TMP)/kernel-$(2).bin \
+ -r $(KDIR)/root.$(1) \
+ -o $(call factoryname,$(1),$(2))
+ -$(STAGING_DIR_HOST)/bin/mktplinkfw \
+ -H $(4) -W $(5) -F $(6) -N OpenWrt -V $(REVISION) -s\
+ -k $(KDIR_TMP)/kernel-$(2).bin \
+ -r $(KDIR)/root.$(1) \
+ -o $(call sysupname,$(1),$(2))
+endef
+
+define Image/Build/TPLINKOLD/initramfs
+ $(call Image/BuildLoader,$(2),gz,$(3),0x80060000)
+ -$(STAGING_DIR_HOST)/bin/mktplinkfw -c \
+ -H $(4) -W $(5) -F $(6) -N OpenWrt -V $(REVISION) -s\
+ -k $(KDIR)/loader-$(2).gz \
+ -o $(call imgname,$(1),$(2))-uImage.bin
+endef
+
+define Image/Build/TPLINK/loader
+ $(call Image/BuildLoaderAlone,$(1),gz,$(2),0x22000,0)
+endef
+
+define Image/Build/TPLINK
+ [ -e "$(KDIR)/loader-$(2).gz" ]
+ $(call MkuImageOKLI,$(2))
+ ( \
+ dd if=$(KDIR)/loader-$(2).gz bs=7680 count=1 conv=sync; \
+ dd if=$(KDIR_TMP)/vmlinux-$(2).okli conv=sync; \
+ ) > $(KDIR_TMP)/kernel-$(2).bin
+ -$(STAGING_DIR_HOST)/bin/mktplinkfw \
+ -H $(4) -W $(5) -F $(6) -N OpenWrt -V $(REVISION)\
+ -k $(KDIR_TMP)/kernel-$(2).bin \
+ -r $(KDIR)/root.$(1) \
+ -a $(call rootfs_align,$(1)) -j \
+ -o $(call factoryname,$(1),$(2))
+ -$(STAGING_DIR_HOST)/bin/mktplinkfw \
+ -H $(4) -W $(5) -F $(6) -N OpenWrt -V $(REVISION) -s\
+ -k $(KDIR_TMP)/kernel-$(2).bin \
+ -r $(KDIR)/root.$(1) \
+ -a $(call rootfs_align,$(1)) -j \
+ -o $(call sysupname,$(1),$(2))
+endef
+
+define Image/Build/TPLINK/initramfs
+ $(call Image/BuildLoader,$(2),gz,$(3),0x80060000)
+ -$(STAGING_DIR_HOST)/bin/mktplinkfw -c \
+ -H $(4) -W $(5) -F $(6) -N OpenWrt -V $(REVISION) -s\
+ -k $(KDIR)/loader-$(2).gz \
+ -o $(call imgname,$(1),$(2))-uImage.bin
+endef
+
+define Image/Build/TPLINK-LZMA
+ $(call PatchKernelLzma,$(2),$(3))
+ -$(STAGING_DIR_HOST)/bin/mktplinkfw \
+ -H $(4) -W $(5) -F $(6) -N OpenWrt -V $(REVISION)\
+ -k $(KDIR_TMP)/vmlinux-$(2).bin.lzma \
+ -r $(KDIR)/root.$(1) \
+ -a $(call rootfs_align,$(1)) -j \
+ -o $(call factoryname,$(1),$(2))
+ -$(STAGING_DIR_HOST)/bin/mktplinkfw \
+ -H $(4) -W $(5) -F $(6) -N OpenWrt -V $(REVISION) -s \
+ -k $(KDIR_TMP)/vmlinux-$(2).bin.lzma \
+ -r $(KDIR)/root.$(1) \
+ -a $(call rootfs_align,$(1)) -j \
+ -o $(call sysupname,$(1),$(2))
+endef
+
+define Image/Build/TPLINK-LZMA/initramfs
+ $(call PatchKernelLzma,$(2),$(3))
+ -$(STAGING_DIR_HOST)/bin/mktplinkfw -c \
+ -H $(4) -W $(5) -F $(6) -N OpenWrt -V $(REVISION) -s \
+ -k $(KDIR_TMP)/vmlinux-$(2).bin.lzma \
+ -o $(call imgname,$(1),$(2))-uImage.bin
+endef
+
+define Image/Build/CyberTAN
+ $(call MkuImageGzip,$(2),$(3))
+ $(STAGING_DIR_HOST)/bin/trx -o $(KDIR)/image.tmp -f $(KDIR_TMP)/vmlinux-$(2).uImage \
+ -x 32 -a 0x10000 -x -32 -f $(KDIR)/root.$(1)
+ -$(STAGING_DIR_HOST)/bin/addpattern -B $(2) -v v$(4) \
+ -i $(KDIR)/image.tmp \
+ -o $(call sysupname,$(1),$(2))
+ -$(STAGING_DIR_HOST)/bin/addpattern -B $(2) -v v$(4) -g \
+ -i $(KDIR)/image.tmp \
+ -o $(call factoryname,$(1),$(2))
+ rm $(KDIR)/image.tmp
+endef
+
+define Image/Build/Netgear/Build_uImage
+ $(call MkuImageLzma,$(1),$(2) $(3))
+ -rm -rf $(KDIR)/$(1)
+ mkdir -p $(KDIR)/$(1)/image
+ $(STAGING_DIR_HOST)/bin/wndr3700 \
+ $(KDIR_TMP)/vmlinux-$(1).uImage \
+ $(KDIR)/$(1)/image/uImage \
+ $(4)
+ $(STAGING_DIR_HOST)/bin/mksquashfs-lzma \
+ $(KDIR)/$(1) $(KDIR_TMP)/vmlinux-$(1).uImage.squashfs.tmp \
+ -nopad -noappend -root-owned -be
+ -rm -rf $(KDIR)/$(1)
+ mkimage -A mips -O linux -T filesystem -C none \
+ -a 0xbf070000 -e 0xbf070000 \
+ -n 'MIPS OpenWrt Linux-$(LINUX_VERSION)' \
+ -d $(KDIR_TMP)/vmlinux-$(1).uImage.squashfs.tmp \
+ $(KDIR_TMP)/vmlinux-$(1).uImage.squashfs.tmp2
+ $(STAGING_DIR_HOST)/bin/wndr3700 \
+ $(KDIR_TMP)/vmlinux-$(1).uImage.squashfs.tmp2 \
+ $(KDIR_TMP)/vmlinux-$(1).uImage.squashfs \
+ $(4)
+ -rm -f $(KDIR_TMP)/vmlinux-$(1).uImage.squashfs.tmp*
+endef
+
+define Image/Build/Netgear/Estimate_uImage
+ $(call Image/Build/Netgear/Build_uImage,$(1)_est,$(2),$(3),$(4))
+ ( \
+ set -e; \
+ kk=`echo '$(3)' | sed -e 's/.*[:,]\([0-9]*\)k(kernel).*/\1/'`; \
+ rk=`echo '$(3)' | sed -e 's/.*[:,]\([0-9]*\)k(rootfs).*/\1/'`; \
+ let 'tk = kk + rk'; \
+ s=`stat -c'%s' '$(KDIR_TMP)/vmlinux-$(1)_est.uImage.squashfs'`; \
+ c=`echo '$(3)' | wc -c`; \
+ let 'kk = (((s + c) / (64 * 1024) + 1) * 64)'; \
+ let 'rk = tk - kk'; \
+ echo '$(3)' | sed -e "s/[0-9]*k(kernel)/$$$${kk}k(kernel)/" \
+ -e "s/[0-9]*k(rootfs)/$$$${rk}k(rootfs)/" > \
+ '$(KDIR_TMP)/$(1)_mtdparts'; \
+ let 'k = kk * 1024'; \
+ echo "$$$${k}" > '$(KDIR_TMP)/$(1)_kernel_maxsize'; \
+ let 'r = rk * 1024'; \
+ echo "$$$${r}" > '$(KDIR_TMP)/$(1)_rootfs_maxsize'; \
+ )
+ -rm -f $(KDIR_TMP)/vmlinux-$(1)_est \
+ $(KDIR_TMP)/vmlinux-$(1)_est.bin.lzma \
+ $(KDIR_TMP)/vmlinux-$(1)_est.uImage \
+ $(KDIR_TMP)/vmlinux-$(1)_est.uImage.squashfs
+endef
+
+define Image/Build/Netgear
+ $(call Image/Build/Netgear/Estimate_uImage,$(2),$(3),$(4),$(5))
+ $(call Image/Build/Netgear/Build_uImage,$(2),$(3),`cat $(KDIR_TMP)/$(2)_mtdparts`,$(5))
+ if [ `stat -c%s '$(KDIR_TMP)/vmlinux-$(2).uImage.squashfs'` -gt \
+ `cat '$(KDIR_TMP)/$(2)_kernel_maxsize'` ]; then \
+ echo "$(KDIR_TMP)/vmlinux-$(2).uImage.squashfs is too big" >& 2; \
+ else if [ `stat -c%s '$(KDIR)/root.$(1)'` -gt \
+ `cat '$(KDIR_TMP)/$(2)_rootfs_maxsize'` ]; then \
+ echo "$(KDIR)/root.$(1) is too big" >& 2; \
+ else \
+ ( \
+ set -e; \
+ dd if=$(KDIR_TMP)/vmlinux-$(2).uImage.squashfs \
+ bs=`cat '$(KDIR_TMP)/$(2)_kernel_maxsize'` conv=sync; \
+ dd if=$(KDIR)/root.$(1) bs=64k; \
+ ) > $(call sysupname,$(1),$(2)); \
+ for r in $(7) ; do \
+ [ -n "$$$$r" ] && dashr="-$$$$r" || dashr= ; \
+ $(STAGING_DIR_HOST)/bin/mkdniimg \
+ -B $(6) -v OpenWrt.$(REVISION) -r "$$$$r" $(8) \
+ -i $(call sysupname,$(1),$(2)) \
+ -o $(call imgname,$(1),$(2))-factory$$$$dashr.img; \
+ done; \
+ fi; fi
+endef
+
+define Image/Build/Netgear/initramfs
+ $(call MkuImageLzma,$(2),$(3) $($(4)))
+ $(STAGING_DIR_HOST)/bin/wndr3700 \
+ $(KDIR_TMP)/vmlinux-$(2).uImage \
+ $(call imgname,$(1),$(2))-uImage.bin \
+ $(5)
+endef
+
+ifdef CONFIG_PACKAGE_uboot-ar71xx-nbg460n_550n_550nh
+ define Image/Build/ZyXEL
+ $(call MkuImageLzma,$(2),$(3))
+ $(call Sysupgrade/KRuImage,$(1),$(2),917504,2752512)
+ if [ -e "$(call sysupname,$(1),$(2))" ]; then \
+ if [ ! -f $(BIN_DIR)/$(IMG_PREFIX)-$(2)-u-boot.bin ]; then \
+ echo "Warning: $(IMG_PREFIX)-$(2)-u-boot.bin not found"; \
+ else \
+ $(STAGING_DIR_HOST)/bin/mkzynfw \
+ -B $(4) \
+ -b $(BIN_DIR)/$(IMG_PREFIX)-$(2)-u-boot.bin \
+ -r $(call sysupname,$(1),$(2)):0x10000 \
+ -o $(call factoryname,$(1),$(2)); \
+ fi; fi
+ endef
+endif
+
+define Image/Build/OpenMesh
+ $(call MkuImageLzma,$(2))
+ -sh $(TOPDIR)/scripts/om2p-fwupgradecfg-gen.sh \
+ "$(BUILD_DIR)/om2p-fwupgrade.cfg" \
+ "$(KDIR_TMP)/vmlinux-$(2).uImage" \
+ "$(KDIR)/root.$(1)"
+ -sh $(TOPDIR)/scripts/combined-ext-image.sh \
+ "$(3)" "$(call factoryname,$(1),$(2))" \
+ "$(BUILD_DIR)/om2p-fwupgrade.cfg" "fwupgrade.cfg" \
+ "$(KDIR_TMP)/vmlinux-$(2).uImage" "kernel" \
+ "$(KDIR)/root.$(1)" "rootfs"
+endef
+
+define Image/Build/Zcomax
+ $(call MkuImageLzma,$(2),$(3))
+ $(call Sysupgrade/RKuImage,$(1),$(2),1507328,6356992)
+ if [ -e "$(call sysupname,$(1),$(2))" ]; then \
+ $(STAGING_DIR_HOST)/bin/mkzcfw \
+ -B $(2) \
+ -k $(KDIR_TMP)/vmlinux-$(2).uImage \
+ -r $(BIN_DIR)/$(IMG_PREFIX)-root.$(1) \
+ -o $(call imgname,$(1),$(2))-factory.img; \
+ fi
+endef
+
+define Image/Build/Template/initramfs/initramfs
+ $(call Image/Build/$(1)/initramfs,initramfs,$(2),$(3),$(4),$(5),$(6),$(7),$(8))
+endef
+
+define Image/Build/Template/all/squashfs
+ $(call Image/Build/$(1),squashfs,$(2),$(3),$(4),$(5),$(6),$(7),$(8))
+endef
+
+define Image/Build/Template/all/jffs2-64k
+ $(call Image/Build/$(1),jffs2-64k,$(2),$(3),$(4),$(5),$(6),$(7),$(8))
+endef
+
+define Image/Build/Template/all/jffs2-128k
+ $(call Image/Build/$(1),jffs2-128k,$(2),$(3),$(4),$(5),$(6),$(7),$(8))
+endef
+
+define Image/Build/Template/squashfs-only/loader
+ $(call Image/Build/$(1)/loader,$(2),$(3),$(4),$(5),$(6),$(7),$(8))
+endef
+
+define Image/Build/Template/squashfs-only/squashfs
+ $(call Image/Build/$(1),squashfs,$(2),$(3),$(4),$(5),$(6),$(7),$(8))
+endef
+
+define Image/Build/Template/64k/loader
+ $(call Image/Build/$(1)/loader,$(2),$(3),$(4),$(5),$(6),$(7),$(8))
+endef
+
+define Image/Build/Template/64k/squashfs
+ $(call Image/Build/$(1),squashfs-64k,$(2),$(3),$(4),$(5),$(6),$(7),$(8))
+endef
+
+define Image/Build/Template/64k/jffs2-64k
+ $(call Image/Build/$(1),jffs2-64k,$(2),$(3),$(4),$(5),$(6),$(7),$(8))
+endef
+
+define Image/Build/Template/64kraw/loader
+ $(call Image/Build/$(1)/loader,$(2),$(3),$(4),$(5),$(6),$(7),$(8))
+endef
+
+define Image/Build/Template/64kraw/squashfs
+ $(call Image/Build/$(1),squashfs-raw,$(2),$(3),$(4),$(5),$(6),$(7),$(8))
+endef
+
+define Image/Build/Template/64kraw/jffs2-64k
+ $(call Image/Build/$(1),jffs2-64k,$(2),$(3),$(4),$(5),$(6),$(7),$(8))
+endef
+
+define Image/Build/Template/128k/squashfs
+ $(call Image/Build/$(1),squashfs,$(2),$(3),$(4),$(5),$(6),$(7),$(8))
+endef
+
+define Image/Build/Template/128k/jffs2-128k
+ $(call Image/Build/$(1),jffs2-128k,$(2),$(3),$(4),$(5),$(6),$(7),$(8))
+endef
+
+alfa_nx_cmdline=board=ALFA-NX console=ttyS0,115200 $(alfa_mtdlayout_8M)
+define Image/Build/Profile/ALFANX
+ $(call Image/Build/Template/$(fs_64k)/$(1),ALFA,alfa-nx,$(alfa_nx_cmdline),1638400,6291456,vmlinux.gz.uImage,pb9x-2.6.31-jffs2)
+endef
+
+alfa_ap96_cmdline=board=ALFA-AP96 console=ttyS0,115200
+alfa_ap96_mtdlayout=mtdparts=spi0.0:256k(u-boot)ro,256k(u-boot-env)ro,13312k(rootfs),2048k(kernel),512k(caldata)ro,15360k@0x80000(firmware)
+define Image/Build/Profile/ALFAAP96
+ $(call Image/Build/Template/$(fs_128k)/$(1),AthLzma,alfa-ap96,$(alfa_ap96_cmdline),alfa_ap96_mtdlayout,2097152,13631488,RKuImage)
+endef
+
+ap113_mtd_layout=64k(u-boot),3008k(rootfs),896k(uImage),64k(NVRAM),64k(ART),3904k@0x10000(firmware)
+ap113_cmdline=board=AP113 console=ttyS0,115200
+define Image/Build/Profile/AP113
+ $(call Image/Build/Template/$(fs_64k)/$(1),AthLzma,ap113,$(ap113_cmdline),ap113_mtd_layout,917504,3080192,RK)
+endef
+
+ap121_mtdlayout_2M=mtdparts=spi0.0:64k(u-boot)ro,1216k(rootfs),704k(kernel),64k(art)ro,1920k@0x10000(firmware)
+ap121_mtdlayout_4M=mtdparts=spi0.0:256k(u-boot)ro,64k(u-boot-env)ro,2752k(rootfs),896k(kernel),64k(nvram),64k(art)ro,3648k@0x50000(firmware)
+
+ap121_cmdline=board=AP121 console=ttyATH0,115200
+define Image/Build/Profile/AP121
+ $(call Image/Build/Template/$(fs_64k)/$(1),AthLzma,ap121-2M,$(ap121_cmdline),ap121_mtdlayout_2M,720896,1245184,RKuImage)
+ $(call Image/Build/Template/$(fs_64k)/$(1),AthLzma,ap121-4M,$(ap121_cmdline),ap121_mtdlayout_4M,917504,2818048,RKuImage)
+endef
+
+ap121_mini_cmdline=board=AP121-MINI console=ttyATH0,115200
+define Image/Build/Profile/AP121MINI
+ $(call Image/Build/Template/$(fs_64k)/$(1),AthLzma,ap121-mini,$(ap121_mini_cmdline),ap121_mtdlayout_4M,917504,2818048,RKuImage)
+endef
+
+ap81_cmdline=board=AP81 console=ttyS0,115200
+define Image/Build/Profile/AP81
+ $(call Image/Build/Template/$(fs_64k)/$(1),AthGzip,ap81,$(ap81_cmdline),,1310720,6619136,KRuImage)
+endef
+
+ap83_cmdline=board=AP83 console=ttyS0,115200
+define Image/Build/Profile/AP83
+ $(call Image/Build/Template/$(fs_64k)/$(1),AthGzip,ap83,$(ap83_cmdline),,1310720,6619136,KRuImage)
+endef
+
+ap96_cmdline=board=AP96 console=ttyS0,115200
+define Image/Build/Profile/AP96
+ $(call Image/Build/Template/$(fs_64k)/$(1),AthGzip,ap96,$(ap96_cmdline),ap96_mtdlayout,1769472,6291456,RKuImage)