Skip to content
Snippets Groups Projects
Makefile 68.5 KiB
Newer Older
Wolfgang Denk's avatar
Wolfgang Denk committed
#
Wolfgang Denk's avatar
Wolfgang Denk committed
# Wolfgang Denk, DENX Software Engineering, wd@denx.de.
#
# See file CREDITS for list of people who contributed to this
# project.
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License as
# published by the Free Software Foundatio; either version 2 of
Wolfgang Denk's avatar
Wolfgang Denk committed
# the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston,
# MA 02111-1307 USA
#

EXTRAVERSION =
U_BOOT_VERSION = $(VERSION).$(PATCHLEVEL).$(SUBLEVEL)$(EXTRAVERSION)
VERSION_FILE = $(obj)include/version_autogenerated.h
Wolfgang Denk's avatar
Wolfgang Denk committed
HOSTARCH := $(shell uname -m | \
	sed -e s/i.86/i386/ \
	    -e s/sun4u/sparc64/ \
	    -e s/arm.*/arm/ \
	    -e s/sa110/arm/ \
	    -e s/powerpc/ppc/ \
	    -e s/macppc/ppc/)

HOSTOS := $(shell uname -s | tr '[:upper:]' '[:lower:]' | \
Wolfgang Denk's avatar
Wolfgang Denk committed
	    sed -e 's/\(cygwin\).*/cygwin/')

Wolfgang Denk's avatar
Wolfgang Denk committed

# Deal with colliding definitions from tcsh etc.
VENDOR=

#########################################################################
#
# U-boot build supports producing a object files to the separate external
# directory. Two use cases are supported:
# 1) Add O= to the make command line
# 'make O=/tmp/build all'
#
# 2) Set environement variable BUILD_DIR to point to the desired location
# 'export BUILD_DIR=/tmp/build'
# 'make'
#
# The second approach can also be used with a MAKEALL script
# 'export BUILD_DIR=/tmp/build'
# './MAKEALL'
# Command line 'O=' setting overrides BUILD_DIR environent variable.
# When none of the above methods is used the local build is performed and
# the object files are placed in the source directory.

ifdef O
ifeq ("$(origin O)", "command line")
BUILD_DIR := $(O)
endif
endif

ifneq ($(BUILD_DIR),)
saved-output := $(BUILD_DIR)

# Attempt to create a output directory.
$(shell [ -d ${BUILD_DIR} ] || mkdir -p ${BUILD_DIR})

# Verify if it was successful.
BUILD_DIR := $(shell cd $(BUILD_DIR) && /bin/pwd)
$(if $(BUILD_DIR),,$(error output directory "$(saved-output)" does not exist))
endif # ifneq ($(BUILD_DIR),)

OBJTREE		:= $(if $(BUILD_DIR),$(BUILD_DIR),$(CURDIR))
SRCTREE		:= $(CURDIR)
TOPDIR		:= $(SRCTREE)
LNDIR		:= $(OBJTREE)
export	TOPDIR SRCTREE OBJTREE

MKCONFIG	:= $(SRCTREE)/mkconfig
export MKCONFIG

ifneq ($(OBJTREE),$(SRCTREE))
REMOTE_BUILD 	:= 1
export REMOTE_BUILD
endif

# $(obj) and (src) are defined in config.mk but here in main Makefile
# we also need them before config.mk is included which is the case for
# some targets like unconfig, clean, clobber, distclean, etc.
ifneq ($(OBJTREE),$(SRCTREE))
obj := $(OBJTREE)/
src := $(SRCTREE)/
else
obj :=
src :=
Wolfgang Denk's avatar
Wolfgang Denk committed
#########################################################################

ifeq ($(OBJTREE)/include/config.mk,$(wildcard $(OBJTREE)/include/config.mk))
Wolfgang Denk's avatar
Wolfgang Denk committed

# load ARCH, BOARD, and CPU configuration
include $(OBJTREE)/include/config.mk
export	ARCH CPU BOARD VENDOR SOC
Wolfgang Denk's avatar
Wolfgang Denk committed
ifndef CROSS_COMPILE
ifeq ($(HOSTARCH),ppc)
CROSS_COMPILE =
else
ifeq ($(ARCH),ppc)
Eran Liberty's avatar
Eran Liberty committed
CROSS_COMPILE = powerpc-linux-
Wolfgang Denk's avatar
Wolfgang Denk committed
endif
ifeq ($(ARCH),arm)
CROSS_COMPILE = arm-linux-
Wolfgang Denk's avatar
Wolfgang Denk committed
endif
ifeq ($(ARCH),i386)
ifeq ($(HOSTARCH),i386)
CROSS_COMPILE =
else
CROSS_COMPILE = i386-linux-
endif
ifeq ($(ARCH),mips)
CROSS_COMPILE = mips_4KC-
endif
ifeq ($(ARCH),nios)
CROSS_COMPILE = nios-elf-
endif
ifeq ($(ARCH),nios2)
CROSS_COMPILE = nios2-elf-
endif
ifeq ($(ARCH),m68k)
CROSS_COMPILE = m68k-elf-
endif
ifeq ($(ARCH),microblaze)
CROSS_COMPILE = mb-
endif
Wolfgang Denk's avatar
Wolfgang Denk committed
ifeq ($(ARCH),blackfin)
CROSS_COMPILE = bfin-elf-
endif
Wolfgang Denk's avatar
Wolfgang Denk committed
endif
endif

export	CROSS_COMPILE

# load other configuration
include $(TOPDIR)/config.mk

Wolfgang Denk's avatar
Wolfgang Denk committed
#########################################################################
# U-Boot objects....order is important (i.e. start must be first)

