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