| 1 | # |
| 2 | # Copyright (C) 2008-2011 OpenWrt.org |
| 3 | # |
| 4 | # This is free software, licensed under the GNU General Public License v2. |
| 5 | # See /LICENSE for more information. |
| 6 | # |
| 7 | include $(TOPDIR)/rules.mk |
| 8 | include $(INCLUDE_DIR)/image.mk |
| 9 | |
| 10 | define imgname |
| 11 | $(BIN_DIR)/$(IMG_PREFIX)-$(2)-$(1) |
| 12 | endef |
| 13 | |
| 14 | define sysupname |
| 15 | $(call imgname,$(1),$(2))-sysupgrade.bin |
| 16 | endef |
| 17 | |
| 18 | VMLINUX:=$(IMG_PREFIX)-vmlinux |
| 19 | UIMAGE:=$(IMG_PREFIX)-uImage |
| 20 | fs_squash:=squashfs-only |
| 21 | ifeq ($(CONFIG_TARGET_ROOTFS_INITRAMFS),y) |
| 22 | fs_squash:=initramfs |
| 23 | VMLINUX:=$(IMG_PREFIX)-vmlinux-initramfs |
| 24 | UIMAGE:=$(IMG_PREFIX)-uImage-initramfs |
| 25 | endif |
| 26 | |
| 27 | ifeq ($(CONFIG_RALINK_RT288X),y) |
| 28 | define kernel_entry |
| 29 | -a 0x88000000 -e 0x88000000 |
| 30 | endef |
| 31 | else |
| 32 | define kernel_entry |
| 33 | -a 0x80000000 -e 0x80000000 |
| 34 | endef |
| 35 | endif |
| 36 | |
| 37 | define mkcmdline |
| 38 | board=$(1) console=$(2),$(3) |
| 39 | endef |
| 40 | |
| 41 | define CompressLzma |
| 42 | $(STAGING_DIR_HOST)/bin/lzma e $(1) -lc1 -lp2 -pb2 $(2) |
| 43 | endef |
| 44 | |
| 45 | define PatchKernelLzma |
| 46 | cp $(KDIR)/vmlinux $(KDIR)/vmlinux-$(1) |
| 47 | $(STAGING_DIR_HOST)/bin/patch-cmdline $(KDIR)/vmlinux-$(1) '$(strip $(2))' |
| 48 | $(call CompressLzma,$(KDIR)/vmlinux-$(1),$(KDIR)/vmlinux-$(1).bin.lzma) |
| 49 | endef |
| 50 | |
| 51 | define MkImage |
| 52 | $(eval imagename=$(if $(4),$(4),MIPS OpenWrt Linux-$(LINUX_VERSION))) |
| 53 | mkimage -A mips -O linux -T kernel -C $(1) $(call kernel_entry)\ |
| 54 | -n "$(imagename)" \ |
| 55 | -d $(2) $(3) |
| 56 | endef |
| 57 | |
| 58 | define MkImageLzma |
| 59 | $(call PatchKernelLzma,$(1),$(2)) |
| 60 | $(call MkImage,lzma,$(KDIR)/vmlinux-$(1).bin.lzma,$(KDIR)/vmlinux-$(1).uImage,$(3)) |
| 61 | endef |
| 62 | |
| 63 | define MkCombineduImage |
| 64 | $(call PatchKernelLzma,$(2),$(3)) |
| 65 | if [ `stat -c%s "$(KDIR)/vmlinux-$(2).bin.lzma"` -gt `expr $(4) - 64` ]; then \ |
| 66 | echo "Warning: $(KDIR)/vmlinux-$(2).bin.lzma is too big"; \ |
| 67 | else if [ `stat -c%s "$(KDIR)/root.$(1)"` -gt $(5) ]; then \ |
| 68 | echo "Warning: $(KDIR)/root.$(1) is too big"; \ |
| 69 | else \ |
| 70 | ( dd if=$(KDIR)/vmlinux-$(2).bin.lzma bs=`expr $(4) - 64` conv=sync ; dd if=$(KDIR)/root.$(1) ) > $(KDIR)/vmlinux-$(2).bin.lzma.combined ; \ |
| 71 | fi ; fi |
| 72 | $(call MkImage,lzma,$(KDIR)/vmlinux-$(2).bin.lzma.combined,$(call sysupname,$(1),$(2)),$(6)) |
| 73 | endef |
| 74 | |
| 75 | define CatFiles |
| 76 | if [ `stat -c%s "$(1)"` -gt $(2) ]; then \ |
| 77 | echo "Warning: $(1) is too big"; \ |
| 78 | else if [ `stat -c%s $(3)` -gt $(4) ]; then \ |
| 79 | echo "Warning: $(3) is too big"; \ |
| 80 | else \ |
| 81 | ( dd if=$(1) bs=$(2) conv=sync; dd if=$(3) ) > $(5); \ |
| 82 | fi; fi |
| 83 | endef |
| 84 | |
| 85 | define Sysupgrade/KRuImage |
| 86 | $(call CatFiles,$(KDIR)/vmlinux-$(2).uImage,$(3),$(KDIR)/root.$(1),$(4),$(call sysupname,$(1),$(2))) |
| 87 | endef |
| 88 | |
| 89 | define mkmtd |
| 90 | mtdparts=$(1):$(2) |
| 91 | endef |
| 92 | |
| 93 | define mkmtd/phys |
| 94 | $(call mkmtd,physmap-flash.0,$(1)) |
| 95 | endef |
| 96 | |
| 97 | define mkmtd/spi |
| 98 | $(call mkmtd,spi0.0,$(1)) |
| 99 | endef |
| 100 | |
| 101 | define Image/BuildKernel |
| 102 | cp $(KDIR)/vmlinux.elf $(BIN_DIR)/$(VMLINUX).elf |
| 103 | cp $(KDIR)/vmlinux $(BIN_DIR)/$(VMLINUX).bin |
| 104 | $(call CompressLzma,$(KDIR)/vmlinux,$(KDIR)/vmlinux.bin.lzma) |
| 105 | $(call MkImage,lzma,$(KDIR)/vmlinux.bin.lzma,$(KDIR)/uImage.lzma) |
| 106 | cp $(KDIR)/uImage.lzma $(BIN_DIR)/$(UIMAGE).bin |
| 107 | $(call Image/Build/Initramfs) |
| 108 | endef |
| 109 | |
| 110 | define BuildFirmware/Generic |
| 111 | $(call MkImageLzma,$(2),$(3),$(6)) |
| 112 | $(call Sysupgrade/KRuImage,$(1),$(2),$(4),$(5)) |
| 113 | endef |
| 114 | |
| 115 | define BuildFirmware/Generic/initramfs |
| 116 | $(call MkImageLzma,$(2),$(3)) |
| 117 | $(CP) $(KDIR)/vmlinux-$(2).uImage $(call imgname,$(1),$(2))-uImage.bin |
| 118 | endef |
| 119 | |
| 120 | mtdlayout_4M=192k(u-boot)ro,64k(u-boot-env)ro,64k(factory)ro,896k(kernel),2880k(rootfs),3776k@0x50000(firmware) |
| 121 | define BuildFirmware/GENERIC_4M |
| 122 | $(call BuildFirmware/Generic,$(1),$(2),$(call mkcmdline,$(3),$(4),$(5)) $(call mkmtd/$(6),$(mtdlayout_4M)),917504,2949120) |
| 123 | endef |
| 124 | |
| 125 | define BuildFirmware/GENERIC_4M/initramfs |
| 126 | $(call BuildFirmware/Generic/initramfs,$(1),$(2),$(call mkcmdline,$(3),$(4),$(5)) $(call mkmtd/$(6),$(mtdlayout_4M))) |
| 127 | endef |
| 128 | |
| 129 | mtdlayout_8M=192k(u-boot)ro,64k(u-boot-env)ro,64k(factory)ro,896k(kernel),6976k(rootfs),7872k@0x50000(firmware) |
| 130 | kernel_size_8M=917504 |
| 131 | rootfs_size_8M=7143424 |
| 132 | define BuildFirmware/GENERIC_8M |
| 133 | $(call BuildFirmware/Generic,$(1),$(2),$(call mkcmdline,$(3),$(4),$(5)) $(call mkmtd/$(6),$(mtdlayout_8M)),$(kernel_size_8M),$(rootfs_size_8M)) |
| 134 | endef |
| 135 | |
| 136 | define BuildFirmware/GENERIC_8M/initramfs |
| 137 | $(call BuildFirmware/Generic/initramfs,$(1),$(2),$(call mkcmdline,$(3),$(4),$(5)) $(call mkmtd/$(6),$(mtdlayout_8M))) |
| 138 | endef |
| 139 | |
| 140 | define BuildFirmware/UIMAGE_8M |
| 141 | $(call MkCombineduImage,$(1),$(2),$(call mkcmdline,$(3),$(4),$(5)) $(call mkmtd/$(6),$(mtdlayout_8M)),$(kernel_size_8M),$(rootfs_size_8M),$(7)) |
| 142 | endef |
| 143 | |
| 144 | mtdlayout_edimax_3g6200n=192k(u-boot)ro,64k(u-boot-env)ro,64k(factory)ro,896k(kernel),2752k(rootfs),128k@0x3e0000(cimage)ro,3648k@0x50000(firmware) |
| 145 | define BuildFirmware/3G6200N |
| 146 | $(call BuildFirmware/Generic,$(1),$(2),$(call mkcmdline,$(3),$(4),$(5)) $(call mkmtd/$(6),$(mtdlayout_edimax_3g6200n)),917504,2818048) |
| 147 | endef |
| 148 | |
| 149 | mtdlayout_allnet_all5002=192k(u-boot)ro,64k(u-boot-env)ro,64k(factory)ro,1024k(kernel),31424k(rootfs),32448k@0x50000(firmware) |
| 150 | define BuildFirmware/ALL5002 |
| 151 | $(call BuildFirmware/Generic,$(1),$(2),$(call mkcmdline,$(3),$(4),$(5)) $(call mkmtd/$(6),$(mtdlayout_allnet_all5002)),1048576,32178176) |
| 152 | endef |
| 153 | |
| 154 | define BuildFirmware/ALL5002/initramfs |
| 155 | $(call BuildFirmware/Generic/initramfs,$(1),$(2),$(call mkcmdline,$(3),$(4),$(5)) $(call mkmtd/$(6),$(mtdlayout_allnet_all5002))) |
| 156 | endef |
| 157 | |
| 158 | mtdlayout_argus_atp52b=192k(bootloader)ro,64k(config),64k(factory),1152k(kernel),6656k(rootfs),7808k@0x50000(firmware) |
| 159 | mtd_argus_atp52b_kernel_part_size=1179648 |
| 160 | mtd_argus_atp52b_rootfs_part_size=6815744 |
| 161 | define BuildFirmware/ARGUS_ATP52B |
| 162 | $(call BuildFirmware/Generic,$(1),$(2),board=$(3) $(call mkmtd/phys,$(mtdlayout_argus_atp52b)),$(mtd_argus_atp52b_kernel_part_size),$(mtd_argus_atp52b_rootfs_part_size)) |
| 163 | endef |
| 164 | |
| 165 | define BuildFirmware/Buffalo |
| 166 | $(call MkImageLzma,$(2),$(3)) |
| 167 | $(call Sysupgrade/KRuImage,$(1),$(2),$(4),$(5)) |
| 168 | if [ -e "$(call sysupname,$(1),$(2))" ]; then \ |
| 169 | buffalo-enc -p $(3) -v 1.76 \ |
| 170 | -i $(KDIR)/vmlinux-$(2).uImage \ |
| 171 | -o $(KDIR)/vmlinux-$(2).uImage.enc; \ |
| 172 | buffalo-enc -p $(3) -v 1.76 \ |
| 173 | -i $(KDIR)/root.$(1) \ |
| 174 | -o $(KDIR)/root.$(2).enc; \ |
| 175 | buffalo-tag -b $(3) -p $(3) -a ram -v 1.76 -m 1.01 \ |
| 176 | -l mlang8 -f 1 -r EU \ |
| 177 | -i $(KDIR)/vmlinux-$(2).uImage.enc \ |
| 178 | -i $(KDIR)/root.$(2).enc \ |
| 179 | -o $(call imgname,$(1),$(2))-factory-EU.bin; \ |
| 180 | fi |
| 181 | endef |
| 182 | |
| 183 | |
| 184 | define BuildFirmware/Buffalo2 |
| 185 | $(call BuildFirmware/Generic,$(1),$(2),board=$(3) $(4),$(5),$(6)) |
| 186 | endef |
| 187 | |
| 188 | mtdlayout_dir300b1=192k(u-boot)ro,64k(devdata)ro,64k(devconf)ro,896k(kernel),2880k(rootfs),3776k@0x50000(firmware) |
| 189 | mtd_dir300b1_kernel_part_size=917504 |
| 190 | mtd_dir300b1_rootfs_part_size=2949120 |
| 191 | define BuildFirmware/DIR300B1 |
| 192 | $(call BuildFirmware/Generic,$(1),$(2),$(call mkcmdline,$(3),ttyS1,57600) $(call mkmtd/phys,$(mtdlayout_dir300b1)),$(mtd_dir300b1_kernel_part_size),$(mtd_dir300b1_rootfs_part_size)) |
| 193 | mkwrgimg -s $(4) -d /dev/mtdblock/2 \ |
| 194 | -i $(call sysupname,$(1),$(2)) \ |
| 195 | -o $(call imgname,$(1),$(2))-factory.bin |
| 196 | endef |
| 197 | |
| 198 | define BuildFirmware/DIR300B1/initramfs |
| 199 | $(call BuildFirmware/Generic/initramfs,$(1),$(2),$(call mkcmdline,$(3),ttyS1,57600) $(call mkmtd/phys,$(mtdlayout_dir300b1)),$(mtd_dir300b1_kernel_part_size),$(mtd_dir300b1_rootfs_part_size)) |
| 200 | endef |
| 201 | |
| 202 | mtdlayout_dir615h1=192k(u-boot)ro,64k(u-boot-env)ro,64k(factory)ro,896k(kernel),2880k(rootfs),3776k@0x50000(firmware) |
| 203 | define BuildFirmware/DIR615H1 |
| 204 | $(call BuildFirmware/Generic,$(1),$(2),$(call mkcmdline,$(3),$(4),$(5)) $(call mkmtd/$(6),$(mtdlayout_dir615h1)),917504,2949120) |
| 205 | mkdir615h1 -e $(call sysupname,$(1),$(2)) \ |
| 206 | -o $(call imgname,$(1),$(2))-factory.bin |
| 207 | endef |
| 208 | |
| 209 | define BuildFirmware/DIR615H1/initramfs |
| 210 | $(call BuildFirmware/Generic/initramfs,$(1),$(2),$(call mkcmdline,$(3),$(4),$(5)) $(call mkmtd/$(6),$(mtdlayout_dir615h1))) |
| 211 | endef |
| 212 | |
| 213 | mtdlayout_dap1350=192k(u-boot)ro,64k(devdata)ro,192k(devconf)ro,256k(devlang)ro,1088k(kernel),6400k(rootfs),7488k@0xb0000(firmware) |
| 214 | mtd_dap1350_kernel_part_size=1114112 |
| 215 | mtd_dap1350_rootfs_part_size=6553600 |
| 216 | define BuildFirmware/DAP1350 |
| 217 | $(call BuildFirmware/Generic,$(1),$(2),$(call mkcmdline,$(3),ttyS1,115200) $(call mkmtd/phys,$(mtdlayout_dap1350)),$(mtd_dap1350_kernel_part_size),$(mtd_dap1350_rootfs_part_size)) |
| 218 | mkdapimg -s $(4) \ |
| 219 | -i $(call sysupname,$(1),$(2)) \ |
| 220 | -o $(call imgname,$(1),$(2))-factory.bin |
| 221 | endef |
| 222 | |
| 223 | define BuildFirmware/DAP1350/initramfs |
| 224 | $(call BuildFirmware/Generic/initramfs,$(1),$(2),$(call mkcmdline,$(3),ttyS1,115200) $(call mkmtd/phys,$(mtdlayout_dap1350)),$(mtd_dap1350_kernel_part_size),$(mtd_dap1350_rootfs_part_size)) |
| 225 | endef |
| 226 | |
| 227 | mtdlayout_dir620a1=192k(u-boot)ro,64k(u-boot-env)ro,64k(factory)ro,896k(kernel),6976k(rootfs),7872k@0x50000(firmware) |
| 228 | kernel_size_dir620a1=917504 |
| 229 | rootfs_size_dir620a1=7143424 |
| 230 | define BuildFirmware/DIR620A1 |
| 231 | $(call BuildFirmware/Generic,$(1),$(2),$(call mkcmdline,$(3),ttyS1,57600) $(call mkmtd/phys,$(mtdlayout_dir620a1)),$(kernel_size_dir620a1),$(rootfs_size_dir620a1),DIR_620) |
| 232 | endef |
| 233 | |
| 234 | define BuildFirmware/DIR620A1/initramfs |
| 235 | $(call BuildFirmware/Generic/initramfs,$(1),$(2),$(call mkcmdline,$(3),ttyS1,57600) $(call mkmtd/phys,$(mtdlayout_dir620a1)),$(kernel_size_dir620a1),$(rootfs_size_dir620a1)) |
| 236 | endef |
| 237 | |
| 238 | define BuildFirmware/Edimax |
| 239 | if [ -e "$(call sysupname,$(1),$(2))" ]; then \ |
| 240 | mkedimaximg -i $(call sysupname,$(1),$(2)) \ |
| 241 | -o $(call imgname,$(1),$(2))-factory.bin \ |
| 242 | -s $(3) -m $(4) -f $(5) -S $(6); \ |
| 243 | fi |
| 244 | endef |
| 245 | |
| 246 | mtdlayout_f5d8235=320k(u-boot)ro,1536k(kernel),6208k(rootfs),64k(nvram),64k(factory),7744k@0x50000(firmware) |
| 247 | mtd_f5d8235_kernel_part_size=1572864 |
| 248 | mtd_f5d8235_rootfs_part_size=6356992 |
| 249 | define BuildFirmware/F5D8235 |
| 250 | $(call BuildFirmware/Generic,$(1),$(2),board=$(3) $(call mkmtd/phys,$(mtdlayout_f5d8235)),$(mtd_f5d8235_kernel_part_size),$(mtd_f5d8235_rootfs_part_size)) |
| 251 | endef |
| 252 | |
| 253 | define BuildFirmware/FONERA20N |
| 254 | $(call BuildFirmware/GENERIC_8M,$(1),fonera20n,FONERA20N,ttyS1,57600,phys) |
| 255 | $(call BuildFirmware/Edimax,$(1),fonera20n,RSDK,NL1T,0x50000,0xc0000) |
| 256 | endef |
| 257 | |
| 258 | define BuildFirmware/FONERA20N/initramfs |
| 259 | $(call BuildFirmware/GENERIC_8M/initramfs,$(1),fonera20n,FONERA20N,ttyS1,57600,phys) |
| 260 | endef |
| 261 | |
| 262 | mtdlayout_nw718=192k(u-boot)ro,128k(config)ro,64k(factory)ro,896k(kernel),2816k(rootfs),3712k@0x60000(firmware) |
| 263 | kernel_size_nw718=917504 |
| 264 | rootfs_size_nw718=2883584 |
| 265 | cmdline_nw718=$(call mkcmdline,NW718,ttyS1,57600) $(call mkmtd/spi,$(mtdlayout_nw718)) |
| 266 | define BuildFirmware/NW718 |
| 267 | $(call BuildFirmware/Generic,$(1),$(2),$(cmdline_nw718),$(kernel_size_nw718),$(rootfs_size_nw718)) |
| 268 | $(call PatchKernelLzma,$(2),$(cmdline_nw718)) |
| 269 | mkimage -A mips -O linux -T kernel -C lzma $(call kernel_entry) \ |
| 270 | -n "ARA1B4NCRNW718;1" \ |
| 271 | -d "$(KDIR)/vmlinux-$(2).bin.lzma" \ |
| 272 | "$(KDIR)/vmlinux-$(2).uImage" |
| 273 | $(call CatFiles,$(KDIR)/vmlinux-$(2).uImage,$(kernel_size_nw718),$(KDIR)/root.$(1),$(rootfs_size_nw718),$(call imgname,$(1),$(2))-factory.bin) |
| 274 | endef |
| 275 | |
| 276 | mtdlayout_rtg32b1=192k(u-boot)ro,64k(devdata)ro,64k(devconf)ro,896k(kernel),2880k(rootfs),3776k@0x50000(firmware) |
| 277 | mtd_rtg32b1_kernel_part_size=917504 |
| 278 | mtd_rtg32b1_rootfs_part_size=2949120 |
| 279 | define BuildFirmware/RTG32B1 |
| 280 | $(call BuildFirmware/Generic,$(1),$(2),board=$(3) $(call mkmtd/spi,$(mtdlayout_rtg32b1)),$(mtd_rtg32b1_kernel_part_size),$(mtd_rtg32b1_rootfs_part_size)) |
| 281 | endef |
| 282 | |
| 283 | mtdlayout_rtn10plus=192k(u-boot)ro,64k(devdata)ro,64k(devconf)ro,896k(kernel),2880k(rootfs),3776k@0x50000(firmware) |
| 284 | mtd_rtn10plus_kernel_part_size=917504 |
| 285 | mtd_rtn10plus_rootfs_part_size=2949120 |
| 286 | define BuildFirmware/RTN10PLUS |
| 287 | $(call BuildFirmware/Generic,$(1),$(2),board=$(3) $(call mkmtd/phys,$(mtdlayout_rtn10plus)),$(mtd_rtn10plus_kernel_part_size),$(mtd_rtn10plus_rootfs_part_size)) |
| 288 | endef |
| 289 | |
| 290 | define BuildFirmware/W306R_4M |
| 291 | $(call BuildFirmware/w306r,$(1),$(2),$(call mkcmdline,$(3),$(4),$(5)) $(call mkmtd/$(6),$(mtdlayout_4M)),917504,2949120) |
| 292 | endef |
| 293 | |
| 294 | define BuildFirmware/w306r |
| 295 | $(call PatchKernelLzma,$(2),$(3)) |
| 296 | mkimage -A mips -O linux -T kernel -C lzma $(call kernel_entry)\ |
| 297 | -n 'linkn Kernel Image' \ |
| 298 | -d $(KDIR)/vmlinux-$(2).bin.lzma $(KDIR)/vmlinux-$(2).uImage |
| 299 | $(call CatFiles,$(KDIR)/vmlinux-$(2).uImage,$(4),$(KDIR)/root.$(1),$(5),$(call imgname,$(1),$(2))-factory.bin) |
| 300 | endef |
| 301 | |
| 302 | mtdlayout_whrg300n=192k(u-boot)ro,64k(u-boot-env)ro,64k(factory)ro,960k(kernel),2752k(rootfs),64k(user)ro,3712k@0x50000(firmware) |
| 303 | define BuildFirmware/WHRG300N |
| 304 | $(call Image/Build/Template/GENERIC_4M,$(1),whr-g300n,WHR-G300N,ttyS1,57600,phys) |
| 305 | $(call BuildFirmware/Buffalo,$(1),whr-g300n,$(call mkcmdline,WHR-G300N,ttyS1,57600) $(call mkmtd/phys,$(mtdlayout_whrg300n)),983040,3801088) |
| 306 | ( \ |
| 307 | echo -n -e "# Airstation FirmWare\nrun u_fw\nreset\n\n" | \ |
| 308 | dd bs=512 count=1 conv=sync; \ |
| 309 | dd if=$(call sysupname,$(1),whr-g300n); \ |
| 310 | ) > $(KDIR)/whr-g300n-tftp.tmp |
| 311 | buffalo-tftp -i $(KDIR)/whr-g300n-tftp.tmp \ |
| 312 | -o $(call imgname,$(1),whr-g300n)-tftp.bin |
| 313 | endef |
| 314 | |
| 315 | mtdlayout_wl341v3=128k(u-boot)ro,64k(board-nvram)ro,64k(u-boot-env)ro,896k(kernel),2880k(rootfs),64k(signature-eRcOmM),3776k@0x40000(firmware),4096k@0x0(fullflash) |
| 316 | kernel_size_wl341v3=917504 |
| 317 | rootfs_size_wl341v3=2949120 |
| 318 | define BuildFirmware/WL341V3 |
| 319 | $(call BuildFirmware/Generic,$(1),$(2),board=$(3) $(call mkmtd/phys,$(mtdlayout_wl341v3)),$(kernel_size_wl341v3),$(rootfs_size_wl341v3)) |
| 320 | if [ -e "$(call sysupname,$(1),$(2))" ]; then \ |
| 321 | ( \ |
| 322 | dd if=/dev/zero bs=195936 count=1; \ |
| 323 | echo "1.01"; \ |
| 324 | dd if=/dev/zero bs=581 count=1; \ |
| 325 | 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"; \ |
| 326 | dd if=/dev/zero bs=65552 count=1; \ |
| 327 | dd if=$(KDIR)/vmlinux-$(2).uImage bs=$(kernel_size_wl341v3) conv=sync; \ |
| 328 | dd if=$(KDIR)/root.$(1) bs=64k conv=sync; \ |
| 329 | dd if=/dev/zero bs=`expr 4194304 - 262144 - 16 - $(kernel_size_wl341v3) - \( \( \( \`stat -c%s $(KDIR)/root.$(1)\` / 65536 \) + 1 \) \* 65536 \)` count=1; \ |
| 330 | echo -n -e "\x11\x03\x80\x00\x10\x12\x90\xF7\x65\x52\x63\x4F\x6D\x4D\x00\x00"; \ |
| 331 | ) > $(call imgname,$(1),$(2))-factory.bin; \ |
| 332 | fi |
| 333 | endef |
| 334 | |
| 335 | mtdlayout_wlitx4ag300n=192k(u-boot)ro,64k(u-boot-env)ro,64k(factory)ro,896k(kernel),2816k(rootfs),64k(user)ro,3712k@0x50000(firmware) |
| 336 | define BuildFirmware/WLITX4AG300N |
| 337 | $(call BuildFirmware/Buffalo2,$(1),wli-tx4-ag300n,WLI-TX4-AG300N,$(call mkmtd/phys,$(mtdlayout_wlitx4ag300n)),917504,2883584) |
| 338 | endef |
| 339 | |
| 340 | # |
| 341 | # Templates |
| 342 | # |
| 343 | define Image/Build/Template/initramfs/initramfs |
| 344 | $(call BuildFirmware/$(1)/initramfs,initramfs,$(2),$(3),$(4),$(5),$(6),$(7),$(8)) |
| 345 | endef |
| 346 | |
| 347 | define Image/Build/Template/squashfs-only/squashfs |
| 348 | $(call BuildFirmware/$(1),squashfs,$(2),$(3),$(4),$(5),$(6),$(7),$(8)) |
| 349 | endef |
| 350 | |
| 351 | # |
| 352 | # RT288X Profiles |
| 353 | # |
| 354 | define Image/Build/Profile/F5D8235V1 |
| 355 | $(call Image/Build/Template/$(fs_squash)/$(1),F5D8235,f5d8235v1,F5D8235_V1) |
| 356 | endef |
| 357 | |
| 358 | define Image/Build/Profile/RTN15 |
| 359 | $(call Image/Build/Template/$(fs_squash)/$(1),GENERIC_4M,rt-n15,RT-N15,ttyS1,57600,phys) |
| 360 | endef |
| 361 | |
| 362 | define Image/Build/Profile/V11STFE |
| 363 | $(call Image/Build/Template/$(fs_squash)/$(1),GENERIC_4M,v11st-fe,V11ST-FE,ttyS1,57600,phys) |
| 364 | endef |
| 365 | |
| 366 | define Image/Build/Profile/WLITX4AG300N |
| 367 | $(call Image/Build/Template/$(fs_squash)/$(1),WLITX4AG300N) |
| 368 | endef |
| 369 | |
| 370 | ifeq ($(CONFIG_RALINK_RT288X),y) |
| 371 | define Image/Build/Profile/Default |
| 372 | $(call Image/Build/Profile/F5D8235V1,$(1)) |
| 373 | $(call Image/Build/Profile/RTN15,$(1)) |
| 374 | $(call Image/Build/Profile/V11STFE,$(1)) |
| 375 | $(call Image/Build/Profile/WLITX4AG300N,$(1)) |
| 376 | endef |
| 377 | endif |
| 378 | |
| 379 | # |
| 380 | # RT305X Profiles |
| 381 | # |
| 382 | define Image/Build/Profile/3G6200N |
| 383 | $(call Image/Build/Template/$(fs_squash)/$(1),3G6200N,3g-6200n,3G-6200N,ttyS1,57600,phys) |
| 384 | endef |
| 385 | |
| 386 | define Image/Build/Profile/ALL02393G |
| 387 | $(call Image/Build/Template/$(fs_squash)/$(1),UIMAGE_8M,all0239-3g,ALL0239-3G,ttyS1,57600,phys) |
| 388 | endef |
| 389 | |
| 390 | define Image/Build/Profile/ALL0256N |
| 391 | $(call Image/Build/Template/$(fs_squash)/$(1),GENERIC_4M,all0256n,ALL0256N,ttyS1,57600,spi) |
| 392 | $(call Image/Build/Template/$(fs_squash)/$(1),GENERIC_8M,all0256n-8M,ALL0256N,ttyS1,57600,spi) |
| 393 | endef |
| 394 | |
| 395 | define Image/Build/Profile/ALL5002 |
| 396 | $(call Image/Build/Template/$(fs_squash)/$(1),ALL5002,all5002,ALL5002,ttyS1,57600,spi) |
| 397 | endef |
| 398 | |
| 399 | define Image/Build/Profile/ARGUS_ATP52B |
| 400 | $(call Image/Build/Template/$(fs_squash)/$(1),ARGUS_ATP52B,argus_atp52b,ARGUS_ATP52B) |
| 401 | endef |
| 402 | |
| 403 | define Image/Build/Profile/BC2 |
| 404 | $(call Image/Build/Template/$(fs_squash)/$(1),GENERIC_8M,bc2,BC2,ttyS1,57600,phys) |
| 405 | endef |
| 406 | |
| 407 | define Image/Build/Profile/CARAMBOLA |
| 408 | $(call Image/Build/Template/$(fs_squash)/$(1),GENERIC_8M,carambola,CARAMBOLA,ttyS1,115200,phys) |
| 409 | endef |
| 410 | |
| 411 | define Image/Build/Profile/DIR300B1 |
| 412 | $(call Image/Build/Template/$(fs_squash)/$(1),DIR300B1,dir-300-b1,DIR-300-B1,wrgn23_dlwbr_dir300b) |
| 413 | $(call Image/Build/Template/$(fs_squash)/$(1),DIR300B1,dir-600-b1,DIR-600-B1,wrgn23_dlwbr_dir600b) |
| 414 | $(call Image/Build/Template/$(fs_squash)/$(1),DIR300B1,dir-600-b2,DIR-600-B2,wrgn23_dlwbr_dir600b) |
| 415 | $(call Image/Build/Template/$(fs_squash)/$(1),DIR300B1,dir-615-d,DIR-615-D,wrgn23_dlwbr_dir615d) |
| 416 | $(call Image/Build/Template/$(fs_squash)/$(1),DIR620A1,dir-620-a1,DIR-620-A1) |
| 417 | endef |
| 418 | |
| 419 | define Image/Build/Profile/DIR615H1 |
| 420 | $(call Image/Build/Template/$(fs_squash)/$(1),DIR615H1,dir-615-h1,DIR-615-H1,ttyS1,57600,spi) |
| 421 | endef |
| 422 | |
| 423 | define Image/Build/Profile/DAP1350 |
| 424 | $(call Image/Build/Template/$(fs_squash)/$(1),DAP1350,dap-1350,DAP-1350,RT3052-AP-DAP1350-3) |
| 425 | endef |
| 426 | |
| 427 | define Image/Build/Profile/ESR9753 |
| 428 | $(call Image/Build/Template/$(fs_squash)/$(1),GENERIC_4M,esr-9753,ESR-9753,ttyS1,57600,phys) |
| 429 | endef |
| 430 | |
| 431 | define Image/Build/Profile/HW5503G |
| 432 | $(call Image/Build/Template/$(fs_squash)/$(1),GENERIC_8M,hw550-3g,HW550-3G,ttyS1,57600,phys) |
| 433 | endef |
| 434 | |
| 435 | define Image/Build/Profile/F5D8235V2 |
| 436 | $(call Image/Build/Template/$(fs_squash)/$(1),F5D8235,f5d8235v2,F5D8235_V2) |
| 437 | endef |
| 438 | |
| 439 | define Image/Build/Profile/FONERA20N |
| 440 | $(call Image/Build/Template/$(fs_squash)/$(1),FONERA20N) |
| 441 | endef |
| 442 | |
| 443 | define Image/Build/Profile/FREESTATION5 |
| 444 | $(call Image/Build/Template/$(fs_squash)/$(1),GENERIC_8M,freestation5,FREESTATION5,ttyS1,115200,phys) |
| 445 | endef |
| 446 | |
| 447 | define Image/Build/Profile/MOFI35003GN |
| 448 | $(call Image/Build/Template/$(fs_squash)/$(1),GENERIC_8M,mofi3500-3gn,MOFI3500-3GN,ttyS1,57600,phys) |
| 449 | endef |
| 450 | |
| 451 | define Image/Build/Profile/NBG419N |
| 452 | $(call Image/Build/Template/$(fs_squash)/$(1),GENERIC_4M,nbg-419n,NBG-419N,ttyS1,57600,phys) |
| 453 | endef |
| 454 | |
| 455 | define Image/Build/Profile/NW718 |
| 456 | $(call Image/Build/Template/$(fs_squash)/$(1),NW718,nw718) |
| 457 | endef |
| 458 | |
| 459 | define Image/Build/Profile/OMNIEMB |
| 460 | $(call Image/Build/Template/$(fs_squash)/$(1),GENERIC_8M,omni-emb,OMNI-EMB,ttyS1,57600,phys) |
| 461 | endef |
| 462 | |
| 463 | define Image/Build/Profile/PSR680W |
| 464 | $(call Image/Build/Template/$(fs_squash)/$(1),GENERIC_4M,psr-680w,PSR-680W,ttyS1,115200,phys) |
| 465 | endef |
| 466 | |
| 467 | define Image/Build/Profile/PWH2004 |
| 468 | $(call Image/Build/Template/$(fs_squash)/$(1),GENERIC_8M,pwh2004,PWH2004,ttyS1,57600,phys) |
| 469 | endef |
| 470 | |
| 471 | define Image/Build/Profile/RTG32B1 |
| 472 | $(call Image/Build/Template/$(fs_squash)/$(1),RTG32B1,rt-g32-b1,RT-G32-B1) |
| 473 | endef |
| 474 | |
| 475 | define Image/Build/Profile/RTN10PLUS |
| 476 | $(call Image/Build/Template/$(fs_squash)/$(1),RTN10PLUS,rt-n10-plus,RT-N10-PLUS) |
| 477 | endef |
| 478 | |
| 479 | define Image/Build/Profile/SLR7205 |
| 480 | $(call Image/Build/Template/$(fs_squash)/$(1),GENERIC_4M,sl-r7205,SL-R7205,ttyS1,57600,phys) |
| 481 | endef |
| 482 | |
| 483 | define Image/Build/Profile/V22RW2X2 |
| 484 | $(call Image/Build/Template/$(fs_squash)/$(1),GENERIC_4M,v22rw-2x2,V22RW-2X2,ttyS1,57600,phys) |
| 485 | endef |
| 486 | |
| 487 | define Image/Build/Profile/W306R_V20 |
| 488 | $(call Image/Build/Template/$(fs_squash)/$(1),GENERIC_4M,w306r-v20,W306R_V20,ttyS1,57600,phys) |
| 489 | $(call Image/Build/Template/$(fs_squash)/$(1),W306R_4M,w306r-v20,W306R_V20,ttyS1,57600,phys) |
| 490 | endef |
| 491 | |
| 492 | define Image/Build/Profile/W502U |
| 493 | $(call Image/Build/Template/$(fs_squash)/$(1),GENERIC_8M,w502u,W502U,ttyS1,115200,phys) |
| 494 | endef |
| 495 | |
| 496 | define Image/Build/Profile/WCR150GN |
| 497 | $(call Image/Build/Template/$(fs_squash)/$(1),GENERIC_4M,wcr150gn,WCR150GN,ttyS1,57600,phys) |
| 498 | endef |
| 499 | |
| 500 | define Image/Build/Profile/WHRG300N |
| 501 | $(call Image/Build/Template/$(fs_squashfs)/$(1),WHRG300N) |
| 502 | endef |
| 503 | |
| 504 | define Image/Build/Profile/WL_330N |
| 505 | $(call Image/Build/Template/$(fs_squash)/$(1),GENERIC_4M,wl-330n,WL_330N,ttyS1,57600,spi) |
| 506 | endef |
| 507 | |
| 508 | define Image/Build/Profile/WL_330N3G |
| 509 | $(call Image/Build/Template/$(fs_squash)/$(1),GENERIC_4M,wl-330n3g,WL_330N3G,ttyS1,57600,spi) |
| 510 | endef |
| 511 | |
| 512 | define Image/Build/Profile/WL341V3 |
| 513 | $(call Image/Build/Template/$(fs_squash)/$(1),WL341V3,wl341v3,WL341V3) |
| 514 | endef |
| 515 | |
| 516 | define Image/Build/Profile/WL351 |
| 517 | $(call Image/Build/Template/$(fs_squash)/$(1),GENERIC_4M,wl-351,WL-351,ttyS1,57600,phys) |
| 518 | endef |
| 519 | |
| 520 | define Image/Build/Profile/WR5123GN |
| 521 | $(call Image/Build/Template/$(fs_squash)/$(1),GENERIC_4M,wr512-3gn-4M,WR512-3GN,ttyS1,57600,phys) |
| 522 | $(call Image/Build/Template/$(fs_squash)/$(1),GENERIC_8M,wr512-3gn-8M,WR512-3GN,ttyS1,57600,phys) |
| 523 | endef |
| 524 | |
| 525 | |
| 526 | define Image/Build/Profile/UPVEL |
| 527 | $(call Image/Build/Template/$(fs_squash)/$(1),GENERIC_8M,ur-336un,UR-336UN,ttyS1,57600,phys) |
| 528 | endef |
| 529 | |
| 530 | define Image/Build/Profile/WR6202 |
| 531 | $(call Image/Build/Template/$(fs_squash)/$(1),GENERIC_8M,wr6202,WR6202,ttyS1,115200,phys) |
| 532 | endef |
| 533 | |
| 534 | define Image/Build/Profile/XDXRN502J |
| 535 | $(call Image/Build/Template/$(fs_squash)/$(1),GENERIC_4M,xdxrn502j,XDXRN502J,ttyS1,57600,phys) |
| 536 | endef |
| 537 | |
| 538 | ifeq ($(CONFIG_RALINK_RT305X),y) |
| 539 | define Image/Build/Profile/Default |
| 540 | $(call Image/Build/Profile/3G6200N,$(1)) |
| 541 | $(call Image/Build/Profile/ALL02393G,$(1)) |
| 542 | $(call Image/Build/Profile/ALL0256N,$(1)) |
| 543 | $(call Image/Build/Profile/ALL5002,$(1)) |
| 544 | $(call Image/Build/Profile/ARGUS_ATP52B,$(1)) |
| 545 | $(call Image/Build/Profile/BC2,$(1)) |
| 546 | $(call Image/Build/Profile/CARAMBOLA,$(1)) |
| 547 | $(call Image/Build/Profile/DIR300B1,$(1)) |
| 548 | $(call Image/Build/Profile/DIR615H1,$(1)) |
| 549 | $(call Image/Build/Profile/DAP1350,$(1)) |
| 550 | $(call Image/Build/Profile/ESR9753,$(1)) |
| 551 | $(call Image/Build/Profile/F5D8235V2,$(1)) |
| 552 | $(call Image/Build/Profile/RTN10PLUS,$(1)) |
| 553 | $(call Image/Build/Profile/FONERA20N,$(1)) |
| 554 | $(call Image/Build/Profile/FREESTATION5,$(1)) |
| 555 | $(call Image/Build/Profile/HW5503G,$(1)) |
| 556 | $(call Image/Build/Profile/MOFI35003GN,$(1)) |
| 557 | $(call Image/Build/Profile/NBG419N,$(1)) |
| 558 | $(call Image/Build/Profile/NW718,$(1)) |
| 559 | $(call Image/Build/Profile/OMNIEMB,$(1)) |
| 560 | $(call Image/Build/Profile/PSR680W,$(1)) |
| 561 | $(call Image/Build/Profile/PWH2004,$(1)) |
| 562 | $(call Image/Build/Profile/RTG32B1,$(1)) |
| 563 | $(call Image/Build/Profile/SLR7205,$(1)) |
| 564 | $(call Image/Build/Profile/V22RW2X2,$(1)) |
| 565 | $(call Image/Build/Profile/W306R_V20,$(1)) |
| 566 | $(call Image/Build/Profile/W502U,$(1)) |
| 567 | $(call Image/Build/Profile/WCR150GN,$(1)) |
| 568 | $(call Image/Build/Profile/WHRG300N,$(1)) |
| 569 | $(call Image/Build/Profile/WL_330N,$(1)) |
| 570 | $(call Image/Build/Profile/WL_330N3G,$(1)) |
| 571 | $(call Image/Build/Profile/WL341V3,$(1)) |
| 572 | $(call Image/Build/Profile/WL351,$(1)) |
| 573 | $(call Image/Build/Profile/WR5123GN,$(1)) |
| 574 | $(call Image/Build/Profile/WR6202,$(1)) |
| 575 | $(call Image/Build/Profile/XDXRN502J,$(1)) |
| 576 | endef |
| 577 | endif |
| 578 | |
| 579 | # |
| 580 | # RT3662/RT3883 Profiles |
| 581 | # |
| 582 | define Image/Build/Profile/RTN56U |
| 583 | $(call Image/Build/Template/$(fs_squash)/$(1),GENERIC_8M,rt-n56u,RT-N56U,ttyS1,57600,phys) |
| 584 | endef |
| 585 | |
| 586 | ifeq ($(CONFIG_RALINK_RT3883),y) |
| 587 | define Image/Build/Profile/Default |
| 588 | $(call Image/Build/Profile/RTN56U,$(1)) |
| 589 | endef |
| 590 | endif |
| 591 | |
| 592 | define Image/Build/Initramfs |
| 593 | $(call Image/Build/Profile/$(PROFILE),initramfs) |
| 594 | endef |
| 595 | |
| 596 | define Image/Build/squashfs |
| 597 | $(call prepare_generic_squashfs,$(KDIR)/root.squashfs) |
| 598 | endef |
| 599 | |
| 600 | define Image/Build |
| 601 | $(call Image/Build/$(1)) |
| 602 | dd if=$(KDIR)/root.$(1) of=$(BIN_DIR)/$(IMG_PREFIX)-root.$(1) bs=128k conv=sync |
| 603 | $(call Image/Build/Profile/$(PROFILE),$(1)) |
| 604 | endef |
| 605 | |
| 606 | $(eval $(call BuildImage)) |
| 607 | |