OBJS  = cpu/$(CPU)/start.o
ifeq ($(CPU),i386)
OBJS += cpu/$(CPU)/start16.o
OBJS += cpu/$(CPU)/reset.o
Wolfgang Denk's avatar
Wolfgang Denk committed
ifeq ($(CPU),ppc4xx)
OBJS += cpu/$(CPU)/resetvec.o
Wolfgang Denk's avatar
Wolfgang Denk committed
endif
Eran Liberty's avatar
Eran Liberty committed
ifeq ($(CPU),mpc83xx)
OBJS += cpu/$(CPU)/resetvec.o
endif
ifeq ($(CPU),mpc85xx)
OBJS += cpu/$(CPU)/resetvec.o
endif
Wolfgang Denk's avatar
Wolfgang Denk committed
ifeq ($(CPU),bf533)
OBJS += cpu/$(CPU)/start1.o	cpu/$(CPU)/interrupt.o	cpu/$(CPU)/cache.o
OBJS += cpu/$(CPU)/cplbhdlr.o	cpu/$(CPU)/cplbmgr.o	cpu/$(CPU)/flush.o
endif
Wolfgang Denk's avatar
Wolfgang Denk committed

LIBS  = lib_generic/libgeneric.a
LIBS += board/$(BOARDDIR)/lib$(BOARD).a
Wolfgang Denk's avatar
Wolfgang Denk committed
LIBS += cpu/$(CPU)/lib$(CPU).a
ifdef SOC
LIBS += cpu/$(CPU)/$(SOC)/lib$(SOC).a
endif
Wolfgang Denk's avatar
Wolfgang Denk committed
LIBS += lib_$(ARCH)/lib$(ARCH).a
LIBS += fs/cramfs/libcramfs.a fs/fat/libfat.a fs/fdos/libfdos.a fs/jffs2/libjffs2.a \
Stefan Roese's avatar
Stefan Roese committed
	fs/reiserfs/libreiserfs.a fs/ext2/libext2fs.a
Wolfgang Denk's avatar
Wolfgang Denk committed
LIBS += net/libnet.a
LIBS += disk/libdisk.a
LIBS += rtc/librtc.a
LIBS += dtt/libdtt.a
LIBS += drivers/libdrivers.a
LIBS += drivers/nand/libnand.a
LIBS += drivers/nand_legacy/libnand_legacy.a
LIBS += drivers/sk98lin/libsk98lin.a
Wolfgang Denk's avatar
Wolfgang Denk committed
LIBS += post/libpost.a post/cpu/libcpu.a
LIBS += common/libcommon.a
.PHONY : $(LIBS)
# Add GCC lib
PLATFORM_LIBS += -L $(shell dirname `$(CC) $(CFLAGS) -print-libgcc-file-name`) -lgcc
# The "tools" are needed early, so put this first
# Don't include stuff already done in $(LIBS)
SUBDIRS	= tools \
	  examples \
	  post \
	  post/cpu
.PHONY : $(SUBDIRS)
ifeq ($(CONFIG_NAND_U_BOOT),y)
NAND_SPL = nand_spl
U_BOOT_NAND = $(obj)u-boot-nand.bin
endif

__OBJS := $(subst $(obj),,$(OBJS))
__LIBS := $(subst $(obj),,$(LIBS))

#########################################################################
Wolfgang Denk's avatar
Wolfgang Denk committed
#########################################################################

ALL = $(obj)u-boot.srec $(obj)u-boot.bin $(obj)System.map $(U_BOOT_NAND)
Wolfgang Denk's avatar
Wolfgang Denk committed

Wolfgang Denk's avatar
Wolfgang Denk committed

		$(OBJCOPY) ${OBJCFLAGS} -O ihex $< $@

$(obj)u-boot.srec:	$(obj)u-boot
Wolfgang Denk's avatar
Wolfgang Denk committed
		$(OBJCOPY) ${OBJCFLAGS} -O srec $< $@

Wolfgang Denk's avatar
Wolfgang Denk committed
		$(OBJCOPY) ${OBJCFLAGS} -O binary $< $@

$(obj)u-boot.img:	$(obj)u-boot.bin
		./tools/mkimage -A $(ARCH) -T firmware -C none \
		-a $(TEXT_BASE) -e 0 \
		-n $(shell sed -n -e 's/.*U_BOOT_VERSION//p' $(VERSION_FILE) | \
			sed -e 's/"[	 ]*$$/ for $(BOARD) board"/') \
		-d $< $@

Wolfgang Denk's avatar
Wolfgang Denk committed
		$(OBJDUMP) -d $< > $@

$(obj)u-boot:		depend version $(SUBDIRS) $(OBJS) $(LIBS) $(LDSCRIPT)
Wolfgang Denk's avatar
Wolfgang Denk committed
		UNDEF_SYM=`$(OBJDUMP) -x $(LIBS) |sed  -n -e 's/.*\(__u_boot_cmd_.*\)/-u\1/p'|sort|uniq`;\
		cd $(LNDIR) && $(LD) $(LDFLAGS) $$UNDEF_SYM $(__OBJS) \
			--start-group $(__LIBS) --end-group $(PLATFORM_LIBS) \
			-Map u-boot.map -o u-boot
Wolfgang Denk's avatar
Wolfgang Denk committed

$(OBJS):
		$(MAKE) -C cpu/$(CPU) $(if $(REMOTE_BUILD),$@,$(notdir $@))

		$(MAKE) -C $(dir $(subst $(obj),,$@))
		$(MAKE) -C $@ all
Wolfgang Denk's avatar
Wolfgang Denk committed

$(NAND_SPL):	version
		$(MAKE) -C nand_spl all

$(U_BOOT_NAND):	$(NAND_SPL) $(obj)u-boot.bin
		cat nand_spl/u-boot-spl-16k.bin $(obj)u-boot.bin > $(obj)u-boot-nand.bin
version:
		@echo -n "#define U_BOOT_VERSION \"U-Boot " > $(VERSION_FILE); \
		echo -n "$(U_BOOT_VERSION)" >> $(VERSION_FILE); \
		echo -n $(shell $(CONFIG_SHELL) $(TOPDIR)/tools/setlocalversion \
			 $(TOPDIR)) >> $(VERSION_FILE); \
		echo "\"" >> $(VERSION_FILE)

		$(MAKE) -C tools/gdb all || exit 1

updater:
		$(MAKE) -C tools/updater all || exit 1

env:
		$(MAKE) -C tools/env all || exit 1
Wolfgang Denk's avatar
Wolfgang Denk committed
depend dep:
		for dir in $(SUBDIRS) ; do $(MAKE) -C $$dir _depend ; done
Wolfgang Denk's avatar
Wolfgang Denk committed

