[adm5120] generate firmware images for the CAS-700/771/790/861 devices
[openwrt.git] / target / linux / adm5120 / image / router_le.mk
1 #
2 # Copyright (C) 2007,2008 OpenWrt.org
3 #
4 # This is free software, licensed under the GNU General Public License v2.
5 # See /LICENSE for more information.
6 #
7
8 define trxedimax/jffs2-128k
9 -a 0x20000 -f $(KDIR)/root.jffs2-128k
10 endef
11
12 define trxedimax/jffs2-64k
13 -a 0x10000 -f $(KDIR)/root.jffs2-64k
14 endef
15
16 define trxedimax/squashfs
17 -a 1024 -f $(KDIR)/root.squashfs
18 endef
19
20 define Image/Build/TRXEdimax
21         $(STAGING_DIR_HOST)/bin/trx -o $(1) -f $(KDIR)/vmlinux.lzma \
22                 $(call trxedimax/$(2))
23 endef
24
25 define Image/Build/Compex
26         $(call Image/Build/Loader,$(2),gz,0x80500000,0,y,$(2))
27         $(call Image/Build/TRX,$(call imgname,$(1),$(2)).trx,$(1),$(KDIR)/loader-$(2).gz)
28 endef
29
30 define Image/Build/Edimax
31         $(call Image/Build/Loader,$(2),gz,0x80500000,0x6D8,y,$(2))
32         $(call Image/Build/TRXEdimax,$(call imgname,$(1),$(2)).trx,$(1))
33         $(STAGING_DIR_HOST)/bin/mkcsysimg -B $(2) -d -w \
34                 -r $(KDIR)/loader-$(2).gz::0x1000 \
35                 -x $(call imgname,$(1),$(2)).trx:0x10000 \
36                 -x $(JFFS2MARK):0x10000 \
37                 $(call imgname,$(1),$(2))-webui.bin
38         $(STAGING_DIR_HOST)/bin/mkcsysimg -B $(2) -d \
39                 -r $(KDIR)/loader-$(2).gz::0x1000 \
40                 -x $(call imgname,$(1),$(2)).trx:0x10000 \
41                 -x $(JFFS2MARK):0x10000 \
42                 $(call imgname,$(1),$(2))-xmodem.bin
43         rm -f $(call imgname,$(1),$(2)).trx
44 endef
45
46 define Image/Build/Infineon
47         $(call Image/Build/Loader,$(2),gz,0x80500000,0x6D8,y,$(2))
48         $(call Image/Build/TRXNoloader,$(call imgname,$(1),$(2)).trx,$(1))
49         dd if=$(KDIR)/loader-$(2).gz of=$(call imgname,$(1),$(2)).img bs=64k conv=sync
50         cat $(call imgname,$(1),$(2)).trx >> $(call imgname,$(1),$(2)).img
51 endef
52
53 define Image/Build/Cellvision2
54         # only for CAS-700/771/790/861
55         $(call Image/Build/Loader,$(2),gz,0x80500000,0x6D8,y,$(2))
56         $(call Image/Build/TRXNoloader,$(call imgname,$(1),$(2)).trx,$(1))
57         dd if=$(KDIR)/loader-$(2).gz of=$(call imgname,$(1),$(2)).bin bs=64k conv=sync
58         cat $(call imgname,$(1),$(2)).trx >> $(call imgname,$(1),$(2)).bin
59         echo -ne '\x14\x07\x24\x06$(2)' | dd bs=14 count=1 conv=sync >> $(call imgname,$(1),$(2)).bin
60         echo -ne 'OpenWrt\x00\x00\x00' >> $(call imgname,$(1),$(2)).bin
61 endef
62
63 define Image/Build/MyLoader
64         $(call Image/Build/Loader,$(2),gz,0x80500000,0)
65         $(call Image/Build/TRXNoloader,$(call imgname,$(1),$(2)).trx,$(1))
66         $(STAGING_DIR_HOST)/bin/mkmylofw -B $(2) \
67                 -p0x20000:0x10000:ahp:0x80001000 \
68                 -p0x30000:0 \
69                 -b0x20000:0x10000:h:$(KDIR)/loader-$(2).gz \
70                 -b0x30000:0::$(call imgname,$(1),$(2)).trx \
71                 $(call imgname,$(1),$(2)).bin
72 endef
73
74 #
75 # Cellvision CAS-700
76 #
77 define Image/Build/Board/CAS700
78         $(call Image/Build/Cellvision2,$(1),cas-700)
79 endef
80
81 define Image/Build/Board/CAS700/squashfs
82         $(call Image/Build/Board/CAS700,squashfs)
83 endef
84
85 define Image/Build/Board/CAS700/jffs2-64k
86         $(call Image/Build/Board/CAS700,jffs2-64k)
87 endef
88
89 define Image/Build/Board/CAS700/Initramfs
90         $(call Image/Build/LZMAKernel/Admboot,cas-700,gz)
91 endef
92
93 #
94 # Cellvision CAS-700W
95 #
96 define Image/Build/Board/CAS700W
97         $(call Image/Build/Cellvision2,$(1),cas-700w)
98 endef
99
100 define Image/Build/Board/CAS700W/squashfs
101         $(call Image/Build/Board/CAS700W,squashfs)
102 endef
103
104 define Image/Build/Board/CAS700W/jffs2-64k
105         $(call Image/Build/Board/CAS700W,jffs2-64k)
106 endef
107
108 define Image/Build/Board/CAS700W/Initramfs
109         $(call Image/Build/LZMAKernel/Admboot,cas-700w,gz)
110 endef
111
112 #
113 # Cellvision CAS-771
114 #
115 define Image/Build/Board/CAS771
116         $(call Image/Build/Cellvision2,$(1),cas-771)
117 endef
118
119 define Image/Build/Board/CAS771/squashfs
120         $(call Image/Build/Board/CAS771,squashfs)
121 endef
122
123 define Image/Build/Board/CAS771/jffs2-64k
124         $(call Image/Build/Board/CAS771,jffs2-64k)
125 endef
126
127 define Image/Build/Board/CAS771/Initramfs
128         $(call Image/Build/LZMAKernel/Admboot,cas-771,gz)
129 endef
130
131 #
132 # Cellvision CAS-771W
133 #
134 define Image/Build/Board/CAS771W
135         $(call Image/Build/Cellvision2,$(1),cas-771w)
136 endef
137
138 define Image/Build/Board/CAS771W/squashfs
139         $(call Image/Build/Board/CAS771W,squashfs)
140 endef
141
142 define Image/Build/Board/CAS771W/jffs2-64k
143         $(call Image/Build/Board/CAS771W,jffs2-64k)
144 endef
145
146 define Image/Build/Board/CAS771W/Initramfs
147         $(call Image/Build/LZMAKernel/Admboot,cas-771w,gz)
148 endef
149
150 #
151 # Cellvision CAS-790
152 #
153 define Image/Build/Board/CAS790
154         $(call Image/Build/Cellvision2,$(1),cas-790)
155 endef
156
157 define Image/Build/Board/CAS790/squashfs
158         $(call Image/Build/Board/CAS790,squashfs)
159 endef
160
161 define Image/Build/Board/CAS790/jffs2-64k
162         $(call Image/Build/Board/CAS790,jffs2-64k)
163 endef
164
165 define Image/Build/Board/CAS790/Initramfs
166         $(call Image/Build/LZMAKernel/Admboot,cas-790,gz)
167 endef
168
169 #
170 # Cellvision CAS-861
171 #
172 define Image/Build/Board/CAS861
173         $(call Image/Build/Cellvision2,$(1),cas-861)
174 endef
175
176 define Image/Build/Board/CAS861/squashfs
177         $(call Image/Build/Board/CAS861,squashfs)
178 endef
179
180 define Image/Build/Board/CAS861/jffs2-64k
181         $(call Image/Build/Board/CAS861,jffs2-64k)
182 endef
183
184 define Image/Build/Board/CAS861/Initramfs
185         $(call Image/Build/LZMAKernel/Admboot,cas-861,gz)
186 endef
187
188 #
189 # Cellvision CAS-861W
190 #
191 define Image/Build/Board/CAS861W
192         $(call Image/Build/Cellvision2,$(1),cas-861w)
193 endef
194
195 define Image/Build/Board/CAS861W/squashfs
196         $(call Image/Build/Board/CAS861W,squashfs)
197 endef
198
199 define Image/Build/Board/CAS861W/jffs2-64k
200         $(call Image/Build/Board/CAS861W,jffs2-64k)
201 endef
202
203 define Image/Build/Board/CAS861W/Initramfs
204         $(call Image/Build/LZMAKernel/Admboot,cas-861w,gz)
205 endef
206
207 #
208 # Compex NP27G
209 #
210 define Image/Build/Board/NP27G
211         $(call Image/Build/MyLoader,$(1),np27g)
212 endef
213
214 define Image/Build/Board/NP27G/squashfs
215         $(call Image/Build/Board/NP27G,squashfs)
216 endef
217
218 define Image/Build/Board/NP27G/jffs2-64k
219         $(call Image/Build/Board/NP27G,jffs2-64k)
220 endef
221
222 define Image/Build/Board/NP27G/Initramfs
223         $(call Image/Build/LZMAKernel/Generic,np27g,bin)
224 endef
225
226 #
227 # Compex NP28G
228 #
229 define Image/Build/Board/NP28G
230         $(call Image/Build/MyLoader,$(1),np28g)
231 endef
232
233 define Image/Build/Board/NP28G/squashfs
234         $(call Image/Build/Board/NP28G,squashfs)
235 endef
236
237 define Image/Build/Board/NP28G/jffs2-64k
238         $(call Image/Build/Board/NP28G,jffs2-64k)
239 endef
240
241 define Image/Build/Board/NP28G/Initramfs
242         $(call Image/Build/LZMAKernel/Generic,np28g,bin)
243 endef
244
245 #
246 # Compex WP54G
247 #
248 define Image/Build/Board/WP54G
249         $(call Image/Build/MyLoader,$(1),wp54g)
250 endef
251
252 define Image/Build/Board/WP54G/squashfs
253         $(call Image/Build/Board/WP54G,squashfs)
254 endef
255
256 define Image/Build/Board/WP54G/jffs2-64k
257         $(call Image/Build/Board/WP54G,jffs2-64k)
258 endef
259
260 define Image/Build/Board/WP54G/Initramfs
261         $(call Image/Build/LZMAKernel/Generic,wp54g,bin)
262 endef
263
264 #
265 # Compex WP54AG
266 #
267 define Image/Build/Board/WP54AG
268         $(call Image/Build/MyLoader,$(1),wp54ag)
269 endef
270
271 define Image/Build/Board/WP54AG/squashfs
272         $(call Image/Build/Board/WP54AG,squashfs)
273 endef
274
275 define Image/Build/Board/WP54AG/jffs2-64k
276         $(call Image/Build/Board/WP54AG,jffs2-64k)
277 endef
278
279 define Image/Build/Board/WP54AG/Initramfs
280         $(call Image/Build/LZMAKernel/Generic,wp54ag,bin)
281 endef
282
283 #
284 # Compex WPP54G
285 #
286 define Image/Build/Board/WPP54G
287         $(call Image/Build/MyLoader,$(1),wpp54g)
288 endef
289
290 define Image/Build/Board/WPP54G/squashfs
291         $(call Image/Build/Board/WPP54G,squashfs)
292 endef
293
294 define Image/Build/Board/WPP54G/jffs2-64k
295         $(call Image/Build/Board/WPP54G,jffs2-64k)
296 endef
297
298 define Image/Build/Board/WPP54G/Initramfs
299         $(call Image/Build/LZMAKernel/Generic,wpp54g,bin)
300 endef
301
302 #
303 # Compex WPP54AG
304 #
305 define Image/Build/Board/WPP54AG
306         $(call Image/Build/MyLoader,$(1),wpp54ag)
307 endef
308
309 define Image/Build/Board/WPP54AG/squashfs
310         $(call Image/Build/Board/WPP54AG,squashfs)
311 endef
312
313 define Image/Build/Board/WPP54AG/jffs2-64k
314         $(call Image/Build/Board/WPP54AG,jffs2-64k)
315 endef
316
317 define Image/Build/Board/WPP54AG/Initramfs
318         $(call Image/Build/LZMAKernel/Generic,wpp54ag,bin)
319 endef
320
321 #
322 # Compex WP54G-WRT
323 #
324 define Image/Build/Board/WP54GWRT
325         $(call Image/Build/Compex,$(1),wp54g-wrt)
326 endef
327
328 define Image/Build/Board/WP54GWRT/squashfs
329         $(call Image/Build/Board/WP54GWRT,squashfs)
330 endef
331
332 define Image/Build/Board/WP54GWRT/jffs2-64k
333         $(call Image/Build/Board/WP54GWRT,jffs2-64k)
334 endef
335
336 define Image/Build/Board/WP54GWRT/Initramfs
337         $(call Image/Build/LZMAKernel/KArgs,wp54g-wrt,bin)
338 endef
339
340 #
341 # Edimax BR-6104K
342 #
343 define Image/Build/Board/BR6104K
344         $(call Image/Build/Edimax,$(1),br-6104k)
345 endef
346
347 define Image/Build/Board/BR6104K/squashfs
348         $(call Image/Build/Board/BR6104K,squashfs)
349 endef
350
351 define Image/Build/Board/BR6104K/Initramfs
352         $(call Image/Build/LZMAKernel/Admboot,br-6104k,gz)
353 endef
354
355 #
356 # Edimax BR-6104KP
357 #
358 define Image/Build/Board/BR6104KP
359         $(call Image/Build/Edimax,$(1),br-6104kp)
360 endef
361
362 define Image/Build/Board/BR6104KP/squashfs
363         $(call Image/Build/Board/BR6104KP,squashfs)
364 endef
365
366 define Image/Build/Board/BR6104KP/Initramfs
367         $(call Image/Build/LZMAKernel/Admboot,br-6104kp,gz)
368 endef
369
370 #
371 # Edimax BR-6104WG
372 #
373 define Image/Build/Board/BR6104WG
374         $(call Image/Build/Edimax,$(1),br-6104wg)
375 endef
376
377 define Image/Build/Board/BR6104WG/squashfs
378         $(call Image/Build/Board/BR6104WG,squashfs)
379 endef
380
381 define Image/Build/Board/BR6104WG/Initramfs
382         $(call Image/Build/LZMAKernel/Admboot,br-6104wg,gz)
383 endef
384
385 #
386 # Conceptronic C54BSR4
387 #
388 define Image/Build/Board/C54BSR4
389         $(call Image/Build/Edimax,$(1),c54bsr4)
390 endef
391
392 define Image/Build/Board/C54BSR4/squashfs
393         $(call Image/Build/Board/C54BSR4,squashfs)
394 endef
395
396 define Image/Build/Board/C54BSR4/Initramfs
397         $(call Image/Build/LZMAKernel/Admboot,c54bsr4,gz)
398 endef
399
400 #
401 # Infineon EASY 83000
402 #
403 define Image/Build/Board/EASY83000
404         $(call Image/Build/Infineon,$(1),easy-83000)
405 endef
406
407 define Image/Build/Board/EASY83000/squashfs
408         $(call Image/Build/Board/EASY83000,squashfs)
409 endef
410
411 define Image/Build/Board/EASY83000/jffs2-64k
412         $(call Image/Build/Board/EASY83000,jffs2-64k)
413 endef
414
415 define Image/Build/Board/EASY83000/Initramfs
416         $(call Image/Build/LZMAKernel/Admboot,easy-83000,gz)
417 endef
418
419 #
420 # Mikrotik RB-1xx
421 #
422 define Image/Build/Board/RB1xx/Initramfs
423         $(CP) $(KDIR)/vmlinux.elf $(call imgname,netboot,rb1xx)
424 endef
425
426 #
427 # Groups
428 #
429 define Image/Build/Group/Cellvision
430         $(call Image/Build/Board/CAS700/$(1))
431         $(call Image/Build/Board/CAS700W/$(1))
432         $(call Image/Build/Board/CAS771/$(1))
433         $(call Image/Build/Board/CAS771W/$(1))
434         $(call Image/Build/Board/CAS790/$(1))
435         $(call Image/Build/Board/CAS861/$(1))
436         $(call Image/Build/Board/CAS861W/$(1))
437 endef
438
439 define Image/Build/Group/WP54G
440         $(call Image/Build/Board/WP54G/$(1))
441         $(call Image/Build/Board/WP54AG/$(1))
442         $(call Image/Build/Board/WPP54G/$(1))
443         $(call Image/Build/Board/WPP54AG/$(1))
444         $(call Image/Build/Board/WP54GWRT/$(1))
445 endef
446
447 define Image/Build/Group/Compex
448         $(call Image/Build/Board/NP27G/$(1))
449         $(call Image/Build/Board/NP28G/$(1))
450         $(call Image/Build/Group/WP54G,$(1))
451 endef
452
453 define Image/Build/Group/Conceptronic
454         $(call Image/Build/Board/C54BSR4/$(1))
455 endef
456
457 define Image/Build/Group/Edimax
458         $(call Image/Build/Board/BR6104K/$(1))
459         $(call Image/Build/Board/BR6104KP/$(1))
460         $(call Image/Build/Board/BR6104WG/$(1))
461 endef
462
463 define Image/Build/Group/Infineon
464         $(call Image/Build/Board/EASY83000/$(1))
465 endef
466
467 define Image/Build/Group/All
468         $(call Image/Build/Group/Cellvision,$(1))
469         $(call Image/Build/Group/Compex,$(1))
470         $(call Image/Build/Group/Conceptronic,$(1))
471         $(call Image/Build/Group/Edimax,$(1))
472         $(call Image/Build/Group/Cellvision,$(1))
473         $(call Image/Build/Group/Infineon,$(1))
474         $(call Image/Build/Board/RB1xx/$(1))
475 endef
476
477 #
478 # Profiles
479 #
480 define Image/Build/Profile/Generic
481         $(call Image/Build/Group/All,$(1))
482 endef
483
484 define Image/Build/Profile/Atheros
485         $(call Image/Build/AllBoards,$(1))
486 endef
487
488 define Image/Build/Profile/Texas
489         $(call Image/Build/AllBoards,$(1))
490 endef
491
492 define Image/Build/Profile/Ralink
493         $(call Image/Build/AllBoards,$(1))
494 endef
495
496 define Image/Build/Profile/WP54G
497         $(call Image/Build/Group/WP54G,$(1))
498 endef
499
500 define Image/Build/Profile/NP27G
501         $(call Image/Build/Board/NP27G/$(1))
502 endef
503
504 define Image/Build/Profile/NP28G
505         $(call Image/Build/Board/NP28G/$(1))
506 endef
507
508 define Image/Build/Profile/CAS700
509         $(call Image/Build/Board/CAS700/$(1))
510 endef
511
512 define Image/Build/Profile/CAS700W
513         $(call Image/Build/Board/CAS700W/$(1))
514 endef
515
516 define Image/Build/Profile/CAS771
517         $(call Image/Build/Board/CAS771/$(1))
518 endef
519
520 define Image/Build/Profile/CAS771W
521         $(call Image/Build/Board/CAS771W/$(1))
522 endef
523
524 define Image/Build/Profile/CAS790
525         $(call Image/Build/Board/CAS790/$(1))
526 endef
527
528 define Image/Build/Profile/CAS861
529         $(call Image/Build/Board/CAS861/$(1))
530 endef
531
532 define Image/Build/Profile/CAS861W
533         $(call Image/Build/Board/CAS861W/$(1))
534 endef
535
536 define Image/Build/Profile/BR6104K
537         $(call Image/Build/Board/BR6104K/$(1))
538 endef
539
540 define Image/Build/Profile/BR6104KP
541         $(call Image/Build/Board/BR6104KP/$(1))
542 endef
543
544 define Image/Build/Profile/C54BSR4
545         $(call Image/Build/Board/C54BSR4/$(1))
546 endef
547
548 define Image/Build/Profile/RouterBoard
549         $(call Image/Build/Board/RB1xx/$(1))
550 endef
551
552 ifeq ($(PROFILE),RouterBoard)
553   define Image/cmdline/yaffs2
554         root=/dev/mtdblock3 rootfstype=yaffs2 init=/etc/preinit
555   endef
556
557   define Image/BuildKernel/RouterBoard
558         $(CP) $(KDIR)/vmlinux.elf $(call imgname,kernel,rb1xx)
559         $(STAGING_DIR_HOST)/bin/patch-cmdline $(call imgname,kernel,rb1xx) \
560                 '$(strip $(call Image/cmdline/yaffs2))'
561   endef
562
563   ifneq ($(CONFIG_TARGET_ROOTFS_INITRAMFS),y)
564     define Image/BuildKernel
565         $(call Image/BuildKernel/RouterBoard)
566     endef
567   endif
568
569 endif
570