-# $(1), squashfs/initramfs
-# $(2), lowercase board name
-# $(3), DTS filename without .dts extension
-# $(4), ih_name field of uImage header
-define BuildFirmware/OF/initramfs
- $(call MkImageLzmaDtb,$(2),$(3),$(4),-initramfs)
- $(CP) $(KDIR)/vmlinux-$(2)-initramfs.uImage $(call imgname,$(1),$(2))-uImage.bin
-endef
-
-
-# Build images for default ralink layout for 4MB flash
-# kernel + roots = 0x3b0000
-# $(1) = squashfs/initramfs
-# $(2) = lowercase board name
-# $(3) = dts file
-ralink_default_fw_size_4M=3866624
-BuildFirmware/Default4M/squashfs=$(call BuildFirmware/OF,$(1),$(2),$(3),$(ralink_default_fw_size_4M),$(4))
-BuildFirmware/Default4M/initramfs=$(call BuildFirmware/OF/initramfs,$(1),$(2),$(3),$(4))
-
-# Build images for default ralink layout for 8MB flash
-# kernel + roots = 0x7b0000
-# $(1) = squashfs/initramfs
-# $(2) = lowercase board name
-# $(3) = dts file
-# $(4) = uImage header name field
-ralink_default_fw_size_8M=8060928
-BuildFirmware/Default8M/squashfs=$(call BuildFirmware/OF,$(1),$(2),$(3),$(ralink_default_fw_size_8M),$(4))
-BuildFirmware/Default8M/initramfs=$(call BuildFirmware/OF/initramfs,$(1),$(2),$(3),$(4))
-BuildFirmware/Tplink/squashfs=$(call BuildFirmware/OF/tplink,$(1),$(2),$(3),$(4))
-BuildFirmware/Tplink/initramfs=$(call BuildFirmware/OF/tplink/initramfs,$(1),$(2),$(3),$(4))
-
-ralink_default_fw_size_16M=16121856
-BuildFirmware/Default16M/squashfs=$(call BuildFirmware/OF,$(1),$(2),$(3),$(ralink_default_fw_size_16M),$(4))
-BuildFirmware/Default16M/initramfs=$(call BuildFirmware/OF/initramfs,$(1),$(2),$(3),$(4))
-
-ralink_default_fw_size_32M=33226752
-BuildFirmware/Default32M/squashfs=$(call BuildFirmware/OF,$(1),$(2),$(3),$(ralink_default_fw_size_32M),$(4))
-BuildFirmware/Default32M/initramfs=$(call BuildFirmware/OF/initramfs,$(1),$(2),$(3),$(4))
-
-# Build images for a custom sized flash layout
-# $(1) = squashfs/initramfs
-# $(2) = lowercase board name
-# $(3) = dts file
-# $(4) = kernel + rootfs size
-BuildFirmware/CustomFlash/squashfs=$(call BuildFirmware/OF,$(1),$(2),$(3),$(4),$(5),$(6))
-BuildFirmware/CustomFlash/initramfs=$(call BuildFirmware/OF/initramfs,$(1),$(2),$(3))
-
-# wrappers for boards that have 4MB and 8MB versions
-define BuildFirmware/DefaultDualSize/squashfs
- $(call BuildFirmware/Default4M/$(1),$(1),$(2)-4M,$(3)-4M)
- $(call BuildFirmware/Default8M/$(1),$(1),$(2)-8M,$(3)-8M)
-endef
-define BuildFirmware/DefaultDualSize/initramfs
- $(call BuildFirmware/OF/initramfs,$(1),$(2)-4M,$(3)-4M)
- $(call BuildFirmware/OF/initramfs,$(1),$(2)-8M,$(3)-8M)
-endef
-
-# Some boards need a special header inside the uImage to make them bootable
-define BuildFirmware/CustomFlashFactory/squashfs
- $(call BuildFirmware/CustomFlash/$(1),$(1),$(2),$(3),$(4))
- $(call BuildFirmware/CustomFlash/$(1),$(1),$(2),$(3),$(4),$(5),$(6))
-endef
-BuildFirmware/CustomFlashFactory/initramfs=$(call BuildFirmware/OF/initramfs,$(1),$(2),$(3))
-
-# 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))
-
-# build Seama header images
-define BuildFirmware/Seama/squashfs
- $(call MkImageLzmaDtb,$(2),$(3),$(5))
- $(eval output_name=$(IMG_PREFIX)-$(2)-$(1)-sysupgrade.bin)
- cat $(KDIR)/vmlinux-$(2).bin.lzma $(KDIR)/root.$(1) > $(KDIR)/img_$(2).$(1).tmp
- if [ `stat -c%s "$(KDIR)/img_$(2).$(1).tmp"` -gt $$$$(($(5) - 64)) ]; then \
- echo "Warning: $(KDIR)/img_$(2).$(1).tmp is too big" >&2; \
- else \
- dd if=$(KDIR)/vmlinux-$(2).bin.lzma of=$(KDIR)/vmlinux-$(2).bin.lzma.padded bs=64k conv=sync; \
- ( \
- dd if=$(KDIR)/vmlinux-$(2).bin.lzma.padded bs=1 count=`expr \`stat -c%s $(KDIR)/vmlinux-$(2).bin.lzma.padded\` - 64`; \
- dd if=$(KDIR)/root.$(1) bs=64k conv=sync; \
- ) > $(KDIR)/vmlinux-$(2).tmp; \
- $(STAGING_DIR_HOST)/bin/seama \
- -i $(KDIR)/vmlinux-$(2).tmp \
- -m "dev=/dev/mtdblock/2" -m "type=firmware"; \
- $(STAGING_DIR_HOST)/bin/seama \
- -s $(call imgname,$(1),$(2))-factory.bin \
- -m "signature=$(4)" \
- -i $(KDIR)/vmlinux-$(2).tmp.seama; \
- dd if=$(KDIR)/vmlinux-$(2).bin.lzma.padded bs=1 count=`expr \`stat -c%s $(KDIR)/vmlinux-$(2).bin.lzma.padded\` - 64` of=$(KDIR)/vmlinux-$(2)-sysupgrade.tmp; \
- $(STAGING_DIR_HOST)/bin/seama \
- -i $(KDIR)/vmlinux-$(2)-sysupgrade.tmp \
- -m "dev=/dev/mtdblock/2" -m "type=firmware"; \
- ( \
- dd if=$(KDIR)/vmlinux-$(2)-sysupgrade.tmp.seama; \
- dd if=$(KDIR)/root.$(1) bs=64k conv=sync; \
- ) > $(BIN_DIR)/$(output_name); \
- fi
-endef
-BuildFirmware/Seama/initramfs=$(call BuildFirmware/OF/initramfs,$(1),$(2),$(3))
-
-# 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
-
-# sign trednet / UMedia images
-define BuildFirmware/UMedia/squashfs
- $(call BuildFirmware/Default8M/$(1),$(1),$(2),$(3))
- if [ -e "$(call sysupname,$(1),$(2))" ]; then \
- fix-u-media-header -T 0x46 -B $(4) \
- -i $(call sysupname,$(1),$(2)) \
- -o $(call imgname,$(1),$(2))-factory.bin; \
- fi
-endef
-BuildFirmware/UMedia/initramfs=$(call BuildFirmware/OF/initramfs,$(1),$(2),$(3))
-
-# 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))
-
-# 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))
-
-define BuildFirmware/PorayDualSize/squashfs
- $(call BuildFirmware/DefaultDualSize/$(1),$(1),$(2),$(3))
- if [ -e "$(call sysupname,$(1),$(2)-4M)" ]; then \
- mkporayfw -B $(3) -F 4M \
- -f $(call sysupname,$(1),$(2)-4M) \
- -o $(call imgname,$(1),$(2)-4M)-factory.bin; \
- fi
- if [ -e "$(call sysupname,$(1),$(2)-8M)" ]; then \
- mkporayfw -B $(3) -F 8M \
- -f $(call sysupname,$(1),$(2)-8M) \
- -o $(call imgname,$(1),$(2)-8M)-factory.bin; \
- fi
-endef
-BuildFirmware/PorayDualSize/initramfs=$(call BuildFirmware/DefaultDualSize/initramfs,$(1),$(2),$(3))
-
-define BuildFirmware/Gemtek/squashfs
- $(call BuildFirmware/Default4M/$(1),$(1),$(2),$(3))
- if [ -e "$(call sysupname,$(1),$(2))" ]; then \
- mkheader_gemtek "$(call sysupname,$(1),$(2))" \
- "$(call imgname,$(1),$(2))-factory.bin" $(2) || \
- rm -f "$(call imgname,$(1),$(2))-factory.bin"; \
- fi
-endef
-BuildFirmware/Gemtek/initramfs=$(call BuildFirmware/OF/initramfs,$(1),$(2),$(3))
-
-# Airlink101 AR670W -- LZMA without uImage header
-define BuildFirmware/AR670W/squashfs
- $(call PatchKernelLzmaDtb,$(2),$(3),$(5))
-
- $(eval output_name=$(IMG_PREFIX)-$(2)-$(1)-$(if $(4),$(4),sysupgrade).bin)
- $(eval factory_name=$(IMG_PREFIX)-$(2)-$(1)-factory.bin)
-
- ( dd if=$(KDIR)/vmlinux-$(2).bin.lzma bs=65536 \
- conv=sync; dd if=$(KDIR)/root.$(1) ) > $(KDIR)/$(output_name)
-
- $(call prepare_generic_squashfs,$(KDIR)/$(output_name))
-
- if [ `stat -c%s "$(KDIR)/$(output_name)"` \
- -gt $(ralink_default_fw_size_4M) ]; then \
- echo "Warning: $(KDIR)/$(output_name) is too big" >&2; \
- else \
- mkwrgimg -i $(KDIR)/$(output_name) \
- -d "/dev/mtdblock/2" \
- -s "wrgn16a_airlink_ar670w" \
- -o $(BIN_DIR)/$(factory_name); \
- $(CP) $(KDIR)/$(output_name) $(BIN_DIR)/$(output_name); \
- fi
-endef
-
-#
-# RT288X Profiles
-#
-
-Image/Build/Profile/AR670W=$(call BuildFirmware/AR670W/$(1),$(1),ar670w,AR670W)
-
-Image/Build/Profile/AR725W=$(call BuildFirmware/Gemtek/$(1),$(1),ar725w,AR725W)
-
-# 0x790000
-belkin_f5d8235v1_mtd_size=7929856
-Image/Build/Profile/F5D8235V1=$(call BuildFirmware/CustomFlash/$(1),$(1),f5d8235v1,F5D8235_V1,$(belkin_f5d8235v1_mtd_size))
-
-Image/Build/Profile/RTN15=$(call BuildFirmware/Default4M/$(1),$(1),rt-n15,RT-N15)
-
-Image/Build/Profile/V11STFE=$(call BuildFirmware/Default4M/$(1),$(1),v11st-fe,V11STFE)
-
-Image/Build/Profile/WLITX4AG300N=$(call BuildFirmware/Default4M/$(1),$(1),wli-tx4-ag300n,WLI-TX4-AG300N)
-
-Image/Build/Profile/WZRAGL300NH=$(call BuildFirmware/Default4M/$(1),$(1),wzr-agl300nh,WZR-AGL300NH)
-
-ifeq ($(SUBTARGET),rt288x)
-define Image/Build/Profile/Default
- $(call Image/Build/Profile/AR670W,$(1))
- $(call Image/Build/Profile/AR725W,$(1))
- $(call Image/Build/Profile/F5D8235V1,$(1))
- $(call Image/Build/Profile/RTN15,$(1))
- $(call Image/Build/Profile/V11STFE,$(1))
- $(call Image/Build/Profile/WLITX4AG300N,$(1))
- $(call Image/Build/Profile/WZRAGL300NH,$(1))
-endef
-endif
-
-
-
-#
-# RT305X Profiles
-#
-
-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)
-
-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/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))
-
-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
-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)
-
-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
-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))