tags ctags:
		ctags -w -o $(OBJTREE)/ctags `find $(SUBDIRS) include \
				lib_generic board/$(BOARDDIR) cpu/$(CPU) lib_$(ARCH) \
				fs/cramfs fs/fat fs/fdos fs/jffs2 \
				net disk rtc dtt drivers drivers/sk98lin common \
Wolfgang Denk's avatar
Wolfgang Denk committed
			\( -name CVS -prune \) -o \( -name '*.[ch]' -print \)`

etags:
		etags -a -o $(OBJTREE)/etags `find $(SUBDIRS) include \
				lib_generic board/$(BOARDDIR) cpu/$(CPU) lib_$(ARCH) \
				fs/cramfs fs/fat fs/fdos fs/jffs2 \
				net disk rtc dtt drivers drivers/sk98lin common \
Wolfgang Denk's avatar
Wolfgang Denk committed
			\( -name CVS -prune \) -o \( -name '*.[ch]' -print \)`

Wolfgang Denk's avatar
Wolfgang Denk committed
		@$(NM) $< | \
		grep -v '\(compiled\)\|\(\.o$$\)\|\( [aUw] \)\|\(\.\.ng$$\)\|\(LASH[RL]DI\)' | \
Wolfgang Denk's avatar
Wolfgang Denk committed

#########################################################################
else
all $(obj)u-boot.hex $(obj)u-boot.srec $(obj)u-boot.bin \
$(obj)u-boot.img $(obj)u-boot.dis $(obj)u-boot \
$(SUBDIRS) version gdbtools updater env depend \
dep tags ctags etags $(obj)System.map:
Wolfgang Denk's avatar
Wolfgang Denk committed
	@echo "System not configured - see README" >&2
	@ exit 1
endif

#########################################################################

unconfig:
	@rm -f $(obj)include/config.h $(obj)include/config.mk \
		$(obj)board/*/config.tmp $(obj)board/*/*/config.tmp
Wolfgang Denk's avatar
Wolfgang Denk committed

#========================================================================
# PowerPC
#========================================================================

#########################################################################
## MPC5xx Systems
#########################################################################

canmb_config:	unconfig
	@$(MKCONFIG) -a canmb ppc mpc5xxx canmb
cmi_mpc5xx_config:	unconfig
	@$(MKCONFIG) $(@:_config=) ppc mpc5xx cmi
PATI_config:		unconfig
	@$(MKCONFIG) $(@:_config=) ppc mpc5xx pati mpl
#########################################################################
## MPC5xxx Systems
#########################################################################
aev_config: unconfig
	@$(MKCONFIG) -a aev ppc mpc5xxx tqm5200
BC3450_config:	unconfig
	@$(MKCONFIG) -a BC3450 ppc mpc5xxx bc3450
cpci5200_config:  unconfig
	@$(MKCONFIG) -a cpci5200  ppc mpc5xxx cpci5200 esd
hmi1001_config:         unconfig
	@$(MKCONFIG) hmi1001 ppc mpc5xxx hmi1001
Lite5200_config				\
Lite5200_LOWBOOT_config			\
Lite5200_LOWBOOT08_config		\
icecube_5200_config			\
icecube_5200_LOWBOOT_config		\
icecube_5200_LOWBOOT08_config		\
icecube_5200_DDR_config 		\
icecube_5200_DDR_LOWBOOT_config 	\
icecube_5200_DDR_LOWBOOT08_config	\
icecube_5100_config:			unconfig
	@mkdir -p $(obj)include
	@mkdir -p $(obj)board/icecube
	@ >$(obj)include/config.h
