2 # Copyright (C) 2008-2011 OpenWrt.org
4 # This is free software, licensed under the GNU General Public License v2.
5 # See /LICENSE for more information.
7 include $(TOPDIR
)/rules.mk
8 include $(INCLUDE_DIR
)/image.mk
11 $(BIN_DIR
)/$(IMG_PREFIX
)-$(2)-$(1)
15 $(call imgname
,$(1),$(2))-sysupgrade.bin
18 VMLINUX
:=$(IMG_PREFIX
)-vmlinux
19 UIMAGE
:=$(IMG_PREFIX
)-uImage
21 ifeq ($(CONFIG_TARGET_ROOTFS_INITRAMFS
),y
)
22 VMLINUX
:=$(IMG_PREFIX
)-vmlinux-initramfs
23 UIMAGE
:=$(IMG_PREFIX
)-uImage-initramfs
24 define Image
/Build
/Initramfs
25 $(call Image
/Build
/Profile
/$(PROFILE
),initramfs
)
29 ifeq ($(CONFIG_SOC_RT288X
),y
)
31 -a
0x88000000 -e
0x88000000
35 -a
0x80000000 -e
0x80000000
39 define MkCombineduImage
40 $(call PatchKernelLzma
,$(2),$(3))
41 if
[ `stat -c%s "$(KDIR)/vmlinux-$(2).bin.lzma"` -gt
`expr $(4) - 64` ]; then \
42 echo
"Warning: $(KDIR)/vmlinux-$(2).bin.lzma is too big" >&2; \
43 else if
[ `stat -c%s "$(KDIR)/root.$(1)"` -gt
$(5) ]; then \
44 echo
"Warning: $(KDIR)/root.$(1) is too big" >&2; \
46 ( dd if
=$(KDIR
)/vmlinux-
$(2).bin.lzma bs
=`expr $(4) - 64` conv
=sync
; dd if
=$(KDIR
)/root.
$(1) ) > $(KDIR
)/vmlinux-
$(2).bin.lzma.combined
; \
48 $(call MkImage
,lzma
,$(KDIR
)/vmlinux-
$(2).bin.lzma.combined
,$(call sysupname
,$(1),$(2)),$(6))
53 # The real magic happens inside these templates
57 $(eval imagename
=$(if
$(4),$(4),MIPS OpenWrt Linux-
$(LINUX_VERSION
)))
58 -mkimage
-A mips
-O linux
-T kernel
-C
$(1) $(call kernel_entry
)\
64 $(STAGING_DIR_HOST
)/bin
/lzma e
$(1) -lc1
-lp2
-pb2
$(2)
67 define MkImageSysupgrade
/squashfs
68 $(eval output_name
=$(IMG_PREFIX
)-$(2)-$(1)-$(if
$(4),$(4),sysupgrade
).bin
)
69 cat
$(KDIR
)/vmlinux-
$(2).uImage
$(KDIR
)/root.
$(1) > $(KDIR
)/$(output_name
)
70 $(call prepare_generic_squashfs
,$(KDIR
)/$(output_name
))
71 if
[ `stat -c%s "$(KDIR)/$(output_name)"` -gt
$(3) ]; then \
72 echo
"Warning: $(KDIR)/$(output_name) is too big" >&2; \
74 $(CP
) $(KDIR
)/$(output_name
) $(BIN_DIR
)/$(output_name
); \
78 define PatchKernelLzmaDtb
79 cp
$(KDIR
)/vmlinux
$(KDIR
)/vmlinux-
$(1)
80 $(LINUX_DIR
)/scripts
/dtc
/dtc
-O dtb
-o
$(KDIR
)/$(2).dtb ..
/dts
/$(2).dts
81 $(STAGING_DIR_HOST
)/bin
/patch-dtb
$(KDIR
)/vmlinux-
$(1) $(KDIR
)/$(2).dtb
82 $(call CompressLzma
,$(KDIR
)/vmlinux-
$(1),$(KDIR
)/vmlinux-
$(1).bin.lzma
)
86 $(call PatchKernelLzmaDtb
,$(1),$(2))
87 $(call MkImage
,lzma
,$(KDIR
)/vmlinux-
$(1).bin.lzma
,$(KDIR
)/vmlinux-
$(1).uImage
,$(3))
90 define BuildFirmware
/OF
91 $(call MkImageLzmaDtb
,$(2),$(3),$(5))
92 $(call MkImageSysupgrade
/$(1),$(1),$(2),$(4),$(6))
95 define BuildFirmware
/OF
/initramfs
96 $(call MkImageLzmaDtb
,$(2),$(3))
97 $(CP
) $(KDIR
)/vmlinux-
$(2).uImage
$(call imgname
,$(1),$(2))-uImage.bin
101 # Build images for default ralink layout for 4MB flash
102 # kernel + roots = 0x3b0000
103 # $(1) = squashfs/initramfs
104 # $(2) = lowercase board name
106 ralink_default_fw_size_4M
=3866624
107 BuildFirmware
/Default4M
/squashfs
=$(call BuildFirmware
/OF
,$(1),$(2),$(3),$(ralink_default_fw_size_4M
))
108 BuildFirmware
/Default4M
/initramfs
=$(call BuildFirmware
/OF
/initramfs
,$(1),$(2),$(3))
110 # Build images for default ralink layout for 8MB flash
111 # kernel + roots = 0x7b0000
112 # $(1) = squashfs/initramfs
113 # $(2) = lowercase board name
115 ralink_default_fw_size_8M
=8060928
116 BuildFirmware
/Default8M
/squashfs
=$(call BuildFirmware
/OF
,$(1),$(2),$(3),$(ralink_default_fw_size_8M
))
117 BuildFirmware
/Default8M
/initramfs
=$(call BuildFirmware
/OF
/initramfs
,$(1),$(2),$(3))
119 # Build images for a custom sized flash layout
120 # $(1) = squashfs/initramfs
121 # $(2) = lowercase board name
123 # $(4) = kernel + rootfs size
124 BuildFirmware
/CustomFlash
/squashfs
=$(call BuildFirmware
/OF
,$(1),$(2),$(3),$(4),$(5),$(6))
125 BuildFirmware
/CustomFlash
/initramfs
=$(call BuildFirmware
/OF
/initramfs
,$(1),$(2),$(3))
127 # wrappers for boards that have 4MB and 8MB versions
128 define BuildFirmware
/DefaultDualSize
/squashfs
129 $(call BuildFirmware
/Default4M
/$(1),$(1),$(2)-4M
,$(3)-4M
)
130 $(call BuildFirmware
/Default8M
/$(1),$(1),$(2)-8M
,$(3)-8M
)
132 define BuildFirmware
/DefaultDualSize
/initramfs
133 $(call BuildFirmware
/OF
/initramfs
,$(1),$(2)-4M
,$(3)-4M
)
134 $(call BuildFirmware
/OF
/initramfs
,$(1),$(2)-8M
,$(3)-8M
)
137 # Some boards need a special header inside the uImage to make them bootable
138 define BuildFirmware
/CustomFlashFactory
/squashfs
139 $(call BuildFirmware
/CustomFlash
/$(1),$(1),$(2),$(3),$(4))
140 $(call BuildFirmware
/CustomFlash
/$(1),$(1),$(2),$(3),$(4),$(5),$(6))
142 BuildFirmware
/CustomFlashFactory
/initramfs
=$(call BuildFirmware
/OF
/initramfs
,$(1),$(2),$(3))
144 # sign an image to make it work with edimax tftp recovery
145 define BuildFirmware
/Edimax
/squashfs
146 $(call BuildFirmware
/OF
,$(1),$(2),$(3),$(4))
147 if
[ -e
"$(call sysupname,$(1),$(2))" ]; then \
148 mkedimaximg
-i
$(call sysupname
,$(1),$(2)) \
149 -o
$(call imgname
,$(1),$(2))-factory.bin \
150 -s
$(5) -m
$(6) -f
$(7) -S
$(8); \
153 BuildFirmware
/Edimax
/initramfs
=$(call BuildFirmware
/OF
/initramfs
,$(1),$(2),$(3))
155 # build Seama header images
156 define BuildFirmware
/Seama
/squashfs
157 $(call BuildFirmware
/OF
,$(1),$(2),$(3),$(ralink_default_fw_size_8M
))
158 cat
$(KDIR
)/vmlinux-
$(2).bin.lzma
$(KDIR
)/root.
$(1) > $(KDIR
)/img_
$(2).
$(1).tmp
159 if
[ `stat -c%s "$(KDIR)/img_$(2).$(1).tmp"` -gt
8060864 ]; then \
160 echo
"Warning: $(KDIR)/img_$(2).$(1).tmp is too big" >&2; \
162 dd if
=$(KDIR
)/vmlinux-
$(2).bin.lzma of
=$(KDIR
)/vmlinux-
$(2).bin.lzma.padded bs
=64k conv
=sync
; \
164 dd if
=$(KDIR
)/vmlinux-
$(2).bin.lzma.padded bs
=1 count
=`expr \`stat
-c
%s
$(KDIR
)/vmlinux-
$(2).bin.lzma.padded\
` - 64`; \
165 dd if
=$(KDIR
)/root.
$(1) bs
=64k conv
=sync
; \
166 ) > $(KDIR
)/vmlinux-
$(2).tmp
; \
167 $(STAGING_DIR_HOST
)/bin
/seama \
168 -i
$(KDIR
)/vmlinux-
$(2).tmp \
169 -m
"dev=/dev/mtdblock/2" -m
"type=firmware"; \
170 $(STAGING_DIR_HOST
)/bin
/seama \
171 -s
$(call imgname
,$(1),$(2))-factory.bin \
172 -m
"signature=$(4)" \
173 -i
$(KDIR
)/vmlinux-
$(2).tmp.seama
; \
176 BuildFirmware
/Seama
/initramfs
=$(call BuildFirmware
/OF
/initramfs
,$(1),$(2),$(3))
178 # sign Buffalo images
179 define BuildFirmware
/Buffalo
180 if
[ -e
"$(call sysupname,$(1),$(2))" ]; then \
181 buffalo-enc
-p
$(3) -v
1.76 \
182 -i
$(KDIR
)/vmlinux-
$(2).uImage \
183 -o
$(KDIR
)/vmlinux-
$(2).uImage.enc
; \
184 buffalo-enc
-p
$(3) -v
1.76 \
185 -i
$(KDIR
)/root.
$(1) \
186 -o
$(KDIR
)/root.
$(2).enc
; \
187 buffalo-tag
-b
$(3) -p
$(3) -a ram
-v
1.76 -m
1.01 \
188 -l mlang8
-f
1 -r EU \
189 -i
$(KDIR
)/vmlinux-
$(2).uImage.enc \
190 -i
$(KDIR
)/root.
$(2).enc \
191 -o
$(call imgname
,$(1),$(2))-factory-EU.bin
; \
195 # sign trednet / UMedia images
196 define BuildFirmware
/UMedia
/squashfs
197 $(call BuildFirmware
/Default8M
/$(1),$(1),$(2),$(3))
198 if
[ -e
"$(call sysupname,$(1),$(2))" ]; then \
199 fix-u-media-header
-T
0x46 -B
$(4) \
200 -i
$(call sysupname
,$(1),$(2)) \
201 -o
$(call imgname
,$(1),$(2))-factory.bin
; \
204 BuildFirmware
/UMedia
/initramfs
=$(call BuildFirmware
/OF
/initramfs
,$(1),$(2),$(3))
206 # sign dap 1350 based images
207 dap1350_mtd_size
=7667712
208 define BuildFirmware
/dap1350
/squashfs
209 $(call BuildFirmware
/CustomFlash
/$(1),$(1),$(2),$(3),$(dap1350_mtd_size
))
211 -i
$(call sysupname
,$(1),$(2)) \
212 -o
$(call imgname
,$(1),$(2))-factory.bin
214 BuildFirmware
/dap1350
/initramfs
=$(call BuildFirmware
/OF
/initramfs
,$(1),$(2),$(3))
221 belkin_f5d8235v1_mtd_size
=7929856
222 Image
/Build
/Profile
/F5D8235V1
=$(call BuildFirmware
/CustomFlash
/$(1),$(1),f5d8235v1
,F5D8235_V1
,$(belkin_f5d8235v1_mtd_size
))
224 Image
/Build
/Profile
/BR6524N
=$(call BuildFirmware
/Edimax
/$(1),$(1),br6524n
,BR6524N
,$(ralink_default_fw_size_4M
),CSYS
,WNRA
,0x50000,0xc0000)
226 Image
/Build
/Profile
/RTN15
=$(call BuildFirmware
/Default4M
/$(1),$(1),rt-n15
,RTN15
)
228 Image
/Build
/Profile
/V11STFE
=$(call BuildFirmware
/Default4M
/$(1),$(1),v11st-fe
,V11STFE
)
230 Image
/Build
/Profile
/WLITX4AG300N
=$(call BuildFirmware
/Default4M
/$(1),$(1),wli-tx4-ag300n
,WLI-TX4-AG300N
)
232 ifeq ($(SUBTARGET
),rt288x
)
233 define Image
/Build
/Profile
/Default
234 $(call Image
/Build
/Profile
/F5D8235V1
,$(1))
235 $(call Image
/Build
/Profile
/BR6524N
,$(1))
236 $(call Image
/Build
/Profile
/RTN15
,$(1))
237 $(call Image
/Build
/Profile
/V11STFE
,$(1))
238 $(call Image
/Build
/Profile
/WLITX4AG300N
,$(1))
248 edimax_3g6200n_mtd_size
=3735552
249 Image
/Build
/Profile
/3G6200N
=$(call BuildFirmware
/Edimax
/$(1),$(1),3g-6200n
,3G-6200N
,$(edimax_3g6200n_mtd_size
),CSYS
,3G62
,0x50000,0xc0000)
251 Image
/Build
/Profile
/3G6200NL
=$(call BuildFirmware
/Edimax
/$(1),$(1),3g-6200nl
,3G-6200NL
,$(edimax_3g6200n_mtd_size
),CSYS
,3G62
,0x50000,0xc0000)
253 Image
/Build
/Profile
/3G300M
=$(call BuildFirmware
/CustomFlashFactory
/$(1),$(1),3g300m
,3G300M
,$(ralink_default_fw_size_4M
),3G150M_SPI Kernel Image
,factory
)
255 Image
/Build
/Profile
/AIR3GII
=$(call BuildFirmware
/Default4M
/$(1),$(1),air3gii
,AIR3GII
)
257 define BuildFirmware
/UIMAGE_8M
258 $(call MkCombineduImage
,$(1),$(2),$(call mkcmdline
,$(3),$(4),$(5)) $(call mkmtd
/$(6),$(mtdlayout_8M
)),$(kernel_size_8M
),$(rootfs_size_8M
),$(7))
260 define Image
/Build
/Profile
/ALL02393G
261 $(call Image
/Build
/Template
/$(image_type
)/$(1),UIMAGE_8M
,all0239-3g
,ALL0239-3G
,ttyS1
,57600,phys
)
264 Image
/Build
/Profile
/ALL0256N
=$(call BuildFirmware
/DefaultDualSize
/$(1),$(1),all0256n
,ALL0256N
)
266 allnet_all5002_mtd_size
=33226752
267 Image
/Build
/Profile
/ALL5002
=$(call BuildFirmware
/CustomFlash
/$(1),$(1),all5002
,ALL5002
,$(allnet_all5002_mtd_size
))
269 argus_atp52b_mtd_size
=7995392
270 Image
/Build
/Profile
/ARGUS_ATP52B
=$(call BuildFirmware
/CustomFlash
/$(1),$(1),argus_atp52b
,ARGUS_ATP52B
,$(argus_atp52b_mtd_size
))
272 Image
/Build
/Profile
/BC2
=$(call BuildFirmware
/Default8M
/$(1),$(1),bc2
,BC2
)
274 broadway_mtd_size
=7929856
275 Image
/Build
/Profile
/BROADWAY
=$(call BuildFirmware
/CustomFlashFactory
/$(1),$(1),broadway
,BROADWAY
,$(broadway_mtd_size
),Broadway Kernel Image
,factory
)
277 Image
/Build
/Profile
/CARAMBOLA
=$(call BuildFirmware
/Default8M
/$(1),$(1),carambola
,CARAMBOLA
)
279 Image
/Build
/Profile
/D105
=$(call BuildFirmware
/Default4M
/$(1),$(1),d105
,D105
)
281 define BuildFirmware
/DIR300B1
/squashfs
282 $(call BuildFirmware
/Default4M
/$(1),$(1),$(2),$(3))
283 -mkwrgimg
-s
$(4) -d
/dev
/mtdblock
/2 \
284 -i
$(call sysupname
,$(1),$(2)) \
285 -o
$(call imgname
,$(1),$(2))-factory.bin
287 BuildFirmware
/DIR300B1
/initramfs
=$(call BuildFirmware
/OF
/initramfs
,$(1),$(2),$(3))
288 Image
/Build
/Profile
/DIR-300-B1
=$(call BuildFirmware
/DIR300B1
/$(1),$(1),dir-300-b1
,DIR-300-B1
,wrgn23_dlwbr_dir300b
)
289 Image
/Build
/Profile
/DIR-600-B1
=$(call BuildFirmware
/DIR300B1
/$(1),$(1),dir-600-b1
,DIR-600-B1
,wrgn23_dlwbr_dir600b
)
290 Image
/Build
/Profile
/DIR-600-B2
=$(call BuildFirmware
/DIR300B1
/$(1),$(1),dir-600-b2
,DIR-600-B2
,wrgn23_dlwbr_dir600b
)
291 Image
/Build
/Profile
/DIR-615-D
=$(call BuildFirmware
/DIR300B1
/$(1),$(1),dir-615-d
,DIR-615-D
,wrgn23_dlwbr_dir615d
)
293 Image
/Build
/Profile
/DIR-620-A1
=$(call BuildFirmware
/Default8M
/$(1),$(1),dir-620-a1
,DIR-620-A1
)
295 define BuildFirmware
/DIR615H1
/squashfs
296 $(call BuildFirmware
/Default4M
/$(1),$(1),dir-615-h1
,DIR-615-H1
)
297 -mkdir615h1
-e
$(call sysupname
,$(1),dir-615-h1
) \
298 -o
$(call imgname
,$(1),dir-615-h1
)-factory.bin
300 BuildFirmware
/DIR615H1
/initramfs
=$(call BuildFirmware
/OF
/initramfs
,$(1),dir-615-h1
,DIR-615-H1
)
301 Image
/Build
/Profile
/DIR615H1
=$(call BuildFirmware
/DIR615H1
/$(1),$(1))
303 Image
/Build
/Profile
/DAP1350
=$(call BuildFirmware
/dap1350
/$(1),$(1),dap-1350
,DAP-1350
,RT3052-AP-DAP1350-3
)
305 Image
/Build
/Profile
/DAP1350WW
=$(call BuildFirmware
/dap1350
/$(1),$(1),dap-1350WW
,DAP-1350
,RT3052-AP-DAP1350WW-3
)
307 Image
/Build
/Profile
/ESR-9753
=$(call BuildFirmware
/Default4M
/$(1),$(1),esr-9753
,ESR-9753
)
309 Image
/Build
/Profile
/HW550-3G
=$(call BuildFirmware
/Default8M
/$(1),$(1),hw550-3g
,HW550-3G
)
311 belkin_f5d8235v2_mtd_size
=7929856
312 Image
/Build
/Profile
/F5D8235V2
=$(call BuildFirmware
/CustomFlash
/$(1),$(1),f5d8235v2
,F5D8235_V2
,$(belkin_f5d8235v2_mtd_size
))
314 Image
/Build
/Profile
/FONERA20N
=$(call BuildFirmware
/Edimax
/$(1),$(1),fonera20n
,FONERA20N
,$(ralink_default_fw_size_8M
),RSDK
,NL1T
,0x50000,0xc0000)
316 Image
/Build
/Profile
/RT-N13U
=$(call BuildFirmware
/Default8M
/$(1),$(1),rt-n13u
,RT-N13U
)
318 Image
/Build
/Profile
/FREESTATION5
=$(call BuildFirmware
/Default8M
/$(1),$(1),freestation5
,FREESTATION5
)
320 Image
/Build
/Profile
/MOFI3500-3GN
=$(call BuildFirmware
/Default8M
/$(1),$(1),mofi3500-3gn
,MOFI3500-3GN
)
322 Image
/Build
/Profile
/NBG-419N
=$(call BuildFirmware
/Default4M
/$(1),$(1),nbg-419n
,NBG-419N
)
324 Image
/Build
/Profile
/MZKW300NH2
=$(call BuildFirmware
/Edimax
/$(1),$(1),mzk-w300nh2
,MZK-W300NH2
,$(mzkw300nh2_mtd_size
),CSYS
,RN52
,0x50000,0xc0000)
326 nw718_mtd_size
=3801088
327 Image
/Build
/Profile
/NW718
=$(call BuildFirmware
/CustomFlashFactory
/$(1),$(1),nw718m
,NW718
,$(nw718_mtd_size
),ARA1B4NCRNW718
;1,factory
)
329 Image
/Build
/Profile
/OMNI-EMB
=$(call BuildFirmware
/Default8M
/$(1),$(1),omni-emb
,OMNI-EMB
)
331 Image
/Build
/Profile
/PSR-680W
=$(call BuildFirmware
/Default4M
/$(1),$(1),psr-680w
,PSR-680W
)
333 Image
/Build
/Profile
/PWH2004
=$(call BuildFirmware
/Default8M
/$(1),$(1),pwh2004
,PWH2004
)
335 Image
/Build
/Profile
/RTG32B1
=$(call BuildFirmware
/Default4M
/$(1),$(1),rt-g32-b1
,RT-G32-B1
)
337 Image
/Build
/Profile
/RTN10PLUS
=$(call BuildFirmware
/Default4M
/$(1),$(1),rt-n10-plus
,RT-N10-PLUS
)
339 Image
/Build
/Profile
/SL-R7205
=$(call BuildFirmware
/Default4M
/$(1),$(1),sl-r7205
,SL-R7205
)
341 Image
/Build
/Profile
/V22RW-2X2
=$(call BuildFirmware
/Default4M
/$(1),$(1),v22rw-2x2
,V22RW-2X2
)
343 Image
/Build
/Profile
/W306R_V20
=$(call BuildFirmware
/CustomFlashFactory
/$(1),$(1),w306r-v20
,W306R_V20
,$(ralink_default_fw_size_4M
),linkn Kernel Image
,factory
)
345 Image
/Build
/Profile
/W502U
=$(call BuildFirmware
/Default8M
/$(1),$(1),w502u
,W502U
)
347 Image
/Build
/Profile
/WCR150GN
=$(call BuildFirmware
/Default4M
/$(1),$(1),wcr150gn
,WCR150GN
)
349 buffalo_whrg300n_mtd_size
=3801088
350 define BuildFirmware
/WHRG300N
/squashfs
351 $(call BuildFirmware
/Default4M
/$(1),$(1),whr-g300n
,WHR-G300N
)
352 # the following line has a bad argument 3 ... the old Makefile was already broken
353 $(call BuildFirmware
/Buffalo
,$(1),whr-g300n
,whr-g300n
)
355 echo
-n
-e
"# Airstation FirmWare\nrun u_fw\nreset\n\n" | \
356 dd bs
=512 count
=1 conv
=sync
; \
357 dd if
=$(call sysupname
,$(1),whr-g300n
); \
358 ) > $(KDIR
)/whr-g300n-tftp.tmp
359 buffalo-tftp
-i
$(KDIR
)/whr-g300n-tftp.tmp \
360 -o
$(call imgname
,$(1),whr-g300n
)-tftp.bin
362 BuildFirmware
/WHRG300N
/initramfs
=$(call BuildFirmware
/OF
/initramfs
,$(1),whr-g300n
,WHR-G300N
)
363 Image
/Build
/Profile
/WHRG300N
=$(call BuildFirmware
/WHRG300N
/$(1),$(1))
365 Image
/Build
/Profile
/WL_330N
=$(call BuildFirmware
/Default4M
/$(1),$(1),wl-330n
,WL_330N
)
367 Image
/Build
/Profile
/WL_330N3G
=$(call BuildFirmware
/Default4M
/$(1),$(1),wl-330n3g
,WL_330N3G
)
369 kernel_size_wl341v3
=917504
370 rootfs_size_wl341v3
=2949120
371 define BuildFirmware
/WL341V3
/squashfs
372 $(call BuildFirmware
/Default4M
/$(1),$(1),wl341v3
,WL341V3
)
373 # This code looks broken and really needs to be converted to C
374 if
[ -e
"$(call sysupname,$(1),$(2))" ]; then \
376 dd if
=/dev
/zero bs
=195936 count
=1; \
378 dd if
=/dev
/zero bs
=581 count
=1; \
379 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"; \
380 dd if
=/dev
/zero bs
=65552 count
=1; \
381 dd if
=$(KDIR
)/vmlinux-
$(2).uImage bs
=$(kernel_size_wl341v3
) conv
=sync
; \
382 dd if
=$(KDIR
)/root.
$(1) bs
=64k conv
=sync
; \
383 dd if
=/dev
/zero bs
=`expr 4194304 - 262144 - 16 - $(kernel_size_wl341v3) - \( \( \( \`stat
-c
%s
$(KDIR
)/root.
$(1)\
` / 65536 \) + 1 \) \* 65536 \)` count
=1; \
384 echo
-n
-e
"\x11\x03\x80\x00\x10\x12\x90\xF7\x65\x52\x63\x4F\x6D\x4D\x00\x00"; \
385 ) > $(call imgname
,$(1),$(2))-factory.bin
; \
388 BuildFirmware
/WL341V3
/initramfs
=$(call BuildFirmware
/OF
/initramfs
,$(1),wl341v3
,WL341V3
)
389 Image
/Build
/Profile
/WL341V3
=$(call BuildFirmware
/WL341V3
/$(1),$(1))
391 Image
/Build
/Profile
/WL-351
=$(call BuildFirmware
/Default4M
/$(1),$(1),wl-351
,WL-351
)
393 Image
/Build
/Profile
/WR512-3GN
=$(call BuildFirmware
/DefaultDualSize
/$(1),$(1),wr512-3ng
,WR512-3GN
)
395 Image
/Build
/Profile
/UR-326N4G
=$(call BuildFirmware
/Default4M
/$(1),$(1),ur-326n4g
,UR-326N4G
)
397 Image
/Build
/Profile
/UR-336UN
=$(call BuildFirmware
/Default8M
/$(1),$(1),ur-336un
,UR-336UN
)
399 Image
/Build
/Profile
/WR6202
=$(call BuildFirmware
/Default8M
/$(1),$(1),wr6202
,WR6202
)
401 Image
/Build
/Profile
/XDXRN502J
=$(call BuildFirmware
/Default4M
/$(1),$(1),xdxrn502j
,XDXRN502J
)
403 ifeq ($(SUBTARGET
),rt305x
)
404 define Image
/Build
/Profile
/Default
405 $(call Image
/Build
/Profile
/3G6200N
,$(1))
406 $(call Image
/Build
/Profile
/3G6200NL
,$(1))
407 $(call Image
/Build
/Profile
/3G300M
,$(1))
408 $(call Image
/Build
/Profile
/AIR3GII
,$(1))
409 $(call Image
/Build
/Profile
/ALL02393G
,$(1))
410 $(call Image
/Build
/Profile
/ALL0256N
,$(1))
411 $(call Image
/Build
/Profile
/ALL5002
,$(1))
412 $(call Image
/Build
/Profile
/ARGUS_ATP52B
,$(1))
413 $(call Image
/Build
/Profile
/BC2
,$(1))
414 $(call Image
/Build
/Profile
/BROADWAY
,$(1))
415 $(call Image
/Build
/Profile
/CARAMBOLA
,$(1))
416 $(call Image
/Build
/Profile
/D105
,$(1))
417 $(call Image
/Build
/Profile
/DIR-300-B1
,$(1))
418 $(call Image
/Build
/Profile
/DIR-600-B1
,$(1))
419 $(call Image
/Build
/Profile
/DIR-600-B2
,$(1))
420 $(call Image
/Build
/Profile
/DIR-615-D
,$(1))
421 $(call Image
/Build
/Profile
/DIR-620-A1
,$(1))
422 $(call Image
/Build
/Profile
/DIR615H1
,$(1))
423 $(call Image
/Build
/Profile
/DAP1350
,$(1))
424 $(call Image
/Build
/Profile
/DAP1350WW
,$(1))
425 $(call Image
/Build
/Profile
/ESR-9753
,$(1))
426 $(call Image
/Build
/Profile
/F5D8235V2
,$(1))
427 $(call Image
/Build
/Profile
/FONERA20N
,$(1))
428 $(call Image
/Build
/Profile
/FREESTATION5
,$(1))
429 $(call Image
/Build
/Profile
/HW550-3G
,$(1))
430 $(call Image
/Build
/Profile
/MOFI3500-3GN
,$(1))
431 $(call Image
/Build
/Profile
/MZKW300NH2
,$(1))
432 $(call Image
/Build
/Profile
/NBG-419N
,$(1))
433 $(call Image
/Build
/Profile
/NW718
,$(1))
434 $(call Image
/Build
/Profile
/OMNI-EMB
,$(1))
435 $(call Image
/Build
/Profile
/PSR-680W
,$(1))
436 $(call Image
/Build
/Profile
/PWH2004
,$(1))
437 $(call Image
/Build
/Profile
/RTG32B1
,$(1))
438 $(call Image
/Build
/Profile
/RTN10PLUS
,$(1))
439 $(call Image
/Build
/Profile
/RT-N13U
,$(1))
440 $(call Image
/Build
/Profile
/SL-R7205
,$(1))
441 $(call Image
/Build
/Profile
/UR-326N4G
,$(1))
442 $(call Image
/Build
/Profile
/V22RW-2X2
,$(1))
443 $(call Image
/Build
/Profile
/W306R_V20
,$(1))
444 $(call Image
/Build
/Profile
/W502U
,$(1))
445 $(call Image
/Build
/Profile
/WCR150GN
,$(1))
446 $(call Image
/Build
/Profile
/WHRG300N
,$(1))
447 $(call Image
/Build
/Profile
/WL_330N
,$(1))
448 $(call Image
/Build
/Profile
/WL_330N3G
,$(1))
449 $(call Image
/Build
/Profile
/WL341V3
,$(1))
450 $(call Image
/Build
/Profile
/WL-351
,$(1))
451 $(call Image
/Build
/Profile
/WR512-3GN
,$(1))
452 $(call Image
/Build
/Profile
/WR6202
,$(1))
453 $(call Image
/Build
/Profile
/XDXRN502J
,$(1))
460 # RT3662/RT3883 Profiles
462 Image
/Build
/Profile
/DIR645
=$(call BuildFirmware
/Seama
/$(1),$(1),dir-645
,DIR-645
,wrgn39_dlob.hans_dir645
)
464 omniembhpm_mtd_size
=16449536
465 Image
/Build
/Profile
/OMNIEMBHPM
=$(call BuildFirmware
/CustomFlash
/$(1),$(1),omni-emb-hpm
,OMNI-EMB-HPM
,$(omniembhpm_mtd_size
))
467 Image
/Build
/Profile
/RTN56U
=$(call BuildFirmware
/Default8M
/$(1),$(1),rt-n56u
,RTN56U
)
469 Image
/Build
/Profile
/TEW691GR
=$(call BuildFirmware
/UMedia
/$(1),$(1),tew-691gr
,TEW-691GR
,0x026910)
471 #Image/Build/Profile/TEW692GR=$(call BuildFirmware/UMedia/$(1),$(1),tew-692gr,TEW-692GR,0x026920)
473 ifeq ($(SUBTARGET
),rt3883
)
474 define Image
/Build
/Profile
/Default
475 $(call Image
/Build
/Profile
/DIR645
,$(1))
476 $(call Image
/Build
/Profile
/OMNIEMBHPM
,$(1))
477 $(call Image
/Build
/Profile
/RTN56U
,$(1))
478 $(call Image
/Build
/Profile
/TEW691GR
,$(1))
479 $(call Image
/Build
/Profile
/TEW692GR
,$(1))
487 define Image
/Build
/squashfs
488 $(call prepare_generic_squashfs
,$(KDIR
)/root.squashfs
)
491 define Image
/BuildKernel
492 cp
$(KDIR
)/vmlinux.elf
$(BIN_DIR
)/$(VMLINUX
).elf
493 cp
$(KDIR
)/vmlinux
$(BIN_DIR
)/$(VMLINUX
).bin
494 $(call CompressLzma
,$(KDIR
)/vmlinux
,$(KDIR
)/vmlinux.bin.lzma
)
495 $(call MkImage
,lzma
,$(KDIR
)/vmlinux.bin.lzma
,$(KDIR
)/uImage.lzma
)
496 cp
$(KDIR
)/uImage.lzma
$(BIN_DIR
)/$(UIMAGE
).bin
497 $(call Image
/Build
/Initramfs
)
501 $(call Image
/Build
/$(1))
502 dd if
=$(KDIR
)/root.
$(1) of
=$(BIN_DIR
)/$(IMG_PREFIX
)-root.
$(1) bs
=128k conv
=sync
503 $(call Image
/Build
/Profile
/$(PROFILE
),$(1))
506 $(eval
$(call BuildImage
))