#
# (C) Copyright 2000-2006
# 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
# 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
#

VERSION = 1
PATCHLEVEL = 3
SUBLEVEL = 0
EXTRAVERSION = -rc1
U_BOOT_VERSION = $(VERSION).$(PATCHLEVEL).$(SUBLEVEL)$(EXTRAVERSION)
VERSION_FILE = $(obj)include/version_autogenerated.h

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/ppc64/ppc/ \
	    -e s/macppc/ppc/)

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

export	HOSTARCH HOSTOS

# 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 :=
endif
export obj src

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

ifeq ($(OBJTREE)/include/config.mk,$(wildcard $(OBJTREE)/include/config.mk))

# load ARCH, BOARD, and CPU configuration
include $(OBJTREE)/include/config.mk
export	ARCH CPU BOARD VENDOR SOC

ifndef CROSS_COMPILE
ifeq ($(HOSTARCH),$(ARCH))
CROSS_COMPILE =
else
ifeq ($(ARCH),ppc)
CROSS_COMPILE = ppc_8xx-
endif
ifeq ($(ARCH),arm)
CROSS_COMPILE = arm-linux-
endif
ifeq ($(ARCH),i386)
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
ifeq ($(ARCH),blackfin)
CROSS_COMPILE = bfin-uclinux-
endif
ifeq ($(ARCH),avr32)
CROSS_COMPILE = avr32-linux-
endif
endif
endif

export	CROSS_COMPILE

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

#########################################################################
# 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
endif
ifeq ($(CPU),ppc4xx)
OBJS += cpu/$(CPU)/resetvec.o
endif
ifeq ($(CPU),mpc85xx)
OBJS += cpu/$(CPU)/resetvec.o
endif
ifeq ($(CPU),bf533)
OBJS += cpu/$(CPU)/start1.o	cpu/$(CPU)/interrupt.o	cpu/$(CPU)/cache.o
OBJS += cpu/$(CPU)/flush.o	cpu/$(CPU)/init_sdram.o
endif
ifeq ($(CPU),bf537)
OBJS += cpu/$(CPU)/start1.o	cpu/$(CPU)/interrupt.o	cpu/$(CPU)/cache.o
OBJS += cpu/$(CPU)/flush.o	cpu/$(CPU)/init_sdram.o
endif
ifeq ($(CPU),bf561)
OBJS += cpu/$(CPU)/start1.o	cpu/$(CPU)/interrupt.o	cpu/$(CPU)/cache.o
OBJS += cpu/$(CPU)/flush.o 	cpu/$(CPU)/init_sdram.o
endif

OBJS := $(addprefix $(obj),$(OBJS))

LIBS  = lib_generic/libgeneric.a
LIBS += $(shell if [ -f board/$(VENDOR)/common/Makefile ]; then echo \
	"board/$(VENDOR)/common/lib$(VENDOR).a"; fi)
LIBS += board/$(BOARDDIR)/lib$(BOARD).a
LIBS += cpu/$(CPU)/lib$(CPU).a
ifdef SOC
LIBS += cpu/$(CPU)/$(SOC)/lib$(SOC).a
endif
ifeq ($(CPU),ixp)
LIBS += cpu/ixp/npe/libnpe.a
endif
LIBS += lib_$(ARCH)/lib$(ARCH).a
LIBS += fs/cramfs/libcramfs.a fs/fat/libfat.a fs/fdos/libfdos.a fs/jffs2/libjffs2.a \
	fs/reiserfs/libreiserfs.a fs/ext2/libext2fs.a
LIBS += net/libnet.a
LIBS += disk/libdisk.a
LIBS += rtc/librtc.a
LIBS += dtt/libdtt.a
LIBS += drivers/libdrivers.a
LIBS += drivers/bios_emulator/libatibiosemu.a
LIBS += drivers/nand/libnand.a
LIBS += drivers/nand_legacy/libnand_legacy.a
LIBS += drivers/net/libnet.a
ifeq ($(CPU),mpc83xx)
LIBS += drivers/qe/qe.a
endif
ifeq ($(CPU),mpc85xx)
LIBS += drivers/qe/qe.a
endif
LIBS += drivers/serial/libserial.a
LIBS += drivers/sk98lin/libsk98lin.a
LIBS += post/libpost.a post/drivers/libpostdrivers.a
LIBS += $(shell if [ -d post/lib_$(ARCH) ]; then echo \
	"post/lib_$(ARCH)/libpost$(ARCH).a"; fi)
LIBS += $(shell if [ -d post/lib_$(ARCH)/fpu ]; then echo \
	"post/lib_$(ARCH)/fpu/libpost$(ARCH)fpu.a"; fi)
LIBS += $(shell if [ -d post/cpu/$(CPU) ]; then echo \
	"post/cpu/$(CPU)/libpost$(CPU).a"; fi)
LIBS += $(shell if [ -d post/board/$(BOARDDIR) ]; then echo \
	"post/board/$(BOARDDIR)/libpost$(BOARD).a"; fi)
LIBS += common/libcommon.a
LIBS += libfdt/libfdt.a

LIBS := $(addprefix $(obj),$(LIBS))
.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

.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))

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

ALL += $(obj)u-boot.srec $(obj)u-boot.bin $(obj)System.map $(U_BOOT_NAND)

all:		$(ALL)

$(obj)u-boot.hex:	$(obj)u-boot
		$(OBJCOPY) ${OBJCFLAGS} -O ihex $< $@

$(obj)u-boot.srec:	$(obj)u-boot
		$(OBJCOPY) ${OBJCFLAGS} -O srec $< $@

$(obj)u-boot.bin:	$(obj)u-boot
		$(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 $< $@

$(obj)u-boot.sha1:	$(obj)u-boot.bin
		$(obj)tools/ubsha1 $(obj)u-boot.bin

$(obj)u-boot.dis:	$(obj)u-boot
		$(OBJDUMP) -d $< > $@

$(obj)u-boot:		depend version $(SUBDIRS) $(OBJS) $(LIBS) $(LDSCRIPT)
		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

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

$(LIBS):
		$(MAKE) -C $(dir $(subst $(obj),,$@))

$(SUBDIRS):
		$(MAKE) -C $@ all

$(NAND_SPL):	version
		$(MAKE) -C nand_spl/board/$(BOARDDIR) all

$(U_BOOT_NAND):	$(NAND_SPL) $(obj)u-boot.bin
		cat $(obj)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)

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

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

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