Wolfgang Denk's avatar
Wolfgang Denk committed
	@[ -z "$(findstring LOWBOOT_,$@)" ] || \
		{ if [ "$(findstring DDR,$@)" ] ; \
			then echo "TEXT_BASE = 0xFF800000" >$(obj)board/icecube/config.tmp ; \
			else echo "TEXT_BASE = 0xFF000000" >$(obj)board/icecube/config.tmp ; \
Wolfgang Denk's avatar
Wolfgang Denk committed
		  fi ; \
		  echo "... with LOWBOOT configuration" ; \
		}
	@[ -z "$(findstring LOWBOOT08,$@)" ] || \
		{ echo "TEXT_BASE = 0xFF800000" >$(obj)board/icecube/config.tmp ; \
		  echo "... with 8 MB flash only" ; \
Wolfgang Denk's avatar
Wolfgang Denk committed
		  echo "... with LOWBOOT configuration" ; \
	@[ -z "$(findstring DDR,$@)" ] || \
		{ echo "#define CONFIG_MPC5200_DDR"	>>$(obj)include/config.h ; \
		  echo "... DDR memory revision" ; \
		}
	@[ -z "$(findstring 5200,$@)" ] || \
		{ echo "#define CONFIG_MPC5200"		>>$(obj)include/config.h ; \
		  echo "... with MPC5200 processor" ; \
		}
	@[ -z "$(findstring 5100,$@)" ] || \
		{ echo "#define CONFIG_MGT5100"		>>$(obj)include/config.h ; \
		  echo "... with MGT5100 processor" ; \
		}
	@$(MKCONFIG) -a IceCube ppc mpc5xxx icecube
v38b_config: unconfig
	@./mkconfig -a V38B ppc mpc5xxx v38b

inka4x0_config:	unconfig
	@$(MKCONFIG) inka4x0 ppc mpc5xxx inka4x0
lite5200b_config	\
lite5200b_LOWBOOT_config:	unconfig
	@mkdir -p $(obj)include
	@mkdir -p $(obj)board/icecube
	@ >$(obj)include/config.h
	@ echo "#define CONFIG_MPC5200_DDR"	>>$(obj)include/config.h
	@ echo "... DDR memory revision"
	@ echo "#define CONFIG_MPC5200"		>>$(obj)include/config.h
	@ echo "#define CONFIG_LITE5200B"	>>$(obj)include/config.h
	@[ -z "$(findstring LOWBOOT_,$@)" ] || \
		{ echo "TEXT_BASE = 0xFF000000" >$(obj)board/icecube/config.tmp ; \
		  echo "... with LOWBOOT configuration" ; \
		}
	@ echo "... with MPC5200B processor"
	@$(MKCONFIG) -a IceCube  ppc mpc5xxx icecube
mcc200_config	\
mcc200_SDRAM_config	\
mcc200_highboot_config	\
mcc200_COM12_config	\
mcc200_COM12_SDRAM_config	\
mcc200_COM12_highboot_config	\
mcc200_COM12_highboot_SDRAM_config	\
mcc200_highboot_SDRAM_config	\
prs200_config	\
prs200_DDR_config	\
prs200_highboot_config	\
prs200_highboot_DDR_config:	unconfig
	@mkdir -p $(obj)include
	@mkdir -p $(obj)board/mcc200
	@ >$(obj)include/config.h
	@[ -n "$(findstring highboot,$@)" ] || \
		{ echo "... with lowboot configuration" ; \
	@[ -z "$(findstring highboot,$@)" ] || \
		{ echo "TEXT_BASE = 0xFFF00000" >$(obj)board/mcc200/config.tmp ; \
		  echo "... with highboot configuration" ; \
		}
	@[ -n "$(findstring _SDRAM,$@)" ] || \
		{ if [ -n "$(findstring mcc200,$@)" ]; \
		  then \
		  	echo "... with DDR" ; \
		  else \
			if [ -n "$(findstring _DDR,$@)" ];\
			then \
				echo "... with DDR" ; \
			else \
				echo "#define CONFIG_MCC200_SDRAM" >>$(obj)include/config.h ;\
				echo "... with SDRAM" ; \
			fi; \
		  fi; \
		}
	@[ -z "$(findstring _SDRAM,$@)" ] || \
		{ echo "#define CONFIG_MCC200_SDRAM"	>>$(obj)include/config.h ; \
		  echo "... with SDRAM" ; \
		}
	@[ -z "$(findstring COM12,$@)" ] || \
		{ echo "#define CONFIG_CONSOLE_COM12"	>>$(obj)include/config.h ; \
		  echo "... with console on COM12" ; \
		}
	@[ -z "$(findstring prs200,$@)" ] || \
		{ echo "#define CONFIG_PRS200"  >>$(obj)include/config.h ;\
	@$(MKCONFIG) -n $@ -a mcc200 ppc mpc5xxx mcc200
	@$(MKCONFIG) o2dnt ppc mpc5xxx o2dnt
pf5200_config:  unconfig
	@$(MKCONFIG) pf5200  ppc mpc5xxx pf5200 esd
PM520_config \
PM520_DDR_config \
PM520_ROMBOOT_config \
PM520_ROMBOOT_DDR_config:	unconfig
	@mkdir -p $(obj)include
	@ >$(obj)include/config.h
	@[ -z "$(findstring DDR,$@)" ] || \
		{ echo "#define CONFIG_MPC5200_DDR"	>>$(obj)include/config.h ; \
		  echo "... DDR memory revision" ; \
		}
	@[ -z "$(findstring ROMBOOT,$@)" ] || \
		{ echo "#define CONFIG_BOOT_ROM" >>$(obj)include/config.h ; \
		  echo "... booting from 8-bit flash" ; \
		}
	@$(MKCONFIG) -a PM520 ppc mpc5xxx pm520
	@$(MKCONFIG) -a smmaco4 ppc mpc5xxx tqm5200

spieval_config:	unconfig
	@$(MKCONFIG) -a spieval ppc mpc5xxx tqm5200
TB5200_B_config \
TB5200_config:	unconfig
	@[ -z "$(findstring _B,$@)" ] || \
		{ echo "#define CONFIG_TQM5200_B"	>>$(obj)include/config.h ; \
		  echo "... with MPC5200B processor" ; \
		}
	@$(MKCONFIG) -n $@ -a TB5200 ppc mpc5xxx tqm5200
MINI5200_config	\
EVAL5200_config	\
TOP5200_config:	unconfig
	@mkdir -p $(obj)include
	@ echo "#define CONFIG_$(@:_config=) 1"	>$(obj)include/config.h
	@$(MKCONFIG) -n $@ -a TOP5200 ppc mpc5xxx top5200 emk
Total5100_config		\
Total5200_config		\
Total5200_lowboot_config	\
Total5200_Rev2_config		\
Total5200_Rev2_lowboot_config:	unconfig
	@mkdir -p $(obj)include
	@mkdir -p $(obj)board/total5200
	@ >$(obj)include/config.h
	@[ -z "$(findstring 5100,$@)" ] || \
		{ echo "#define CONFIG_MGT5100"		>>$(obj)include/config.h ; \
		  echo "... with MGT5100 processor" ; \
		}
	@[ -z "$(findstring 5200,$@)" ] || \
		{ echo "#define CONFIG_MPC5200"		>>$(obj)include/config.h ; \
		  echo "... with MPC5200 processor" ; \
		}
	@[ -n "$(findstring Rev,$@)" ] || \
		{ echo "#define CONFIG_TOTAL5200_REV 1"	>>$(obj)include/config.h ; \
		  echo "... revision 1 board" ; \
		}
	@[ -z "$(findstring Rev2_,$@)" ] || \
		{ echo "#define CONFIG_TOTAL5200_REV 2"	>>$(obj)include/config.h ; \
		  echo "... revision 2 board" ; \
		}
	@[ -z "$(findstring lowboot_,$@)" ] || \
		{ echo "TEXT_BASE = 0xFE000000" >$(obj)board/total5200/config.tmp ; \
		  echo "... with lowboot configuration" ; \
		}
	@$(MKCONFIG) -a Total5200 ppc mpc5xxx total5200
Wolfgang Denk's avatar
Wolfgang Denk committed
fo300_config \
Wolfgang Denk's avatar
Wolfgang Denk committed
TQM5200S_config \
TQM5200S_HIGHBOOT_config \
TQM5200_B_config \
TQM5200_B_HIGHBOOT_config \
TQM5200_config	\
TQM5200_STK100_config:	unconfig
	@mkdir -p $(obj)include
	@mkdir -p $(obj)board/tqm5200
	@ >$(obj)include/config.h
Wolfgang Denk's avatar
Wolfgang Denk committed
	@[ -z "$(findstring cam5200,$@)" ] || \
		{ echo "#define CONFIG_CAM5200"	>>$(obj)include/config.h ; \
		  echo "#define CONFIG_TQM5200S"	>>$(obj)include/config.h ; \
		  echo "#define CONFIG_TQM5200_B"	>>$(obj)include/config.h ; \
Wolfgang Denk's avatar
Wolfgang Denk committed
		  echo "... TQM5200S on Cam5200" ; \
		}
	@[ -z "$(findstring fo300,$@)" ] || \
		{ echo "#define CONFIG_FO300"	>>$(obj)include/config.h ; \
		  echo "... TQM5200 on FO300" ; \
		}
	@[ -z "$(findstring MiniFAP,$@)" ] || \
		{ echo "#define CONFIG_MINIFAP"	>>$(obj)include/config.h ; \
		  echo "... TQM5200_AC on MiniFAP" ; \
	@[ -z "$(findstring STK100,$@)" ] || \
		{ echo "#define CONFIG_STK52XX_REV100"	>>$(obj)include/config.h ; \
		  echo "... on a STK52XX.100 base board" ; \
	@[ -z "$(findstring TQM5200_B,$@)" ] || \
		{ echo "#define CONFIG_TQM5200_B"	>>$(obj)include/config.h ; \
		}
	@[ -z "$(findstring TQM5200S,$@)" ] || \
		{ echo "#define CONFIG_TQM5200S"	>>$(obj)include/config.h ; \
		  echo "#define CONFIG_TQM5200_B"	>>$(obj)include/config.h ; \
	@[ -z "$(findstring HIGHBOOT,$@)" ] || \
		{ echo "TEXT_BASE = 0xFFF00000" >$(obj)board/tqm5200/config.tmp ; \
	@$(MKCONFIG) -n $@ -a TQM5200 ppc mpc5xxx tqm5200
Wolfgang Denk's avatar
Wolfgang Denk committed
#########################################################################
## MPC8xx Systems
#########################################################################

Adder_config    \
Adder87x_config \
AdderII_config  \
	$(if $(findstring AdderII,$@), \
	@echo "#define CONFIG_MPC852T" > $(obj)include/config.h)
	@$(MKCONFIG) -a Adder ppc mpc8xx adder
ADS860_config     \
FADS823_config    \
FADS850SAR_config \
MPC86xADS_config  \
MPC885ADS_config  \
FADS860T_config:	unconfig
	@$(MKCONFIG) $(@:_config=) ppc mpc8xx fads
Wolfgang Denk's avatar
Wolfgang Denk committed

AMX860_config	:	unconfig
	@$(MKCONFIG) $(@:_config=) ppc mpc8xx amx860 westel
Wolfgang Denk's avatar
Wolfgang Denk committed

c2mon_config:		unconfig
	@$(MKCONFIG) $(@:_config=) ppc mpc8xx c2mon
Wolfgang Denk's avatar
Wolfgang Denk committed

CCM_config:		unconfig
	@$(MKCONFIG) $(@:_config=) ppc mpc8xx CCM siemens
Wolfgang Denk's avatar
Wolfgang Denk committed

cogent_mpc8xx_config:	unconfig
	@$(MKCONFIG) $(@:_config=) ppc mpc8xx cogent
Wolfgang Denk's avatar
Wolfgang Denk committed

ELPT860_config:		unconfig
	@$(MKCONFIG) $(@:_config=) ppc mpc8xx elpt860 LEOX
EP88x_config:		unconfig
	@$(MKCONFIG) $(@:_config=) ppc mpc8xx ep88x
Wolfgang Denk's avatar
Wolfgang Denk committed
ESTEEM192E_config:	unconfig
	@$(MKCONFIG) $(@:_config=) ppc mpc8xx esteem192e
Wolfgang Denk's avatar
Wolfgang Denk committed

ETX094_config	:	unconfig
	@$(MKCONFIG) $(@:_config=) ppc mpc8xx etx094
Wolfgang Denk's avatar
Wolfgang Denk committed

FLAGADM_config:	unconfig
	@$(MKCONFIG) $(@:_config=) ppc mpc8xx flagadm
Wolfgang Denk's avatar
Wolfgang Denk committed

xtract_GEN860T = $(subst _SC,,$(subst _config,,$1))

GEN860T_SC_config	\
Wolfgang Denk's avatar
Wolfgang Denk committed
GEN860T_config: unconfig
	@mkdir -p $(obj)include
	@ >$(obj)include/config.h
	@[ -z "$(findstring _SC,$@)" ] || \
		{ echo "#define CONFIG_SC" >>$(obj)include/config.h ; \
		  echo "With reduced H/W feature set (SC)..." ; \
		}
	@$(MKCONFIG) -a $(call xtract_GEN860T,$@) ppc mpc8xx gen860t
Wolfgang Denk's avatar
Wolfgang Denk committed

GENIETV_config:	unconfig
	@$(MKCONFIG) $(@:_config=) ppc mpc8xx genietv
Wolfgang Denk's avatar
Wolfgang Denk committed

GTH_config:	unconfig
	@$(MKCONFIG) $(@:_config=) ppc mpc8xx gth
Wolfgang Denk's avatar
Wolfgang Denk committed

hermes_config	:	unconfig
	@$(MKCONFIG) $(@:_config=) ppc mpc8xx hermes
Wolfgang Denk's avatar
Wolfgang Denk committed

HMI10_config	:	unconfig
	@$(MKCONFIG) $(@:_config=) ppc mpc8xx tqm8xx
Wolfgang Denk's avatar
Wolfgang Denk committed
IAD210_config: unconfig
	@$(MKCONFIG) $(@:_config=) ppc mpc8xx IAD210 siemens
Wolfgang Denk's avatar
Wolfgang Denk committed

xtract_ICU862 = $(subst _100MHz,,$(subst _config,,$1))

ICU862_100MHz_config	\
ICU862_config: unconfig
	@mkdir -p $(obj)include
	@ >$(obj)include/config.h
Wolfgang Denk's avatar
Wolfgang Denk committed
	@[ -z "$(findstring _100MHz,$@)" ] || \
		{ echo "#define CONFIG_100MHz"	>>$(obj)include/config.h ; \
Wolfgang Denk's avatar
Wolfgang Denk committed
		  echo "... with 100MHz system clock" ; \
		}
	@$(MKCONFIG) -a $(call xtract_ICU862,$@) ppc mpc8xx icu862
Wolfgang Denk's avatar
Wolfgang Denk committed

IP860_config	:	unconfig
	@$(MKCONFIG) $(@:_config=) ppc mpc8xx ip860
Wolfgang Denk's avatar
Wolfgang Denk committed

IVML24_256_config \
IVML24_128_config \
IVML24_config:	unconfig
	@mkdir -p $(obj)include
	@ >$(obj)include/config.h
Wolfgang Denk's avatar
Wolfgang Denk committed
	@[ -z "$(findstring IVML24_config,$@)" ] || \
		 { echo "#define CONFIG_IVML24_16M"	>>$(obj)include/config.h ; \
Wolfgang Denk's avatar
Wolfgang Denk committed
		 }
	@[ -z "$(findstring IVML24_128_config,$@)" ] || \
		 { echo "#define CONFIG_IVML24_32M"	>>$(obj)include/config.h ; \
Wolfgang Denk's avatar
Wolfgang Denk committed
		 }
	@[ -z "$(findstring IVML24_256_config,$@)" ] || \
		 { echo "#define CONFIG_IVML24_64M"	>>$(obj)include/config.h ; \
Wolfgang Denk's avatar
Wolfgang Denk committed
		 }
	@$(MKCONFIG) -a IVML24 ppc mpc8xx ivm
Wolfgang Denk's avatar
Wolfgang Denk committed

IVMS8_256_config \
IVMS8_128_config \
IVMS8_config:	unconfig
	@mkdir -p $(obj)include
	@ >$(obj)include/config.h
Wolfgang Denk's avatar
Wolfgang Denk committed
	@[ -z "$(findstring IVMS8_config,$@)" ] || \
		 { echo "#define CONFIG_IVMS8_16M"	>>$(obj)include/config.h ; \
Wolfgang Denk's avatar
Wolfgang Denk committed
		 }
	@[ -z "$(findstring IVMS8_128_config,$@)" ] || \
		 { echo "#define CONFIG_IVMS8_32M"	>>$(obj)include/config.h ; \
Wolfgang Denk's avatar
Wolfgang Denk committed
		 }
	@[ -z "$(findstring IVMS8_256_config,$@)" ] || \
		 { echo "#define CONFIG_IVMS8_64M"	>>$(obj)include/config.h ; \
Wolfgang Denk's avatar
Wolfgang Denk committed
		 }
	@$(MKCONFIG) -a IVMS8 ppc mpc8xx ivm
Wolfgang Denk's avatar
Wolfgang Denk committed

	@$(MKCONFIG) $(@:_config=) ppc mpc8xx kup4k kup

KUP4X_config    :       unconfig
	@$(MKCONFIG) $(@:_config=) ppc mpc8xx kup4x kup
Wolfgang Denk's avatar
Wolfgang Denk committed
LANTEC_config	:	unconfig
	@$(MKCONFIG) $(@:_config=) ppc mpc8xx lantec
Wolfgang Denk's avatar
Wolfgang Denk committed

lwmon_config:		unconfig
	@$(MKCONFIG) $(@:_config=) ppc mpc8xx lwmon
Wolfgang Denk's avatar
Wolfgang Denk committed

MBX_config	\
MBX860T_config:	unconfig
	@$(MKCONFIG) $(@:_config=) ppc mpc8xx mbx8xx
Wolfgang Denk's avatar
Wolfgang Denk committed

MHPC_config:		unconfig
	@$(MKCONFIG) $(@:_config=) ppc mpc8xx mhpc eltec
Wolfgang Denk's avatar
Wolfgang Denk committed

MVS1_config :		unconfig
	@$(MKCONFIG) $(@:_config=) ppc mpc8xx mvs1
Wolfgang Denk's avatar
Wolfgang Denk committed

xtract_NETVIA = $(subst _V2,,$(subst _config,,$1))

NETVIA_V2_config \
Wolfgang Denk's avatar
Wolfgang Denk committed
NETVIA_config:		unconfig
	@mkdir -p $(obj)include
	@ >$(obj)include/config.h
	@[ -z "$(findstring NETVIA_config,$@)" ] || \
		 { echo "#define CONFIG_NETVIA_VERSION 1" >>$(obj)include/config.h ; \
		  echo "... Version 1" ; \
		 }
	@[ -z "$(findstring NETVIA_V2_config,$@)" ] || \
		 { echo "#define CONFIG_NETVIA_VERSION 2" >>$(obj)include/config.h ; \
		  echo "... Version 2" ; \
		 }
	@$(MKCONFIG) -a $(call xtract_NETVIA,$@) ppc mpc8xx netvia
Wolfgang Denk's avatar
Wolfgang Denk committed

xtract_NETPHONE = $(subst _V2,,$(subst _config,,$1))

NETPHONE_V2_config \
NETPHONE_config:	unconfig
	@mkdir -p $(obj)include
	@ >$(obj)include/config.h
	@[ -z "$(findstring NETPHONE_config,$@)" ] || \
		 { echo "#define CONFIG_NETPHONE_VERSION 1" >>$(obj)include/config.h ; \
		 }
	@[ -z "$(findstring NETPHONE_V2_config,$@)" ] || \
		 { echo "#define CONFIG_NETPHONE_VERSION 2" >>$(obj)include/config.h ; \
	@$(MKCONFIG) -a $(call xtract_NETPHONE,$@) ppc mpc8xx netphone
xtract_NETTA = $(subst _SWAPHOOK,,$(subst _6412,,$(subst _ISDN,,$(subst _config,,$1))))
NETTA_ISDN_6412_SWAPHOOK_config \
NETTA_ISDN_SWAPHOOK_config \
NETTA_6412_SWAPHOOK_config \
NETTA_SWAPHOOK_config \
NETTA_ISDN_6412_config \
NETTA_ISDN_config \
NETTA_6412_config \
NETTA_config:		unconfig
	@mkdir -p $(obj)include
	@ >$(obj)include/config.h
	@[ -z "$(findstring ISDN_,$@)" ] || \
		 { echo "#define CONFIG_NETTA_ISDN 1" >>$(obj)include/config.h ; \
		 }
	@[ -n "$(findstring ISDN_,$@)" ] || \
		 { echo "#undef CONFIG_NETTA_ISDN" >>$(obj)include/config.h ; \
	@[ -z "$(findstring 6412_,$@)" ] || \
		 { echo "#define CONFIG_NETTA_6412 1" >>$(obj)include/config.h ; \
		 }
	@[ -n "$(findstring 6412_,$@)" ] || \
		 { echo "#undef CONFIG_NETTA_6412" >>$(obj)include/config.h ; \
		 }
	@[ -z "$(findstring SWAPHOOK_,$@)" ] || \
		 { echo "#define CONFIG_NETTA_SWAPHOOK 1" >>$(obj)include/config.h ; \
		 }
	@[ -n "$(findstring SWAPHOOK_,$@)" ] || \
		 { echo "#undef CONFIG_NETTA_SWAPHOOK" >>$(obj)include/config.h ; \
	@$(MKCONFIG) -a $(call xtract_NETTA,$@) ppc mpc8xx netta
xtract_NETTA2 = $(subst _V2,,$(subst _config,,$1))

NETTA2_V2_config \
NETTA2_config:		unconfig
	@mkdir -p $(obj)include
	@ >$(obj)include/config.h
	@[ -z "$(findstring NETTA2_config,$@)" ] || \
		 { echo "#define CONFIG_NETTA2_VERSION 1" >>$(obj)include/config.h ; \
		 }
	@[ -z "$(findstring NETTA2_V2_config,$@)" ] || \
		 { echo "#define CONFIG_NETTA2_VERSION 2" >>$(obj)include/config.h ; \
	@$(MKCONFIG) -a $(call xtract_NETTA2,$@) ppc mpc8xx netta2
NC650_Rev1_config \
NC650_Rev2_config \
CP850_config:	unconfig
	@mkdir -p $(obj)include
	@ >$(obj)include/config.h
	@[ -z "$(findstring CP850,$@)" ] || \
		 { echo "#define CONFIG_CP850 1" >>$(obj)include/config.h ; \
		   echo "#define CONFIG_IDS852_REV2 1" >>$(obj)include/config.h ; \
		 }
	@[ -z "$(findstring Rev1,$@)" ] || \
		 { echo "#define CONFIG_IDS852_REV1 1" >>$(obj)include/config.h ; \
		 }
	@[ -z "$(findstring Rev2,$@)" ] || \
		 { echo "#define CONFIG_IDS852_REV2 1" >>$(obj)include/config.h ; \
	@$(MKCONFIG) -a NC650 ppc mpc8xx nc650
Wolfgang Denk's avatar
Wolfgang Denk committed
NX823_config:		unconfig
	@$(MKCONFIG) $(@:_config=) ppc mpc8xx nx823
Wolfgang Denk's avatar
Wolfgang Denk committed

pcu_e_config:		unconfig
	@$(MKCONFIG) $(@:_config=) ppc mpc8xx pcu_e siemens
Wolfgang Denk's avatar
Wolfgang Denk committed

QS850_config:	unconfig
	@$(MKCONFIG) $(@:_config=) ppc mpc8xx qs850 snmc

QS823_config:	unconfig
	@$(MKCONFIG) $(@:_config=) ppc mpc8xx qs850 snmc

QS860T_config:	unconfig
	@$(MKCONFIG) $(@:_config=) ppc mpc8xx qs860t snmc
quantum_config:	unconfig
	@$(MKCONFIG) $(@:_config=) ppc mpc8xx quantum
Wolfgang Denk's avatar
Wolfgang Denk committed
R360MPI_config:	unconfig
	@$(MKCONFIG) $(@:_config=) ppc mpc8xx r360mpi
Wolfgang Denk's avatar
Wolfgang Denk committed

RBC823_config:	unconfig
	@$(MKCONFIG) $(@:_config=) ppc mpc8xx rbc823
Wolfgang Denk's avatar
Wolfgang Denk committed
RPXClassic_config:	unconfig
	@$(MKCONFIG) $(@:_config=) ppc mpc8xx RPXClassic
Wolfgang Denk's avatar
Wolfgang Denk committed

RPXlite_config:		unconfig
	@$(MKCONFIG) $(@:_config=) ppc mpc8xx RPXlite
Wolfgang Denk's avatar
Wolfgang Denk committed

RPXlite_DW_64_config  		\
RPXlite_DW_LCD_config 		\
RPXlite_DW_64_LCD_config 	\
RPXlite_DW_NVRAM_config		\
RPXlite_DW_NVRAM_64_config      \
RPXlite_DW_NVRAM_LCD_config	\
RPXlite_DW_NVRAM_64_LCD_config  \
RPXlite_DW_config:         unconfig
	@mkdir -p $(obj)include
	@ >$(obj)include/config.h
	@[ -z "$(findstring _64,$@)" ] || \
		{ echo "#define RPXlite_64MHz"		>>$(obj)include/config.h ; \
		  echo "... with 64MHz system clock ..."; \
		}
	@[ -z "$(findstring _LCD,$@)" ] || \
		{ echo "#define CONFIG_LCD"          	>>$(obj)include/config.h ; \
		  echo "#define CONFIG_NEC_NL6448BC20"	>>$(obj)include/config.h ; \
		  echo "... with LCD display ..."; \
		}
	@[ -z "$(findstring _NVRAM,$@)" ] || \
		{ echo "#define  CFG_ENV_IS_IN_NVRAM" 	>>$(obj)include/config.h ; \
		  echo "... with ENV in NVRAM ..."; \
		}
	@$(MKCONFIG) -a RPXlite_DW ppc mpc8xx RPXlite_dw
rmu_config:	unconfig
	@$(MKCONFIG) $(@:_config=) ppc mpc8xx rmu
Wolfgang Denk's avatar
Wolfgang Denk committed
RRvision_config:	unconfig
	@$(MKCONFIG) $(@:_config=) ppc mpc8xx RRvision
Wolfgang Denk's avatar
Wolfgang Denk committed

RRvision_LCD_config:	unconfig
	@mkdir -p $(obj)include
	@echo "#define CONFIG_LCD" >$(obj)include/config.h
	@echo "#define CONFIG_SHARP_LQ104V7DS01" >>$(obj)include/config.h
	@$(MKCONFIG) -a RRvision ppc mpc8xx RRvision
Wolfgang Denk's avatar
Wolfgang Denk committed

SM850_config	:	unconfig
	@$(MKCONFIG) $(@:_config=) ppc mpc8xx tqm8xx
Wolfgang Denk's avatar
Wolfgang Denk committed

spc1920_config:
	@$(MKCONFIG) $(@:_config=) ppc mpc8xx spc1920
Wolfgang Denk's avatar
Wolfgang Denk committed
SPD823TS_config:	unconfig
	@$(MKCONFIG) $(@:_config=) ppc mpc8xx spd8xx
Wolfgang Denk's avatar
Wolfgang Denk committed

	@$(MKCONFIG) $(@:_config=) ppc mpc8xx stxxtc
svm_sc8xx_config:	unconfig
	@$(MKCONFIG) $(@:_config=) ppc mpc8xx svm_sc8xx
Wolfgang Denk's avatar
Wolfgang Denk committed
SXNI855T_config:	unconfig
	@$(MKCONFIG) $(@:_config=) ppc mpc8xx sixnet
Wolfgang Denk's avatar
Wolfgang Denk committed

# EMK MPC8xx based modules
TOP860_config:		unconfig
	@$(MKCONFIG) $(@:_config=) ppc mpc8xx top860 emk
Wolfgang Denk's avatar
Wolfgang Denk committed
# Play some tricks for configuration selection
# Only 855 and 860 boards may come with FEC
# and only 823 boards may have LCD support
xtract_8xx = $(subst _LCD,,$(subst _config,,$1))
Wolfgang Denk's avatar
Wolfgang Denk committed

FPS850L_config		\
FPS860L_config		\
NSCU_config		\
Wolfgang Denk's avatar
Wolfgang Denk committed
TQM823L_config		\
TQM823L_LCD_config	\
TQM850L_config		\
TQM855L_config		\
TQM860L_config		\
TQM862L_config		\
TQM823M_config		\
TQM850M_config		\
TQM855M_config		\
TQM860M_config		\
TQM862M_config		\
TQM866M_config		\
TQM885D_config		\
virtlab2_config:	unconfig
	@mkdir -p $(obj)include
	@ >$(obj)include/config.h
Wolfgang Denk's avatar
Wolfgang Denk committed
	@[ -z "$(findstring _LCD,$@)" ] || \
		{ echo "#define CONFIG_LCD"		>>$(obj)include/config.h ; \
		  echo "#define CONFIG_NEC_NL6448BC20"	>>$(obj)include/config.h ; \
Wolfgang Denk's avatar
Wolfgang Denk committed
		  echo "... with LCD display" ; \
		}
	@$(MKCONFIG) -a $(call xtract_8xx,$@) ppc mpc8xx tqm8xx
Wolfgang Denk's avatar
Wolfgang Denk committed

TTTech_config:	unconfig
	@mkdir -p $(obj)include
	@echo "#define CONFIG_LCD" >$(obj)include/config.h
	@echo "#define CONFIG_SHARP_LQ104V7DS01" >>$(obj)include/config.h
	@$(MKCONFIG) -a TQM823L ppc mpc8xx tqm8xx
Wolfgang Denk's avatar
Wolfgang Denk committed

	@$(MKCONFIG) $(@:_config=) ppc mpc8xx uc100
Wolfgang Denk's avatar
Wolfgang Denk committed
v37_config:	unconfig
	@mkdir -p $(obj)include
	@echo "#define CONFIG_LCD" >$(obj)include/config.h
	@echo "#define CONFIG_SHARP_LQ084V1DG21" >>$(obj)include/config.h
	@$(MKCONFIG) $(@:_config=) ppc mpc8xx v37
dzu's avatar
dzu committed
wtk_config:	unconfig
	@mkdir -p $(obj)include
	@echo "#define CONFIG_LCD" >$(obj)include/config.h
	@echo "#define CONFIG_SHARP_LQ065T9DR51U" >>$(obj)include/config.h
	@$(MKCONFIG) -a TQM823L ppc mpc8xx tqm8xx
Wolfgang Denk's avatar
Wolfgang Denk committed
#########################################################################
## PPC4xx Systems
#########################################################################
xtract_4xx = $(subst _25,,$(subst _33,,$(subst _BA,,$(subst _ME,,$(subst _HI,,$(subst _config,,$1))))))
Wolfgang Denk's avatar
Wolfgang Denk committed

ADCIOP_config:	unconfig
	@$(MKCONFIG) $(@:_config=) ppc ppc4xx adciop esd
Wolfgang Denk's avatar
Wolfgang Denk committed

AP1000_config:unconfig
	@$(MKCONFIG) $(@:_config=) ppc ppc4xx ap1000 amirix
Stefan Roese's avatar
Stefan Roese committed
APC405_config:	unconfig
	@$(MKCONFIG) $(@:_config=) ppc ppc4xx apc405 esd
Wolfgang Denk's avatar
Wolfgang Denk committed
AR405_config:	unconfig
	@$(MKCONFIG) $(@:_config=) ppc ppc4xx ar405 esd
Wolfgang Denk's avatar
Wolfgang Denk committed

ASH405_config:	unconfig
	@$(MKCONFIG) $(@:_config=) ppc ppc4xx ash405 esd
bamboo_config:	unconfig
	@$(MKCONFIG) $(@:_config=) ppc ppc4xx bamboo amcc

bubinga_config:	unconfig
	@$(MKCONFIG) $(@:_config=) ppc ppc4xx bubinga amcc
Wolfgang Denk's avatar
Wolfgang Denk committed
CANBT_config:	unconfig
	@$(MKCONFIG) $(@:_config=) ppc ppc4xx canbt esd
Wolfgang Denk's avatar
Wolfgang Denk committed

CATcenter_config	\
CATcenter_25_config	\
CATcenter_33_config:	unconfig