* Patch by Stephan Linz, 28 Oct 2003:
[platform/kernel/u-boot.git] / Makefile
1 #
2 # (C) Copyright 2000, 2001, 2002
3 # Wolfgang Denk, DENX Software Engineering, wd@denx.de.
4 #
5 # See file CREDITS for list of people who contributed to this
6 # project.
7 #
8 # This program is free software; you can redistribute it and/or
9 # modify it under the terms of the GNU General Public License as
10 # published by the Free Software Foundation; either version 2 of
11 # the License, or (at your option) any later version.
12 #
13 # This program is distributed in the hope that it will be useful,
14 # but WITHOUT ANY WARRANTY; without even the implied warranty of
15 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16 # GNU General Public License for more details.
17 #
18 # You should have received a copy of the GNU General Public License
19 # along with this program; if not, write to the Free Software
20 # Foundation, Inc., 59 Temple Place, Suite 330, Boston,
21 # MA 02111-1307 USA
22 #
23
24 HOSTARCH := $(shell uname -m | \
25         sed -e s/i.86/i386/ \
26             -e s/sun4u/sparc64/ \
27             -e s/arm.*/arm/ \
28             -e s/sa110/arm/ \
29             -e s/powerpc/ppc/ \
30             -e s/macppc/ppc/)
31
32 HOSTOS := $(shell uname -s | tr A-Z a-z | \
33             sed -e 's/\(cygwin\).*/cygwin/')
34
35 export  HOSTARCH
36
37 # Deal with colliding definitions from tcsh etc.
38 VENDOR=
39
40 #########################################################################
41
42 TOPDIR  := $(shell if [ "$$PWD" != "" ]; then echo $$PWD; else pwd; fi)
43 export  TOPDIR
44
45 ifeq (include/config.mk,$(wildcard include/config.mk))
46 # load ARCH, BOARD, and CPU configuration
47 include include/config.mk
48 export  ARCH CPU BOARD VENDOR
49 # load other configuration
50 include $(TOPDIR)/config.mk
51
52 ifndef CROSS_COMPILE
53 ifeq ($(HOSTARCH),ppc)
54 CROSS_COMPILE =
55 else
56 ifeq ($(ARCH),ppc)
57 CROSS_COMPILE = ppc_8xx-
58 endif
59 ifeq ($(ARCH),arm)
60 CROSS_COMPILE = arm-linux-
61 endif
62 ifeq ($(ARCH),i386)
63 ifeq ($(HOSTARCH),i386)
64 CROSS_COMPILE =
65 else
66 CROSS_COMPILE = i386-linux-
67 endif
68 endif
69 ifeq ($(ARCH),mips)
70 CROSS_COMPILE = mips_4KC-
71 endif
72 ifeq ($(ARCH),nios)
73 CROSS_COMPILE = nios-elf-
74 endif
75 endif
76 endif
77
78 export  CROSS_COMPILE
79
80 # The "tools" are needed early, so put this first
81 SUBDIRS = tools \
82           examples \
83           lib_generic \
84           lib_$(ARCH) \
85           cpu/$(CPU) \
86           board/$(BOARDDIR) \
87           common \
88           disk \
89           fs \
90           net \
91           rtc \
92           dtt \
93           drivers \
94           drivers/sk98lin \
95           post \
96           post/cpu
97
98 #########################################################################
99 # U-Boot objects....order is important (i.e. start must be first)
100
101 OBJS  = cpu/$(CPU)/start.o
102 ifeq ($(CPU),i386)
103 OBJS += cpu/$(CPU)/start16.o
104 OBJS += cpu/$(CPU)/reset.o
105 endif
106 ifeq ($(CPU),ppc4xx)
107 OBJS += cpu/$(CPU)/resetvec.o
108 endif
109 ifeq ($(CPU),mpc85xx)
110 OBJS += cpu/$(CPU)/resetvec.o
111 endif
112
113 LIBS  = board/$(BOARDDIR)/lib$(BOARD).a
114 LIBS += cpu/$(CPU)/lib$(CPU).a
115 LIBS += lib_$(ARCH)/lib$(ARCH).a
116 LIBS += fs/jffs2/libjffs2.a fs/fdos/libfdos.a fs/fat/libfat.a
117 LIBS += net/libnet.a
118 LIBS += disk/libdisk.a
119 LIBS += rtc/librtc.a
120 LIBS += dtt/libdtt.a
121 LIBS += drivers/libdrivers.a
122 LIBS += drivers/sk98lin/libsk98lin.a
123 LIBS += post/libpost.a post/cpu/libcpu.a
124 LIBS += common/libcommon.a
125 LIBS += lib_generic/libgeneric.a
126 # Add GCC lib
127 PLATFORM_LIBS += -L $(shell dirname `$(CC) $(CFLAGS) -print-libgcc-file-name`) -lgcc
128
129 #########################################################################
130 #########################################################################
131
132 ALL = u-boot.srec u-boot.bin System.map
133
134 all:            $(ALL)
135
136 u-boot.srec:    u-boot
137                 $(OBJCOPY) ${OBJCFLAGS} -O srec $< $@
138
139 u-boot.bin:     u-boot
140                 $(OBJCOPY) ${OBJCFLAGS} -O binary $< $@
141
142 u-boot.img:     u-boot.bin
143                 ./tools/mkimage -A $(ARCH) -T firmware -C none \
144                 -a $(TEXT_BASE) -e 0 \
145                 -n $(shell sed -n -e 's/.*U_BOOT_VERSION//p' include/version.h | \
146                         sed -e 's/"[     ]*$$/ for $(BOARD) board"/') \
147                 -d $< $@
148
149 u-boot.dis:     u-boot
150                 $(OBJDUMP) -d $< > $@
151
152 u-boot:         depend subdirs $(OBJS) $(LIBS) $(LDSCRIPT)
153                 UNDEF_SYM=`$(OBJDUMP) -x $(LIBS) |sed  -n -e 's/.*\(__u_boot_cmd_.*\)/-u\1/p'|sort|uniq`;\
154                 $(LD) $(LDFLAGS) $$UNDEF_SYM $(OBJS) \
155                         --start-group $(LIBS) $(PLATFORM_LIBS) --end-group \
156                         -Map u-boot.map -o u-boot
157
158 subdirs:
159                 @for dir in $(SUBDIRS) ; do $(MAKE) -C $$dir || exit 1 ; done
160
161 gdbtools:
162                 $(MAKE) -C tools/gdb || exit 1
163
164 depend dep:
165                 @for dir in $(SUBDIRS) ; do $(MAKE) -C $$dir .depend ; done
166
167 tags:
168                 ctags -w `find $(SUBDIRS) include \
169                         \( -name CVS -prune \) -o \( -name '*.[ch]' -print \)`
170
171 etags:
172                 etags -a `find $(SUBDIRS) include \
173                         \( -name CVS -prune \) -o \( -name '*.[ch]' -print \)`
174
175 System.map:     u-boot
176                 @$(NM) $< | \
177                 grep -v '\(compiled\)\|\(\.o$$\)\|\( [aUw] \)\|\(\.\.ng$$\)\|\(LASH[RL]DI\)' | \
178                 sort > System.map
179
180 #########################################################################
181 else
182 all install u-boot u-boot.srec depend dep:
183         @echo "System not configured - see README" >&2
184         @ exit 1
185 endif
186
187 #########################################################################
188
189 unconfig:
190         rm -f include/config.h include/config.mk
191
192 #========================================================================
193 # PowerPC
194 #========================================================================
195
196 #########################################################################
197 ## MPC5xx Systems
198 #########################################################################
199
200 cmi_mpc5xx_config:      unconfig
201         @./mkconfig $(@:_config=) ppc mpc5xx cmi
202
203 #########################################################################
204 ## MPC5xxx Systems
205 #########################################################################
206 MPC5200LITE             \
207 icecube_5200_config     \
208 IceCube_5200_config     \
209 IceCube_5100_config:            unconfig
210         @ >include/config.h
211         @[ -z "$(findstring 5200,$@)" ] || \
212                 { echo "#define CONFIG_MPC5200"         >>include/config.h ; \
213                   echo "... with MPC5200 processor" ; \
214                 }
215         @[ -z "$(findstring 5100,$@)" ] || \
216                 { echo "#define CONFIG_MGT5100"         >>include/config.h ; \
217                   echo "... with MGT5100 processor" ; \
218                 }
219         @./mkconfig -a IceCube ppc mpc5xxx icecube
220
221 #########################################################################
222 ## MPC8xx Systems
223 #########################################################################
224
225 AdderII_config: unconfig
226         @./mkconfig $(@:_config=) ppc mpc8xx adderII
227
228 ADS860_config:  unconfig
229         @./mkconfig $(@:_config=) ppc mpc8xx fads
230
231 AMX860_config   :       unconfig
232         @./mkconfig $(@:_config=) ppc mpc8xx amx860 westel
233
234 c2mon_config:           unconfig
235         @./mkconfig $(@:_config=) ppc mpc8xx c2mon
236
237 CCM_config:             unconfig
238         @./mkconfig $(@:_config=) ppc mpc8xx CCM siemens
239
240 cogent_mpc8xx_config:   unconfig
241         @./mkconfig $(@:_config=) ppc mpc8xx cogent
242
243 ELPT860_config:         unconfig
244         @./mkconfig $(@:_config=) ppc mpc8xx elpt860 LEOX
245
246 ESTEEM192E_config:      unconfig
247         @./mkconfig $(@:_config=) ppc mpc8xx esteem192e
248
249 ETX094_config   :       unconfig
250         @./mkconfig $(@:_config=) ppc mpc8xx etx094
251
252 FADS823_config  \
253 FADS850SAR_config \
254 MPC86xADS_config \
255 FADS860T_config:        unconfig
256         @./mkconfig $(@:_config=) ppc mpc8xx fads
257
258 FLAGADM_config: unconfig
259         @./mkconfig $(@:_config=) ppc mpc8xx flagadm
260
261 xtract_GEN860T = $(subst _SC,,$(subst _config,,$1))
262
263 GEN860T_SC_config       \
264 GEN860T_config: unconfig
265         @ >include/config.h
266         @[ -z "$(findstring _SC,$@)" ] || \
267                 { echo "#define CONFIG_SC" >>include/config.h ; \
268                   echo "With reduced H/W feature set (SC)..." ; \
269                 }
270         @./mkconfig -a $(call xtract_GEN860T,$@) ppc mpc8xx gen860t
271
272 GENIETV_config: unconfig
273         @./mkconfig $(@:_config=) ppc mpc8xx genietv
274
275 GTH_config:     unconfig
276         @./mkconfig $(@:_config=) ppc mpc8xx gth
277
278 hermes_config   :       unconfig
279         @./mkconfig $(@:_config=) ppc mpc8xx hermes
280
281 IAD210_config: unconfig
282         @./mkconfig $(@:_config=) ppc mpc8xx IAD210 siemens
283
284 xtract_ICU862 = $(subst _100MHz,,$(subst _config,,$1))
285
286 ICU862_100MHz_config    \
287 ICU862_config: unconfig
288         @ >include/config.h
289         @[ -z "$(findstring _100MHz,$@)" ] || \
290                 { echo "#define CONFIG_100MHz"  >>include/config.h ; \
291                   echo "... with 100MHz system clock" ; \
292                 }
293         @./mkconfig -a $(call xtract_ICU862,$@) ppc mpc8xx icu862
294
295 IP860_config    :       unconfig
296         @./mkconfig $(@:_config=) ppc mpc8xx ip860
297
298 IVML24_256_config \
299 IVML24_128_config \
300 IVML24_config:  unconfig
301         @ >include/config.h
302         @[ -z "$(findstring IVML24_config,$@)" ] || \
303                  { echo "#define CONFIG_IVML24_16M"     >>include/config.h ; \
304                  }
305         @[ -z "$(findstring IVML24_128_config,$@)" ] || \
306                  { echo "#define CONFIG_IVML24_32M"     >>include/config.h ; \
307                  }
308         @[ -z "$(findstring IVML24_256_config,$@)" ] || \
309                  { echo "#define CONFIG_IVML24_64M"     >>include/config.h ; \
310                  }
311         @./mkconfig -a IVML24 ppc mpc8xx ivm
312
313 IVMS8_256_config \
314 IVMS8_128_config \
315 IVMS8_config:   unconfig
316         @ >include/config.h
317         @[ -z "$(findstring IVMS8_config,$@)" ] || \
318                  { echo "#define CONFIG_IVMS8_16M"      >>include/config.h ; \
319                  }
320         @[ -z "$(findstring IVMS8_128_config,$@)" ] || \
321                  { echo "#define CONFIG_IVMS8_32M"      >>include/config.h ; \
322                  }
323         @[ -z "$(findstring IVMS8_256_config,$@)" ] || \
324                  { echo "#define CONFIG_IVMS8_64M"      >>include/config.h ; \
325                  }
326         @./mkconfig -a IVMS8 ppc mpc8xx ivm
327
328 KUP4K_config    :       unconfig
329         @./mkconfig $(@:_config=) ppc mpc8xx kup4k
330
331 LANTEC_config   :       unconfig
332         @./mkconfig $(@:_config=) ppc mpc8xx lantec
333
334 lwmon_config:           unconfig
335         @./mkconfig $(@:_config=) ppc mpc8xx lwmon
336
337 MBX_config      \
338 MBX860T_config: unconfig
339         @./mkconfig $(@:_config=) ppc mpc8xx mbx8xx
340
341 MHPC_config:            unconfig
342         @./mkconfig $(@:_config=) ppc mpc8xx mhpc eltec
343
344 MVS1_config :           unconfig
345         @./mkconfig $(@:_config=) ppc mpc8xx mvs1
346
347 xtract_NETVIA = $(subst _V2,,$(subst _config,,$1))
348
349 NETVIA_V2_config \
350 NETVIA_config:          unconfig
351         @ >include/config.h
352         @[ -z "$(findstring NETVIA_config,$@)" ] || \
353                  { echo "#define CONFIG_NETVIA_VERSION 1" >>include/config.h ; \
354                   echo "... Version 1" ; \
355                  }
356         @[ -z "$(findstring NETVIA_V2_config,$@)" ] || \
357                  { echo "#define CONFIG_NETVIA_VERSION 2" >>include/config.h ; \
358                   echo "... Version 2" ; \
359                  }
360         @./mkconfig -a $(call xtract_NETVIA,$@) ppc mpc8xx netvia
361
362 NX823_config:           unconfig
363         @./mkconfig $(@:_config=) ppc mpc8xx nx823
364
365 pcu_e_config:           unconfig
366         @./mkconfig $(@:_config=) ppc mpc8xx pcu_e siemens
367
368 R360MPI_config: unconfig
369         @./mkconfig $(@:_config=) ppc mpc8xx r360mpi
370
371 RBC823_config:  unconfig
372         @./mkconfig $(@:_config=) ppc mpc8xx rbc823
373
374 RPXClassic_config:      unconfig
375         @./mkconfig $(@:_config=) ppc mpc8xx RPXClassic
376
377 RPXlite_config:         unconfig
378         @./mkconfig $(@:_config=) ppc mpc8xx RPXlite
379
380 rmu_config:     unconfig
381         @./mkconfig $(@:_config=) ppc mpc8xx rmu
382
383 RRvision_config:        unconfig
384         @./mkconfig $(@:_config=) ppc mpc8xx RRvision
385
386 RRvision_LCD_config:    unconfig
387         @echo "#define CONFIG_LCD" >include/config.h
388         @echo "#define CONFIG_SHARP_LQ104V7DS01" >>include/config.h
389         @./mkconfig -a RRvision ppc mpc8xx RRvision
390
391 SM850_config    :       unconfig
392         @./mkconfig $(@:_config=) ppc mpc8xx tqm8xx
393
394 SPD823TS_config:        unconfig
395         @./mkconfig $(@:_config=) ppc mpc8xx spd8xx
396
397 svm_sc8xx_config:       unconfig
398         @ >include/config.h
399         @./mkconfig $(@:_config=) ppc mpc8xx svm_sc8xx
400
401 SXNI855T_config:        unconfig
402         @./mkconfig $(@:_config=) ppc mpc8xx sixnet
403
404 # EMK MPC8xx based modules
405 TOP860_config:          unconfig
406         @./mkconfig $(@:_config=) ppc mpc8xx top860 emk
407
408 # Play some tricks for configuration selection
409 # All boards can come with 50 MHz (default), 66MHz, 80MHz or 100 MHz clock,
410 # but only 855 and 860 boards may come with FEC
411 # and 823 boards may have LCD support
412 xtract_8xx = $(subst _66MHz,,$(subst _80MHz,,$(subst _100MHz,,$(subst _LCD,,$(subst _config,,$1)))))
413
414 FPS850L_config          \
415 FPS860L_config          \
416 NSCU_config             \
417 TQM823L_config          \
418 TQM823L_66MHz_config    \
419 TQM823L_80MHz_config    \
420 TQM823L_LCD_config      \
421 TQM823L_LCD_66MHz_config \
422 TQM823L_LCD_80MHz_config \
423 TQM850L_config          \
424 TQM850L_66MHz_config    \
425 TQM850L_80MHz_config    \
426 TQM855L_config          \
427 TQM855L_66MHz_config    \
428 TQM855L_80MHz_config    \
429 TQM860L_config          \
430 TQM860L_66MHz_config    \
431 TQM860L_80MHz_config    \
432 TQM862L_config          \
433 TQM862L_66MHz_config    \
434 TQM862L_80MHz_config    \
435 TQM823M_config          \
436 TQM823M_66MHz_config    \
437 TQM823M_80MHz_config    \
438 TQM850M_config          \
439 TQM850M_66MHz_config    \
440 TQM850M_80MHz_config    \
441 TQM855M_config          \
442 TQM855M_66MHz_config    \
443 TQM855M_80MHz_config    \
444 TQM860M_config          \
445 TQM860M_66MHz_config    \
446 TQM860M_80MHz_config    \
447 TQM862M_config          \
448 TQM862M_66MHz_config    \
449 TQM862M_80MHz_config    \
450 TQM862M_100MHz_config:  unconfig
451         @ >include/config.h
452         @[ -z "$(findstring _66MHz,$@)" ] || \
453                 { echo "#define CONFIG_66MHz"           >>include/config.h ; \
454                   echo "... with 66MHz system clock" ; \
455                 }
456         @[ -z "$(findstring _80MHz,$@)" ] || \
457                 { echo "#define CONFIG_80MHz"           >>include/config.h ; \
458                   echo "... with 80MHz system clock" ; \
459                 }
460         @[ -z "$(findstring _100MHz,$@)" ] || \
461                 { echo "#define CONFIG_100MHz"          >>include/config.h ; \
462                   echo "... with 100MHz system clock" ; \
463                 }
464         @[ -z "$(findstring _LCD,$@)" ] || \
465                 { echo "#define CONFIG_LCD"             >>include/config.h ; \
466                   echo "#define CONFIG_NEC_NL6648BC20"  >>include/config.h ; \
467                   echo "... with LCD display" ; \
468                 }
469         @./mkconfig -a $(call xtract_8xx,$@) ppc mpc8xx tqm8xx
470
471 TTTech_config:  unconfig
472         @echo "#define CONFIG_LCD" >include/config.h
473         @echo "#define CONFIG_SHARP_LQ104V7DS01" >>include/config.h
474         @./mkconfig -a TQM823L ppc mpc8xx tqm8xx
475
476 v37_config:     unconfig
477         @echo "#define CONFIG_LCD" >include/config.h
478         @echo "#define CONFIG_SHARP_LQ084V1DG21" >>include/config.h
479         @./mkconfig $(@:_config=) ppc mpc8xx v37
480
481 wtk_config:     unconfig
482         @echo "#define CONFIG_LCD" >include/config.h
483         @echo "#define CONFIG_SHARP_LQ065T9DR51U" >>include/config.h
484         @./mkconfig -a TQM823L ppc mpc8xx tqm8xx
485
486 #########################################################################
487 ## PPC4xx Systems
488 #########################################################################
489 xtract_4xx = $(subst _MODEL_BA,,$(subst _MODEL_ME,,$(subst _MODEL_HI,,$(subst _config,,$1))))
490
491 ADCIOP_config:  unconfig
492         @./mkconfig $(@:_config=) ppc ppc4xx adciop esd
493
494 AR405_config:   unconfig
495         @./mkconfig $(@:_config=) ppc ppc4xx ar405 esd
496
497 ASH405_config:  unconfig
498         @./mkconfig $(@:_config=) ppc ppc4xx ash405 esd
499
500 BUBINGA405EP_config:unconfig
501         @./mkconfig $(@:_config=) ppc ppc4xx bubinga405ep
502
503 CANBT_config:   unconfig
504         @./mkconfig $(@:_config=) ppc ppc4xx canbt esd
505
506 CPCI405_config  \
507 CPCI4052_config \
508 CPCI405AB_config:       unconfig
509         @./mkconfig $(@:_config=) ppc ppc4xx cpci405 esd
510         @echo "BOARD_REVISION = $(@:_config=)"  >>include/config.mk
511
512 CPCI440_config: unconfig
513         @./mkconfig $(@:_config=) ppc ppc4xx cpci440 esd
514
515 CPCIISER4_config:       unconfig
516         @./mkconfig $(@:_config=) ppc ppc4xx cpciiser4 esd
517
518 CRAYL1_config:unconfig
519         @./mkconfig $(@:_config=) ppc ppc4xx L1 cray
520
521 DASA_SIM_config: unconfig
522         @./mkconfig $(@:_config=) ppc ppc4xx dasa_sim esd
523
524 DP405_config:   unconfig
525         @./mkconfig $(@:_config=) ppc ppc4xx dp405 esd
526
527 DU405_config:   unconfig
528         @./mkconfig $(@:_config=) ppc ppc4xx du405 esd
529
530 EBONY_config:unconfig
531         @./mkconfig $(@:_config=) ppc ppc4xx ebony
532
533 ERIC_config:unconfig
534         @./mkconfig $(@:_config=) ppc ppc4xx eric
535
536 EXBITGEN_config:unconfig
537         @./mkconfig $(@:_config=) ppc ppc4xx exbitgen
538
539 HUB405_config:  unconfig
540         @./mkconfig $(@:_config=) ppc ppc4xx hub405 esd
541
542 MIP405_config:unconfig
543         @./mkconfig $(@:_config=) ppc ppc4xx mip405 mpl
544
545 MIP405T_config:unconfig
546         @echo "#define CONFIG_MIP405T" >include/config.h
547         @echo "Enable subset config for MIP405T"
548         @./mkconfig -a MIP405 ppc ppc4xx mip405 mpl
549
550 ML2_config:unconfig
551         @./mkconfig $(@:_config=) ppc ppc4xx ml2
552
553 OCRTC_config            \
554 ORSG_config:    unconfig
555         @./mkconfig $(@:_config=) ppc ppc4xx ocrtc esd
556
557 PCI405_config:  unconfig
558         @./mkconfig $(@:_config=) ppc ppc4xx pci405 esd
559
560 PIP405_config:unconfig
561         @./mkconfig $(@:_config=) ppc ppc4xx pip405 mpl
562
563 PLU405_config:  unconfig
564         @./mkconfig $(@:_config=) ppc ppc4xx plu405 esd
565
566 PMC405_config:  unconfig
567         @./mkconfig $(@:_config=) ppc ppc4xx pmc405 esd
568
569 PPChameleonEVB_MODEL_BA_config  \
570 PPChameleonEVB_MODEL_ME_config  \
571 PPChameleonEVB_MODEL_HI_config  \
572 PPChameleonEVB_config:  unconfig
573         @ >include/config.h
574         @[ -z "$(findstring _MODEL_BA,$@)" ] || \
575                 { echo "#define CONFIG_PPCHAMELEON_MODULE_MODEL 0" >>include/config.h ; \
576                   echo "... BASIC model" ; \
577                 }
578         @[ -z "$(findstring _MODEL_ME,$@)" ] || \
579                 { echo "#define CONFIG_PPCHAMELEON_MODULE_MODEL 1" >>include/config.h ; \
580                   echo "... MEDIUM model" ; \
581                 }
582         @[ -z "$(findstring _MODEL_HI,$@)" ] || \
583                 { echo "#define CONFIG_PPCHAMELEON_MODULE_MODEL 2" >>include/config.h ; \
584                   echo "... HIGH-END model" ; \
585                 }
586         @./mkconfig -a $(call xtract_4xx,$@) ppc ppc4xx PPChameleonEVB dave
587
588 VOH405_config:  unconfig
589         @./mkconfig $(@:_config=) ppc ppc4xx voh405 esd
590
591 W7OLMC_config   \
592 W7OLMG_config: unconfig
593         @./mkconfig $(@:_config=) ppc ppc4xx w7o
594
595 WALNUT405_config:unconfig
596         @./mkconfig $(@:_config=) ppc ppc4xx walnut405
597
598 #########################################################################
599 ## MPC824x Systems
600 #########################################################################
601 xtract_82xx = $(subst _ROMBOOT,,$(subst _L2,,$(subst _266MHz,,$(subst _300MHz,,$(subst _config,,$1)))))
602
603 A3000_config: unconfig
604         @./mkconfig $(@:_config=) ppc mpc824x a3000
605
606 BMW_config: unconfig
607         @./mkconfig $(@:_config=) ppc mpc824x bmw
608
609 CPC45_config    \
610 CPC45_ROMBOOT_config:   unconfig
611         @./mkconfig $(call xtract_82xx,$@) ppc mpc824x cpc45
612         @cd ./include ;                         \
613         if [ "$(findstring _ROMBOOT_,$@)" ] ; then \
614                 echo "CONFIG_BOOT_ROM = y" >> config.mk ; \
615                 echo "... booting from 8-bit flash" ; \
616         else \
617                 echo "CONFIG_BOOT_ROM = n" >> config.mk ; \
618                 echo "... booting from 64-bit flash" ; \
619         fi; \
620         echo "export CONFIG_BOOT_ROM" >> config.mk;
621
622 CU824_config: unconfig
623         @./mkconfig $(@:_config=) ppc mpc824x cu824
624
625 MOUSSE_config: unconfig
626         @./mkconfig $(@:_config=) ppc mpc824x mousse
627
628 MUSENKI_config: unconfig
629         @./mkconfig $(@:_config=) ppc mpc824x musenki
630
631 OXC_config: unconfig
632         @./mkconfig $(@:_config=) ppc mpc824x oxc
633
634 PN62_config: unconfig
635         @./mkconfig $(@:_config=) ppc mpc824x pn62
636
637 Sandpoint8240_config: unconfig
638         @./mkconfig $(@:_config=) ppc mpc824x sandpoint
639
640 Sandpoint8245_config: unconfig
641         @./mkconfig $(@:_config=) ppc mpc824x sandpoint
642
643 SL8245_config: unconfig
644         @./mkconfig $(@:_config=) ppc mpc824x sl8245
645
646 utx8245_config: unconfig
647         @./mkconfig $(@:_config=) ppc mpc824x utx8245
648
649 #########################################################################
650 ## MPC8260 Systems
651 #########################################################################
652
653 atc_config:     unconfig
654         @./mkconfig $(@:_config=) ppc mpc8260 atc
655
656 cogent_mpc8260_config:  unconfig
657         @./mkconfig $(@:_config=) ppc mpc8260 cogent
658
659 CPU86_config    \
660 CPU86_ROMBOOT_config: unconfig
661         @./mkconfig $(call xtract_82xx,$@) ppc mpc8260 cpu86
662         @cd ./include ;                         \
663         if [ "$(findstring _ROMBOOT_,$@)" ] ; then \
664                 echo "CONFIG_BOOT_ROM = y" >> config.mk ; \
665                 echo "... booting from 8-bit flash" ; \
666         else \
667                 echo "CONFIG_BOOT_ROM = n" >> config.mk ; \
668                 echo "... booting from 64-bit flash" ; \
669         fi; \
670         echo "export CONFIG_BOOT_ROM" >> config.mk;
671
672 ep8260_config:  unconfig
673         @./mkconfig $(@:_config=) ppc mpc8260 ep8260
674
675 gw8260_config:  unconfig
676         @./mkconfig $(@:_config=) ppc mpc8260 gw8260
677
678 hymod_config:   unconfig
679         @./mkconfig $(@:_config=) ppc mpc8260 hymod
680
681 IPHASE4539_config:      unconfig
682         @./mkconfig $(@:_config=) ppc mpc8260 iphase4539
683
684 MPC8260ADS_config:      unconfig
685         @./mkconfig $(@:_config=) ppc mpc8260 mpc8260ads
686
687 MPC8266ADS_config:      unconfig
688         @./mkconfig $(@:_config=) ppc mpc8260 mpc8266ads
689
690 PM825_config    \
691 PM825_ROMBOOT_config: unconfig
692         @echo "#define CONFIG_PCI"      >include/config.h
693         @./mkconfig -a PM826 ppc mpc8260 pm826
694         @cd ./include ;                         \
695         if [ "$(findstring _ROMBOOT_,$@)" ] ; then \
696                 echo "CONFIG_BOOT_ROM = y" >> config.mk ; \
697                 echo "... booting from 8-bit flash" ; \
698         else \
699                 echo "CONFIG_BOOT_ROM = n" >> config.mk ; \
700                 echo "... booting from 64-bit flash" ; \
701         fi; \
702         echo "export CONFIG_BOOT_ROM" >> config.mk; \
703
704 PM826_config    \
705 PM826_ROMBOOT_config: unconfig
706         @./mkconfig $(call xtract_82xx,$@) ppc mpc8260 pm826
707         @cd ./include ;                         \
708         if [ "$(findstring _ROMBOOT_,$@)" ] ; then \
709                 echo "CONFIG_BOOT_ROM = y" >> config.mk ; \
710                 echo "... booting from 8-bit flash" ; \
711         else \
712                 echo "CONFIG_BOOT_ROM = n" >> config.mk ; \
713                 echo "... booting from 64-bit flash" ; \
714         fi; \
715         echo "export CONFIG_BOOT_ROM" >> config.mk; \
716
717 ppmc8260_config:        unconfig
718         @./mkconfig $(@:_config=) ppc mpc8260 ppmc8260
719
720 RPXsuper_config:        unconfig
721         @./mkconfig $(@:_config=) ppc mpc8260 rpxsuper
722
723 rsdproto_config:        unconfig
724         @./mkconfig $(@:_config=) ppc mpc8260 rsdproto
725
726 sacsng_config:  unconfig
727         @./mkconfig $(@:_config=) ppc mpc8260 sacsng
728
729 sbc8260_config: unconfig
730         @./mkconfig $(@:_config=) ppc mpc8260 sbc8260
731
732 SCM_config:             unconfig
733         @./mkconfig $(@:_config=) ppc mpc8260 SCM siemens
734
735 TQM8255_AA_config \
736 TQM8260_AA_config \
737 TQM8260_AB_config \
738 TQM8260_AC_config \
739 TQM8260_AD_config \
740 TQM8260_AE_config \
741 TQM8260_AF_config \
742 TQM8260_AG_config \
743 TQM8260_AH_config \
744 TQM8265_AA_config:  unconfig
745         @case "$@" in \
746         TQM8255_AA_config) CTYPE=MPC8255; CFREQ=300; CACHE=no;  BMODE=8260;;  \
747         TQM8260_AA_config) CTYPE=MPC8260; CFREQ=200; CACHE=no;  BMODE=8260;; \
748         TQM8260_AB_config) CTYPE=MPC8260; CFREQ=200; CACHE=yes; BMODE=60x;;  \
749         TQM8260_AC_config) CTYPE=MPC8260; CFREQ=200; CACHE=yes; BMODE=60x;;  \
750         TQM8260_AD_config) CTYPE=MPC8260; CFREQ=300; CACHE=no;  BMODE=60x;;  \
751         TQM8260_AE_config) CTYPE=MPC8260; CFREQ=266; CACHE=no;  BMODE=8260;; \
752         TQM8260_AF_config) CTYPE=MPC8260; CFREQ=300; CACHE=no;  BMODE=60x;;  \
753         TQM8260_AG_config) CTYPE=MPC8260; CFREQ=300; CACHE=no;  BMODE=8260;; \
754         TQM8260_AH_config) CTYPE=MPC8260; CFREQ=300; CACHE=yes; BMODE=60x;;  \
755         TQM8265_AA_config) CTYPE=MPC8265; CFREQ=300; CACHE=no;  BMODE=60x;;  \
756         esac; \
757         >include/config.h ; \
758         if [ "$${CTYPE}" != "MPC8260" ] ; then \
759                 echo "#define CONFIG_$${CTYPE}" >>include/config.h ; \
760         fi; \
761         echo "#define CONFIG_$${CFREQ}MHz"      >>include/config.h ; \
762         echo "... with $${CFREQ}MHz system clock" ; \
763         if [ "$${CACHE}" == "yes" ] ; then \
764                 echo "#define CONFIG_L2_CACHE"  >>include/config.h ; \
765                 echo "... with L2 Cache support" ; \
766         else \
767                 echo "#undef CONFIG_L2_CACHE"   >>include/config.h ; \
768                 echo "... without L2 Cache support" ; \
769         fi; \
770         if [ "$${BMODE}" == "60x" ] ; then \
771                 echo "#define CONFIG_BUSMODE_60x" >>include/config.h ; \
772                 echo "... with 60x Bus Mode" ; \
773         else \
774                 echo "#undef CONFIG_BUSMODE_60x"  >>include/config.h ; \
775                 echo "... without 60x Bus Mode" ; \
776         fi
777         @./mkconfig -a TQM8260 ppc mpc8260 tqm8260
778
779 ZPC1900_config: unconfig
780         @./mkconfig $(@:_config=) ppc mpc8260 zpc1900
781
782 #########################################################################
783 ## MPC85xx Systems
784 #########################################################################
785
786 MPC8540ADS_config:      unconfig
787         @./mkconfig $(@:_config=) ppc mpc85xx mpc8540ads
788
789 MPC8560ADS_config:      unconfig
790         @./mkconfig $(@:_config=) ppc mpc85xx mpc8560ads
791
792 #########################################################################
793 ## 74xx/7xx Systems
794 #########################################################################
795
796 AmigaOneG3SE_config:    unconfig
797         @./mkconfig $(@:_config=) ppc 74xx_7xx AmigaOneG3SE MAI
798
799 BAB7xx_config: unconfig
800         @./mkconfig $(@:_config=) ppc 74xx_7xx bab7xx eltec
801
802 debris_config: unconfig
803         @./mkconfig $(@:_config=) ppc mpc824x debris etin
804
805 ELPPC_config: unconfig
806         @./mkconfig $(@:_config=) ppc 74xx_7xx elppc eltec
807
808 EVB64260_config \
809 EVB64260_750CX_config:  unconfig
810         @./mkconfig EVB64260 ppc 74xx_7xx evb64260
811
812 P3G4_config: unconfig
813         @./mkconfig $(@:_config=) ppc 74xx_7xx evb64260
814
815 PCIPPC2_config \
816 PCIPPC6_config: unconfig
817         @./mkconfig $(@:_config=) ppc 74xx_7xx pcippc2
818
819 ZUMA_config:    unconfig
820         @./mkconfig $(@:_config=) ppc 74xx_7xx evb64260
821
822 #========================================================================
823 # ARM
824 #========================================================================
825 #########################################################################
826 ## StrongARM Systems
827 #########################################################################
828
829 at91rm9200dk_config     :       unconfig
830         @./mkconfig $(@:_config=) arm at91rm9200 at91rm9200dk
831
832 lart_config     :       unconfig
833         @./mkconfig $(@:_config=) arm sa1100 lart
834
835 dnp1110_config  :       unconfig
836         @./mkconfig $(@:_config=) arm sa1100 dnp1110
837
838 shannon_config  :       unconfig
839         @./mkconfig $(@:_config=) arm sa1100 shannon
840
841 #########################################################################
842 ## ARM92xT Systems
843 #########################################################################
844
845 xtract_trab = $(subst _bigram,,$(subst _bigflash,,$(subst _old,,$(subst _config,,$1))))
846
847 omap1510inn_config :    unconfig
848         @./mkconfig $(@:_config=) arm arm925t omap1510inn
849
850 omap1610inn_config :    unconfig
851         @./mkconfig $(@:_config=) arm arm926ejs omap1610inn
852
853 smdk2400_config :       unconfig
854         @./mkconfig $(@:_config=) arm arm920t smdk2400
855
856 smdk2410_config :       unconfig
857         @./mkconfig $(@:_config=) arm arm920t smdk2410
858
859 trab_config \
860 trab_bigram_config \
861 trab_bigflash_config \
862 trab_old_config:        unconfig
863         @ >include/config.h
864         @[ -z "$(findstring _bigram,$@)" ] || \
865                 { echo "#define CONFIG_FLASH_8MB" >>include/config.h ; \
866                   echo "... with 8 MB Flash, 32 MB RAM" ; \
867                 }
868         @[ -z "$(findstring _bigflash,$@)" ] || \
869                 { echo "#define CONFIG_RAM_16MB" >>include/config.h ; \
870                   echo "... with 16 MB Flash, 16 MB RAM" ; \
871                   echo "TEXT_BASE = 0x0CF00000" >board/trab/config.tmp ; \
872                 }
873         @[ -z "$(findstring _old,$@)" ] || \
874                 { echo "#define CONFIG_OLD_VERSION" >>include/config.h ; \
875                   echo "... with small memory configuration" ; \
876                   echo "TEXT_BASE = 0x0CF00000" >board/trab/config.tmp ; \
877                 }
878         @./mkconfig -a $(call xtract_trab,$@) arm arm920t trab
879
880 VCMA9_config    :       unconfig
881         @./mkconfig $(@:_config=) arm arm920t vcma9 mpl
882
883 #########################################################################
884 ## ARM720T Systems
885 #########################################################################
886
887 impa7_config    :       unconfig
888         @./mkconfig $(@:_config=) arm arm720t impa7
889
890 ep7312_config   :       unconfig
891         @./mkconfig $(@:_config=) arm arm720t ep7312
892
893 #########################################################################
894 ## XScale Systems
895 #########################################################################
896
897 cradle_config   :       unconfig
898         @./mkconfig $(@:_config=) arm pxa cradle
899
900 csb226_config   :       unconfig
901         @./mkconfig $(@:_config=) arm pxa csb226
902
903 innokom_config  :       unconfig
904         @./mkconfig $(@:_config=) arm pxa innokom
905
906 ixdp425_config  :       unconfig
907         @./mkconfig $(@:_config=) arm ixp ixdp425
908
909 lubbock_config  :       unconfig
910         @./mkconfig $(@:_config=) arm pxa lubbock
911
912 logodl_config   :       unconfig
913         @./mkconfig $(@:_config=) arm pxa logodl
914
915 wepep250_config :       unconfig
916         @./mkconfig $(@:_config=) arm pxa wepep250
917
918 #========================================================================
919 # i386
920 #========================================================================
921 #########################################################################
922 ## AMD SC520 CDP
923 #########################################################################
924 sc520_cdp_config        :       unconfig
925         @./mkconfig $(@:_config=) i386 i386 sc520_cdp
926
927 sc520_spunk_config      :       unconfig
928         @./mkconfig $(@:_config=) i386 i386 sc520_spunk
929
930 sc520_spunk_rel_config  :       unconfig
931         @./mkconfig $(@:_config=) i386 i386 sc520_spunk
932
933 #========================================================================
934 # MIPS
935 #========================================================================
936 #########################################################################
937 ## MIPS32 4Kc
938 #########################################################################
939
940 xtract_incaip = $(subst _100MHz,,$(subst _133MHz,,$(subst _150MHz,,$(subst _config,,$1))))
941
942 incaip_100MHz_config    \
943 incaip_133MHz_config    \
944 incaip_150MHz_config    \
945 incaip_config: unconfig
946         @ >include/config.h
947         @[ -z "$(findstring _100MHz,$@)" ] || \
948                 { echo "#define CPU_CLOCK_RATE 100000000" >>include/config.h ; \
949                   echo "... with 100MHz system clock" ; \
950                 }
951         @[ -z "$(findstring _133MHz,$@)" ] || \
952                 { echo "#define CPU_CLOCK_RATE 133000000" >>include/config.h ; \
953                   echo "... with 133MHz system clock" ; \
954                 }
955         @[ -z "$(findstring _150MHz,$@)" ] || \
956                 { echo "#define CPU_CLOCK_RATE 150000000" >>include/config.h ; \
957                   echo "... with 150MHz system clock" ; \
958                 }
959         @./mkconfig -a $(call xtract_incaip,$@) mips mips incaip
960
961 #########################################################################
962 ## MIPS64 5Kc
963 #########################################################################
964
965 purple_config :         unconfig
966         @./mkconfig $(@:_config=) mips mips purple
967
968 #========================================================================
969 # Nios
970 #========================================================================
971 #########################################################################
972 ## Nios32
973 #########################################################################
974
975 DK1C20_config:  unconfig
976         @./mkconfig $(@:_config=) nios nios dk1c20
977
978
979 #########################################################################
980 ## MIPS32 AU1000
981 #########################################################################
982 dbau1x00_config         :       unconfig
983         @./mkconfig $(@:_config=) mips mips dbau1x00
984
985 #########################################################################
986 #########################################################################
987
988 clean:
989         find . -type f \
990                 \( -name 'core' -o -name '*.bak' -o -name '*~' \
991                 -o -name '*.o'  -o -name '*.a'  \) -print \
992                 | xargs rm -f
993         rm -f examples/hello_world examples/timer \
994               examples/eepro100_eeprom examples/sched \
995               examples/mem_to_mem_idma2intr examples/82559_eeprom
996
997         rm -f tools/img2srec tools/mkimage tools/envcrc tools/gen_eth_addr
998         rm -f tools/easylogo/easylogo tools/bmp_logo
999         rm -f tools/gdb/astest tools/gdb/gdbcont tools/gdb/gdbsend
1000         rm -f tools/env/fw_printenv tools/env/fw_setenv
1001         rm -f board/cray/L1/bootscript.c board/cray/L1/bootscript.image
1002         rm -f board/trab/trab_fkt board/trab/config.tmp
1003
1004 clobber:        clean
1005         find . -type f \
1006                 \( -name .depend -o -name '*.srec' -o -name '*.bin' \) \
1007                 -print \
1008                 | xargs rm -f
1009         rm -f $(OBJS) *.bak tags TAGS
1010         rm -fr *.*~
1011         rm -f u-boot u-boot.map $(ALL)
1012         rm -f tools/crc32.c tools/environment.c tools/env/crc32.c
1013         rm -f tools/inca-swap-bytes cpu/mpc824x/bedbug_603e.c
1014         rm -f include/asm/proc include/asm/arch include/asm
1015
1016 mrproper \
1017 distclean:      clobber unconfig
1018
1019 backup:
1020         F=`basename $(TOPDIR)` ; cd .. ; \
1021         gtar --force-local -zcvf `date "+$$F-%Y-%m-%d-%T.tar.gz"` $$F
1022
1023 #########################################################################