depend dep:
		for dir in $(SUBDIRS) ; do $(MAKE) -C $$dir _depend ; done

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 \
			\( -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 \
			\( -name CVS -prune \) -o \( -name '*.[ch]' -print \)`

$(obj)System.map:	$(obj)u-boot
		@$(NM) $< | \
		grep -v '\(compiled\)\|\(\.o$$\)\|\( [aUw] \)\|\(\.\.ng$$\)\|\(LASH[RL]DI\)' | \
		sort > $(obj)System.map

#########################################################################
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:
	@echo "System not configured - see README" >&2
	@ exit 1
endif

.PHONY : CHANGELOG
CHANGELOG:
	git log --no-merges U-Boot-1_1_5.. | \
	unexpand -a | sed -e 's/\s\s*$$//' > $@

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

unconfig:
	@rm -f $(obj)include/config.h $(obj)include/config.mk \
		$(obj)board/*/config.tmp $(obj)board/*/*/config.tmp

#========================================================================
# 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
	@[ -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 ; \
		  fi ; \
		  echo "... with LOWBOOT configuration" ; \
		}
	@[ -z "$(findstring LOWBOOT08,$@)" ] || \
		{ echo "TEXT_BASE = 0xFF800000" >$(obj)board/icecube/config.tmp ; \
		  echo "... with 8 MB flash only" ; \
		  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

jupiter_config:         unconfig
	@$(MKCONFIG) jupiter ppc mpc5xxx jupiter

v38b_config: unconfig
	@$(MKCONFIG) -a v38b ppc mpc5xxx v38b

inka4x0_config:	unconfig
	@$(MKCONFIG) inka4x0 ppc mpc5xxx inka4x0

lite5200b_config	\
lite5200b_PM_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 _PM_,$@)" ] || \
		{ echo "#define CONFIG_LITE5200B_PM"	>>$(obj)include/config.h ; \
		  echo "... with power management (low-power mode) support" ; \
		}
	@[ -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

mecp5200_config:  unconfig
	@$(MKCONFIG) -a mecp5200  ppc mpc5xxx mecp5200 esd

o2dnt_config:
	@$(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

smmaco4_config: unconfig
	@$(MKCONFIG) -a smmaco4 ppc mpc5xxx tqm5200

cm5200_config:	unconfig
	@./mkconfig -a cm5200 ppc mpc5xxx cm5200

spieval_config:	unconfig
	@$(MKCONFIG) -a spieval ppc mpc5xxx tqm5200

TB5200_B_config \
TB5200_config:	unconfig
	@mkdir -p $(obj)include
	@[ -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

cam5200_config \
cam5200_niosflash_config \
fo300_config \
MiniFAP_config \
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
	@[ -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 ; \
		  echo "... TQM5200S on Cam5200" ; \
		}
	@[ -z "$(findstring niosflash,$@)" ] || \
		{ echo "#define CONFIG_CAM5200_NIOSFLASH"	>>$(obj)include/config.h ; \
		  echo "... with NIOS flash driver" ; \
		}
	@[ -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
uc101_config:         unconfig
	@$(MKCONFIG) uc101 ppc mpc5xxx uc101
motionpro_config:         unconfig
	@$(MKCONFIG) motionpro ppc mpc5xxx motionpro


#########################################################################
## MPC512x Systems
#########################################################################
ads5121_config: unconfig
	@$(MKCONFIG) ads5121 ppc mpc512x ads5121


#########################################################################
## MPC8xx Systems
#########################################################################

Adder_config    \
Adder87x_config \
AdderII_config  \
	:		unconfig
	@mkdir -p $(obj)include
	$(if $(findstring AdderII,$@), \
	@echo "#define CONFIG_MPC852T" > $(obj)include/config.h)
	@$(MKCONFIG) -a Adder ppc mpc8xx adder

AdderUSB_config:	unconfig
	@./mkconfig -a AdderUSB ppc mpc8xx adder

ADS860_config     \
FADS823_config    \
FADS850SAR_config \
MPC86xADS_config  \
MPC885ADS_config  \
FADS860T_config:	unconfig
	@$(MKCONFIG) $(@:_config=) ppc mpc8xx fads

AMX860_config	:	unconfig
	@$(MKCONFIG) $(@:_config=) ppc mpc8xx amx860 westel

c2mon_config:		unconfig
	@$(MKCONFIG) $(@:_config=) ppc mpc8xx c2mon

CCM_config:		unconfig
	@$(MKCONFIG) $(@:_config=) ppc mpc8xx CCM siemens

cogent_mpc8xx_config:	unconfig
	@$(MKCONFIG) $(@:_config=) ppc mpc8xx cogent

ELPT860_config:		unconfig
	@$(MKCONFIG) $(@:_config=) ppc mpc8xx elpt860 LEOX

EP88x_config:		unconfig
	@$(MKCONFIG) $(@:_config=) ppc mpc8xx ep88x

ESTEEM192E_config:	unconfig
	@$(MKCONFIG) $(@:_config=) ppc mpc8xx esteem192e

ETX094_config	:	unconfig
	@$(MKCONFIG) $(@:_config=) ppc mpc8xx etx094

FLAGADM_config:	unconfig
	@$(MKCONFIG) $(@:_config=) ppc mpc8xx flagadm

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

GEN860T_SC_config	\
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

GENIETV_config:	unconfig
	@$(MKCONFIG) $(@:_config=) ppc mpc8xx genietv

GTH_config:	unconfig
	@$(MKCONFIG) $(@:_config=) ppc mpc8xx gth

hermes_config	:	unconfig
	@$(MKCONFIG) $(@:_config=) ppc mpc8xx hermes

HMI10_config	:	unconfig
	@$(MKCONFIG) $(@:_config=) ppc mpc8xx tqm8xx

IAD210_config: unconfig
	@$(MKCONFIG) $(@:_config=) ppc mpc8xx IAD210 siemens

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

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

IP860_config	:	unconfig
	@$(MKCONFIG) $(@:_config=) ppc mpc8xx ip860

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

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

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

KUP4X_config    :       unconfig
	@$(MKCONFIG) $(@:_config=) ppc mpc8xx kup4x kup

LANTEC_config	:	unconfig
	@$(MKCONFIG) $(@:_config=) ppc mpc8xx lantec

lwmon_config:		unconfig
	@$(MKCONFIG) $(@:_config=) ppc mpc8xx lwmon

MBX_config	\
MBX860T_config:	unconfig
	@$(MKCONFIG) $(@:_config=) ppc mpc8xx mbx8xx

MHPC_config:		unconfig
	@$(MKCONFIG) $(@:_config=) ppc mpc8xx mhpc eltec

MVS1_config :		unconfig
	@$(MKCONFIG) $(@:_config=) ppc mpc8xx mvs1

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

NETVIA_V2_config \
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

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

NX823_config:		unconfig
	@$(MKCONFIG) $(@:_config=) ppc mpc8xx nx823

pcu_e_config:		unconfig
	@$(MKCONFIG) $(@:_config=) ppc mpc8xx pcu_e siemens

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

R360MPI_config:	unconfig
	@$(MKCONFIG) $(@:_config=) ppc mpc8xx r360mpi

RBC823_config:	unconfig
	@$(MKCONFIG) $(@:_config=) ppc mpc8xx rbc823

RPXClassic_config:	unconfig
	@$(MKCONFIG) $(@:_config=) ppc mpc8xx RPXClassic

RPXlite_config:		unconfig
	@$(MKCONFIG) $(@:_config=) ppc mpc8xx RPXlite

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

RRvision_config:	unconfig
	@$(MKCONFIG) $(@:_config=) ppc mpc8xx RRvision

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

SM850_config	:	unconfig
	@$(MKCONFIG) $(@:_config=) ppc mpc8xx tqm8xx

spc1920_config:
	@$(MKCONFIG) $(@:_config=) ppc mpc8xx spc1920

SPD823TS_config:	unconfig
	@$(MKCONFIG) $(@:_config=) ppc mpc8xx spd8xx

stxxtc_config:	unconfig
	@$(MKCONFIG) $(@:_config=) ppc mpc8xx stxxtc

svm_sc8xx_config:	unconfig
	@$(MKCONFIG) $(@:_config=) ppc mpc8xx svm_sc8xx

SXNI855T_config:	unconfig
	@$(MKCONFIG) $(@:_config=) ppc mpc8xx sixnet

# EMK MPC8xx based modules
TOP860_config:		unconfig
	@$(MKCONFIG) $(@:_config=) ppc mpc8xx top860 emk

# 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))

FPS850L_config		\
FPS860L_config		\
NSCU_config		\
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
	@[ -z "$(findstring _LCD,$@)" ] || \
		{ echo "#define CONFIG_LCD"		>>$(obj)include/config.h ; \
		  echo "#define CONFIG_NEC_NL6448BC20"	>>$(obj)include/config.h ; \
		  echo "... with LCD display" ; \
		}
	@$(MKCONFIG) -a $(call xtract_8xx,$@) ppc mpc8xx tqm8xx

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

uc100_config	:	unconfig
	@$(MKCONFIG) $(@:_config=) ppc mpc8xx uc100

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

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

#########################################################################
## PPC4xx Systems
#########################################################################
xtract_4xx = $(subst _25,,$(subst _33,,$(subst _BA,,$(subst _ME,,$(subst _HI,,$(subst _config,,$1))))))

acadia_config:	unconfig
	@$(MKCONFIG) $(@:_config=) ppc ppc4xx acadia amcc

acadia_nand_config:	unconfig
	@mkdir -p $(obj)include $(obj)board/amcc/acadia
	@mkdir -p $(obj)nand_spl/board/amcc/acadia
	@echo "#define CONFIG_NAND_U_BOOT" > $(obj)include/config.h
	@$(MKCONFIG) -n $@ -a acadia ppc ppc4xx acadia amcc
	@echo "TEXT_BASE = 0x01000000" > $(obj)board/amcc/acadia/config.tmp
	@echo "CONFIG_NAND_U_BOOT = y" >> $(obj)include/config.mk

ADCIOP_config:	unconfig
	@$(MKCONFIG) $(@:_config=) ppc ppc4xx adciop esd

alpr_config:	unconfig
	@$(MKCONFIG) $(@:_config=) ppc ppc4xx alpr prodrive

AP1000_config:unconfig
	@$(MKCONFIG) $(@:_config=) ppc ppc4xx ap1000 amirix

APC405_config:	unconfig
	@$(MKCONFIG) $(@:_config=) ppc ppc4xx apc405 esd

AR405_config:	unconfig
	@$(MKCONFIG) $(@:_config=) ppc ppc4xx ar405 esd

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

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

bamboo_nand_config:	unconfig
	@mkdir -p $(obj)include $(obj)board/amcc/bamboo
	@mkdir -p $(obj)nand_spl/board/amcc/bamboo
	@echo "#define CONFIG_NAND_U_BOOT" > $(obj)include/config.h
	@$(MKCONFIG) -n $@ -a bamboo ppc ppc4xx bamboo amcc
	@echo "TEXT_BASE = 0x01000000" > $(obj)board/amcc/bamboo/config.tmp
	@echo "CONFIG_NAND_U_BOOT = y" >> $(obj)include/config.mk

bubinga_config:	unconfig
	@$(MKCONFIG) $(@:_config=) ppc ppc4xx bubinga amcc

CANBT_config:	unconfig
	@$(MKCONFIG) $(@:_config=) ppc ppc4xx canbt esd

CATcenter_config	\
CATcenter_25_config	\
CATcenter_33_config:	unconfig
	@mkdir -p $(obj)include
	@ echo "/* CATcenter uses PPChameleon Model ME */"  > $(obj)include/config.h
	@ echo "#define CONFIG_PPCHAMELEON_MODULE_MODEL 1" >> $(obj)include/config.h
	@[ -z "$(findstring _25,$@)" ] || \
		{ echo "#define CONFIG_PPCHAMELEON_CLK_25" >> $(obj)include/config.h ; \
		  echo "SysClk = 25MHz" ; \
		}
	@[ -z "$(findstring _33,$@)" ] || \
		{ echo "#define CONFIG_PPCHAMELEON_CLK_33" >> $(obj)include/config.h ; \
		  echo "SysClk = 33MHz" ; \
		}
	@$(MKCONFIG) -a $(call xtract_4xx,$@) ppc ppc4xx PPChameleonEVB dave

CPCI2DP_config:	unconfig
	@$(MKCONFIG) $(@:_config=) ppc ppc4xx cpci2dp esd

CPCI405_config	\
CPCI4052_config	\
CPCI405DT_config	\
CPCI405AB_config:	unconfig
	@$(MKCONFIG) $(@:_config=) ppc ppc4xx cpci405 esd
	@echo "BOARD_REVISION = $(@:_config=)"	>> $(obj)include/config.mk

CPCI440_config:	unconfig
	@$(MKCONFIG) $(@:_config=) ppc ppc4xx cpci440 esd

CPCIISER4_config:	unconfig
	@$(MKCONFIG) $(@:_config=) ppc ppc4xx cpciiser4 esd

CRAYL1_config:	unconfig
	@$(MKCONFIG) $(@:_config=) ppc ppc4xx L1 cray

csb272_config:	unconfig
	@$(MKCONFIG) $(@:_config=) ppc ppc4xx csb272

csb472_config:	unconfig
	@$(MKCONFIG) $(@:_config=) ppc ppc4xx csb472

DASA_SIM_config: unconfig
	@$(MKCONFIG) $(@:_config=) ppc ppc4xx dasa_sim esd

DP405_config:	unconfig
	@$(MKCONFIG) $(@:_config=) ppc ppc4xx dp405 esd

DU405_config:	unconfig
	@$(MKCONFIG) $(@:_config=) ppc ppc4xx du405 esd

ebony_config:	unconfig
	@$(MKCONFIG) $(@:_config=) ppc ppc4xx ebony amcc

ERIC_config:	unconfig
	@$(MKCONFIG) $(@:_config=) ppc ppc4xx eric

EXBITGEN_config:	unconfig
	@$(MKCONFIG) $(@:_config=) ppc ppc4xx exbitgen

G2000_config:	unconfig
	@$(MKCONFIG) $(@:_config=) ppc ppc4xx g2000

hcu4_config:	unconfig
	@$(MKCONFIG) $(@:_config=) ppc ppc4xx hcu4 netstal

hcu5_config:	unconfig
	@$(MKCONFIG) $(@:_config=) ppc ppc4xx hcu5 netstal

HH405_config:	unconfig
	@$(MKCONFIG) $(@:_config=) ppc ppc4xx hh405 esd

HUB405_config:	unconfig
	@$(MKCONFIG) $(@:_config=) ppc ppc4xx hub405 esd

JSE_config:	unconfig
	@$(MKCONFIG) $(@:_config=) ppc ppc4xx jse

KAREF_config: unconfig
	@$(MKCONFIG) $(@:_config=) ppc ppc4xx karef sandburst

katmai_config:	unconfig
	@$(MKCONFIG) $(@:_config=) ppc ppc4xx katmai amcc

luan_config:	unconfig
	@$(MKCONFIG) $(@:_config=) ppc ppc4xx luan amcc

lwmon5_config:	unconfig
	@$(MKCONFIG) $(@:_config=) ppc ppc4xx lwmon5

METROBOX_config: unconfig
	@$(MKCONFIG) $(@:_config=) ppc ppc4xx metrobox sandburst

MIP405_config:	unconfig
	@$(MKCONFIG) $(@:_config=) ppc ppc4xx mip405 mpl

MIP405T_config:	unconfig
	@mkdir -p $(obj)include
	@echo "#define CONFIG_MIP405T" >$(obj)include/config.h
	@echo "Enable subset config for MIP405T"
	@$(MKCONFIG) -a MIP405 ppc ppc4xx mip405 mpl

ML2_config:	unconfig
	@$(MKCONFIG) $(@:_config=) ppc ppc4xx ml2

ml300_config:	unconfig
	@$(MKCONFIG) $(@:_config=) ppc ppc4xx ml300 xilinx

ocotea_config:	unconfig
	@$(MKCONFIG) $(@:_config=) ppc ppc4xx ocotea amcc

OCRTC_config		\
ORSG_config:	unconfig
	@$(MKCONFIG) $(@:_config=) ppc ppc4xx ocrtc esd

p3p440_config:	unconfig
	@$(MKCONFIG) $(@:_config=) ppc ppc4xx p3p440 prodrive

PCI405_config:	unconfig
	@$(MKCONFIG) $(@:_config=) ppc ppc4xx pci405 esd

pcs440ep_config:	unconfig
	@$(MKCONFIG) $(@:_config=) ppc ppc4xx pcs440ep

PIP405_config:	unconfig
	@$(MKCONFIG) $(@:_config=) ppc ppc4xx pip405 mpl

PLU405_config:	unconfig
	@$(MKCONFIG) $(@:_config=) ppc ppc4xx plu405 esd

PMC405_config:	unconfig
	@$(MKCONFIG) $(@:_config=) ppc ppc4xx pmc405 esd

PPChameleonEVB_config		\
PPChameleonEVB_BA_25_config	\
PPChameleonEVB_ME_25_config	\
PPChameleonEVB_HI_25_config	\
PPChameleonEVB_BA_33_config	\
PPChameleonEVB_ME_33_config	\
PPChameleonEVB_HI_33_config:	unconfig
	@mkdir -p $(obj)include
	@ >$(obj)include/config.h
	@[ -z "$(findstring EVB_BA,$@)" ] || \
		{ echo "#define CONFIG_PPCHAMELEON_MODULE_MODEL 0" >>$(obj)include/config.h ; \
		  echo "... BASIC model" ; \
		}
	@[ -z "$(findstring EVB_ME,$@)" ] || \
		{ echo "#define CONFIG_PPCHAMELEON_MODULE_MODEL 1" >>$(obj)include/config.h ; \
		  echo "... MEDIUM model" ; \
		}
	@[ -z "$(findstring EVB_HI,$@)" ] || \
		{ echo "#define CONFIG_PPCHAMELEON_MODULE_MODEL 2" >>$(obj)include/config.h ; \
		  echo "... HIGH-END model" ; \
		}
	@[ -z "$(findstring _25,$@)" ] || \
		{ echo "#define CONFIG_PPCHAMELEON_CLK_25" >>$(obj)include/config.h ; \
		  echo "SysClk = 25MHz" ; \
		}
	@[ -z "$(findstring _33,$@)" ] || \
		{ echo "#define CONFIG_PPCHAMELEON_CLK_33" >>$(obj)include/config.h ; \
		  echo "SysClk = 33MHz" ; \
		}
	@$(MKCONFIG) -a $(call xtract_4xx,$@) ppc ppc4xx PPChameleonEVB dave

sbc405_config:	unconfig
	@$(MKCONFIG) $(@:_config=) ppc ppc4xx sbc405

sequoia_config \
rainier_config: unconfig
	@mkdir -p $(obj)include
	@echo "#define CONFIG_$$(echo $(subst ,,$(@:_config=)) | \
		tr '[:lower:]' '[:upper:]')" >$(obj)include/config.h
	@$(MKCONFIG) -n $@ -a sequoia ppc ppc4xx sequoia amcc

sequoia_nand_config \
rainier_nand_config: unconfig
	@mkdir -p $(obj)include $(obj)board/amcc/sequoia
	@mkdir -p $(obj)nand_spl/board/amcc/sequoia
	@echo "#define CONFIG_NAND_U_BOOT" > $(obj)include/config.h
	@echo "#define CONFIG_$$(echo $(subst ,,$(@:_config=)) | \
		tr '[:lower:]' '[:upper:]')" >> $(obj)include/config.h
	@$(MKCONFIG) -n $@ -a sequoia ppc ppc4xx sequoia amcc
	@echo "TEXT_BASE = 0x01000000" > $(obj)board/amcc/sequoia/config.tmp
	@echo "CONFIG_NAND_U_BOOT = y" >> $(obj)include/config.mk

sc3_config:unconfig
	@$(MKCONFIG) $(@:_config=) ppc ppc4xx sc3

taihu_config:	unconfig
	@$(MKCONFIG) $(@:_config=) ppc ppc4xx taihu amcc

taishan_config:	unconfig
	@$(MKCONFIG) $(@:_config=) ppc ppc4xx taishan amcc

VOH405_config:	unconfig
	@$(MKCONFIG) $(@:_config=) ppc ppc4xx voh405 esd

VOM405_config:	unconfig
	@$(MKCONFIG) $(@:_config=) ppc ppc4xx vom405 esd

CMS700_config:	unconfig
	@$(MKCONFIG) $(@:_config=) ppc ppc4xx cms700 esd

W7OLMC_config	\
W7OLMG_config: unconfig
	@$(MKCONFIG) $(@:_config=) ppc ppc4xx w7o

# Walnut & Sycamore images are identical (recognized via PVR)
walnut_config \
sycamore_config: unconfig
	@$(MKCONFIG) -n $@ -a walnut ppc ppc4xx walnut amcc

WUH405_config:	unconfig
	@$(MKCONFIG) $(@:_config=) ppc ppc4xx wuh405 esd

XPEDITE1K_config:	unconfig
	@$(MKCONFIG) $(@:_config=) ppc ppc4xx xpedite1k

yosemite_config \
yellowstone_config: unconfig
	@mkdir -p $(obj)include
	@echo "#define CONFIG_$$(echo $(subst ,,$(@:_config=)) | \
		tr '[:lower:]' '[:upper:]')" >$(obj)include/config.h
	@$(MKCONFIG) -n $@ -a yosemite ppc ppc4xx yosemite amcc

yucca_config:	unconfig
	@$(MKCONFIG) $(@:_config=) ppc ppc4xx yucca amcc

zeus_config:	unconfig
	@$(MKCONFIG) $(@:_config=) ppc ppc4xx zeus

#########################################################################
## MPC8220 Systems
#########################################################################

Alaska8220_config	\
Yukon8220_config:	unconfig
	@$(MKCONFIG) $(@:_config=) ppc mpc8220 alaska

sorcery_config:		unconfig
	@$(MKCONFIG) $(@:_config=) ppc mpc8220 sorcery

#########################################################################
## MPC824x Systems
#########################################################################
xtract_82xx = $(subst _BIGFLASH,,$(subst _ROMBOOT,,$(subst _L2,,$(subst _266MHz,,$(subst _300MHz,,$(subst _config,,$1))))))

A3000_config: unconfig
	@$(MKCONFIG) $(@:_config=) ppc mpc824x a3000

barco_config: unconfig
	@$(MKCONFIG) $(@:_config=) ppc mpc824x barco

BMW_config: unconfig
	@$(MKCONFIG) $(@:_config=) ppc mpc824x bmw

CPC45_config	\
CPC45_ROMBOOT_config:	unconfig
	@$(MKCONFIG) $(call xtract_82xx,$@) ppc mpc824x cpc45
	@cd $(obj)include ;				\
	if [ "$(findstring _ROMBOOT_,$@)" ] ; then \
		echo "CONFIG_BOOT_ROM = y" >> config.mk ; \
		echo "... booting from 8-bit flash" ; \
	else \
		echo "CONFIG_BOOT_ROM = n" >> config.mk ; \
		echo "... booting from 64-bit flash" ; \
	fi; \
	echo "export CONFIG_BOOT_ROM" >> config.mk;

CU824_config: unconfig
	@$(MKCONFIG) $(@:_config=) ppc mpc824x cu824

debris_config: unconfig
	@$(MKCONFIG) $(@:_config=) ppc mpc824x debris etin

eXalion_config: unconfig
	@$(MKCONFIG) $(@:_config=) ppc mpc824x eXalion

HIDDEN_DRAGON_config: unconfig
	@$(MKCONFIG) $(@:_config=) ppc mpc824x hidden_dragon

kvme080_config: unconfig
	@$(MKCONFIG) $(@:_config=) ppc mpc824x kvme080 etin

MOUSSE_config: unconfig
	@$(MKCONFIG) $(@:_config=) ppc mpc824x mousse

MUSENKI_config: unconfig
	@$(MKCONFIG) $(@:_config=) ppc mpc824x musenki

MVBLUE_config:	unconfig
	@$(MKCONFIG) $(@:_config=) ppc mpc824x mvblue

OXC_config: unconfig
	@$(MKCONFIG) $(@:_config=) ppc mpc824x oxc

PN62_config: unconfig
	@$(MKCONFIG) $(@:_config=) ppc mpc824x pn62

Sandpoint8240_config: unconfig
	@$(MKCONFIG) $(@:_config=) ppc mpc824x sandpoint

Sandpoint8245_config: unconfig
	@$(MKCONFIG) $(@:_config=) ppc mpc824x sandpoint

sbc8240_config: unconfig
	@$(MKCONFIG) $(@:_config=) ppc mpc824x sbc8240

SL8245_config: unconfig
	@$(MKCONFIG) $(@:_config=) ppc mpc824x sl8245

utx8245_config: unconfig
	@$(MKCONFIG) $(@:_config=) ppc mpc824x utx8245

#########################################################################
## MPC8260 Systems
#########################################################################

atc_config:	unconfig
	@$(MKCONFIG) $(@:_config=) ppc mpc8260 atc

cogent_mpc8260_config:	unconfig
	@$(MKCONFIG) $(@:_config=) ppc mpc8260 cogent

CPU86_config	\
CPU86_ROMBOOT_config: unconfig
	@$(MKCONFIG) $(call xtract_82xx,$@) ppc mpc8260 cpu86
	@cd $(obj)include ;				\
	if [ "$(findstring _ROMBOOT_,$@)" ] ; then \
		echo "CONFIG_BOOT_ROM = y" >> config.mk ; \
		echo "... booting from 8-bit flash" ; \
	else \
		echo "CONFIG_BOOT_ROM = n" >> config.mk ; \
		echo "... booting from 64-bit flash" ; \
	fi; \
	echo "export CONFIG_BOOT_ROM" >> config.mk;

CPU87_config	\
CPU87_ROMBOOT_config: unconfig
	@$(MKCONFIG) $(call xtract_82xx,$@) ppc mpc8260 cpu87
	@cd $(obj)include ;				\
	if [ "$(findstring _ROMBOOT_,$@)" ] ; then \
		echo "CONFIG_BOOT_ROM = y" >> config.mk ; \
		echo "... booting from 8-bit flash" ; \
	else \
		echo "CONFIG_BOOT_ROM = n" >> config.mk ; \
		echo "... booting from 64-bit flash" ; \
	fi; \
	echo "export CONFIG_BOOT_ROM" >> config.mk;

ep8248_config	\
ep8248E_config	:	unconfig
	@$(MKCONFIG) ep8248 ppc mpc8260 ep8248

ep8260_config:	unconfig
	@$(MKCONFIG) $(@:_config=) ppc mpc8260 ep8260

ep82xxm_config:	unconfig
	@$(MKCONFIG) $(@:_config=) ppc mpc8260 ep82xxm

gw8260_config:	unconfig
	@$(MKCONFIG) $(@:_config=) ppc mpc8260 gw8260

hymod_config:	unconfig
	@$(MKCONFIG) $(@:_config=) ppc mpc8260 hymod

IDS8247_config:	unconfig
	@$(MKCONFIG) $(@:_config=) ppc mpc8260 ids8247

IPHASE4539_config:	unconfig
	@$(MKCONFIG) $(@:_config=) ppc mpc8260 iphase4539

ISPAN_config		\
ISPAN_REVB_config:	unconfig
	@mkdir -p $(obj)include
	@if [ "$(findstring _REVB_,$@)" ] ; then \
		echo "#define CFG_REV_B" > $(obj)include/config.h ; \
	fi
	@$(MKCONFIG) -a ISPAN ppc mpc8260 ispan

MPC8260ADS_config	\
MPC8260ADS_lowboot_config	\
MPC8260ADS_33MHz_config	\
MPC8260ADS_33MHz_lowboot_config	\
MPC8260ADS_40MHz_config	\
MPC8260ADS_40MHz_lowboot_config	\
MPC8272ADS_config	\
MPC8272ADS_lowboot_config	\
PQ2FADS_config		\
PQ2FADS_lowboot_config		\
PQ2FADS-VR_config	\
PQ2FADS-VR_lowboot_config	\
PQ2FADS-ZU_config	\
PQ2FADS-ZU_lowboot_config	\
PQ2FADS-ZU_66MHz_config	\
PQ2FADS-ZU_66MHz_lowboot_config	\
	:		unconfig
	@mkdir -p $(obj)include
	@mkdir -p $(obj)board/mpc8260ads
	$(if $(findstring PQ2FADS,$@), \
	@echo "#define CONFIG_ADSTYPE CFG_PQ2FADS" > $(obj)include/config.h, \
	@echo "#define CONFIG_ADSTYPE CFG_"$(subst MPC,,$(word 1,$(subst _, ,$@))) > $(obj)include/config.h)
	$(if $(findstring MHz,$@), \
	@echo "#define CONFIG_8260_CLKIN" $(subst MHz,,$(word 2,$(subst _, ,$@)))"000000" >> $(obj)include/config.h, \
	$(if $(findstring VR,$@), \
	@echo "#define CONFIG_8260_CLKIN 66000000" >> $(obj)include/config.h))
	@[ -z "$(findstring lowboot_,$@)" ] || \
		{ echo "TEXT_BASE = 0xFF800000" >$(obj)board/mpc8260ads/config.tmp ; \
		  echo "... with lowboot configuration" ; \
		}
	@$(MKCONFIG) -a MPC8260ADS ppc mpc8260 mpc8260ads

MPC8266ADS_config:	unconfig
	@$(MKCONFIG) $(@:_config=) ppc mpc8260 mpc8266ads

# PM825/PM826 default configuration:  small (= 8 MB) Flash / boot from 64-bit flash
PM825_config	\
PM825_ROMBOOT_config	\
PM825_BIGFLASH_config	\
PM825_ROMBOOT_BIGFLASH_config	\
PM826_config	\
PM826_ROMBOOT_config	\
PM826_BIGFLASH_config	\
PM826_ROMBOOT_BIGFLASH_config:	unconfig
	@mkdir -p $(obj)include
	@mkdir -p $(obj)board/pm826
	@if [ "$(findstring PM825_,$@)" ] ; then \
		echo "#define CONFIG_PCI"	>$(obj)include/config.h ; \
	else \
		>$(obj)include/config.h ; \
	fi
	@if [ "$(findstring _ROMBOOT_,$@)" ] ; then \
		echo "... booting from 8-bit flash" ; \
		echo "#define CONFIG_BOOT_ROM" >>$(obj)include/config.h ; \
		echo "TEXT_BASE = 0xFF800000" >$(obj)board/pm826/config.tmp ; \
		if [ "$(findstring _BIGFLASH_,$@)" ] ; then \
			echo "... with 32 MB Flash" ; \
			echo "#define CONFIG_FLASH_32MB" >>$(obj)include/config.h ; \
		fi; \
	else \
		echo "... booting from 64-bit flash" ; \
		if [ "$(findstring _BIGFLASH_,$@)" ] ; then \
			echo "... with 32 MB Flash" ; \
			echo "#define CONFIG_FLASH_32MB" >>$(obj)include/config.h ; \
			echo "TEXT_BASE = 0x40000000" >$(obj)board/pm826/config.tmp ; \
		else \
			echo "TEXT_BASE = 0xFF000000" >$(obj)board/pm826/config.tmp ; \
		fi; \
	fi
	@$(MKCONFIG) -a PM826 ppc mpc8260 pm826

PM828_config	\
PM828_PCI_config	\
PM828_ROMBOOT_config	\
PM828_ROMBOOT_PCI_config:	unconfig
	@mkdir -p $(obj)include
	@mkdir -p $(obj)board/pm826
	@if [ "$(findstring _PCI_,$@)" ] ; then \
		echo "#define CONFIG_PCI"  >>$(obj)include/config.h ; \
		echo "... with PCI enabled" ; \
	else \
		>$(obj)include/config.h ; \
	fi
	@if [ "$(findstring _ROMBOOT_,$@)" ] ; then \
		echo "... booting from 8-bit flash" ; \
		echo "#define CONFIG_BOOT_ROM" >>$(obj)include/config.h ; \
		echo "TEXT_BASE = 0xFF800000" >$(obj)board/pm826/config.tmp ; \
	fi
	@$(MKCONFIG) -a PM828 ppc mpc8260 pm828

ppmc8260_config:	unconfig
	@$(MKCONFIG) $(@:_config=) ppc mpc8260 ppmc8260

Rattler8248_config	\
Rattler_config:		unconfig
	@mkdir -p $(obj)include
	$(if $(findstring 8248,$@), \
	@echo "#define CONFIG_MPC8248" > $(obj)include/config.h)
	@$(MKCONFIG) -a Rattler ppc mpc8260 rattler

RPXsuper_config:	unconfig
	@$(MKCONFIG) $(@:_config=) ppc mpc8260 rpxsuper

rsdproto_config:	unconfig
	@$(MKCONFIG) $(@:_config=) ppc mpc8260 rsdproto

sacsng_config:	unconfig
	@$(MKCONFIG) $(@:_config=) ppc mpc8260 sacsng

sbc8260_config:	unconfig
	@$(MKCONFIG) $(@:_config=) ppc mpc8260 sbc8260

SCM_config:		unconfig
	@$(MKCONFIG) $(@:_config=) ppc mpc8260 SCM siemens

TQM8255_AA_config \
TQM8260_AA_config \
TQM8260_AB_config \
TQM8260_AC_config \
TQM8260_AD_config \
TQM8260_AE_config \
TQM8260_AF_config \
TQM8260_AG_config \
TQM8260_AH_config \
TQM8260_AI_config \
TQM8265_AA_config:  unconfig
	@mkdir -p $(obj)include
	@case "$@" in \
	TQM8255_AA_config) CTYPE=MPC8255; CFREQ=300; CACHE=no;	BMODE=8260;;  \
	TQM8260_AA_config) CTYPE=MPC8260; CFREQ=200; CACHE=no;	BMODE=8260;; \
	TQM8260_AB_config) CTYPE=MPC8260; CFREQ=200; CACHE=yes;	BMODE=60x;;  \
	TQM8260_AC_config) CTYPE=MPC8260; CFREQ=200; CACHE=yes;	BMODE=60x;;  \
	TQM8260_AD_config) CTYPE=MPC8260; CFREQ=300; CACHE=no;	BMODE=60x;;  \
	TQM8260_AE_config) CTYPE=MPC8260; CFREQ=266; CACHE=no;	BMODE=8260;; \
	TQM8260_AF_config) CTYPE=MPC8260; CFREQ=300; CACHE=no;	BMODE=60x;;  \
	TQM8260_AG_config) CTYPE=MPC8260; CFREQ=300; CACHE=no;	BMODE=8260;; \
	TQM8260_AH_config) CTYPE=MPC8260; CFREQ=300; CACHE=yes;	BMODE=60x;;  \
	TQM8260_AI_config) CTYPE=MPC8260; CFREQ=300; CACHE=no;	BMODE=60x;;  \
	TQM8265_AA_config) CTYPE=MPC8265; CFREQ=300; CACHE=no;	BMODE=60x;;  \
	esac; \
	>$(obj)include/config.h ; \
	if [ "$${CTYPE}" != "MPC8260" ] ; then \
		echo "#define CONFIG_$${CTYPE}"	>>$(obj)include/config.h ; \
	fi; \
	echo "#define CONFIG_$${CFREQ}MHz"	>>$(obj)include/config.h ; \
	echo "... with $${CFREQ}MHz system clock" ; \
	if [ "$${CACHE}" == "yes" ] ; then \
		echo "#define CONFIG_L2_CACHE"	>>$(obj)include/config.h ; \
		echo "... with L2 Cache support" ; \
	else \
		echo "#undef CONFIG_L2_CACHE"	>>$(obj)include/config.h ; \
		echo "... without L2 Cache support" ; \
	fi; \
	if [ "$${BMODE}" == "60x" ] ; then \
		echo "#define CONFIG_BUSMODE_60x" >>$(obj)include/config.h ; \
		echo "... with 60x Bus Mode" ; \
	else \
		echo "#undef CONFIG_BUSMODE_60x"  >>$(obj)include/config.h ; \
		echo "... without 60x Bus Mode" ; \
	fi
	@$(MKCONFIG) -a TQM8260 ppc mpc8260 tqm8260

TQM8272_config: unconfig
	@$(MKCONFIG) -a TQM8272 ppc mpc8260 tqm8272

VoVPN-GW_66MHz_config	\
VoVPN-GW_100MHz_config:		unconfig
	@mkdir -p $(obj)include
	@echo "#define CONFIG_CLKIN_$(word 2,$(subst _, ,$@))" > $(obj)include/config.h
	@$(MKCONFIG) -a VoVPN-GW ppc mpc8260 vovpn-gw funkwerk

ZPC1900_config: unconfig
	@$(MKCONFIG) $(@:_config=) ppc mpc8260 zpc1900

#########################################################################
## Coldfire
#########################################################################

M5235EVB_config \
M5235EVB_Flash16_config \
M5235EVB_Flash32_config:	unconfig
	@case "$@" in \
	M5235EVB_config)		FLASH=16;; \
	M5235EVB_Flash16_config)	FLASH=16;; \
	M5235EVB_Flash32_config)	FLASH=32;; \
	esac; \
	>include/config.h ; \
	if [ "$${FLASH}" != "16" ] ; then \
		echo "#define NORFLASH_PS32BIT	1" >> include/config.h ; \
		echo "TEXT_BASE = 0xFFC00000" > $(obj)board/freescale/m5235evb/config.tmp ; \
		cp $(obj)board/freescale/m5235evb/u-boot.32 $(obj)board/freescale/m5235evb/u-boot.lds ; \
	else \
		echo "TEXT_BASE = 0xFFE00000" > $(obj)board/freescale/m5235evb/config.tmp ; \
		cp $(obj)board/freescale/m5235evb/u-boot.16 $(obj)board/freescale/m5235evb/u-boot.lds ; \
	fi
	@$(MKCONFIG) -a M5235EVB m68k mcf523x m5235evb freescale

M5249EVB_config :		unconfig
	@$(MKCONFIG) $(@:_config=) m68k mcf52x2 m5249evb freescale

M5253EVBE_config :		unconfig
	@$(MKCONFIG) $(@:_config=) m68k mcf52x2 m5253evbe freescale

cobra5272_config :		unconfig
	@$(MKCONFIG) $(@:_config=) m68k mcf52x2 cobra5272

EB+MCF-EV123_config :		unconfig
	@mkdir -p $(obj)include
	@mkdir -p $(obj)board/BuS/EB+MCF-EV123
	@ >$(obj)include/config.h
	@echo "TEXT_BASE = 0xFFE00000"|tee $(obj)board/BuS/EB+MCF-EV123/textbase.mk
	@$(MKCONFIG) EB+MCF-EV123 m68k mcf52x2 EB+MCF-EV123 BuS

EB+MCF-EV123_internal_config :	unconfig
	@mkdir -p $(obj)include
	@mkdir -p $(obj)board/BuS/EB+MCF-EV123
	@ >$(obj)include/config.h
	@echo "TEXT_BASE = 0xF0000000"|tee $(obj)board/BuS/EB+MCF-EV123/textbase.mk
	@$(MKCONFIG) EB+MCF-EV123 m68k mcf52x2 EB+MCF-EV123 BuS

idmr_config :			unconfig
	@$(MKCONFIG) $(@:_config=) m68k mcf52x2 idmr

M5271EVB_config :		unconfig
	@$(MKCONFIG) $(@:_config=) m68k mcf52x2 m5271evb

M5272C3_config :		unconfig
	@$(MKCONFIG) $(@:_config=) m68k mcf52x2 m5272c3

M5282EVB_config :		unconfig
	@$(MKCONFIG) $(@:_config=) m68k mcf52x2 m5282evb

TASREG_config :		unconfig
	@$(MKCONFIG) $(@:_config=) m68k mcf52x2 tasreg esd

r5200_config :		unconfig
	@$(MKCONFIG) $(@:_config=) m68k mcf52x2 r5200

M5329AFEE_config \
M5329BFEE_config :	unconfig
	@case "$@" in \
	M5329AFEE_config)	NAND=0;; \
	M5329BFEE_config)	NAND=16;; \
	esac; \
	>include/config.h ; \
	if [ "$${NAND}" != "0" ] ; then \
		echo "#define NANDFLASH_SIZE	$${NAND}" > $(obj)include/config.h ; \
	fi
	@$(MKCONFIG) -a M5329EVB m68k mcf532x m5329evb freescale

M54455EVB_config \
M54455EVB_atmel_config \
M54455EVB_intel_config \
M54455EVB_a33_config \
M54455EVB_a66_config \
M54455EVB_i33_config \
M54455EVB_i66_config :	unconfig
	@case "$@" in \
	M54455EVB_config)		FLASH=ATMEL; FREQ=33333333;; \
	M54455EVB_atmel_config)		FLASH=ATMEL; FREQ=33333333;; \
	M54455EVB_intel_config)		FLASH=INTEL; FREQ=33333333;; \
	M54455EVB_a33_config)		FLASH=ATMEL; FREQ=33333333;; \
	M54455EVB_a66_config)		FLASH=ATMEL; FREQ=66666666;; \
	M54455EVB_i33_config)		FLASH=INTEL; FREQ=33333333;; \
	M54455EVB_i66_config)		FLASH=INTEL; FREQ=66666666;; \
	esac; \
	>include/config.h ; \
	if [ "$${FLASH}" == "INTEL" ] ; then \
		echo "#undef CFG_ATMEL_BOOT" >> $(obj)include/config.h ; \
		echo "... with INTEL boot..." ; \
	else \
		echo "#define CFG_ATMEL_BOOT"	>> $(obj)include/config.h ; \
		echo "... with ATMEL boot..." ; \
	fi; \
	echo "#define CFG_INPUT_CLKSRC $${FREQ}" >> $(obj)include/config.h ; \
	echo "... with $${FREQ}Hz input clock"
	@$(MKCONFIG) -a M54455EVB m68k mcf5445x m54455evb freescale

#########################################################################
## MPC83xx Systems
#########################################################################

MPC8313ERDB_33_config \
MPC8313ERDB_66_config: unconfig
	@mkdir -p $(obj)include
	@echo "" >$(obj)include/config.h ; \
	if [ "$(findstring _33_,$@)" ] ; then \
		echo -n "...33M ..." ; \
		echo "#define CFG_33MHZ" >>$(obj)include/config.h ; \
	fi ; \
	if [ "$(findstring _66_,$@)" ] ; then \
		echo -n "...66M..." ; \
		echo "#define CFG_66MHZ" >>$(obj)include/config.h ; \
	fi ;
	@$(MKCONFIG) -a MPC8313ERDB ppc mpc83xx mpc8313erdb freescale

MPC8323ERDB_config:	unconfig
	@$(MKCONFIG) -a MPC8323ERDB ppc mpc83xx mpc8323erdb freescale

MPC832XEMDS_config \
MPC832XEMDS_HOST_33_config \
MPC832XEMDS_HOST_66_config \
MPC832XEMDS_SLAVE_config:	unconfig
	@mkdir -p $(obj)include
	@echo "" >$(obj)include/config.h ; \
	if [ "$(findstring _HOST_,$@)" ] ; then \
		echo -n "... PCI HOST " ; \
		echo "#define CONFIG_PCI" >>$(obj)include/config.h ; \
	fi ; \
	if [ "$(findstring _SLAVE_,$@)" ] ; then \
		echo "...PCI SLAVE 66M"  ; \
		echo "#define CONFIG_PCI" >>$(obj)include/config.h ; \
		echo "#define CONFIG_PCISLAVE" >>$(obj)include/config.h ; \
	fi ; \
	if [ "$(findstring _33_,$@)" ] ; then \
		echo -n "...33M ..." ; \
		echo "#define PCI_33M" >>$(obj)include/config.h ; \
	fi ; \
	if [ "$(findstring _66_,$@)" ] ; then \
		echo -n "...66M..." ; \
		echo "#define PCI_66M" >>$(obj)include/config.h ; \
	fi ;
	@$(MKCONFIG) -a MPC832XEMDS ppc mpc83xx mpc832xemds freescale

MPC8349EMDS_config:	unconfig
	@$(MKCONFIG) $(@:_config=) ppc mpc83xx mpc8349emds freescale

MPC8349ITX_config \
MPC8349ITX_LOWBOOT_config \
MPC8349ITXGP_config:	unconfig
	@mkdir -p $(obj)include
	@mkdir -p $(obj)board/freescale/mpc8349itx
	@echo "#define CONFIG_$(subst _LOWBOOT,,$(@:_config=))" >> $(obj)include/config.h
	@if [ "$(findstring GP,$@)" ] ; then \
		echo "TEXT_BASE = 0xFE000000" >$(obj)board/freescale/mpc8349itx/config.tmp ; \
	fi
	@if [ "$(findstring LOWBOOT,$@)" ] ; then \
		echo "TEXT_BASE = 0xFE000000" >$(obj)board/freescale/mpc8349itx/config.tmp ; \
	fi
	@$(MKCONFIG) -a -n $(@:_config=) MPC8349ITX ppc mpc83xx mpc8349itx freescale

MPC8360EMDS_config \
MPC8360EMDS_HOST_33_config \
MPC8360EMDS_HOST_66_config \
MPC8360EMDS_SLAVE_config:	unconfig
	@mkdir -p $(obj)include
	@echo "" >$(obj)include/config.h ; \
	if [ "$(findstring _HOST_,$@)" ] ; then \
		echo -n "... PCI HOST " ; \
		echo "#define CONFIG_PCI" >>$(obj)include/config.h ; \
	fi ; \
	if [ "$(findstring _SLAVE_,$@)" ] ; then \
		echo "...PCI SLAVE 66M"  ; \
		echo "#define CONFIG_PCI" >>$(obj)include/config.h ; \
		echo "#define CONFIG_PCISLAVE" >>$(obj)include/config.h ; \
	fi ; \
	if [ "$(findstring _33_,$@)" ] ; then \
		echo -n "...33M ..." ; \
		echo "#define PCI_33M" >>$(obj)include/config.h ; \
	fi ; \
	if [ "$(findstring _66_,$@)" ] ; then \
		echo -n "...66M..." ; \
		echo "#define PCI_66M" >>$(obj)include/config.h ; \
	fi ;
	@$(MKCONFIG) -a MPC8360EMDS ppc mpc83xx mpc8360emds freescale

sbc8349_config:		unconfig
	@$(MKCONFIG) $(@:_config=) ppc mpc83xx sbc8349

TQM834x_config:	unconfig
	@$(MKCONFIG) $(@:_config=) ppc mpc83xx tqm834x


#########################################################################
## MPC85xx Systems
#########################################################################

MPC8540ADS_config:	unconfig
	@$(MKCONFIG) $(@:_config=) ppc mpc85xx mpc8540ads

MPC8540EVAL_config \
MPC8540EVAL_33_config \
MPC8540EVAL_66_config \
MPC8540EVAL_33_slave_config \
MPC8540EVAL_66_slave_config:      unconfig
	@mkdir -p $(obj)include
	@echo "" >$(obj)include/config.h ; \
	if [ "$(findstring _33_,$@)" ] ; then \
		echo "... 33 MHz PCI" ; \
	else \
		echo "#define CONFIG_SYSCLK_66M" >>$(obj)include/config.h ; \
		echo "... 66 MHz PCI" ; \
	fi ; \
	if [ "$(findstring _slave_,$@)" ] ; then \
		echo "#define CONFIG_PCI_SLAVE" >>$(obj)include/config.h ; \
		echo " slave" ; \
	else \
		echo " host" ; \
	fi
	@$(MKCONFIG) -a MPC8540EVAL ppc mpc85xx mpc8540eval

MPC8560ADS_config:	unconfig
	@$(MKCONFIG) $(@:_config=) ppc mpc85xx mpc8560ads

MPC8541CDS_legacy_config \
MPC8541CDS_config:	unconfig
	@mkdir -p $(obj)include
	@echo "" >$(obj)include/config.h ; \
	if [ "$(findstring _legacy_,$@)" ] ; then \
		echo "#define CONFIG_LEGACY" >>$(obj)include/config.h ; \
		echo "... legacy" ; \
	fi
	@$(MKCONFIG) -a MPC8541CDS ppc mpc85xx mpc8541cds cds

MPC8544DS_config:	unconfig
	@$(MKCONFIG) $(@:_config=) ppc mpc85xx mpc8544ds freescale

MPC8548CDS_legacy_config \
MPC8548CDS_config:	unconfig
	@mkdir -p $(obj)include
	@echo "" >$(obj)include/config.h ; \
	if [ "$(findstring _legacy_,$@)" ] ; then \
		echo "#define CONFIG_LEGACY" >>$(obj)include/config.h ; \
		echo "... legacy" ; \
	fi
	@$(MKCONFIG) -a MPC8548CDS ppc mpc85xx mpc8548cds cds

MPC8555CDS_legacy_config \
MPC8555CDS_config:	unconfig
	@mkdir -p $(obj)include
	@echo "" >$(obj)include/config.h ; \
	if [ "$(findstring _legacy_,$@)" ] ; then \
		echo "#define CONFIG_LEGACY" >>$(obj)include/config.h ; \
		echo "... legacy" ; \
	fi
	@$(MKCONFIG) -a MPC8555CDS ppc mpc85xx mpc8555cds cds

MPC8568MDS_config:	unconfig
	@$(MKCONFIG) $(@:_config=) ppc mpc85xx mpc8568mds

PM854_config:	unconfig
	@$(MKCONFIG) $(@:_config=) ppc mpc85xx pm854

PM856_config:	unconfig
	@$(MKCONFIG) $(@:_config=) ppc mpc85xx pm856

sbc8540_config \
sbc8540_33_config \
sbc8540_66_config:	unconfig
	@mkdir -p $(obj)include
	@if [ "$(findstring _66_,$@)" ] ; then \
		echo "#define CONFIG_PCI_66"	>>$(obj)include/config.h ; \
		echo "... 66 MHz PCI" ; \
	else \
		>$(obj)include/config.h ; \
		echo "... 33 MHz PCI" ; \
	fi
	@$(MKCONFIG) -a SBC8540 ppc mpc85xx sbc8560

sbc8560_config \
sbc8560_33_config \
sbc8560_66_config:      unconfig
	@mkdir -p $(obj)include
	@if [ "$(findstring _66_,$@)" ] ; then \
		echo "#define CONFIG_PCI_66"	>>$(obj)include/config.h ; \
		echo "... 66 MHz PCI" ; \
	else \
		>$(obj)include/config.h ; \
		echo "... 33 MHz PCI" ; \
	fi
	@$(MKCONFIG) -a sbc8560 ppc mpc85xx sbc8560

stxgp3_config:		unconfig
	@$(MKCONFIG) $(@:_config=) ppc mpc85xx stxgp3

stxssa_config		\
stxssa_4M_config:	unconfig
	@mkdir -p $(obj)include
	@if [ "$(findstring _4M_,$@)" ] ; then \
		echo "#define CONFIG_STXSSA_4M" >>$(obj)include/config.h ; \
		echo "... with 4 MiB flash memory" ; \
	else \
		>$(obj)include/config.h ; \
	fi
	@$(MKCONFIG) -a stxssa ppc mpc85xx stxssa

TQM8540_config		\
TQM8541_config		\
TQM8555_config		\
TQM8560_config:		unconfig
	@mkdir -p $(obj)include
	@CTYPE=$(subst TQM,,$(@:_config=)); \
	>$(obj)include/config.h ; \
	echo "... TQM"$${CTYPE}; \
	echo "#define CONFIG_MPC$${CTYPE}">>$(obj)include/config.h; \
	echo "#define CONFIG_TQM$${CTYPE}">>$(obj)include/config.h; \
	echo "#define CONFIG_HOSTNAME tqm$${CTYPE}">>$(obj)include/config.h; \
	echo "#define CONFIG_BOARDNAME \"TQM$${CTYPE}\"">>$(obj)include/config.h; \
	echo "#define CFG_BOOTFILE \"bootfile=/tftpboot/tqm$${CTYPE}/uImage\0\"">>$(obj)include/config.h
	@$(MKCONFIG) -a TQM85xx ppc mpc85xx tqm85xx

#########################################################################
## MPC86xx Systems
#########################################################################

MPC8641HPCN_config:    unconfig
	@$(MKCONFIG) $(@:_config=) ppc mpc86xx mpc8641hpcn freescale

sbc8641d_config:	unconfig
	@./mkconfig $(@:_config=) ppc mpc86xx sbc8641d

#########################################################################
## 74xx/7xx Systems
#########################################################################

AmigaOneG3SE_config:	unconfig
	@$(MKCONFIG) $(@:_config=) ppc 74xx_7xx AmigaOneG3SE MAI

BAB7xx_config: unconfig
	@$(MKCONFIG) $(@:_config=) ppc 74xx_7xx bab7xx eltec

CPCI750_config:        unconfig
	@$(MKCONFIG) CPCI750 ppc 74xx_7xx cpci750 esd

DB64360_config:  unconfig
	@$(MKCONFIG) DB64360 ppc 74xx_7xx db64360 Marvell

DB64460_config:  unconfig
	@$(MKCONFIG) DB64460 ppc 74xx_7xx db64460 Marvell

ELPPC_config: unconfig
	@$(MKCONFIG) $(@:_config=) ppc 74xx_7xx elppc eltec

EVB64260_config	\
EVB64260_750CX_config:	unconfig
	@$(MKCONFIG) EVB64260 ppc 74xx_7xx evb64260

mpc7448hpc2_config:  unconfig
	@$(MKCONFIG) $(@:_config=) ppc 74xx_7xx mpc7448hpc2

P3G4_config: unconfig
	@$(MKCONFIG) $(@:_config=) ppc 74xx_7xx evb64260

p3m750_config	\
p3m7448_config:		unconfig
	@mkdir -p $(obj)include
	@if [ "$(findstring 750_,$@)" ] ; then \
		echo "#define CONFIG_P3M750" >>$(obj)include/config.h ; \
	else \
		echo "#define CONFIG_P3M7448" >>$(obj)include/config.h ; \
	fi
	@$(MKCONFIG) -a p3mx ppc 74xx_7xx p3mx prodrive

PCIPPC2_config \
PCIPPC6_config: unconfig
	@$(MKCONFIG) $(@:_config=) ppc 74xx_7xx pcippc2

ZUMA_config:	unconfig
	@$(MKCONFIG) $(@:_config=) ppc 74xx_7xx evb64260

ppmc7xx_config: unconfig
	@$(MKCONFIG) $(@:_config=) ppc 74xx_7xx ppmc7xx

#========================================================================
# ARM
#========================================================================
#########################################################################
## StrongARM Systems
#########################################################################

assabet_config	:	unconfig
	@$(MKCONFIG) $(@:_config=) arm sa1100 assabet

dnp1110_config	:	unconfig
	@$(MKCONFIG) $(@:_config=) arm sa1100 dnp1110

gcplus_config	:	unconfig
	@$(MKCONFIG) $(@:_config=) arm sa1100 gcplus

lart_config	:	unconfig
	@$(MKCONFIG) $(@:_config=) arm sa1100 lart

shannon_config	:	unconfig
	@$(MKCONFIG) $(@:_config=) arm sa1100 shannon

#########################################################################
## ARM92xT Systems
#########################################################################

xtract_trab = $(subst _bigram,,$(subst _bigflash,,$(subst _old,,$(subst _config,,$1))))

xtract_omap1610xxx = $(subst _cs0boot,,$(subst _cs3boot,,$(subst _cs_autoboot,,$(subst _config,,$1))))

xtract_omap730p2 = $(subst _cs0boot,,$(subst _cs3boot,, $(subst _config,,$1)))

at91rm9200dk_config	:	unconfig
	@$(MKCONFIG) $(@:_config=) arm arm920t at91rm9200dk NULL at91rm9200

cmc_pu2_config	:	unconfig
	@$(MKCONFIG) $(@:_config=) arm arm920t cmc_pu2 NULL at91rm9200

csb637_config	:	unconfig
	@$(MKCONFIG) $(@:_config=) arm arm920t csb637 NULL at91rm9200

mp2usb_config	:	unconfig
	@$(MKCONFIG) $(@:_config=) arm arm920t mp2usb NULL at91rm9200


########################################################################
## ARM Integrator boards - see doc/README-integrator for more info.
integratorap_config	\
ap_config		\
ap966_config		\
ap922_config		\
ap922_XA10_config	\
ap7_config		\
ap720t_config		\
ap920t_config		\
ap926ejs_config		\
ap946es_config: unconfig
	@board/integratorap/split_by_variant.sh $@

integratorcp_config	\
cp_config		\
cp920t_config		\
cp926ejs_config		\
cp946es_config		\
cp1136_config		\
cp966_config		\
cp922_config		\
cp922_XA10_config	\
cp1026_config: unconfig
	@board/integratorcp/split_by_variant.sh $@

kb9202_config	:	unconfig
	@$(MKCONFIG) $(@:_config=) arm arm920t kb9202 NULL at91rm9200

lpd7a400_config \
lpd7a404_config:	unconfig
	@$(MKCONFIG) $(@:_config=) arm lh7a40x lpd7a40x

mx1ads_config	:	unconfig
	@$(MKCONFIG) $(@:_config=) arm arm920t mx1ads NULL imx

mx1fs2_config	:	unconfig
	@$(MKCONFIG) $(@:_config=) arm arm920t mx1fs2 NULL imx

netstar_32_config	\
netstar_config:		unconfig
	@mkdir -p $(obj)include
	@if [ "$(findstring _32_,$@)" ] ; then \
		echo "... 32MB SDRAM" ; \
		echo "#define PHYS_SDRAM_1_SIZE SZ_32M" >>$(obj)include/config.h ; \
	else \
		echo "... 64MB SDRAM" ; \
		echo "#define PHYS_SDRAM_1_SIZE SZ_64M" >>$(obj)include/config.h ; \
	fi
	@$(MKCONFIG) -a netstar arm arm925t netstar

omap1510inn_config :	unconfig
	@$(MKCONFIG) $(@:_config=) arm arm925t omap1510inn

omap5912osk_config :	unconfig
	@$(MKCONFIG) $(@:_config=) arm arm926ejs omap5912osk NULL omap

davinci_dvevm_config :	unconfig
	@$(MKCONFIG) $(@:_config=) arm arm926ejs dv-evm davinci davinci

davinci_schmoogie_config :	unconfig
	@$(MKCONFIG) $(@:_config=) arm arm926ejs schmoogie davinci davinci

davinci_sonata_config :	unconfig
	@$(MKCONFIG) $(@:_config=) arm arm926ejs sonata davinci davinci

omap1610inn_config \
omap1610inn_cs0boot_config \
omap1610inn_cs3boot_config \
omap1610inn_cs_autoboot_config \
omap1610h2_config \
omap1610h2_cs0boot_config \
omap1610h2_cs3boot_config \
omap1610h2_cs_autoboot_config:	unconfig
	@mkdir -p $(obj)include
	@if [ "$(findstring _cs0boot_, $@)" ] ; then \
		echo "#define CONFIG_CS0_BOOT" >> .$(obj)include/config.h ; \
		echo "... configured for CS0 boot"; \
	elif [ "$(findstring _cs_autoboot_, $@)" ] ; then \
		echo "#define CONFIG_CS_AUTOBOOT" >> $(obj)include/config.h ; \
		echo "... configured for CS_AUTO boot"; \
	else \
		echo "#define CONFIG_CS3_BOOT" >> $(obj)include/config.h ; \
		echo "... configured for CS3 boot"; \
	fi;
	@$(MKCONFIG) -a $(call xtract_omap1610xxx,$@) arm arm926ejs omap1610inn NULL omap

omap730p2_config \
omap730p2_cs0boot_config \
omap730p2_cs3boot_config :	unconfig
	@mkdir -p $(obj)include
	@if [ "$(findstring _cs0boot_, $@)" ] ; then \
		echo "#define CONFIG_CS0_BOOT" >> $(obj)include/config.h ; \
		echo "... configured for CS0 boot"; \
	else \
		echo "#define CONFIG_CS3_BOOT" >> $(obj)include/config.h ; \
		echo "... configured for CS3 boot"; \
	fi;
	@$(MKCONFIG) -a $(call xtract_omap730p2,$@) arm arm926ejs omap730p2 NULL omap

sbc2410x_config: unconfig
	@$(MKCONFIG) $(@:_config=) arm arm920t sbc2410x NULL s3c24x0

scb9328_config	:	unconfig
	@$(MKCONFIG) $(@:_config=) arm arm920t scb9328 NULL imx

smdk2400_config	:	unconfig
	@$(MKCONFIG) $(@:_config=) arm arm920t smdk2400 NULL s3c24x0

smdk2410_config	:	unconfig
	@$(MKCONFIG) $(@:_config=) arm arm920t smdk2410 NULL s3c24x0

SX1_config :		unconfig
	@$(MKCONFIG) $(@:_config=) arm arm925t sx1

# TRAB default configuration:	8 MB Flash, 32 MB RAM
trab_config \
trab_bigram_config \
trab_bigflash_config \
trab_old_config:	unconfig
	@mkdir -p $(obj)include
	@mkdir -p $(obj)board/trab
	@ >$(obj)include/config.h
	@[ -z "$(findstring _bigram,$@)" ] || \
		{ echo "#define CONFIG_FLASH_8MB"  >>$(obj)include/config.h ; \
		  echo "#define CONFIG_RAM_32MB"   >>$(obj)include/config.h ; \
		  echo "... with 8 MB Flash, 32 MB RAM" ; \
		}
	@[ -z "$(findstring _bigflash,$@)" ] || \
		{ echo "#define CONFIG_FLASH_16MB" >>$(obj)include/config.h ; \
		  echo "#define CONFIG_RAM_16MB"   >>$(obj)include/config.h ; \
		  echo "... with 16 MB Flash, 16 MB RAM" ; \
		  echo "TEXT_BASE = 0x0CF40000" >$(obj)board/trab/config.tmp ; \
		}
	@[ -z "$(findstring _old,$@)" ] || \
		{ echo "#define CONFIG_FLASH_8MB"  >>$(obj)include/config.h ; \
		  echo "#define CONFIG_RAM_16MB"   >>$(obj)include/config.h ; \
		  echo "... with 8 MB Flash, 16 MB RAM" ; \
		  echo "TEXT_BASE = 0x0CF40000" >$(obj)board/trab/config.tmp ; \
		}
	@$(MKCONFIG) -a $(call xtract_trab,$@) arm arm920t trab NULL s3c24x0

VCMA9_config	:	unconfig
	@$(MKCONFIG) $(@:_config=) arm arm920t vcma9 mpl s3c24x0

#========================================================================
# ARM supplied Versatile development boards
#========================================================================
versatile_config	\
versatileab_config	\
versatilepb_config :	unconfig
	@board/versatile/split_by_variant.sh $@

voiceblue_smallflash_config	\
voiceblue_config:	unconfig
	@mkdir -p $(obj)include
	@mkdir -p $(obj)board/voiceblue
	@if [ "$(findstring _smallflash_,$@)" ] ; then \
		echo "... boot from lower flash bank" ; \
		echo "#define VOICEBLUE_SMALL_FLASH" >>$(obj)include/config.h ; \
		echo "VOICEBLUE_SMALL_FLASH=y" >$(obj)board/voiceblue/config.tmp ; \
	else \
		echo "... boot from upper flash bank" ; \
		>$(obj)include/config.h ; \
		echo "VOICEBLUE_SMALL_FLASH=n" >$(obj)board/voiceblue/config.tmp ; \
	fi
	@$(MKCONFIG) -a voiceblue arm arm925t voiceblue

cm4008_config	:	unconfig
	@$(MKCONFIG) $(@:_config=) arm arm920t cm4008 NULL ks8695

cm41xx_config	:	unconfig
	@$(MKCONFIG) $(@:_config=) arm arm920t cm41xx NULL ks8695

gth2_config		:	unconfig
	@mkdir -p $(obj)include
	@ >$(obj)include/config.h
	@echo "#define CONFIG_GTH2 1" >>$(obj)include/config.h
	@$(MKCONFIG) -a gth2 mips mips gth2

#########################################################################
## S3C44B0 Systems
#########################################################################

B2_config	:	unconfig
	@$(MKCONFIG) $(@:_config=) arm s3c44b0 B2 dave

#########################################################################
## ARM720T Systems
#########################################################################

armadillo_config:	unconfig
	@$(MKCONFIG) $(@:_config=) arm arm720t armadillo

ep7312_config	:	unconfig
	@$(MKCONFIG) $(@:_config=) arm arm720t ep7312

impa7_config	:	unconfig
	@$(MKCONFIG) $(@:_config=) arm arm720t impa7

modnet50_config :	unconfig
	@$(MKCONFIG) $(@:_config=) arm arm720t modnet50

evb4510_config :	unconfig
	@$(MKCONFIG) $(@:_config=) arm arm720t evb4510

lpc2292sodimm_config:	unconfig
	@$(MKCONFIG) $(@:_config=) arm arm720t lpc2292sodimm NULL lpc2292

SMN42_config	:	unconfig
	@$(MKCONFIG) $(@:_config=) arm arm720t SMN42 siemens lpc2292

#########################################################################
## XScale Systems
#########################################################################

adsvix_config	:	unconfig
	@$(MKCONFIG) $(@:_config=) arm pxa adsvix

cerf250_config :	unconfig
	@$(MKCONFIG) $(@:_config=) arm pxa cerf250

cradle_config	:	unconfig
	@$(MKCONFIG) $(@:_config=) arm pxa cradle

csb226_config	:	unconfig
	@$(MKCONFIG) $(@:_config=) arm pxa csb226

delta_config :
	@$(MKCONFIG) $(@:_config=) arm pxa delta

innokom_config	:	unconfig
	@$(MKCONFIG) $(@:_config=) arm pxa innokom

ixdp425_config	:	unconfig
	@$(MKCONFIG) $(@:_config=) arm ixp ixdp425

ixdpg425_config	:	unconfig
	@$(MKCONFIG) $(@:_config=) arm ixp ixdp425

lubbock_config	:	unconfig
	@$(MKCONFIG) $(@:_config=) arm pxa lubbock

pleb2_config	:	unconfig
	@$(MKCONFIG) $(@:_config=) arm pxa pleb2

logodl_config	:	unconfig
	@$(MKCONFIG) $(@:_config=) arm pxa logodl

pdnb3_config \
scpu_config:    unconfig
	@mkdir -p $(obj)include
	@if [ "$(findstring scpu_,$@)" ] ; then \
		echo "#define CONFIG_SCPU"      >>$(obj)include/config.h ; \
		echo "... on SCPU board variant" ; \
	else \
		>$(obj)include/config.h ; \
	fi
	@$(MKCONFIG) -a pdnb3 arm ixp pdnb3 prodrive

pxa255_idp_config:	unconfig
	@$(MKCONFIG) $(@:_config=) arm pxa pxa255_idp

trizepsiv_config	:	unconfig
	@$(MKCONFIG) $(@:_config=) arm pxa trizepsiv

wepep250_config	:	unconfig
	@$(MKCONFIG) $(@:_config=) arm pxa wepep250

xaeniax_config	:	unconfig
	@$(MKCONFIG) $(@:_config=) arm pxa xaeniax

xm250_config	:	unconfig
	@$(MKCONFIG) $(@:_config=) arm pxa xm250

xsengine_config :	unconfig
	@$(MKCONFIG) $(@:_config=) arm pxa xsengine

zylonite_config :
	@$(MKCONFIG) $(@:_config=) arm pxa zylonite

#########################################################################
## ARM1136 Systems
#########################################################################
omap2420h4_config :    unconfig
	@$(MKCONFIG) $(@:_config=) arm arm1136 omap2420h4

#========================================================================
# i386
#========================================================================
#########################################################################
## AMD SC520 CDP
#########################################################################
sc520_cdp_config	:	unconfig
	@$(MKCONFIG) $(@:_config=) i386 i386 sc520_cdp

sc520_spunk_config	:	unconfig
	@$(MKCONFIG) $(@:_config=) i386 i386 sc520_spunk

sc520_spunk_rel_config	:	unconfig
	@$(MKCONFIG) $(@:_config=) i386 i386 sc520_spunk

#========================================================================
# MIPS
#========================================================================
#########################################################################
## MIPS32 4Kc
#########################################################################

xtract_incaip = $(subst _100MHz,,$(subst _133MHz,,$(subst _150MHz,,$(subst _config,,$1))))

incaip_100MHz_config	\
incaip_133MHz_config	\
incaip_150MHz_config	\
incaip_config: unconfig
	@mkdir -p $(obj)include
	@ >$(obj)include/config.h
	@[ -z "$(findstring _100MHz,$@)" ] || \
		{ echo "#define CPU_CLOCK_RATE 100000000" >>$(obj)include/config.h ; \
		  echo "... with 100MHz system clock" ; \
		}
	@[ -z "$(findstring _133MHz,$@)" ] || \
		{ echo "#define CPU_CLOCK_RATE 133000000" >>$(obj)include/config.h ; \
		  echo "... with 133MHz system clock" ; \
		}
	@[ -z "$(findstring _150MHz,$@)" ] || \
		{ echo "#define CPU_CLOCK_RATE 150000000" >>$(obj)include/config.h ; \
		  echo "... with 150MHz system clock" ; \
		}
	@$(MKCONFIG) -a $(call xtract_incaip,$@) mips mips incaip

tb0229_config: unconfig
	@$(MKCONFIG) $(@:_config=) mips mips tb0229

#########################################################################
## MIPS32 AU1X00
#########################################################################
dbau1000_config		:	unconfig
	@mkdir -p $(obj)include
	@ >$(obj)include/config.h
	@echo "#define CONFIG_DBAU1000 1" >>$(obj)include/config.h
	@$(MKCONFIG) -a dbau1x00 mips mips dbau1x00

dbau1100_config		:	unconfig
	@mkdir -p $(obj)include
	@ >$(obj)include/config.h
	@echo "#define CONFIG_DBAU1100 1" >>$(obj)include/config.h
	@$(MKCONFIG) -a dbau1x00 mips mips dbau1x00

dbau1500_config		:	unconfig
	@mkdir -p $(obj)include
	@ >$(obj)include/config.h
	@echo "#define CONFIG_DBAU1500 1" >>$(obj)include/config.h
	@$(MKCONFIG) -a dbau1x00 mips mips dbau1x00

dbau1550_config		:	unconfig
	@mkdir -p $(obj)include
	@ >$(obj)include/config.h
	@echo "#define CONFIG_DBAU1550 1" >>$(obj)include/config.h
	@$(MKCONFIG) -a dbau1x00 mips mips dbau1x00

dbau1550_el_config	:	unconfig
	@mkdir -p $(obj)include
	@ >$(obj)include/config.h
	@echo "#define CONFIG_DBAU1550 1" >>$(obj)include/config.h
	@$(MKCONFIG) -a dbau1x00 mips mips dbau1x00

pb1000_config		:	unconfig
	@mkdir -p $(obj)include
	@ >$(obj)include/config.h
	@echo "#define CONFIG_PB1000 1" >>$(obj)include/config.h
	@$(MKCONFIG) -a pb1x00 mips mips pb1x00

#########################################################################
## MIPS64 5Kc
#########################################################################

purple_config :		unconfig
	@$(MKCONFIG) $(@:_config=) mips mips purple

#========================================================================
# Nios
#========================================================================
#########################################################################
## Nios32
#########################################################################

DK1C20_safe_32_config		\
DK1C20_standard_32_config	\
DK1C20_config:	unconfig
	@mkdir -p $(obj)include
	@ >$(obj)include/config.h
	@[ -z "$(findstring _safe_32,$@)" ] || \
		{ echo "#define CONFIG_NIOS_SAFE_32 1" >>$(obj)include/config.h ; \
		  echo "... NIOS 'safe_32' configuration" ; \
		}
	@[ -z "$(findstring _standard_32,$@)" ] || \
		{ echo "#define CONFIG_NIOS_STANDARD_32 1" >>$(obj)include/config.h ; \
		  echo "... NIOS 'standard_32' configuration" ; \
		}
	@[ -z "$(findstring DK1C20_config,$@)" ] || \
		{ echo "#define CONFIG_NIOS_STANDARD_32 1" >>$(obj)include/config.h ; \
		  echo "... NIOS 'standard_32' configuration (DEFAULT)" ; \
		}
	@$(MKCONFIG) -a DK1C20 nios nios dk1c20 altera

DK1S10_safe_32_config		\
DK1S10_standard_32_config	\
DK1S10_mtx_ldk_20_config	\
DK1S10_config:	unconfig
	@mkdir -p $(obj)include
	@ >$(obj)include/config.h
	@[ -z "$(findstring _safe_32,$@)" ] || \
		{ echo "#define CONFIG_NIOS_SAFE_32 1" >>$(obj)include/config.h ; \
		  echo "... NIOS 'safe_32' configuration" ; \
		}
	@[ -z "$(findstring _standard_32,$@)" ] || \
		{ echo "#define CONFIG_NIOS_STANDARD_32 1" >>$(obj)include/config.h ; \
		  echo "... NIOS 'standard_32' configuration" ; \
		}
	@[ -z "$(findstring _mtx_ldk_20,$@)" ] || \
		{ echo "#define CONFIG_NIOS_MTX_LDK_20 1" >>$(obj)include/config.h ; \
		  echo "... NIOS 'mtx_ldk_20' configuration" ; \
		}
	@[ -z "$(findstring DK1S10_config,$@)" ] || \
		{ echo "#define CONFIG_NIOS_STANDARD_32 1" >>$(obj)include/config.h ; \
		  echo "... NIOS 'standard_32' configuration (DEFAULT)" ; \
		}
	@$(MKCONFIG) -a DK1S10 nios nios dk1s10 altera

ADNPESC1_DNPEVA2_base_32_config	\
ADNPESC1_base_32_config		\
ADNPESC1_config: unconfig
	@mkdir -p $(obj)include
	@ >$(obj)include/config.h
	@[ -z "$(findstring _DNPEVA2,$@)" ] || \
		{ echo "#define CONFIG_DNPEVA2 1" >>$(obj)include/config.h ; \
		  echo "... DNP/EVA2 configuration" ; \
		}
	@[ -z "$(findstring _base_32,$@)" ] || \
		{ echo "#define CONFIG_NIOS_BASE_32 1" >>$(obj)include/config.h ; \
		  echo "... NIOS 'base_32' configuration" ; \
		}
	@[ -z "$(findstring ADNPESC1_config,$@)" ] || \
		{ echo "#define CONFIG_NIOS_BASE_32 1" >>$(obj)include/config.h ; \
		  echo "... NIOS 'base_32' configuration (DEFAULT)" ; \
		}
	@$(MKCONFIG) -a ADNPESC1 nios nios adnpesc1 ssv

#########################################################################
## Nios-II
#########################################################################

EP1C20_config : unconfig
	@$(MKCONFIG)  EP1C20 nios2 nios2 ep1c20 altera

EP1S10_config : unconfig
	@$(MKCONFIG)  EP1S10 nios2 nios2 ep1s10 altera

EP1S40_config : unconfig
	@$(MKCONFIG)  EP1S40 nios2 nios2 ep1s40 altera

PK1C20_config : unconfig
	@$(MKCONFIG)  PK1C20 nios2 nios2 pk1c20 psyent

PCI5441_config : unconfig
	@$(MKCONFIG)  PCI5441 nios2 nios2 pci5441 psyent

#========================================================================
# MicroBlaze
#========================================================================
#########################################################################
## Microblaze
#########################################################################
suzaku_config:	unconfig
	@mkdir -p $(obj)include
	@ >$(obj)include/config.h
	@echo "#define CONFIG_SUZAKU 1" >> $(obj)include/config.h
	@$(MKCONFIG) -a $(@:_config=) microblaze microblaze suzaku AtmarkTechno

ml401_config:	unconfig
	@mkdir -p $(obj)include
	@ >$(obj)include/config.h
	@echo "#define CONFIG_ML401 1" >> $(obj)include/config.h
	@$(MKCONFIG) -a $(@:_config=) microblaze microblaze ml401 xilinx

xupv2p_config:	unconfig
	@mkdir -p $(obj)include
	@ >$(obj)include/config.h
	@echo "#define CONFIG_XUPV2P 1" >> $(obj)include/config.h
	@$(MKCONFIG) -a $(@:_config=) microblaze microblaze xupv2p xilinx

#########################################################################
## Blackfin
#########################################################################
bf533-ezkit_config:	unconfig
	@$(MKCONFIG) $(@:_config=) blackfin bf533 bf533-ezkit

bf533-stamp_config:	unconfig
	@$(MKCONFIG) $(@:_config=) blackfin bf533 bf533-stamp

bf537-stamp_config:	unconfig
	@$(MKCONFIG) $(@:_config=) blackfin bf537 bf537-stamp

bf561-ezkit_config:	unconfig
	@$(MKCONFIG) $(@:_config=) blackfin bf561 bf561-ezkit

#========================================================================
# AVR32
#========================================================================
#########################################################################
## AT32AP7xxx
#########################################################################

atstk1002_config	:	unconfig
	@$(MKCONFIG) $(@:_config=) avr32 at32ap atstk1000 atmel at32ap7000

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

clean:
	find $(OBJTREE) -type f \
		\( -name 'core' -o -name '*.bak' -o -name '*~' \
		-o -name '*.o'  -o -name '*.a'  \) -print \
		| xargs rm -f
	rm -f $(obj)examples/hello_world $(obj)examples/timer \
	      $(obj)examples/eepro100_eeprom $(obj)examples/sched \
	      $(obj)examples/mem_to_mem_idma2intr $(obj)examples/82559_eeprom \
	      $(obj)examples/smc91111_eeprom $(obj)examples/interrupt \
	      $(obj)examples/test_burst
	rm -f $(obj)tools/img2srec $(obj)tools/mkimage $(obj)tools/envcrc \
		$(obj)tools/gen_eth_addr $(obj)tools/ubsha1
	rm -f $(obj)tools/mpc86x_clk $(obj)tools/ncb
	rm -f $(obj)tools/easylogo/easylogo $(obj)tools/bmp_logo
	rm -f $(obj)tools/gdb/astest $(obj)tools/gdb/gdbcont $(obj)tools/gdb/gdbsend
	rm -f $(obj)tools/env/fw_printenv $(obj)tools/env/fw_setenv
	rm -f $(obj)board/cray/L1/bootscript.c $(obj)board/cray/L1/bootscript.image
	rm -f $(obj)board/netstar/eeprom $(obj)board/netstar/crcek $(obj)board/netstar/crcit
	rm -f $(obj)board/netstar/*.srec $(obj)board/netstar/*.bin
	rm -f $(obj)board/trab/trab_fkt $(obj)board/voiceblue/eeprom
	rm -f $(obj)board/integratorap/u-boot.lds $(obj)board/integratorcp/u-boot.lds
	rm -f $(obj)board/bf533-ezkit/u-boot.lds $(obj)board/bf533-stamp/u-boot.lds
	rm -f $(obj)board/bf537-stamp/u-boot.lds $(obj)board/bf561-ezkit/u-boot.lds
	rm -f $(obj)include/bmp_logo.h
	rm -f $(obj)nand_spl/u-boot-spl $(obj)nand_spl/u-boot-spl.map

clobber:	clean
	find $(OBJTREE) -type f \( -name .depend \
		-o -name '*.srec' -o -name '*.bin' -o -name u-boot.img \) \
		-print0 \
		| xargs -0 rm -f
	rm -f $(OBJS) $(obj)*.bak $(obj)ctags $(obj)etags $(obj)TAGS $(obj)include/version_autogenerated.h
	rm -fr $(obj)*.*~
	rm -f $(obj)u-boot $(obj)u-boot.map $(obj)u-boot.hex $(ALL)
	rm -f $(obj)tools/crc32.c $(obj)tools/environment.c $(obj)tools/env/crc32.c $(obj)tools/sha1.c
	rm -f $(obj)tools/inca-swap-bytes $(obj)cpu/mpc824x/bedbug_603e.c
	rm -f $(obj)include/asm/proc $(obj)include/asm/arch $(obj)include/asm
	[ ! -d $(OBJTREE)/nand_spl ] || find $(obj)nand_spl -lname "*" -print | xargs rm -f

ifeq ($(OBJTREE),$(SRCTREE))
mrproper \
distclean:	clobber unconfig
else
mrproper \
distclean:	clobber unconfig
	rm -rf $(OBJTREE)/*
endif

backup:
	F=`basename $(TOPDIR)` ; cd .. ; \
	gtar --force-local -zcvf `date "+$$F-%Y-%m-%d-%T.tar.gz"` $$F

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