xref: /openbmc/u-boot/Makefile (revision 608c91460b37fd9fe0088a0ce813a443f116a8d5)
1 7ebf7443Swdenk#
2 7ebf7443Swdenk# (C) Copyright 2000, 2001, 2002
3 7ebf7443Swdenk# Wolfgang Denk, DENX Software Engineering, wd@denx.de.
4 7ebf7443Swdenk#
5 7ebf7443Swdenk# See file CREDITS for list of people who contributed to this
6 7ebf7443Swdenk# project.
7 7ebf7443Swdenk#
8 7ebf7443Swdenk# This program is free software; you can redistribute it and/or
9 7ebf7443Swdenk# modify it under the terms of the GNU General Public License as
10 7ebf7443Swdenk# published by the Free Software Foundation; either version 2 of
11 7ebf7443Swdenk# the License, or (at your option) any later version.
12 7ebf7443Swdenk#
13 7ebf7443Swdenk# This program is distributed in the hope that it will be useful,
14 7ebf7443Swdenk# but WITHOUT ANY WARRANTY; without even the implied warranty of
15 7ebf7443Swdenk# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16 7ebf7443Swdenk# GNU General Public License for more details.
17 7ebf7443Swdenk#
18 7ebf7443Swdenk# You should have received a copy of the GNU General Public License
19 7ebf7443Swdenk# along with this program; if not, write to the Free Software
20 7ebf7443Swdenk# Foundation, Inc., 59 Temple Place, Suite 330, Boston,
21 7ebf7443Swdenk# MA 02111-1307 USA
22 7ebf7443Swdenk#
23 7ebf7443Swdenk
24 7ebf7443SwdenkHOSTARCH := $(shell uname -m | \
25 7ebf7443Swdenk	sed -e s/i.86/i386/ \
26 7ebf7443Swdenk	    -e s/sun4u/sparc64/ \
27 7ebf7443Swdenk	    -e s/arm.*/arm/ \
28 7ebf7443Swdenk	    -e s/sa110/arm/ \
29 7ebf7443Swdenk	    -e s/powerpc/ppc/ \
30 7ebf7443Swdenk	    -e s/macppc/ppc/)
31 7ebf7443Swdenk
32 7ebf7443SwdenkHOSTOS := $(shell uname -s | tr A-Z a-z | \
33 7ebf7443Swdenk	    sed -e 's/\(cygwin\).*/cygwin/')
34 7ebf7443Swdenk
35 7ebf7443Swdenkexport	HOSTARCH
36 7ebf7443Swdenk
37 7ebf7443Swdenk# Deal with colliding definitions from tcsh etc.
38 7ebf7443SwdenkVENDOR=
39 7ebf7443Swdenk
40 7ebf7443Swdenk#########################################################################
41 7ebf7443Swdenk
42 7ebf7443SwdenkTOPDIR	:= $(shell if [ "$$PWD" != "" ]; then echo $$PWD; else pwd; fi)
43 7ebf7443Swdenkexport	TOPDIR
44 7ebf7443Swdenk
45 7ebf7443Swdenkifeq (include/config.mk,$(wildcard include/config.mk))
46 7ebf7443Swdenk# load ARCH, BOARD, and CPU configuration
47 7ebf7443Swdenkinclude include/config.mk
48 7ebf7443Swdenkexport	ARCH CPU BOARD VENDOR
49 7ebf7443Swdenk# load other configuration
50 7ebf7443Swdenkinclude $(TOPDIR)/config.mk
51 7ebf7443Swdenk
52 7ebf7443Swdenkifndef CROSS_COMPILE
53 7ebf7443Swdenkifeq ($(HOSTARCH),ppc)
54 7ebf7443SwdenkCROSS_COMPILE =
55 7ebf7443Swdenkelse
56 7ebf7443Swdenk##  #ifeq ($(CPU),mpc8xx)
57 7ebf7443Swdenk##  CROSS_COMPILE = ppc_8xx-
58 7ebf7443Swdenk##  #endif
59 7ebf7443Swdenk##  #ifeq ($(CPU),ppc4xx)
60 7ebf7443Swdenk##  #CROSS_COMPILE = ppc_4xx-
61 7ebf7443Swdenk##  #endif
62 7ebf7443Swdenk##  #ifeq ($(CPU),mpc824x)
63 7ebf7443Swdenk##  #CROSS_COMPILE = ppc_82xx-
64 7ebf7443Swdenk##  #endif
65 7ebf7443Swdenk##  #ifeq ($(CPU),mpc8260)
66 7ebf7443Swdenk##  #CROSS_COMPILE = ppc_82xx-
67 7ebf7443Swdenk##  #endif
68 7ebf7443Swdenk##  #ifeq ($(CPU),74xx_7xx)
69 7ebf7443Swdenk##  #CROSS_COMPILE = ppc_74xx-)
70 7ebf7443Swdenk##  #endif
71 7ebf7443Swdenkifeq ($(ARCH),ppc)
72 7ebf7443SwdenkCROSS_COMPILE = ppc_8xx-
73 7ebf7443Swdenkendif
74 7ebf7443Swdenkifeq ($(ARCH),arm)
75 7ebf7443SwdenkCROSS_COMPILE = arm_920TDI-
76 7ebf7443Swdenkendif
77 2262cfeeSwdenkifeq ($(ARCH),i386)
78 2262cfeeSwdenk#CROSS_COMPILE = i386-elf-
79 2262cfeeSwdenkendif
80 7ebf7443Swdenkendif
81 7ebf7443Swdenkendif
82 7ebf7443Swdenk
83 7ebf7443Swdenkexport	CROSS_COMPILE
84 7ebf7443Swdenk
85 7ebf7443Swdenk# The "tools" are needed early, so put this first
86 7ebf7443SwdenkSUBDIRS	= tools \
87 7ebf7443Swdenk	  lib_generic \
88 7ebf7443Swdenk	  lib_$(ARCH) \
89 7ebf7443Swdenk	  cpu/$(CPU) \
90 7ebf7443Swdenk	  board/$(BOARDDIR) \
91 7ebf7443Swdenk	  common \
92 7ebf7443Swdenk	  disk \
93 7ebf7443Swdenk	  fs \
94 7ebf7443Swdenk	  net \
95 7ebf7443Swdenk	  rtc \
96 7ebf7443Swdenk	  dtt \
97 7ebf7443Swdenk	  drivers \
98 7ebf7443Swdenk	  post \
99 7ebf7443Swdenk	  post/cpu \
100 7ebf7443Swdenk	  examples
101 7ebf7443Swdenk
102 7ebf7443Swdenk#########################################################################
103 7ebf7443Swdenk# U-Boot objects....order is important (i.e. start must be first)
104 7ebf7443Swdenk
105 7ebf7443SwdenkOBJS  =	cpu/$(CPU)/start.o
106 2262cfeeSwdenkifeq ($(CPU),i386)
107 2262cfeeSwdenkOBJS +=	cpu/$(CPU)/start16.o
108 2262cfeeSwdenkOBJS +=	cpu/$(CPU)/reset.o
109 2262cfeeSwdenkendif
110 7ebf7443Swdenkifeq ($(CPU),ppc4xx)
111 7ebf7443SwdenkOBJS +=	cpu/$(CPU)/resetvec.o
112 7ebf7443Swdenkendif
113 7ebf7443Swdenk
114 7ebf7443SwdenkLIBS  =	board/$(BOARDDIR)/lib$(BOARD).a
115 7ebf7443SwdenkLIBS += cpu/$(CPU)/lib$(CPU).a
116 7ebf7443SwdenkLIBS += lib_$(ARCH)/lib$(ARCH).a
117 2262cfeeSwdenkLIBS += fs/jffs2/libjffs2.a fs/fdos/libfdos.a
118 7ebf7443SwdenkLIBS += net/libnet.a
119 7ebf7443SwdenkLIBS += disk/libdisk.a
120 7ebf7443SwdenkLIBS += rtc/librtc.a
121 7ebf7443SwdenkLIBS += dtt/libdtt.a
122 7ebf7443SwdenkLIBS += drivers/libdrivers.a
123 7ebf7443SwdenkLIBS += post/libpost.a post/cpu/libcpu.a
124 7ebf7443SwdenkLIBS += common/libcommon.a
125 7ebf7443SwdenkLIBS += lib_generic/libgeneric.a
126 7ebf7443Swdenk
127 7ebf7443Swdenk#########################################################################
128 7ebf7443Swdenk
129 7ebf7443Swdenkall:		u-boot.srec u-boot.bin System.map
130 7ebf7443Swdenk
131 7ebf7443Swdenkinstall:	all
132 7ebf7443Swdenk		cp u-boot.bin /tftpboot/u-boot.bin
133 7ebf7443Swdenk		cp u-boot.bin /net/sam/tftpboot/u-boot.bin
134 7ebf7443Swdenk
135 7ebf7443Swdenku-boot.srec:	u-boot
136 7ebf7443Swdenk		$(OBJCOPY) ${OBJCFLAGS} -O srec $< $@
137 7ebf7443Swdenk
138 7ebf7443Swdenku-boot.bin:	u-boot
139 7ebf7443Swdenk		$(OBJCOPY) ${OBJCFLAGS} -O binary $< $@
140 7ebf7443Swdenk
141 7ebf7443Swdenku-boot.dis:	u-boot
142 7ebf7443Swdenk		$(OBJDUMP) -d $< > $@
143 7ebf7443Swdenk
144 7ebf7443Swdenku-boot:		depend subdirs $(OBJS) $(LIBS) $(LDSCRIPT)
145 b2184c31Swdenk		$(LD) $(LDFLAGS) $(OBJS) \
146 b2184c31Swdenk			--start-group $(LIBS) --end-group \
147 b2184c31Swdenk			-Map u-boot.map -o u-boot
148 7ebf7443Swdenk
149 7ebf7443Swdenksubdirs:
150 7ebf7443Swdenk		@for dir in $(SUBDIRS) ; do $(MAKE) -C $$dir || exit 1 ; done
151 7ebf7443Swdenk
152 7ebf7443Swdenkdepend dep:
153 7ebf7443Swdenk		@for dir in $(SUBDIRS) ; do $(MAKE) -C $$dir .depend ; done
154 7ebf7443Swdenk
155 7ebf7443Swdenktags:
156 7ebf7443Swdenk		ctags -w `find $(SUBDIRS) include \
157 7ebf7443Swdenk			\( -name CVS -prune \) -o \( -name '*.[ch]' -print \)`
158 7ebf7443Swdenk
159 7ebf7443Swdenketags:
160 7ebf7443Swdenk		etags -a `find $(SUBDIRS) include \
161 7ebf7443Swdenk			\( -name CVS -prune \) -o \( -name '*.[ch]' -print \)`
162 7ebf7443Swdenk
163 7ebf7443SwdenkSystem.map:	u-boot
164 7ebf7443Swdenk		@$(NM) $< | \
165 7ebf7443Swdenk		grep -v '\(compiled\)\|\(\.o$$\)\|\( [aUw] \)\|\(\.\.ng$$\)\|\(LASH[RL]DI\)' | \
166 7ebf7443Swdenk		sort > System.map
167 7ebf7443Swdenk
168 7ebf7443Swdenk#########################################################################
169 7ebf7443Swdenkelse
170 7ebf7443Swdenkall install u-boot u-boot.srec depend dep:
171 7ebf7443Swdenk	@echo "System not configured - see README" >&2
172 7ebf7443Swdenk	@ exit 1
173 7ebf7443Swdenkendif
174 7ebf7443Swdenk
175 7ebf7443Swdenk#########################################################################
176 7ebf7443Swdenk
177 7ebf7443Swdenkunconfig:
178 7ebf7443Swdenk	rm -f include/config.h include/config.mk
179 7ebf7443Swdenk
180 7ebf7443Swdenk#========================================================================
181 7ebf7443Swdenk# PowerPC
182 7ebf7443Swdenk#========================================================================
183 7ebf7443Swdenk#########################################################################
184 7ebf7443Swdenk## MPC8xx Systems
185 7ebf7443Swdenk#########################################################################
186 7ebf7443Swdenk
187 7ebf7443SwdenkADS860_config:	unconfig
188 7ebf7443Swdenk	@./mkconfig $(@:_config=) ppc mpc8xx fads
189 7ebf7443Swdenk
190 7ebf7443SwdenkAMX860_config	:	unconfig
191 7ebf7443Swdenk	@./mkconfig $(@:_config=) ppc mpc8xx amx860 westel
192 7ebf7443Swdenk
193 7ebf7443Swdenkc2mon_config:		unconfig
194 7ebf7443Swdenk	@./mkconfig $(@:_config=) ppc mpc8xx c2mon
195 7ebf7443Swdenk
196 7ebf7443SwdenkCCM_config:		unconfig
197 7ebf7443Swdenk	@./mkconfig $(@:_config=) ppc mpc8xx CCM siemens
198 7ebf7443Swdenk
199 7ebf7443Swdenkcogent_mpc8xx_config:	unconfig
200 7ebf7443Swdenk	@./mkconfig $(@:_config=) ppc mpc8xx cogent
201 7ebf7443Swdenk
202 7ebf7443SwdenkESTEEM192E_config:	unconfig
203 7ebf7443Swdenk	@./mkconfig $(@:_config=) ppc mpc8xx esteem192e
204 7ebf7443Swdenk
205 7ebf7443SwdenkETX094_config	:	unconfig
206 7ebf7443Swdenk	@./mkconfig $(@:_config=) ppc mpc8xx etx094
207 7ebf7443Swdenk
208 7ebf7443SwdenkFADS823_config	\
209 7ebf7443SwdenkFADS850SAR_config \
210 7ebf7443SwdenkFADS860T_config:	unconfig
211 7ebf7443Swdenk	@./mkconfig $(@:_config=) ppc mpc8xx fads
212 7ebf7443Swdenk
213 7ebf7443SwdenkFLAGADM_config:	unconfig
214 7ebf7443Swdenk	@./mkconfig $(@:_config=) ppc mpc8xx flagadm
215 7ebf7443Swdenk
216 7ebf7443SwdenkGEN860T_config: unconfig
217 7ebf7443Swdenk	@./mkconfig $(@:_config=) ppc mpc8xx gen860t
218 7ebf7443Swdenk
219 7ebf7443SwdenkGENIETV_config:	unconfig
220 7ebf7443Swdenk	@./mkconfig $(@:_config=) ppc mpc8xx genietv
221 7ebf7443Swdenk
222 7ebf7443SwdenkGTH_config:	unconfig
223 7ebf7443Swdenk	@./mkconfig $(@:_config=) ppc mpc8xx gth
224 7ebf7443Swdenk
225 7ebf7443Swdenkhermes_config	:	unconfig
226 7ebf7443Swdenk	@./mkconfig $(@:_config=) ppc mpc8xx hermes
227 7ebf7443Swdenk
228 7ebf7443SwdenkIAD210_config: unconfig
229 7ebf7443Swdenk	@./mkconfig $(@:_config=) ppc mpc8xx IAD210 siemens
230 7ebf7443Swdenk
231 7ebf7443Swdenkxtract_ICU862 = $(subst _100MHz,,$(subst _config,,$1))
232 7ebf7443Swdenk
233 7ebf7443SwdenkICU862_100MHz_config	\
234 7ebf7443SwdenkICU862_config: unconfig
235 7ebf7443Swdenk	@ >include/config.h
236 7ebf7443Swdenk	@[ -z "$(findstring _100MHz,$@)" ] || \
237 7ebf7443Swdenk		{ echo "#define CONFIG_100MHz"	>>include/config.h ; \
238 7ebf7443Swdenk		  echo "... with 100MHz system clock" ; \
239 7ebf7443Swdenk		}
240 7ebf7443Swdenk	@./mkconfig -a $(call xtract_ICU862,$@) ppc mpc8xx icu862
241 7ebf7443Swdenk
242 7ebf7443SwdenkIP860_config	:	unconfig
243 7ebf7443Swdenk	@./mkconfig $(@:_config=) ppc mpc8xx ip860
244 7ebf7443Swdenk
245 7ebf7443SwdenkIVML24_256_config \
246 7ebf7443SwdenkIVML24_128_config \
247 7ebf7443SwdenkIVML24_config:	unconfig
248 7ebf7443Swdenk	@ >include/config.h
249 7ebf7443Swdenk	@[ -z "$(findstring IVML24_config,$@)" ] || \
250 7ebf7443Swdenk		 { echo "#define CONFIG_IVML24_16M"	>>include/config.h ; \
251 7ebf7443Swdenk		 }
252 7ebf7443Swdenk	@[ -z "$(findstring IVML24_128_config,$@)" ] || \
253 7ebf7443Swdenk		 { echo "#define CONFIG_IVML24_32M"	>>include/config.h ; \
254 7ebf7443Swdenk		 }
255 7ebf7443Swdenk	@[ -z "$(findstring IVML24_256_config,$@)" ] || \
256 7ebf7443Swdenk		 { echo "#define CONFIG_IVML24_64M"	>>include/config.h ; \
257 7ebf7443Swdenk		 }
258 7ebf7443Swdenk	@./mkconfig -a IVML24 ppc mpc8xx ivm
259 7ebf7443Swdenk
260 7ebf7443SwdenkIVMS8_256_config \
261 7ebf7443SwdenkIVMS8_128_config \
262 7ebf7443SwdenkIVMS8_config:	unconfig
263 7ebf7443Swdenk	@ >include/config.h
264 7ebf7443Swdenk	@[ -z "$(findstring IVMS8_config,$@)" ] || \
265 7ebf7443Swdenk		 { echo "#define CONFIG_IVMS8_16M"	>>include/config.h ; \
266 7ebf7443Swdenk		 }
267 7ebf7443Swdenk	@[ -z "$(findstring IVMS8_128_config,$@)" ] || \
268 7ebf7443Swdenk		 { echo "#define CONFIG_IVMS8_32M"	>>include/config.h ; \
269 7ebf7443Swdenk		 }
270 7ebf7443Swdenk	@[ -z "$(findstring IVMS8_256_config,$@)" ] || \
271 7ebf7443Swdenk		 { echo "#define CONFIG_IVMS8_64M"	>>include/config.h ; \
272 7ebf7443Swdenk		 }
273 7ebf7443Swdenk	@./mkconfig -a IVMS8 ppc mpc8xx ivm
274 7ebf7443Swdenk
275 56f94be3SwdenkKUP4K_config	:	unconfig
276 56f94be3Swdenk	@./mkconfig $(@:_config=) ppc mpc8xx kup4k
277 56f94be3Swdenk
278 7ebf7443SwdenkLANTEC_config	:	unconfig
279 7ebf7443Swdenk	@./mkconfig $(@:_config=) ppc mpc8xx lantec
280 7ebf7443Swdenk
281 7ebf7443Swdenklwmon_config:		unconfig
282 7ebf7443Swdenk	@./mkconfig $(@:_config=) ppc mpc8xx lwmon
283 7ebf7443Swdenk
284 7ebf7443SwdenkMBX_config	\
285 7ebf7443SwdenkMBX860T_config:	unconfig
286 7ebf7443Swdenk	@./mkconfig $(@:_config=) ppc mpc8xx mbx8xx
287 7ebf7443Swdenk
288 7ebf7443SwdenkMHPC_config:		unconfig
289 7ebf7443Swdenk	@./mkconfig $(@:_config=) ppc mpc8xx mhpc eltec
290 7ebf7443Swdenk
291 7ebf7443SwdenkMVS1_config :		unconfig
292 7ebf7443Swdenk	@./mkconfig $(@:_config=) ppc mpc8xx mvs1
293 7ebf7443Swdenk
294 7ebf7443SwdenkNETVIA_config:		unconfig
295 7ebf7443Swdenk	@./mkconfig $(@:_config=) ppc mpc8xx netvia
296 7ebf7443Swdenk
297 7ebf7443SwdenkNX823_config:		unconfig
298 7ebf7443Swdenk	@./mkconfig $(@:_config=) ppc mpc8xx nx823
299 7ebf7443Swdenk
300 7ebf7443Swdenkpcu_e_config:		unconfig
301 7ebf7443Swdenk	@./mkconfig $(@:_config=) ppc mpc8xx pcu_e siemens
302 7ebf7443Swdenk
303 7ebf7443SwdenkR360MPI_config:	unconfig
304 7ebf7443Swdenk	@./mkconfig $(@:_config=) ppc mpc8xx r360mpi
305 7ebf7443Swdenk
306 7ebf7443SwdenkRPXClassic_config:	unconfig
307 7ebf7443Swdenk	@./mkconfig $(@:_config=) ppc mpc8xx RPXClassic
308 7ebf7443Swdenk
309 7ebf7443SwdenkRPXlite_config:		unconfig
310 7ebf7443Swdenk	@./mkconfig $(@:_config=) ppc mpc8xx RPXlite
311 7ebf7443Swdenk
312 7ebf7443SwdenkRRvision_config:	unconfig
313 7ebf7443Swdenk	@./mkconfig $(@:_config=) ppc mpc8xx RRvision
314 7ebf7443Swdenk
315 7ebf7443SwdenkRRvision_LCD_config:	unconfig
316 7ebf7443Swdenk	@echo "#define CONFIG_LCD" >include/config.h
317 7ebf7443Swdenk	@echo "#define CONFIG_SHARP_LQ104V7DS01" >>include/config.h
318 7ebf7443Swdenk	@./mkconfig -a RRvision ppc mpc8xx RRvision
319 7ebf7443Swdenk
320 7ebf7443SwdenkSM850_config	:	unconfig
321 7ebf7443Swdenk	@./mkconfig $(@:_config=) ppc mpc8xx tqm8xx
322 7ebf7443Swdenk
323 7ebf7443SwdenkSPD823TS_config:	unconfig
324 7ebf7443Swdenk	@./mkconfig $(@:_config=) ppc mpc8xx spd8xx
325 7ebf7443Swdenk
326 7ebf7443SwdenkSXNI855T_config:	unconfig
327 7ebf7443Swdenk	@./mkconfig $(@:_config=) ppc mpc8xx sixnet
328 7ebf7443Swdenk
329 7ebf7443Swdenk# Play some tricks for configuration selection
330 7ebf7443Swdenk# All boards can come with 50 MHz (default), 66MHz or 80MHz clock,
331 7ebf7443Swdenk# but only 855 and 860 boards may come with FEC
332 7ebf7443Swdenk# and 823 boards may have LCD support
333 7ebf7443Swdenkxtract_8xx = $(subst _66MHz,,$(subst _80MHz,,$(subst _LCD,,$(subst _FEC,,$(subst _config,,$1)))))
334 7ebf7443Swdenk
335 7ebf7443SwdenkFPS850L_config		\
336 384ae025SwdenkFPS860L_config		\
337 7ebf7443SwdenkTQM823L_config		\
338 7ebf7443SwdenkTQM823L_66MHz_config	\
339 7ebf7443SwdenkTQM823L_80MHz_config	\
340 7ebf7443SwdenkTQM823L_LCD_config	\
341 7ebf7443SwdenkTQM823L_LCD_66MHz_config \
342 7ebf7443SwdenkTQM823L_LCD_80MHz_config \
343 7ebf7443SwdenkTQM850L_config		\
344 7ebf7443SwdenkTQM850L_66MHz_config	\
345 7ebf7443SwdenkTQM850L_80MHz_config	\
346 7ebf7443SwdenkTQM855L_config		\
347 7ebf7443SwdenkTQM855L_66MHz_config	\
348 7ebf7443SwdenkTQM855L_80MHz_config	\
349 7ebf7443SwdenkTQM855L_FEC_config	\
350 7ebf7443SwdenkTQM855L_FEC_66MHz_config \
351 7ebf7443SwdenkTQM855L_FEC_80MHz_config \
352 7ebf7443SwdenkTQM860L_config		\
353 7ebf7443SwdenkTQM860L_66MHz_config	\
354 7ebf7443SwdenkTQM860L_80MHz_config	\
355 7ebf7443SwdenkTQM860L_FEC_config	\
356 7ebf7443SwdenkTQM860L_FEC_66MHz_config	\
357 7ebf7443SwdenkTQM860L_FEC_80MHz_config:	unconfig
358 7ebf7443Swdenk	@ >include/config.h
359 7ebf7443Swdenk	@[ -z "$(findstring _FEC,$@)" ] || \
360 7ebf7443Swdenk		{ echo "#define CONFIG_FEC_ENET"	>>include/config.h ; \
361 7ebf7443Swdenk		  echo "... with FEC support" ; \
362 7ebf7443Swdenk		}
363 7ebf7443Swdenk	@[ -z "$(findstring _66MHz,$@)" ] || \
364 7ebf7443Swdenk		{ echo "#define CONFIG_66MHz"		>>include/config.h ; \
365 7ebf7443Swdenk		  echo "... with 66MHz system clock" ; \
366 7ebf7443Swdenk		}
367 7ebf7443Swdenk	@[ -z "$(findstring _80MHz,$@)" ] || \
368 7ebf7443Swdenk		{ echo "#define CONFIG_80MHz"		>>include/config.h ; \
369 7ebf7443Swdenk		  echo "... with 80MHz system clock" ; \
370 7ebf7443Swdenk		}
371 7ebf7443Swdenk	@[ -z "$(findstring _LCD,$@)" ] || \
372 7ebf7443Swdenk		{ echo "#define CONFIG_LCD"		>>include/config.h ; \
373 7ebf7443Swdenk		  echo "#define CONFIG_NEC_NL6648BC20"	>>include/config.h ; \
374 7ebf7443Swdenk		  echo "... with LCD display" ; \
375 7ebf7443Swdenk		}
376 7ebf7443Swdenk	@./mkconfig -a $(call xtract_8xx,$@) ppc mpc8xx tqm8xx
377 7ebf7443Swdenk
378 7ebf7443SwdenkTTTech_config:	unconfig
379 7ebf7443Swdenk	@echo "#define CONFIG_LCD" >include/config.h
380 7ebf7443Swdenk	@echo "#define CONFIG_SHARP_LQ104V7DS01" >>include/config.h
381 7ebf7443Swdenk	@./mkconfig -a TQM823L ppc mpc8xx tqm8xx
382 7ebf7443Swdenk
383 *608c9146Swdenkv37_config:	unconfig
384 *608c9146Swdenk	@echo "#define CONFIG_LCD" >include/config.h
385 *608c9146Swdenk	@echo "#define CONFIG_SHARP_LQ084V1DG21" >>include/config.h
386 *608c9146Swdenk	@./mkconfig $(@:_config=) ppc mpc8xx v37
387 *608c9146Swdenk
388 7ebf7443Swdenk#########################################################################
389 7ebf7443Swdenk## PPC4xx Systems
390 7ebf7443Swdenk#########################################################################
391 7ebf7443Swdenk
392 7ebf7443SwdenkADCIOP_config:	unconfig
393 7ebf7443Swdenk	@./mkconfig $(@:_config=) ppc ppc4xx adciop esd
394 7ebf7443Swdenk
395 7ebf7443SwdenkAR405_config:	unconfig
396 7ebf7443Swdenk	@./mkconfig $(@:_config=) ppc ppc4xx ar405 esd
397 7ebf7443Swdenk
398 7ebf7443SwdenkCANBT_config:	unconfig
399 7ebf7443Swdenk	@./mkconfig $(@:_config=) ppc ppc4xx canbt esd
400 7ebf7443Swdenk
401 7ebf7443SwdenkCPCI405_config		\
402 7ebf7443SwdenkCPCI4052_config:	unconfig
403 7ebf7443Swdenk	@./mkconfig $(@:_config=) ppc ppc4xx cpci405 esd
404 7ebf7443Swdenk	@echo "BOARD_REVISION = $(@:_config=)"	>>include/config.mk
405 7ebf7443Swdenk
406 7ebf7443SwdenkCPCI440_config:	unconfig
407 7ebf7443Swdenk	@./mkconfig $(@:_config=) ppc ppc4xx cpci440 esd
408 7ebf7443Swdenk
409 7ebf7443SwdenkCPCIISER4_config:	unconfig
410 7ebf7443Swdenk	@./mkconfig $(@:_config=) ppc ppc4xx cpciiser4 esd
411 7ebf7443Swdenk
412 7ebf7443SwdenkCRAYL1_config:unconfig
413 7ebf7443Swdenk	@./mkconfig $(@:_config=) ppc ppc4xx L1 cray
414 7ebf7443Swdenk
415 7ebf7443SwdenkDASA_SIM_config: unconfig
416 7ebf7443Swdenk	@./mkconfig $(@:_config=) ppc ppc4xx dasa_sim esd
417 7ebf7443Swdenk
418 7ebf7443SwdenkDU405_config:	unconfig
419 7ebf7443Swdenk	@./mkconfig $(@:_config=) ppc ppc4xx du405 esd
420 7ebf7443Swdenk
421 7ebf7443SwdenkEBONY_config:unconfig
422 7ebf7443Swdenk	@./mkconfig $(@:_config=) ppc ppc4xx ebony
423 7ebf7443Swdenk
424 7ebf7443SwdenkERIC_config:unconfig
425 7ebf7443Swdenk	@./mkconfig $(@:_config=) ppc ppc4xx eric
426 7ebf7443Swdenk
427 7ebf7443SwdenkMIP405_config:unconfig
428 7ebf7443Swdenk	@./mkconfig $(@:_config=) ppc ppc4xx mip405 mpl
429 7ebf7443Swdenk
430 7ebf7443SwdenkML2_config:unconfig
431 7ebf7443Swdenk	@./mkconfig $(@:_config=) ppc ppc4xx ml2
432 7ebf7443Swdenk
433 7ebf7443SwdenkOCRTC_config		\
434 7ebf7443SwdenkORSG_config:	unconfig
435 7ebf7443Swdenk	@./mkconfig $(@:_config=) ppc ppc4xx ocrtc esd
436 7ebf7443Swdenk
437 7ebf7443SwdenkPCI405_config:	unconfig
438 7ebf7443Swdenk	@./mkconfig $(@:_config=) ppc ppc4xx pci405 esd
439 7ebf7443Swdenk
440 7ebf7443SwdenkPIP405_config:unconfig
441 7ebf7443Swdenk	@./mkconfig $(@:_config=) ppc ppc4xx pip405 mpl
442 7ebf7443Swdenk
443 7ebf7443SwdenkW7OLMC_config	\
444 7ebf7443SwdenkW7OLMG_config: unconfig
445 7ebf7443Swdenk	@./mkconfig $(@:_config=) ppc ppc4xx w7o
446 7ebf7443Swdenk
447 7ebf7443SwdenkWALNUT405_config:unconfig
448 7ebf7443Swdenk	@./mkconfig $(@:_config=) ppc ppc4xx walnut405
449 7ebf7443Swdenk
450 7ebf7443Swdenk#########################################################################
451 7ebf7443Swdenk## MPC824x Systems
452 7ebf7443Swdenk#########################################################################
453 7ebf7443SwdenkBMW_config: unconfig
454 7ebf7443Swdenk	@./mkconfig $(@:_config=) ppc mpc824x bmw
455 7ebf7443Swdenk
456 7ebf7443SwdenkCU824_config: unconfig
457 7ebf7443Swdenk	@./mkconfig $(@:_config=) ppc mpc824x cu824
458 7ebf7443Swdenk
459 7ebf7443SwdenkMOUSSE_config: unconfig
460 7ebf7443Swdenk	@./mkconfig $(@:_config=) ppc mpc824x mousse
461 7ebf7443Swdenk
462 7ebf7443SwdenkMUSENKI_config: unconfig
463 7ebf7443Swdenk	@./mkconfig $(@:_config=) ppc mpc824x musenki
464 7ebf7443Swdenk
465 7ebf7443SwdenkOXC_config: unconfig
466 7ebf7443Swdenk	@./mkconfig $(@:_config=) ppc mpc824x oxc
467 7ebf7443Swdenk
468 7ebf7443SwdenkPN62_config: unconfig
469 7ebf7443Swdenk	@./mkconfig $(@:_config=) ppc mpc824x pn62
470 7ebf7443Swdenk
471 7ebf7443SwdenkSandpoint8240_config: unconfig
472 7ebf7443Swdenk	@./mkconfig $(@:_config=) ppc mpc824x sandpoint
473 7ebf7443Swdenk
474 7ebf7443SwdenkSandpoint8245_config: unconfig
475 7ebf7443Swdenk	@./mkconfig $(@:_config=) ppc mpc824x sandpoint
476 7ebf7443Swdenk
477 7ebf7443Swdenkutx8245_config: unconfig
478 7ebf7443Swdenk	@./mkconfig $(@:_config=) ppc mpc824x utx8245
479 7ebf7443Swdenk
480 7ebf7443Swdenk#########################################################################
481 7ebf7443Swdenk## MPC8260 Systems
482 7ebf7443Swdenk#########################################################################
483 7ebf7443Swdenkxtract_82xx = $(subst _ROMBOOT,,$(subst _L2,,$(subst _266MHz,,$(subst _300MHz,,$(subst _config,,$1)))))
484 7ebf7443Swdenk
485 7ebf7443Swdenkcogent_mpc8260_config:	unconfig
486 7ebf7443Swdenk	@./mkconfig $(@:_config=) ppc mpc8260 cogent
487 7ebf7443Swdenk
488 7ebf7443SwdenkCPU86_config	\
489 7ebf7443SwdenkCPU86_ROMBOOT_config: unconfig
490 7ebf7443Swdenk	@./mkconfig $(call xtract_82xx,$@) ppc mpc8260 cpu86
491 7ebf7443Swdenk	@cd ./include ;				\
492 7ebf7443Swdenk	if [ "$(findstring _ROMBOOT_,$@)" ] ; then \
493 7ebf7443Swdenk		echo "CONFIG_BOOT_ROM = y" >> config.mk ; \
494 7ebf7443Swdenk		echo "... booting from 8-bit flash" ; \
495 7ebf7443Swdenk	else \
496 7ebf7443Swdenk		echo "CONFIG_BOOT_ROM = n" >> config.mk ; \
497 7ebf7443Swdenk		echo "... booting from 64-bit flash" ; \
498 7ebf7443Swdenk	fi; \
499 7ebf7443Swdenk	echo "export CONFIG_BOOT_ROM" >> config.mk;
500 7ebf7443Swdenk
501 7ebf7443Swdenkep8260_config:	unconfig
502 7ebf7443Swdenk	@./mkconfig $(@:_config=) ppc mpc8260 ep8260
503 7ebf7443Swdenk
504 7ebf7443Swdenkgw8260_config:	unconfig
505 7ebf7443Swdenk	@./mkconfig $(@:_config=) ppc mpc8260 gw8260
506 7ebf7443Swdenk
507 7ebf7443Swdenkhymod_config:	unconfig
508 7ebf7443Swdenk	@./mkconfig $(@:_config=) ppc mpc8260 hymod
509 7ebf7443Swdenk
510 7ebf7443SwdenkIPHASE4539_config:	unconfig
511 7ebf7443Swdenk	@./mkconfig $(@:_config=) ppc mpc8260 iphase4539
512 7ebf7443Swdenk
513 7ebf7443SwdenkMPC8260ADS_config:	unconfig
514 7ebf7443Swdenk	@./mkconfig $(@:_config=) ppc mpc8260 mpc8260ads
515 7ebf7443Swdenk
516 7ebf7443SwdenkPM826_config	\
517 7ebf7443SwdenkPM826_ROMBOOT_config: unconfig
518 7ebf7443Swdenk	@./mkconfig $(call xtract_82xx,$@) ppc mpc8260 pm826
519 7ebf7443Swdenk	@cd ./include ;				\
520 7ebf7443Swdenk	if [ "$(findstring _ROMBOOT_,$@)" ] ; then \
521 7ebf7443Swdenk		echo "CONFIG_BOOT_ROM = y" >> config.mk ; \
522 7ebf7443Swdenk		echo "... booting from 8-bit flash" ; \
523 7ebf7443Swdenk	else \
524 7ebf7443Swdenk		echo "CONFIG_BOOT_ROM = n" >> config.mk ; \
525 7ebf7443Swdenk		echo "... booting from 64-bit flash" ; \
526 7ebf7443Swdenk	fi; \
527 7ebf7443Swdenk	echo "export CONFIG_BOOT_ROM" >> config.mk; \
528 7ebf7443Swdenk
529 7ebf7443Swdenkppmc8260_config:	unconfig
530 7ebf7443Swdenk	@./mkconfig $(@:_config=) ppc mpc8260 ppmc8260
531 7ebf7443Swdenk
532 7ebf7443SwdenkRPXsuper_config:	unconfig
533 7ebf7443Swdenk	@./mkconfig $(@:_config=) ppc mpc8260 rpxsuper
534 7ebf7443Swdenk
535 7ebf7443Swdenkrsdproto_config:	unconfig
536 7ebf7443Swdenk	@./mkconfig $(@:_config=) ppc mpc8260 rsdproto
537 7ebf7443Swdenk
538 7ebf7443Swdenksacsng_config:	unconfig
539 7ebf7443Swdenk	@./mkconfig $(@:_config=) ppc mpc8260 sacsng
540 7ebf7443Swdenk
541 7ebf7443Swdenksbc8260_config:	unconfig
542 7ebf7443Swdenk	@./mkconfig $(@:_config=) ppc mpc8260 sbc8260
543 7ebf7443Swdenk
544 7ebf7443SwdenkSCM_config:		unconfig
545 7ebf7443Swdenk	@./mkconfig $(@:_config=) ppc mpc8260 SCM siemens
546 7ebf7443Swdenk
547 7ebf7443SwdenkTQM8260_config	\
548 7ebf7443SwdenkTQM8260_L2_config	\
549 7ebf7443SwdenkTQM8260_266MHz_config	\
550 7ebf7443SwdenkTQM8260_L2_266MHz_config \
551 7ebf7443SwdenkTQM8260_300MHz_config:	unconfig
552 7ebf7443Swdenk	@ >include/config.h
553 7ebf7443Swdenk	@if [ "$(findstring _L2_,$@)" ] ; then \
554 7ebf7443Swdenk		echo "#define CONFIG_L2_CACHE"	>>include/config.h ; \
555 7ebf7443Swdenk		echo "... with L2 Cache support (60x Bus Mode)" ; \
556 7ebf7443Swdenk	else \
557 7ebf7443Swdenk		echo "#undef CONFIG_L2_CACHE"	>>include/config.h ; \
558 7ebf7443Swdenk		echo "... without L2 Cache support" ; \
559 7ebf7443Swdenk	fi
560 7ebf7443Swdenk	@[ -z "$(findstring _266MHz,$@)" ] || \
561 7ebf7443Swdenk		{ echo "#define CONFIG_266MHz"	>>include/config.h ; \
562 7ebf7443Swdenk		  echo "... with 266MHz system clock" ; \
563 7ebf7443Swdenk		}
564 7ebf7443Swdenk	@[ -z "$(findstring _300MHz,$@)" ] || \
565 7ebf7443Swdenk		{ echo "#define CONFIG_300MHz"	>>include/config.h ; \
566 7ebf7443Swdenk		  echo "... with 300MHz system clock" ; \
567 7ebf7443Swdenk		}
568 7ebf7443Swdenk	@./mkconfig -a $(call xtract_82xx,$@) ppc mpc8260 tqm8260
569 7ebf7443Swdenk
570 7ebf7443Swdenk#########################################################################
571 7ebf7443Swdenk## 74xx/7xx Systems
572 7ebf7443Swdenk#########################################################################
573 7ebf7443Swdenk
574 c7de829cSwdenkAmigaOneG3SE_config:	unconfig
575 c7de829cSwdenk	@./mkconfig $(@:_config=) ppc 74xx_7xx AmigaOneG3SE MAI
576 c7de829cSwdenk
577 7ebf7443SwdenkEVB64260_config	\
578 7ebf7443SwdenkEVB64260_750CX_config:	unconfig
579 7ebf7443Swdenk	@./mkconfig EVB64260 ppc 74xx_7xx evb64260
580 7ebf7443Swdenk
581 7ebf7443SwdenkZUMA_config:	unconfig
582 7ebf7443Swdenk	@./mkconfig $(@:_config=) ppc 74xx_7xx evb64260
583 7ebf7443Swdenk
584 7ebf7443SwdenkPCIPPC2_config \
585 7ebf7443SwdenkPCIPPC6_config: unconfig
586 7ebf7443Swdenk	@./mkconfig $(@:_config=) ppc 74xx_7xx pcippc2
587 7ebf7443Swdenk
588 7ebf7443SwdenkBAB7xx_config: unconfig
589 7ebf7443Swdenk	@./mkconfig $(@:_config=) ppc 74xx_7xx bab7xx eltec
590 7ebf7443Swdenk
591 7ebf7443SwdenkELPPC_config: unconfig
592 7ebf7443Swdenk	@./mkconfig $(@:_config=) ppc 74xx_7xx elppc eltec
593 7ebf7443Swdenk
594 7ebf7443Swdenk#========================================================================
595 7ebf7443Swdenk# ARM
596 7ebf7443Swdenk#========================================================================
597 7ebf7443Swdenk#########################################################################
598 7ebf7443Swdenk## StrongARM Systems
599 7ebf7443Swdenk#########################################################################
600 7ebf7443Swdenk
601 7ebf7443Swdenklart_config	:	unconfig
602 7ebf7443Swdenk	@./mkconfig $(@:_config=) arm sa1100 lart
603 7ebf7443Swdenk
604 7ebf7443Swdenkdnp1110_config	:	unconfig
605 7ebf7443Swdenk	@./mkconfig $(@:_config=) arm sa1100 dnp1110
606 7ebf7443Swdenk
607 7ebf7443Swdenkshannon_config	:	unconfig
608 7ebf7443Swdenk	@./mkconfig $(@:_config=) arm sa1100 shannon
609 7ebf7443Swdenk
610 7ebf7443Swdenk#########################################################################
611 7ebf7443Swdenk## ARM920T Systems
612 7ebf7443Swdenk#########################################################################
613 7ebf7443Swdenk
614 7ebf7443Swdenksmdk2400_config	:	unconfig
615 7ebf7443Swdenk	@./mkconfig $(@:_config=) arm arm920t smdk2400
616 7ebf7443Swdenk
617 7ebf7443Swdenksmdk2410_config	:	unconfig
618 7ebf7443Swdenk	@./mkconfig $(@:_config=) arm arm920t smdk2410
619 7ebf7443Swdenk
620 7ebf7443Swdenktrab_config :		unconfig
621 7ebf7443Swdenk	@./mkconfig $(@:_config=) arm arm920t trab
622 7ebf7443Swdenk
623 7ebf7443Swdenk#########################################################################
624 7ebf7443Swdenk## ARM720T Systems
625 7ebf7443Swdenk#########################################################################
626 7ebf7443Swdenk
627 7ebf7443Swdenkimpa7_config	:	unconfig
628 7ebf7443Swdenk	@./mkconfig $(@:_config=) arm arm720t impa7
629 7ebf7443Swdenk
630 7ebf7443Swdenkep7312_config	:	unconfig
631 7ebf7443Swdenk	@./mkconfig $(@:_config=) arm arm720t ep7312
632 7ebf7443Swdenk
633 7ebf7443Swdenk#########################################################################
634 7ebf7443Swdenk## Xscale Systems
635 7ebf7443Swdenk#########################################################################
636 7ebf7443Swdenk
637 7ebf7443Swdenklubbock_config	:	unconfig
638 7ebf7443Swdenk	@./mkconfig $(@:_config=) arm xscale lubbock
639 7ebf7443Swdenk
640 7ebf7443Swdenkcradle_config	:	unconfig
641 7ebf7443Swdenk	@./mkconfig $(@:_config=) arm xscale cradle
642 7ebf7443Swdenk
643 7ebf7443Swdenkcsb226_config	:	unconfig
644 7ebf7443Swdenk	@./mkconfig $(@:_config=) arm xscale csb226
645 7ebf7443Swdenk
646 2262cfeeSwdenk#========================================================================
647 2262cfeeSwdenk# i386
648 2262cfeeSwdenk#========================================================================
649 2262cfeeSwdenk#########################################################################
650 2262cfeeSwdenk## AMD SC520 CDP
651 2262cfeeSwdenk#########################################################################
652 2262cfeeSwdenksc520_cdp_config	:	unconfig
653 2262cfeeSwdenk	@./mkconfig $(@:_config=) i386 i386 sc520_cdp
654 2262cfeeSwdenk
655 7ebf7443Swdenk#########################################################################
656 7ebf7443Swdenk
657 7ebf7443Swdenkclean:
658 7ebf7443Swdenk	find . -type f \
659 7ebf7443Swdenk		\( -name 'core' -o -name '*.bak' -o -name '*~' \
660 7ebf7443Swdenk		-o -name '*.o'  -o -name '*.a'  \) -print \
661 7ebf7443Swdenk		| xargs rm -f
662 7ebf7443Swdenk	rm -f examples/hello_world examples/timer examples/eepro100_eeprom
663 7ebf7443Swdenk	rm -f tools/img2srec tools/mkimage tools/envcrc tools/gen_eth_addr
664 7ebf7443Swdenk	rm -f tools/easylogo/easylogo tools/bmp_logo
665 7ebf7443Swdenk	rm -f tools/gdb/astest tools/gdb/gdbcont tools/gdb/gdbsend
666 228f29acSwdenk	rm -f tools/env/fw_printenv tools/env/fw_setenv
667 7ebf7443Swdenk
668 7ebf7443Swdenkclobber:	clean
669 7ebf7443Swdenk	find . -type f \
670 7ebf7443Swdenk		\( -name .depend -o -name '*.srec' -o -name '*.bin' \) \
671 7ebf7443Swdenk		-print \
672 7ebf7443Swdenk		| xargs rm -f
673 7ebf7443Swdenk	rm -f $(OBJS) *.bak tags TAGS
674 7ebf7443Swdenk	rm -fr *.*~
675 7ebf7443Swdenk	rm -f u-boot u-boot.bin u-boot.elf u-boot.srec u-boot.map System.map
676 228f29acSwdenk	rm -f tools/crc32.c tools/environment.c tools/env/crc32.c
677 7ebf7443Swdenk	rm -f include/asm/arch include/asm
678 7ebf7443Swdenk
679 7ebf7443Swdenkmrproper \
680 7ebf7443Swdenkdistclean:	clobber unconfig
681 7ebf7443Swdenk
682 7ebf7443Swdenkbackup:
683 7ebf7443Swdenk	F=`basename $(TOPDIR)` ; cd .. ; \
684 7ebf7443Swdenk	gtar --force-local -zcvf `date "+$$F-%Y-%m-%d-%T.tar.gz"` $$F
685 7ebf7443Swdenk
686 7ebf7443Swdenk#########################################################################
687