#
# (C) Copyright 2000-2008
# 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 = 2009
PATCHLEVEL = 01
SUBLEVEL =
EXTRAVERSION =
ifneq "$(SUBLEVEL)" ""
U_BOOT_VERSION = $(VERSION).$(PATCHLEVEL).$(SUBLEVEL)$(EXTRAVERSION)
else
U_BOOT_VERSION = $(VERSION).$(PATCHLEVEL)$(EXTRAVERSION)
endif
TIMESTAMP_FILE = $(obj)include/timestamp_autogenerated.h
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/')

# Set shell to bash if possible, otherwise fall back to sh
SHELL := $(shell if [ -x "$$BASH" ]; then echo $$BASH; \
	else if [ -x /bin/bash ]; then echo /bin/bash; \
	else echo sh; fi; fi)

export	HOSTARCH HOSTOS SHELL

# Deal with colliding definitions from tcsh etc.
VENDOR=

#########################################################################
# Allow for silent builds
ifeq (,$(findstring s,$(MAKEFLAGS)))
XECHO = echo
else
XECHO = :
endif

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

# Make sure CDPATH settings don't interfere
unexport CDPATH

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

ifeq ($(ARCH),powerpc)
ARCH = ppc
endif

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

# load ARCH, BOARD, and CPU configuration
include $(obj)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
ifeq ($(ARCH),sh)
CROSS_COMPILE = sh4-linux-
endif
ifeq ($(ARCH),sparc)
CROSS_COMPILE = sparc-elf-
endif	# sparc
endif	# HOSTARCH,ARCH
endif	# CROSS_COMPILE

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)/resetvec.o
endif
ifeq ($(CPU),ppc4xx)
OBJS += cpu/$(CPU)/resetvec.o
endif
ifeq ($(CPU),mpc85xx)
OBJS += cpu/$(CPU)/resetvec.o
endif

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

LIBS  = lib_generic/libgeneric.a
LIBS += lib_generic/lzma/liblzma.a
LIBS += $(shell if [ -f board/$(VENDOR)/common/Makefile ]; then echo \
	"board/$(VENDOR)/common/lib$(VENDOR).a"; fi)
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 fs/yaffs2/libyaffs2.a
LIBS += net/libnet.a
LIBS += disk/libdisk.a
LIBS += drivers/bios_emulator/libatibiosemu.a
LIBS += drivers/block/libblock.a
LIBS += drivers/dma/libdma.a
LIBS += drivers/fpga/libfpga.a
LIBS += drivers/gpio/libgpio.a
LIBS += drivers/hwmon/libhwmon.a
LIBS += drivers/i2c/libi2c.a
LIBS += drivers/input/libinput.a
LIBS += drivers/misc/libmisc.a
LIBS += drivers/mmc/libmmc.a
LIBS += drivers/mtd/libmtd.a
LIBS += drivers/mtd/nand/libnand.a
LIBS += drivers/mtd/nand_legacy/libnand_legacy.a
LIBS += drivers/mtd/onenand/libonenand.a
LIBS += drivers/mtd/ubi/libubi.a
LIBS += drivers/mtd/spi/libspi_flash.a
LIBS += drivers/net/libnet.a
LIBS += drivers/net/phy/libphy.a
LIBS += drivers/net/sk98lin/libsk98lin.a
LIBS += drivers/pci/libpci.a
LIBS += drivers/pcmcia/libpcmcia.a
LIBS += drivers/spi/libspi.a
ifeq ($(CPU),mpc83xx)
LIBS += drivers/qe/qe.a
endif
ifeq ($(CPU),mpc85xx)
LIBS += drivers/qe/qe.a
LIBS += cpu/mpc8xxx/ddr/libddr.a
TAG_SUBDIRS += cpu/mpc8xxx
endif
ifeq ($(CPU),mpc86xx)
LIBS += cpu/mpc8xxx/ddr/libddr.a
TAG_SUBDIRS += cpu/mpc8xxx
endif
LIBS += drivers/rtc/librtc.a
LIBS += drivers/serial/libserial.a
LIBS += drivers/usb/libusb.a
LIBS += drivers/video/libvideo.a
LIBS += common/libcommon.a
LIBS += libfdt/libfdt.a
LIBS += api/libapi.a
LIBS += post/libpost.a

LIBS := $(addprefix $(obj),$(LIBS))
.PHONY : $(LIBS) $(TIMESTAMP_FILE) $(VERSION_FILE)

LIBBOARD = board/$(BOARDDIR)/lib$(BOARD).a
LIBBOARD := $(addprefix $(obj),$(LIBBOARD))

# 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 \
	  api_examples

.PHONY : $(SUBDIRS)

ifeq ($(CONFIG_NAND_U_BOOT),y)
NAND_SPL = nand_spl
U_BOOT_NAND = $(obj)u-boot-nand.bin
endif

ifeq ($(CONFIG_ONENAND_U_BOOT),y)
ONENAND_IPL = onenand_ipl
U_BOOT_ONENAND = $(obj)u-boot-onenand.bin
endif

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

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

ALL += $(obj)u-boot.srec $(obj)u-boot.bin $(obj)System.map $(U_BOOT_NAND) $(U_BOOT_ONENAND)
ifeq ($(ARCH),blackfin)
ALL += $(obj)u-boot.ldr
endif

all:		$(ALL)

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

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

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

$(obj)u-boot.ldr:	$(obj)u-boot
		$(LDR) -T $(CONFIG_BFIN_CPU) -c $@ $< $(LDR_FLAGS)

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

$(obj)u-boot.ldr.srec:	$(obj)u-boot.ldr
		$(OBJCOPY) ${OBJCFLAGS} -O srec $< $@ -I 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 $(SUBDIRS) $(OBJS) $(LIBBOARD) $(LIBS) $(LDSCRIPT)
		UNDEF_SYM=`$(OBJDUMP) -x $(LIBBOARD) $(LIBS) | \
		sed  -n -e 's/.*\($(SYM_PREFIX)__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):	depend $(obj)include/autoconf.mk
		$(MAKE) -C cpu/$(CPU) $(if $(REMOTE_BUILD),$@,$(notdir $@))

$(LIBS):	depend $(obj)include/autoconf.mk $(SUBDIRS)
		$(MAKE) -C $(dir $(subst $(obj),,$@))

$(LIBBOARD):	depend $(LIBS) $(obj)include/autoconf.mk
		$(MAKE) -C $(dir $(subst $(obj),,$@))

$(SUBDIRS):	depend $(obj)include/autoconf.mk
		$(MAKE) -C $@ all

$(LDSCRIPT):	depend $(obj)include/autoconf.mk
		$(MAKE) -C $(dir $@) $(notdir $@)

$(NAND_SPL):	$(TIMESTAMP_FILE) $(VERSION_FILE) $(obj)include/autoconf.mk
		$(MAKE) -C nand_spl/board/$(BOARDDIR) all

$(U_BOOT_NAND):	$(NAND_SPL) $(obj)u-boot.bin $(obj)include/autoconf.mk
		cat $(obj)nand_spl/u-boot-spl-16k.bin $(obj)u-boot.bin > $(obj)u-boot-nand.bin

$(ONENAND_IPL):	$(TIMESTAMP_FILE) $(VERSION_FILE) $(obj)include/autoconf.mk
		$(MAKE) -C onenand_ipl/board/$(BOARDDIR) all

$(U_BOOT_ONENAND):	$(ONENAND_IPL) $(obj)u-boot.bin $(obj)include/autoconf.mk
		cat $(obj)onenand_ipl/onenand-ipl-2k.bin $(obj)u-boot.bin > $(obj)u-boot-onenand.bin
		cat $(obj)onenand_ipl/onenand-ipl-4k.bin $(obj)u-boot.bin > $(obj)u-boot-flexonenand.bin

$(VERSION_FILE):
		@( printf '#define U_BOOT_VERSION "U-Boot %s%s"\n' "$(U_BOOT_VERSION)" \
		 '$(shell $(TOPDIR)/tools/setlocalversion $(TOPDIR))' ) > $@.tmp
		@cmp -s $@ $@.tmp && rm -f $@.tmp || mv -f $@.tmp $@

$(TIMESTAMP_FILE):
		@date +'#define U_BOOT_DATE "%b %d %C%y"' > $@
		@date +'#define U_BOOT_TIME "%T"' >> $@

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

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

env:
		$(MAKE) -C tools/env all MTD_VERSION=${MTD_VERSION} || exit 1

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

TAG_SUBDIRS += include
TAG_SUBDIRS += lib_generic board/$(BOARDDIR)
TAG_SUBDIRS += cpu/$(CPU)
TAG_SUBDIRS += lib_$(ARCH)
TAG_SUBDIRS += fs/cramfs
TAG_SUBDIRS += fs/fat
TAG_SUBDIRS += fs/fdos
TAG_SUBDIRS += fs/jffs2
TAG_SUBDIRS += fs/yaffs2
TAG_SUBDIRS += net
TAG_SUBDIRS += disk
TAG_SUBDIRS += common
TAG_SUBDIRS += drivers/bios_emulator
TAG_SUBDIRS += drivers/block
TAG_SUBDIRS += drivers/gpio
TAG_SUBDIRS += drivers/hwmon
TAG_SUBDIRS += drivers/i2c
TAG_SUBDIRS += drivers/input
TAG_SUBDIRS += drivers/misc
TAG_SUBDIRS += drivers/mmc
TAG_SUBDIRS += drivers/mtd
TAG_SUBDIRS += drivers/mtd/nand
TAG_SUBDIRS += drivers/mtd/nand_legacy
TAG_SUBDIRS += drivers/mtd/onenand
TAG_SUBDIRS += drivers/mtd/spi
TAG_SUBDIRS += drivers/net
TAG_SUBDIRS += drivers/net/sk98lin
TAG_SUBDIRS += drivers/pci
TAG_SUBDIRS += drivers/pcmcia
TAG_SUBDIRS += drivers/qe
TAG_SUBDIRS += drivers/rtc
TAG_SUBDIRS += drivers/serial
TAG_SUBDIRS += drivers/spi
TAG_SUBDIRS += drivers/usb
TAG_SUBDIRS += drivers/video

tags ctags:
		ctags -w -o $(obj)ctags `find $(SUBDIRS) $(TAG_SUBDIRS) \
						-name '*.[ch]' -print`

etags:
		etags -a -o $(obj)etags `find $(SUBDIRS) $(TAG_SUBDIRS) \
						-name '*.[ch]' -print`
cscope:
		find $(SUBDIRS) $(TAG_SUBDIRS) -name '*.[ch]' -print \
						> cscope.files
		cscope -b -q -k

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

#
# Auto-generate the autoconf.mk file (which is included by all makefiles)
#
# This target actually generates 2 files; autoconf.mk and autoconf.mk.dep.
# the dep file is only include in this top level makefile to determine when
# to regenerate the autoconf.mk file.
$(obj)include/autoconf.mk.dep: $(obj)include/config.h include/common.h
	@$(XECHO) Generating $@ ; \
	set -e ; \
	: Generate the dependancies ; \
	$(CC) -x c -DDO_DEPS_ONLY -M $(HOST_CFLAGS) $(CPPFLAGS) \
		-MQ $(obj)include/autoconf.mk include/common.h > $@

$(obj)include/autoconf.mk: $(obj)include/config.h
	@$(XECHO) Generating $@ ; \
	set -e ; \
	: Extract the config macros ; \
	$(CPP) $(CFLAGS) -DDO_DEPS_ONLY -dM include/common.h | \
		sed -n -f tools/scripts/define2mk.sed > $@.tmp && \
	mv $@.tmp $@

sinclude $(obj)include/autoconf.mk.dep

#########################################################################
else	# !config.mk
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) $(TIMESTAMP_FILE) $(VERSION_FILE) gdbtools updater env depend \
dep tags ctags etags cscope $(obj)System.map:
	@echo "System not configured - see README" >&2
	@ exit 1
endif	# config.mk

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

include/license.h: tools/bin2header COPYING
	 cat COPYING | gzip -9 -c | ./tools/bin2header license_gzip > include/license.h
#########################################################################

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

#========================================================================
# 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 tqc

BC3450_config:	unconfig
	@$(MKCONFIG) -a BC3450 ppc mpc5xxx bc3450

cm5200_config:	unconfig
	@$(MKCONFIG) -a cm5200 ppc mpc5xxx cm5200

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
	@[ -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 ; \
		  $(XECHO) "... with LOWBOOT configuration" ; \
		}
	@[ -z "$(findstring LOWBOOT08,$@)" ] || \
		{ echo "TEXT_BASE = 0xFF800000" >$(obj)board/icecube/config.tmp ; \
		  echo "... with 8 MB flash only" ; \
		  $(XECHO) "... with LOWBOOT configuration" ; \
		}
	@[ -z "$(findstring DDR,$@)" ] || \
		{ echo "#define CONFIG_MPC5200_DDR"	>>$(obj)include/config.h ; \
		  $(XECHO) "... DDR memory revision" ; \
		}
	@[ -z "$(findstring 5200,$@)" ] || \
		{ echo "#define CONFIG_MPC5200"		>>$(obj)include/config.h ; \
		  $(XECHO) "... with MPC5200 processor" ; \
		}
	@[ -z "$(findstring 5100,$@)" ] || \
		{ echo "#define CONFIG_MGT5100"		>>$(obj)include/config.h ; \
		  $(XECHO) "... with MGT5100 processor" ; \
		}
	@$(MKCONFIG) -a IceCube ppc mpc5xxx icecube

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

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
	@ echo "#define CONFIG_MPC5200_DDR"	>>$(obj)include/config.h
	@ $(XECHO) "... 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 ; \
		  $(XECHO) "... with power management (low-power mode) support" ; \
		}
	@[ -z "$(findstring LOWBOOT_,$@)" ] || \
		{ echo "TEXT_BASE = 0xFF000000" >$(obj)board/icecube/config.tmp ; \
		  $(XECHO) "... with LOWBOOT configuration" ; \
		}
	@ $(XECHO) "... 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
	@[ -n "$(findstring highboot,$@)" ] || \
		{ $(XECHO) "... with lowboot configuration" ; \
		}
	@[ -z "$(findstring highboot,$@)" ] || \
		{ echo "TEXT_BASE = 0xFFF00000" >$(obj)board/mcc200/config.tmp ; \
		  $(XECHO) "... with highboot configuration" ; \
		}
	@[ -n "$(findstring _SDRAM,$@)" ] || \
		{ if [ -n "$(findstring mcc200,$@)" ]; \
		  then \
			$(XECHO) "... with DDR" ; \
		  else \
			if [ -n "$(findstring _DDR,$@)" ];\
			then \
				$(XECHO) "... with DDR" ; \
			else \
				echo "#define CONFIG_MCC200_SDRAM" >>$(obj)include/config.h ;\
				$(XECHO) "... with SDRAM" ; \
			fi; \
		  fi; \
		}
	@[ -z "$(findstring _SDRAM,$@)" ] || \
		{ echo "#define CONFIG_MCC200_SDRAM"	>>$(obj)include/config.h ; \
		  $(XECHO) "... with SDRAM" ; \
		}
	@[ -z "$(findstring COM12,$@)" ] || \
		{ echo "#define CONFIG_CONSOLE_COM12"	>>$(obj)include/config.h ; \
		  $(XECHO) "... 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) mecp5200  ppc mpc5xxx mecp5200 esd

motionpro_config:	unconfig
	@$(MKCONFIG) motionpro ppc mpc5xxx motionpro

mucmc52_config:		unconfig
	@$(MKCONFIG) mucmc52 ppc mpc5xxx mucmc52

munices_config:	unconfig
	@$(MKCONFIG) munices ppc mpc5xxx munices

MVBC_P_config: unconfig
	@mkdir -p $(obj)include
	@mkdir -p $(obj)board/mvbc_p
	@ >$(obj)include/config.h
	@[ -z "$(findstring MVBC_P,$@)" ] || \
	{   	echo "#define CONFIG_MVBC_P" 	>>$(obj)include/config.h; }
	@$(MKCONFIG) -n $@ -a MVBC_P ppc mpc5xxx mvbc_p matrix_vision

o2dnt_config:	unconfig
	@$(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
	@[ -z "$(findstring DDR,$@)" ] || \
		{ echo "#define CONFIG_MPC5200_DDR"	>>$(obj)include/config.h ; \
		  $(XECHO) "... DDR memory revision" ; \
		}
	@[ -z "$(findstring ROMBOOT,$@)" ] || \
		{ echo "#define CONFIG_BOOT_ROM" >>$(obj)include/config.h ; \
		  $(XECHO) "... booting from 8-bit flash" ; \
		}
	@$(MKCONFIG) -a PM520 ppc mpc5xxx pm520

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

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

TB5200_B_config \
TB5200_config:	unconfig
	@mkdir -p $(obj)include
	@[ -z "$(findstring _B,$@)" ] || \
		{ echo "#define CONFIG_TQM5200_B"	>>$(obj)include/config.h ; \
		  $(XECHO) "... with MPC5200B processor" ; \
		}
	@$(MKCONFIG) -n $@ -a TB5200 ppc mpc5xxx tqm5200 tqc

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
	@[ -z "$(findstring 5100,$@)" ] || \
		{ echo "#define CONFIG_MGT5100"		>>$(obj)include/config.h ; \
		  $(XECHO) "... with MGT5100 processor" ; \
		}
	@[ -z "$(findstring 5200,$@)" ] || \
		{ echo "#define CONFIG_MPC5200"		>>$(obj)include/config.h ; \
		  $(XECHO) "... with MPC5200 processor" ; \
		}
	@[ -n "$(findstring Rev,$@)" ] || \
		{ echo "#define CONFIG_TOTAL5200_REV 1"	>>$(obj)include/config.h ; \
		  $(XECHO) "... revision 1 board" ; \
		}
	@[ -z "$(findstring Rev2_,$@)" ] || \
		{ echo "#define CONFIG_TOTAL5200_REV 2"	>>$(obj)include/config.h ; \
		  $(XECHO) "... revision 2 board" ; \
		}
	@[ -z "$(findstring lowboot_,$@)" ] || \
		{ echo "TEXT_BASE = 0xFE000000" >$(obj)board/total5200/config.tmp ; \
		  $(XECHO) "... 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/tqc/tqm5200
	@[ -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 ; \
		  $(XECHO) "... TQM5200S on Cam5200" ; \
		}
	@[ -z "$(findstring niosflash,$@)" ] || \
		{ echo "#define CONFIG_CAM5200_NIOSFLASH"	>>$(obj)include/config.h ; \
		  $(XECHO) "... with NIOS flash driver" ; \
		}
	@[ -z "$(findstring fo300,$@)" ] || \
		{ echo "#define CONFIG_FO300"	>>$(obj)include/config.h ; \
		  $(XECHO) "... TQM5200 on FO300" ; \
		}
	@[ -z "$(findstring MiniFAP,$@)" ] || \
		{ echo "#define CONFIG_MINIFAP"	>>$(obj)include/config.h ; \
		  $(XECHO) "... TQM5200_AC on MiniFAP" ; \
		}
	@[ -z "$(findstring STK100,$@)" ] || \
		{ echo "#define CONFIG_STK52XX_REV100"	>>$(obj)include/config.h ; \
		  $(XECHO) "... 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 tqc

uc101_config:		unconfig
	@$(MKCONFIG) uc101 ppc mpc5xxx uc101

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

#########################################################################
## MPC512x Systems
#########################################################################

ads5121_config \
ads5121_rev2_config	\
	: unconfig
	@mkdir -p $(obj)include
	@if [ "$(findstring rev2,$@)" ] ; then \
		echo "#define CONFIG_ADS5121_REV2 1" > $(obj)include/config.h; \
	fi
	@$(MKCONFIG) -a 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
	@[ -z "$(findstring _SC,$@)" ] || \
		{ echo "#define CONFIG_SC" >>$(obj)include/config.h ; \
		  $(XECHO) "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 tqc

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
	@[ -z "$(findstring _100MHz,$@)" ] || \
		{ echo "#define CONFIG_100MHz"	>>$(obj)include/config.h ; \
		  $(XECHO) "... 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
	@[ -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
	@[ -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

mgsuvd_config:		unconfig
	@$(MKCONFIG) $(@:_config=) ppc mpc8xx mgsuvd keymile

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

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

NETVIA_V2_config \
NETVIA_config:		unconfig
	@mkdir -p $(obj)include
	@[ -z "$(findstring NETVIA_config,$@)" ] || \
		 { echo "#define CONFIG_NETVIA_VERSION 1" >>$(obj)include/config.h ; \
		  $(XECHO) "... Version 1" ; \
		 }
	@[ -z "$(findstring NETVIA_V2_config,$@)" ] || \
		 { echo "#define CONFIG_NETVIA_VERSION 2" >>$(obj)include/config.h ; \
		  $(XECHO) "... 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
	@[ -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
	@[ -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
	@[ -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
	@[ -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
	@[ -z "$(findstring _64,$@)" ] || \
		{ echo "#define RPXlite_64MHz"		>>$(obj)include/config.h ; \
		  $(XECHO) "... with 64MHz system clock ..."; \
		}
	@[ -z "$(findstring _LCD,$@)" ] || \
		{ echo "#define CONFIG_LCD"		>>$(obj)include/config.h ; \
		  echo "#define CONFIG_NEC_NL6448BC20"	>>$(obj)include/config.h ; \
		  $(XECHO) "... with LCD display ..."; \
		}
	@[ -z "$(findstring _NVRAM,$@)" ] || \
		{ echo "#define  CONFIG_ENV_IS_IN_NVRAM"	>>$(obj)include/config.h ; \
		  $(XECHO) "... 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 tqc

spc1920_config:		unconfig
	@$(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		\
TK885D_config		\
virtlab2_config:	unconfig
	@mkdir -p $(obj)include
	@[ -z "$(findstring _LCD,$@)" ] || \
		{ echo "#define CONFIG_LCD"		>>$(obj)include/config.h ; \
		  echo "#define CONFIG_NEC_NL6448BC20"	>>$(obj)include/config.h ; \
		  $(XECHO) "... with LCD display" ; \
		}
	@$(MKCONFIG) -a $(call xtract_8xx,$@) ppc mpc8xx tqm8xx tqc

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 tqc

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 tqc

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

# Arches, Canyonlands & Glacier use different U-Boot images
arches_config \
canyonlands_config \
glacier_config:	unconfig
	@mkdir -p $(obj)include
	@echo "#define CONFIG_$$(echo $(subst ,,$(@:_config=)) | \
		tr '[:lower:]' '[:upper:]')" >$(obj)include/config.h
	@$(MKCONFIG) -n $@ -a canyonlands ppc ppc4xx canyonlands amcc

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

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 ; \
		  $(XECHO) "SysClk = 25MHz" ; \
		}
	@[ -z "$(findstring _33,$@)" ] || \
		{ echo "#define CONFIG_PPCHAMELEON_CLK_33" >> $(obj)include/config.h ; \
		  $(XECHO) "SysClk = 33MHz" ; \
		}
	@$(MKCONFIG) -a $(call xtract_4xx,$@) ppc ppc4xx PPChameleonEVB dave

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

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

CPCI405_config		\
CPCI4052_config		\
CPCI405DT_config	\
CPCI405AB_config:	unconfig
	@mkdir -p $(obj)board/esd/cpci405
	@$(MKCONFIG) $(@:_config=) ppc ppc4xx cpci405 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

DU440_config:	unconfig
	@$(MKCONFIG) $(@:_config=) ppc ppc4xx du440 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

fx12mm_flash_config: unconfig
	@mkdir -p $(obj)include $(obj)board/xilinx/ppc405-generic
	@mkdir -p $(obj)include $(obj)board/avnet/fx12mm
	@echo "LDSCRIPT:=$(SRCTREE)/board/xilinx/ppc405-generic/u-boot-rom.lds"\
		> $(obj)board/avnet/fx12mm/config.tmp
	@echo "TEXT_BASE := 0xFFCB0000" \
		>> $(obj)board/avnet/fx12mm/config.tmp
	@$(MKCONFIG) fx12mm ppc ppc4xx fx12mm avnet

fx12mm_config: unconfig
	@mkdir -p $(obj)include $(obj)board/xilinx/ppc405-generic
	@mkdir -p $(obj)include $(obj)board/avnet/fx12mm
	@echo "LDSCRIPT:=$(SRCTREE)/board/xilinx/ppc405-generic/u-boot-ram.lds"\
		> $(obj)board/avnet/fx12mm/config.tmp
	@echo "TEXT_BASE := 0x03000000" \
		>> $(obj)board/avnet/fx12mm/config.tmp
	@$(MKCONFIG) fx12mm ppc ppc4xx fx12mm avnet

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

gdppc440etx_config:	unconfig
	@$(MKCONFIG) $(@:_config=) ppc ppc4xx gdppc440etx gdsys

hcu4_config:	unconfig
	@mkdir -p $(obj)board/netstal/common
	@$(MKCONFIG) $(@:_config=) ppc ppc4xx hcu4 netstal

hcu5_config:	unconfig
	@mkdir -p $(obj)board/netstal/common
	@$(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

# Kilauea & Haleakala images are identical (recognized via PVR)
kilauea_config \
haleakala_config: unconfig
	@$(MKCONFIG) -n $@ -a kilauea ppc ppc4xx kilauea amcc

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

korat_config:	unconfig
	@$(MKCONFIG) $(@:_config=) ppc ppc4xx korat

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

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

makalu_config:	unconfig
	@$(MKCONFIG) $(@:_config=) ppc ppc4xx makalu amcc

mcu25_config:  unconfig
	@mkdir -p $(obj)board/netstal/common
	@$(MKCONFIG) $(@:_config=) ppc ppc4xx mcu25 netstal

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
	@$(XECHO) "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

ml507_flash_config: unconfig
	@mkdir -p $(obj)include $(obj)board/xilinx/ppc440-generic
	@mkdir -p $(obj)include $(obj)board/xilinx/ml507
	@echo "LDSCRIPT:=$(SRCTREE)/board/xilinx/ppc440-generic/u-boot-rom.lds"\
		> $(obj)board/xilinx/ml507/config.tmp
	@echo "TEXT_BASE := 0xFE360000" \
		>> $(obj)board/xilinx/ml507/config.tmp
	@$(MKCONFIG) ml507 ppc ppc4xx ml507 xilinx

ml507_config: unconfig
	@mkdir -p $(obj)include $(obj)board/xilinx/ppc440-generic
	@mkdir -p $(obj)include $(obj)board/xilinx/ml507
	@echo "LDSCRIPT:=$(SRCTREE)/board/xilinx/ppc440-generic/u-boot-ram.lds"\
		> $(obj)board/xilinx/ml507/config.tmp
	@echo "TEXT_BASE := 0x04000000"  \
		>> $(obj)board/xilinx/ml507/config.tmp
	@$(MKCONFIG) ml507 ppc ppc4xx ml507 xilinx

neo_config:	unconfig
	@$(MKCONFIG) $(@:_config=) ppc ppc4xx neo gdsys

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

PMC440_config:	unconfig
	@$(MKCONFIG) $(@:_config=) ppc ppc4xx pmc440 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
	@[ -z "$(findstring EVB_BA,$@)" ] || \
		{ echo "#define CONFIG_PPCHAMELEON_MODULE_MODEL 0" >>$(obj)include/config.h ; \
		  $(XECHO) "... BASIC model" ; \
		}
	@[ -z "$(findstring EVB_ME,$@)" ] || \
		{ echo "#define CONFIG_PPCHAMELEON_MODULE_MODEL 1" >>$(obj)include/config.h ; \
		  $(XECHO) "... MEDIUM model" ; \
		}
	@[ -z "$(findstring EVB_HI,$@)" ] || \
		{ echo "#define CONFIG_PPCHAMELEON_MODULE_MODEL 2" >>$(obj)include/config.h ; \
		  $(XECHO) "... HIGH-END model" ; \
		}
	@[ -z "$(findstring _25,$@)" ] || \
		{ echo "#define CONFIG_PPCHAMELEON_CLK_25" >>$(obj)include/config.h ; \
		  $(XECHO) "SysClk = 25MHz" ; \
		}
	@[ -z "$(findstring _33,$@)" ] || \
		{ echo "#define CONFIG_PPCHAMELEON_CLK_33" >>$(obj)include/config.h ; \
		  $(XECHO) "SysClk = 33MHz" ; \
		}
	@$(MKCONFIG) -a $(call xtract_4xx,$@) ppc ppc4xx PPChameleonEVB dave

quad100hd_config:	unconfig
	@$(MKCONFIG) $(@:_config=) ppc ppc4xx quad100hd

redwood_config: unconfig
	@$(MKCONFIG) $(@:_config=) ppc ppc4xx redwood amcc

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

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

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

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

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

v5fx30teval_config: unconfig
	@mkdir -p $(obj)include $(obj)board/xilinx/ppc440-generic
	@mkdir -p $(obj)include $(obj)board/avnet/v5fx30teval
	@echo "LDSCRIPT:=$(SRCTREE)/board/xilinx/ppc440-generic/u-boot-ram.lds"\
		> $(obj)board/avnet/v5fx30teval/config.tmp
	@echo "TEXT_BASE := 0x03000000" \
		>> $(obj)board/avnet/v5fx30teval/config.tmp
	@$(MKCONFIG) v5fx30teval ppc ppc4xx v5fx30teval avnet

v5fx30teval_flash_config: unconfig
	@mkdir -p $(obj)include $(obj)board/xilinx/ppc440-generic
	@mkdir -p $(obj)include $(obj)board/avnet/v5fx30teval
	@echo "LDSCRIPT:=$(SRCTREE)/board/xilinx/ppc440-generic/u-boot-rom.lds"\
		> $(obj)board/avnet/v5fx30teval/config.tmp
	@echo "TEXT_BASE := 0xFF1C0000" \
		>> $(obj)board/avnet/v5fx30teval/config.tmp
	@$(MKCONFIG) v5fx30teval ppc ppc4xx v5fx30teval avnet

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

VOM405_config:	unconfig
	@$(MKCONFIG) $(@:_config=) ppc ppc4xx vom405 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

xilinx-ppc405-generic_flash_config: unconfig
	@mkdir -p $(obj)include $(obj)board/xilinx/ppc405-generic
	@echo "LDSCRIPT:=$(SRCTREE)/board/xilinx/ppc405-generic/u-boot-rom.lds"\
		> $(obj)board/xilinx/ppc405-generic/config.tmp
	@echo "TEXT_BASE := 0xFE360000" \
		>> $(obj)board/xilinx/ppc405-generic/config.tmp
	@$(MKCONFIG) xilinx-ppc405-generic ppc ppc4xx ppc405-generic xilinx

xilinx-ppc405-generic_config: unconfig
	@mkdir -p $(obj)include $(obj)board/xilinx/ppc405-generic
	@echo "LDSCRIPT:=$(SRCTREE)/board/xilinx/ppc405-generic/u-boot-ram.lds"\
		> $(obj)board/xilinx/ppc405-generic/config.tmp
	@echo "TEXT_BASE := 0x04000000" \
		>> $(obj)board/xilinx/ppc405-generic/config.tmp
	@$(MKCONFIG) xilinx-ppc405-generic ppc ppc4xx ppc405-generic xilinx

xilinx-ppc440-generic_flash_config: unconfig
	@mkdir -p $(obj)include $(obj)board/xilinx/ppc440-generic
	@echo "LDSCRIPT:=$(SRCTREE)/board/xilinx/ppc440-generic/u-boot-rom.lds"\
		> $(obj)board/xilinx/ppc440-generic/config.tmp
	@echo "TEXT_BASE := 0xFE360000" \
		>> $(obj)board/xilinx/ppc440-generic/config.tmp
	@$(MKCONFIG) xilinx-ppc440-generic ppc ppc4xx ppc440-generic xilinx

xilinx-ppc440-generic_config: unconfig
	@mkdir -p $(obj)include $(obj)board/xilinx/ppc440-generic
	@echo "LDSCRIPT:=$(SRCTREE)/board/xilinx/ppc440-generic/u-boot-ram.lds"\
		> $(obj)board/xilinx/ppc440-generic/config.tmp
	@echo "TEXT_BASE := 0x04000000" \
		>> $(obj)board/xilinx/ppc440-generic/config.tmp
	@$(MKCONFIG) xilinx-ppc440-generic ppc ppc4xx ppc440-generic xilinx

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 ; \
		$(XECHO) "... booting from 8-bit flash" ; \
	else \
		echo "CONFIG_BOOT_ROM = n" >> config.mk ; \
		$(XECHO) "... 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

# HDLAN is broken ATM. Should be fixed as soon as hardware is available and as
# time permits.
#linkstation_HDLAN_config \
# Remove this line when HDLAN is fixed
linkstation_HGLAN_config: unconfig
	@mkdir -p $(obj)include
	@case $@ in \
		*HGLAN*) echo "#define CONFIG_HGLAN 1" >$(obj)include/config.h; ;; \
		*HDLAN*) echo "#define CONFIG_HLAN 1" >$(obj)include/config.h; ;; \
	esac
	@$(MKCONFIG) -n $@ -a linkstation ppc mpc824x linkstation

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 ; \
		$(XECHO) "... booting from 8-bit flash" ; \
	else \
		echo "CONFIG_BOOT_ROM = n" >> config.mk ; \
		$(XECHO) "... 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 ; \
		$(XECHO) "... booting from 8-bit flash" ; \
	else \
		echo "CONFIG_BOOT_ROM = n" >> config.mk ; \
		$(XECHO) "... 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 CONFIG_SYS_REV_B" > $(obj)include/config.h ; \
	fi
	@$(MKCONFIG) -a ISPAN ppc mpc8260 ispan

mgcoge_config	:	unconfig
	@$(MKCONFIG) mgcoge ppc mpc8260 mgcoge keymile

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/freescale/mpc8260ads
	$(if $(findstring PQ2FADS,$@), \
	@echo "#define CONFIG_ADSTYPE CONFIG_SYS_PQ2FADS" > $(obj)include/config.h, \
	@echo "#define CONFIG_ADSTYPE CONFIG_SYS_"$(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/freescale/mpc8260ads/config.tmp ; \
		  $(XECHO) "... with lowboot configuration" ; \
		}
	@$(MKCONFIG) -a MPC8260ADS ppc mpc8260 mpc8260ads freescale

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

muas3001_dev_config \
muas3001_config	:	unconfig
	@mkdir -p $(obj)include
	@mkdir -p $(obj)board/muas3001
	@if [ "$(findstring dev,$@)" ] ; then \
		echo "#define CONFIG_MUAS_DEV_BOARD" > $(obj)include/config.h ; \
	fi
	@$(MKCONFIG) -a muas3001 ppc mpc8260 muas3001

# 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 \
		$(XECHO) "... 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 \
			$(XECHO) "... with 32 MB Flash" ; \
			echo "#define CONFIG_FLASH_32MB" >>$(obj)include/config.h ; \
		fi; \
	else \
		$(XECHO) "... booting from 64-bit flash" ; \
		if [ "$(findstring _BIGFLASH_,$@)" ] ; then \
			$(XECHO) "... 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 ; \
		$(XECHO) "... with PCI enabled" ; \
	fi
	@if [ "$(findstring _ROMBOOT_,$@)" ] ; then \
		$(XECHO) "... 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; \
	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 ; \
		$(XECHO) "... with L2 Cache support" ; \
	else \
		echo "#undef CONFIG_L2_CACHE"	>>$(obj)include/config.h ; \
		$(XECHO) "... without L2 Cache support" ; \
	fi; \
	if [ "$${BMODE}" = "60x" ] ; then \
		echo "#define CONFIG_BUSMODE_60x" >>$(obj)include/config.h ; \
		$(XECHO) "... with 60x Bus Mode" ; \
	else \
		echo "#undef CONFIG_BUSMODE_60x"  >>$(obj)include/config.h ; \
		$(XECHO) "... without 60x Bus Mode" ; \
	fi
	@$(MKCONFIG) -a TQM8260 ppc mpc8260 tqm8260 tqc

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

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

M52277EVB_config \
M52277EVB_spansion_config \
M52277EVB_stmicro_config :	unconfig
	@case "$@" in \
	M52277EVB_config)		FLASH=SPANSION;; \
	M52277EVB_spansion_config)	FLASH=SPANSION;; \
	M52277EVB_stmicro_config)	FLASH=STMICRO;; \
	esac; \
	if [ "$${FLASH}" = "SPANSION" ] ; then \
		echo "#define CONFIG_SYS_SPANSION_BOOT"	>> $(obj)include/config.h ; \
		echo "TEXT_BASE = 0x00000000" > $(obj)board/freescale/m52277evb/config.tmp ; \
		cp $(obj)board/freescale/m52277evb/u-boot.spa $(obj)board/freescale/m52277evb/u-boot.lds ; \
		$(XECHO) "... with SPANSION boot..." ; \
	fi; \
	if [ "$${FLASH}" = "STMICRO" ] ; then \
		echo "#define CONFIG_CF_SBF"	>> $(obj)include/config.h ; \
		echo "#define CONFIG_SYS_STMICRO_BOOT"	>> $(obj)include/config.h ; \
		echo "TEXT_BASE = 0x43E00000" > $(obj)board/freescale/m52277evb/config.tmp ; \
		cp $(obj)board/freescale/m52277evb/u-boot.stm $(obj)board/freescale/m52277evb/u-boot.lds ; \
		$(XECHO) "... with ST Micro boot..." ; \
	fi
	@$(MKCONFIG) -a M52277EVB m68k mcf5227x m52277evb freescale

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; \
	if [ "$${FLASH}" != "16" ] ; then \
		echo "#define NORFLASH_PS32BIT	1" >> $(obj)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

M5253DEMO_config :		unconfig
	@$(MKCONFIG) $(@:_config=) m68k mcf52x2 m5253demo 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
	@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
	@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 freescale

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

M5275EVB_config :		unconfig
	@$(MKCONFIG) $(@:_config=) m68k mcf52x2 m5275evb freescale

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

M53017EVB_config :		unconfig
	@$(MKCONFIG) $(@:_config=) m68k mcf532x m53017evb freescale

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

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

M54451EVB_config \
M54451EVB_spansion_config \
M54451EVB_stmicro_config :	unconfig
	@case "$@" in \
	M54451EVB_config)		FLASH=SPANSION;; \
	M54451EVB_spansion_config)	FLASH=SPANSION;; \
	M54451EVB_stmicro_config)	FLASH=STMICRO;; \
	esac; \
	if [ "$${FLASH}" = "SPANSION" ] ; then \
		echo "#define CONFIG_SYS_SPANSION_BOOT"	>> $(obj)include/config.h ; \
		echo "TEXT_BASE = 0x00000000" > $(obj)board/freescale/m54451evb/config.tmp ; \
		cp $(obj)board/freescale/m54451evb/u-boot.spa $(obj)board/freescale/m54451evb/u-boot.lds ; \
		$(XECHO) "... with SPANSION boot..." ; \
	fi; \
	if [ "$${FLASH}" = "STMICRO" ] ; then \
		echo "#define CONFIG_CF_SBF"	>> $(obj)include/config.h ; \
		echo "#define CONFIG_SYS_STMICRO_BOOT"	>> $(obj)include/config.h ; \
		echo "TEXT_BASE = 0x47E00000" > $(obj)board/freescale/m54451evb/config.tmp ; \
		cp $(obj)board/freescale/m54451evb/u-boot.stm $(obj)board/freescale/m54451evb/u-boot.lds ; \
		$(XECHO) "... with ST Micro boot..." ; \
	fi; \
	echo "#define CONFIG_SYS_INPUT_CLKSRC 24000000" >> $(obj)include/config.h ;
	@$(MKCONFIG) -a M54451EVB m68k mcf5445x m54451evb freescale

M54455EVB_config \
M54455EVB_atmel_config \
M54455EVB_intel_config \
M54455EVB_a33_config \
M54455EVB_a66_config \
M54455EVB_i33_config \
M54455EVB_i66_config \
M54455EVB_stm33_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;; \
	M54455EVB_stm33_config)		FLASH=STMICRO; FREQ=33333333;; \
	esac; \
	if [ "$${FLASH}" = "INTEL" ] ; then \
		echo "#define CONFIG_SYS_INTEL_BOOT" >> $(obj)include/config.h ; \
		echo "TEXT_BASE = 0x00000000" > $(obj)board/freescale/m54455evb/config.tmp ; \
		cp $(obj)board/freescale/m54455evb/u-boot.int $(obj)board/freescale/m54455evb/u-boot.lds ; \
		$(XECHO) "... with INTEL boot..." ; \
	fi; \
	if [ "$${FLASH}" = "ATMEL" ] ; then \
		echo "#define CONFIG_SYS_ATMEL_BOOT"	>> $(obj)include/config.h ; \
		echo "TEXT_BASE = 0x04000000" > $(obj)board/freescale/m54455evb/config.tmp ; \
		cp $(obj)board/freescale/m54455evb/u-boot.atm $(obj)board/freescale/m54455evb/u-boot.lds ; \
		$(XECHO) "... with ATMEL boot..." ; \
	fi; \
	if [ "$${FLASH}" = "STMICRO" ] ; then \
		echo "#define CONFIG_CF_SBF"	>> $(obj)include/config.h ; \
		echo "#define CONFIG_SYS_STMICRO_BOOT"	>> $(obj)include/config.h ; \
		echo "TEXT_BASE = 0x4FE00000" > $(obj)board/freescale/m54455evb/config.tmp ; \
		cp $(obj)board/freescale/m54455evb/u-boot.stm $(obj)board/freescale/m54455evb/u-boot.lds ; \
		$(XECHO) "... with ST Micro boot..." ; \
	fi; \
	echo "#define CONFIG_SYS_INPUT_CLKSRC $${FREQ}" >> $(obj)include/config.h ; \
	$(XECHO) "... with $${FREQ}Hz input clock"
	@$(MKCONFIG) -a M54455EVB m68k mcf5445x m54455evb freescale

M5475AFE_config \
M5475BFE_config \
M5475CFE_config \
M5475DFE_config \
M5475EFE_config \
M5475FFE_config \
M5475GFE_config :	unconfig
	@case "$@" in \
	M5475AFE_config)	BOOT=2;CODE=0;VID=0;USB=0;RAM=64;RAM1=0;; \
	M5475BFE_config)	BOOT=2;CODE=16;VID=0;USB=0;RAM=64;RAM1=0;; \
	M5475CFE_config)	BOOT=2;CODE=16;VID=1;USB=1;RAM=64;RAM1=0;; \
	M5475DFE_config)	BOOT=2;CODE=0;VID=0;USB=1;RAM=64;RAM1=0;; \
	M5475EFE_config)	BOOT=2;CODE=0;VID=1;USB=1;RAM=64;RAM1=0;; \
	M5475FFE_config)	BOOT=2;CODE=32;VID=1;USB=1;RAM=64;RAM1=64;; \
	M5475GFE_config)	BOOT=4;CODE=0;VID=0;USB=0;RAM=64;RAM1=0;; \
	esac; \
	echo "#define CONFIG_SYS_BUSCLK	133333333" > $(obj)include/config.h ; \
	echo "#define CONFIG_SYS_BOOTSZ	$${BOOT}" >> $(obj)include/config.h ; \
	echo "#define CONFIG_SYS_DRAMSZ	$${RAM}" >> $(obj)include/config.h ; \
	if [ "$${RAM1}" != "0" ] ; then \
		echo "#define CONFIG_SYS_DRAMSZ1	$${RAM1}" >> $(obj)include/config.h ; \
	fi; \
	if [ "$${CODE}" != "0" ] ; then \
		echo "#define CONFIG_SYS_NOR1SZ	$${CODE}" >> $(obj)include/config.h ; \
	fi; \
	if [ "$${VID}" == "1" ] ; then \
		echo "#define CONFIG_SYS_VIDEO" >> $(obj)include/config.h ; \
	fi; \
	if [ "$${USB}" == "1" ] ; then \
		echo "#define CONFIG_SYS_USBCTRL" >> $(obj)include/config.h ; \
	fi
	@$(MKCONFIG) -a M5475EVB m68k mcf547x_8x m547xevb freescale

M5485AFE_config \
M5485BFE_config \
M5485CFE_config \
M5485DFE_config \
M5485EFE_config \
M5485FFE_config \
M5485GFE_config \
M5485HFE_config :	unconfig
	@case "$@" in \
	M5485AFE_config)	BOOT=2;CODE=0;VID=0;USB=0;RAM=64;RAM1=0;; \
	M5485BFE_config)	BOOT=2;CODE=16;VID=0;USB=0;RAM=64;RAM1=0;; \
	M5485CFE_config)	BOOT=2;CODE=16;VID=1;USB=1;RAM=64;RAM1=0;; \
	M5485DFE_config)	BOOT=2;CODE=0;VID=0;USB=1;RAM=64;RAM1=0;; \
	M5485EFE_config)	BOOT=2;CODE=0;VID=1;USB=1;RAM=64;RAM1=0;; \
	M5485FFE_config)	BOOT=2;CODE=32;VID=1;USB=1;RAM=64;RAM1=64;; \
	M5485GFE_config)	BOOT=4;CODE=0;VID=0;USB=0;RAM=64;RAM1=0;; \
	M5485HFE_config)	BOOT=2;CODE=16;VID=1;USB=0;RAM=64;RAM1=0;; \
	esac; \
	echo "#define CONFIG_SYS_BUSCLK	100000000" > $(obj)include/config.h ; \
	echo "#define CONFIG_SYS_BOOTSZ	$${BOOT}" >> $(obj)include/config.h ; \
	echo "#define CONFIG_SYS_DRAMSZ	$${RAM}" >> $(obj)include/config.h ; \
	if [ "$${RAM1}" != "0" ] ; then \
		echo "#define CONFIG_SYS_DRAMSZ1	$${RAM1}" >> $(obj)include/config.h ; \
	fi; \
	if [ "$${CODE}" != "0" ] ; then \
		echo "#define CONFIG_SYS_NOR1SZ	$${CODE}" >> $(obj)include/config.h ; \
	fi; \
	if [ "$${VID}" == "1" ] ; then \
		echo "#define CONFIG_SYS_VIDEO" >> $(obj)include/config.h ; \
	fi; \
	if [ "$${USB}" == "1" ] ; then \
		echo "#define CONFIG_SYS_USBCTRL" >> $(obj)include/config.h ; \
	fi
	@$(MKCONFIG) -a M5485EVB m68k mcf547x_8x m548xevb freescale

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

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

kmeter1_config: unconfig
	@$(MKCONFIG) kmeter1 ppc mpc83xx kmeter1 keymile

MPC8313ERDB_33_config \
MPC8313ERDB_66_config \
MPC8313ERDB_NAND_33_config \
MPC8313ERDB_NAND_66_config: unconfig
	@mkdir -p $(obj)include
	@mkdir -p $(obj)board/freescale/mpc8313erdb
	@if [ "$(findstring _33_,$@)" ] ; then \
		$(XECHO) -n "...33M ..." ; \
		echo "#define CONFIG_SYS_33MHZ" >>$(obj)include/config.h ; \
	fi ; \
	if [ "$(findstring _66_,$@)" ] ; then \
		$(XECHO) -n "...66M..." ; \
		echo "#define CONFIG_SYS_66MHZ" >>$(obj)include/config.h ; \
	fi ; \
	if [ "$(findstring _NAND_,$@)" ] ; then \
		$(XECHO) -n "...NAND..." ; \
		echo "TEXT_BASE = 0x00100000" > $(obj)board/freescale/mpc8313erdb/config.tmp ; \
		echo "#define CONFIG_NAND_U_BOOT" >>$(obj)include/config.h ; \
	fi ;
	@$(MKCONFIG) -a MPC8313ERDB ppc mpc83xx mpc8313erdb freescale
	@if [ "$(findstring _NAND_,$@)" ] ; then \
		echo "CONFIG_NAND_U_BOOT = y" >> $(obj)include/config.mk ; \
	fi ;

MPC8315ERDB_config: unconfig
	@$(MKCONFIG) -a MPC8315ERDB ppc mpc83xx mpc8315erdb freescale

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

MPC832XEMDS_config \
MPC832XEMDS_HOST_33_config \
MPC832XEMDS_HOST_66_config \
MPC832XEMDS_SLAVE_config \
MPC832XEMDS_ATM_config:	unconfig
	@mkdir -p $(obj)include
	@if [ "$(findstring _HOST_,$@)" ] ; then \
		$(XECHO) -n "... PCI HOST " ; \
		echo "#define CONFIG_PCI" >>$(obj)include/config.h ; \
	fi ; \
	if [ "$(findstring _SLAVE_,$@)" ] ; then \
		$(XECHO) "...PCI SLAVE 66M"  ; \
		echo "#define CONFIG_PCI" >>$(obj)include/config.h ; \
		echo "#define CONFIG_PCISLAVE" >>$(obj)include/config.h ; \
	fi ; \
	if [ "$(findstring _33_,$@)" ] ; then \
		$(XECHO) -n "...33M ..." ; \
		echo "#define PCI_33M" >>$(obj)include/config.h ; \
		echo "#define CONFIG_PQ_MDS_PIB 1" >>$(obj)include/config.h ; \
	fi ; \
	if [ "$(findstring _66_,$@)" ] ; then \
		$(XECHO) -n "...66M..." ; \
		echo "#define PCI_66M" >>$(obj)include/config.h ; \
		echo "#define CONFIG_PQ_MDS_PIB 1" >>$(obj)include/config.h ; \
	fi ; \
	if [ "$(findstring _ATM_,$@)" ] ; then \
		$(XECHO) -n "...ATM..." ; \
		echo "#define CONFIG_PQ_MDS_PIB 1" >>$(obj)include/config.h ; \
		echo "#define CONFIG_PQ_MDS_PIB_ATM	1" >>$(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 \
MPC8360EMDS_ATM_config: unconfig
	@mkdir -p $(obj)include
	@if [ "$(findstring _HOST_,$@)" ] ; then \
		$(XECHO) -n "... PCI HOST " ; \
		echo "#define CONFIG_PCI" >>$(obj)include/config.h ; \
	fi ; \
	if [ "$(findstring _SLAVE_,$@)" ] ; then \
		$(XECHO) "...PCI SLAVE 66M"  ; \
		echo "#define CONFIG_PCI" >>$(obj)include/config.h ; \
		echo "#define CONFIG_PCISLAVE" >>$(obj)include/config.h ; \
	fi ; \
	if [ "$(findstring _33_,$@)" ] ; then \
		$(XECHO) -n "...33M ..." ; \
		echo "#define PCI_33M" >>$(obj)include/config.h ; \
		echo "#define CONFIG_PQ_MDS_PIB 1" >>$(obj)include/config.h ; \
	fi ; \
	if [ "$(findstring _66_,$@)" ] ; then \
		$(XECHO) -n "...66M..." ; \
		echo "#define PCI_66M" >>$(obj)include/config.h ; \
		echo "#define CONFIG_PQ_MDS_PIB 1" >>$(obj)include/config.h ; \
	fi ; \
	if [ "$(findstring _ATM_,$@)" ] ; then \
		$(XECHO) -n "...ATM..." ; \
		echo "#define CONFIG_PQ_MDS_PIB 1" >>$(obj)include/config.h ; \
		echo "#define CONFIG_PQ_MDS_PIB_ATM	1" >>$(obj)include/config.h ; \
	fi ;
	@$(MKCONFIG) -a MPC8360EMDS ppc mpc83xx mpc8360emds freescale

MPC8360ERDK_33_config \
MPC8360ERDK_66_config \
MPC8360ERDK_config:	unconfig
	@mkdir -p $(obj)include
	@if [ "$(findstring _33_,$@)" ] ; then \
		$(XECHO) -n "... CLKIN 33MHz " ; \
		echo "#define CONFIG_CLKIN_33MHZ" >>$(obj)include/config.h ;\
	fi ;
	@$(MKCONFIG) -a MPC8360ERDK ppc mpc83xx mpc8360erdk freescale

MPC837XEMDS_config \
MPC837XEMDS_HOST_config:	unconfig
	@mkdir -p $(obj)include
	@if [ "$(findstring _HOST_,$@)" ] ; then \
		$(XECHO) -n "... PCI HOST " ; \
		echo "#define CONFIG_PCI" >>$(obj)include/config.h ; \
	fi ;
	@$(MKCONFIG) -a MPC837XEMDS ppc mpc83xx mpc837xemds freescale

MPC837XERDB_config:	unconfig
	@$(MKCONFIG) -a MPC837XERDB ppc mpc83xx mpc837xerdb freescale

MVBLM7_config: unconfig
	@$(MKCONFIG) $(@:_config=) ppc mpc83xx mvblm7 matrix_vision

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

SIMPC8313_LP_config \
SIMPC8313_SP_config: unconfig
	@mkdir -p $(obj)include
	@mkdir -p $(obj)board/sheldon/simpc8313
	@if [ "$(findstring _LP_,$@)" ] ; then \
		$(XECHO) -n "...Large Page NAND..." ; \
		echo "#define CONFIG_NAND_LP" >> $(obj)include/config.h ; \
	fi ; \
	if [ "$(findstring _SP_,$@)" ] ; then \
		$(XECHO) -n "...Small Page NAND..." ; \
		echo "#define CONFIG_NAND_SP" >> $(obj)include/config.h ; \
	fi ;
	@$(MKCONFIG) -a SIMPC8313 ppc mpc83xx simpc8313 sheldon
	@echo "CONFIG_NAND_U_BOOT = y" >> $(obj)include/config.mk

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


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

ATUM8548_config:	unconfig
	@$(MKCONFIG) $(@:_config=) ppc mpc85xx atum8548

MPC8536DS_config:       unconfig
	@$(MKCONFIG) $(@:_config=) ppc mpc85xx mpc8536ds freescale

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

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

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

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

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

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

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

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

MPC8572DS_36BIT_config \
MPC8572DS_config:       unconfig
	@mkdir -p $(obj)include
	@if [ "$(findstring _36BIT_,$@)" ] ; then \
		echo "#define CONFIG_PHYS_64BIT" >>$(obj)include/config.h ; \
		$(XECHO) "... enabling 36-bit physical addressing." ; \
	fi
	@$(MKCONFIG) -a MPC8572DS ppc mpc85xx mpc8572ds freescale

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 ; \
		$(XECHO) "... 66 MHz PCI" ; \
	else \
		$(XECHO) "... 33 MHz PCI" ; \
	fi
	@$(MKCONFIG) -a SBC8540 ppc mpc85xx sbc8560

sbc8548_config:		unconfig
	@$(MKCONFIG) $(@:_config=) ppc mpc85xx sbc8548

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 ; \
		$(XECHO) "... 66 MHz PCI" ; \
	else \
		$(XECHO) "... 33 MHz PCI" ; \
	fi
	@$(MKCONFIG) -a sbc8560 ppc mpc85xx sbc8560

socrates_config:	unconfig
	@$(MKCONFIG) $(@:_config=) ppc mpc85xx socrates

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 ; \
		$(XECHO) "... with 4 MiB flash memory" ; \
	fi
	@$(MKCONFIG) -a stxssa ppc mpc85xx stxssa

TQM8540_config		\
TQM8541_config		\
TQM8548_config		\
TQM8555_config		\
TQM8560_config:		unconfig
	@mkdir -p $(obj)include
	@CTYPE=$(subst TQM,,$(@:_config=)); \
	$(XECHO) "... 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;
	@$(MKCONFIG) -a TQM85xx ppc mpc85xx tqm85xx tqc

XPEDITE5200_config:	unconfig
	@$(MKCONFIG) $(@:_config=) ppc mpc85xx xpedite5200 xes

XPEDITE5370_config:	unconfig
	@$(MKCONFIG) $(@:_config=) ppc mpc85xx xpedite5370 xes

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

MPC8610HPCD_config:	unconfig
	@$(MKCONFIG) $(@:_config=) ppc mpc86xx mpc8610hpcd freescale

MPC8641HPCN_36BIT_config \
MPC8641HPCN_config:    unconfig
	@mkdir -p $(obj)include
	@if [ "$(findstring _36BIT_,$@)" ] ; then \
		echo "#define CONFIG_PHYS_64BIT" >>$(obj)include/config.h ; \
		$(XECHO) "... enabling 36-bit physical addressing." ; \
	fi
	@$(MKCONFIG) -a MPC8641HPCN 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 freescale

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

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

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

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

#########################################################################
## Atmel AT91RM9200 Systems
#########################################################################

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

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

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

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

m501sk_config	:	unconfig
	@$(MKCONFIG) $(@:_config=) arm arm920t m501sk NULL at91rm9200

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

#########################################################################
## Atmel ARM926EJ-S Systems
#########################################################################

afeb9260_config:	unconfig
	@$(MKCONFIG) $(@:_config=) arm arm926ejs afeb9260 NULL at91

at91cap9adk_config	:	unconfig
	@$(MKCONFIG) $(@:_config=) arm arm926ejs at91cap9adk atmel at91

at91sam9260ek_nandflash_config \
at91sam9260ek_dataflash_cs0_config \
at91sam9260ek_dataflash_cs1_config \
at91sam9260ek_config	:	unconfig
	@mkdir -p $(obj)include
	@if [ "$(findstring _nandflash,$@)" ] ; then \
		echo "#define CONFIG_SYS_USE_NANDFLASH 1"	>>$(obj)include/config.h ; \
		$(XECHO) "... with environment variable in NAND FLASH" ; \
	elif [ "$(findstring dataflash_cs0,$@)" ] ; then \
		echo "#define CONFIG_SYS_USE_DATAFLASH_CS0 1"	>>$(obj)include/config.h ; \
		$(XECHO) "... with environment variable in SPI DATAFLASH CS0" ; \
	else \
		echo "#define CONFIG_SYS_USE_DATAFLASH_CS1 1"	>>$(obj)include/config.h ; \
		$(XECHO) "... with environment variable in SPI DATAFLASH CS1" ; \
	fi;
	@$(MKCONFIG) -a at91sam9260ek arm arm926ejs at91sam9260ek atmel at91

at91sam9xeek_nandflash_config \
at91sam9xeek_dataflash_cs0_config \
at91sam9xeek_dataflash_cs1_config \
at91sam9xeek_config	:	unconfig
	@mkdir -p $(obj)include
	@if [ "$(findstring _nandflash,$@)" ] ; then \
		echo "#define CONFIG_SYS_USE_NANDFLASH 1"	>>$(obj)include/config.h ; \
		$(XECHO) "... with environment variable in NAND FLASH" ; \
	elif [ "$(findstring dataflash_cs0,$@)" ] ; then \
		echo "#define CONFIG_SYS_USE_DATAFLASH_CS0 1"	>>$(obj)include/config.h ; \
		$(XECHO) "... with environment variable in SPI DATAFLASH CS0" ; \
	else \
		echo "#define CONFIG_SYS_USE_DATAFLASH_CS1 1"	>>$(obj)include/config.h ; \
		$(XECHO) "... with environment variable in SPI DATAFLASH CS1" ; \
	fi;
	@$(MKCONFIG) -n at91sam9xeek -a at91sam9260ek arm arm926ejs at91sam9260ek atmel at91sam9

at91sam9261ek_nandflash_config \
at91sam9261ek_dataflash_cs0_config \
at91sam9261ek_dataflash_cs3_config \
at91sam9261ek_config	:	unconfig
	@mkdir -p $(obj)include
	@if [ "$(findstring _nandflash,$@)" ] ; then \
		echo "#define CONFIG_SYS_USE_NANDFLASH 1"	>>$(obj)include/config.h ; \
		$(XECHO) "... with environment variable in NAND FLASH" ; \
	elif [ "$(findstring dataflash_cs3,$@)" ] ; then \
		echo "#define CONFIG_SYS_USE_DATAFLASH_CS3 1"	>>$(obj)include/config.h ; \
		$(XECHO) "... with environment variable in SPI DATAFLASH CS3" ; \
	else \
		echo "#define CONFIG_SYS_USE_DATAFLASH_CS0 1"	>>$(obj)include/config.h ; \
		$(XECHO) "... with environment variable in SPI DATAFLASH CS0" ; \
	fi;
	@$(MKCONFIG) -a at91sam9261ek arm arm926ejs at91sam9261ek atmel at91

at91sam9263ek_nandflash_config \
at91sam9263ek_dataflash_config \
at91sam9263ek_dataflash_cs0_config \
at91sam9263ek_config	:	unconfig
	@mkdir -p $(obj)include
	@if [ "$(findstring _nandflash,$@)" ] ; then \
		echo "#define CONFIG_SYS_USE_NANDFLASH 1"	>>$(obj)include/config.h ; \
		$(XECHO) "... with environment variable in NAND FLASH" ; \
	else \
		echo "#define CONFIG_SYS_USE_DATAFLASH 1"	>>$(obj)include/config.h ; \
		$(XECHO) "... with environment variable in SPI DATAFLASH CS0" ; \
	fi;
	@$(MKCONFIG) -a at91sam9263ek arm arm926ejs at91sam9263ek atmel at91

at91sam9rlek_nandflash_config \
at91sam9rlek_dataflash_config \
at91sam9rlek_dataflash_cs0_config \
at91sam9rlek_config	:	unconfig
	@mkdir -p $(obj)include
	@if [ "$(findstring _nandflash,$@)" ] ; then \
		echo "#define CONFIG_SYS_USE_NANDFLASH 1"	>>$(obj)include/config.h ; \
		$(XECHO) "... with environment variable in NAND FLASH" ; \
	else \
		echo "#define CONFIG_SYS_USE_DATAFLASH 1"	>>$(obj)include/config.h ; \
		$(XECHO) "... with environment variable in SPI DATAFLASH CS0" ; \
	fi;
	@$(MKCONFIG) -a at91sam9rlek arm arm926ejs at91sam9rlek atmel at91

########################################################################
## 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/armltd/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/armltd/integratorcp/split_by_variant.sh $@

davinci_dvevm_config :	unconfig
	@$(MKCONFIG) $(@:_config=) arm arm926ejs dvevm davinci davinci

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

davinci_sffsdr_config :	unconfig
	@$(MKCONFIG) $(@:_config=) arm arm926ejs sffsdr davinci davinci

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

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_config:		unconfig
	@$(MKCONFIG) $(@:_config=) arm arm925t netstar

nmdk8815_config \
nmdk8815_onenand_config:	unconfig
	@mkdir -p $(obj)include
	@ > $(obj)include/config.h
	@if [ "$(findstring _onenand, $@)" ] ; then \
		echo "#define CONFIG_BOOT_ONENAND" >> $(obj)include/config.h; \
		$(XECHO) "... configured for OneNand Flash"; \
	else \
		$(XECHO) "... configured for Nand Flash"; \
	fi
	@$(MKCONFIG) -a nmdk8815 arm arm926ejs nmdk8815 st nomadik

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

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

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 ; \
		$(XECHO) "... configured for CS0 boot"; \
	elif [ "$(findstring _cs_autoboot_, $@)" ] ; then \
		echo "#define CONFIG_CS_AUTOBOOT" >> $(obj)include/config.h ; \
		$(XECHO) "... configured for CS_AUTO boot"; \
	else \
		echo "#define CONFIG_CS3_BOOT" >> $(obj)include/config.h ; \
		$(XECHO) "... configured for CS3 boot"; \
	fi;
	@$(MKCONFIG) -a $(call xtract_omap1610xxx,$@) arm arm926ejs omap1610inn NULL omap

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

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

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 ; \
		$(XECHO) "... configured for CS0 boot"; \
	else \
		echo "#define CONFIG_CS3_BOOT" >> $(obj)include/config.h ; \
		$(XECHO) "... 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 samsung s3c24x0

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

SX1_stdout_serial_config \
SX1_config:		unconfig
	@mkdir -p $(obj)include
	@if [ "$(findstring _stdout_serial_, $@)" ] ; then \
		echo "#undef CONFIG_STDOUT_USBTTY" >> $(obj)include/config.h ; \
		$(XECHO) "... configured for stdout serial"; \
	else \
		echo "#define CONFIG_STDOUT_USBTTY" >> $(obj)include/config.h ; \
		$(XECHO) "... configured for stdout usbtty"; \
	fi;
	@$(MKCONFIG) SX1 arm arm925t sx1

# TRAB default configuration:	8 MB Flash, 32 MB RAM
xtract_trab = $(subst _bigram,,$(subst _bigflash,,$(subst _old,,$(subst _config,,$1))))

trab_config \
trab_bigram_config \
trab_bigflash_config \
trab_old_config:	unconfig
	@mkdir -p $(obj)include
	@mkdir -p $(obj)board/trab
	@[ -z "$(findstring _bigram,$@)" ] || \
		{ echo "#define CONFIG_FLASH_8MB"  >>$(obj)include/config.h ; \
		  echo "#define CONFIG_RAM_32MB"   >>$(obj)include/config.h ; \
		  $(XECHO) "... 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 ; \
		  $(XECHO) "... 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 ; \
		  $(XECHO) "... 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
#########################################################################

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

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

versatile_config	\
versatileab_config	\
versatilepb_config :	unconfig
	@board/armltd/versatile/split_by_variant.sh $@

voiceblue_config:	unconfig
	@$(MKCONFIG) $(@:_config=) arm arm925t voiceblue

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

#########################################################################
## ARM CORTEX Systems
#########################################################################

omap3_beagle_config :	unconfig
	@$(MKCONFIG) $(@:_config=) arm arm_cortexa8 beagle omap3 omap3

omap3_overo_config :	unconfig
	@$(MKCONFIG) $(@:_config=) arm arm_cortexa8 overo omap3 omap3

omap3_evm_config :	unconfig
	@$(MKCONFIG) $(@:_config=) arm arm_cortexa8 evm omap3 omap3

omap3_pandora_config :	unconfig
	@$(MKCONFIG) $(@:_config=) arm arm_cortexa8 pandora omap3 omap3

omap3_zoom1_config :	unconfig
	@$(MKCONFIG) $(@:_config=) arm arm_cortexa8 zoom1 omap3 omap3

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

actux1_config	:	unconfig
	@$(MKCONFIG) $(@:_config=) arm ixp actux1

actux2_config	:	unconfig
	@$(MKCONFIG) $(@:_config=) arm ixp actux2

actux3_config	:	unconfig
	@$(MKCONFIG) $(@:_config=) arm ixp actux3

actux4_config	:	unconfig
	@$(MKCONFIG) $(@:_config=) arm ixp actux4

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 :	unconfig
	@$(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 ; \
		$(XECHO) "... on SCPU board variant" ; \
	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
#########################################################################

apollon_config		: unconfig
	@mkdir -p $(obj)include
	@mkdir -p $(obj)onenand_ipl/board/apollon
	@echo "#define CONFIG_ONENAND_U_BOOT" > $(obj)include/config.h
	@$(MKCONFIG) $(@:_config=) arm arm1136 apollon NULL omap24xx
	@echo "CONFIG_ONENAND_U_BOOT = y" >> $(obj)include/config.mk

imx31_litekit_config	: unconfig
	@$(MKCONFIG) $(@:_config=) arm arm1136 imx31_litekit NULL mx31

imx31_phycore_config	: unconfig
	@$(MKCONFIG) $(@:_config=) arm arm1136 imx31_phycore NULL mx31

mx31ads_config		: unconfig
	@$(MKCONFIG) $(@:_config=) arm arm1136 mx31ads freescale mx31

omap2420h4_config	: unconfig
	@$(MKCONFIG) $(@:_config=) arm arm1136 omap2420h4 NULL omap24xx

#########################################################################
## ARM1176 Systems
#########################################################################
smdk6400_noUSB_config	\
smdk6400_config	:	unconfig
	@mkdir -p $(obj)include $(obj)board/samsung/smdk6400
	@mkdir -p $(obj)nand_spl/board/samsung/smdk6400
	@echo "#define CONFIG_NAND_U_BOOT" > $(obj)include/config.h
	@if [ -z "$(findstring smdk6400_noUSB_config,$@)" ]; then			\
		echo "RAM_TEXT = 0x57e00000" >> $(obj)board/samsung/smdk6400/config.tmp;\
		$(MKCONFIG) $(@:_config=) arm arm1176 smdk6400 samsung s3c64xx;		\
	else										\
		echo "RAM_TEXT = 0xc7e00000" >> $(obj)board/samsung/smdk6400/config.tmp;\
		$(MKCONFIG) $(@:_noUSB_config=) arm arm1176 smdk6400 samsung s3c64xx;	\
	fi
	@echo "CONFIG_NAND_U_BOOT = y" >> $(obj)include/config.mk

#========================================================================
# i386
#========================================================================
#########################################################################
## AMD SC520 CDP
#########################################################################
eNET_config	:	unconfig
	@$(MKCONFIG) $(@:_config=) i386 i386 eNET NULL sc520

sc520_cdp_config	:	unconfig
	@$(MKCONFIG) $(@:_config=) i386 i386 sc520_cdp NULL sc520

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

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

#========================================================================
# 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
	@[ -z "$(findstring _100MHz,$@)" ] || \
		{ echo "#define CPU_CLOCK_RATE 100000000" >>$(obj)include/config.h ; \
		  $(XECHO) "... with 100MHz system clock" ; \
		}
	@[ -z "$(findstring _133MHz,$@)" ] || \
		{ echo "#define CPU_CLOCK_RATE 133000000" >>$(obj)include/config.h ; \
		  $(XECHO) "... with 133MHz system clock" ; \
		}
	@[ -z "$(findstring _150MHz,$@)" ] || \
		{ echo "#define CPU_CLOCK_RATE 150000000" >>$(obj)include/config.h ; \
		  $(XECHO) "... with 150MHz system clock" ; \
		}
	@$(MKCONFIG) -a $(call xtract_incaip,$@) mips mips incaip

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

vct_premium_config		\
vct_premium_small_config	\
vct_premium_onenand_config	\
vct_premium_onenand_small_config \
vct_platinum_config		\
vct_platinum_small_config	\
vct_platinum_onenand_config	\
vct_platinum_onenand_small_config \
vct_platinumavc_config		\
vct_platinumavc_small_config	\
vct_platinumavc_onenand_config	\
vct_platinumavc_onenand_small_config: unconfig
	@mkdir -p $(obj)include
	@if [ "$(findstring _premium,$@)" ] ; then \
		echo "#define CONFIG_VCT_PREMIUM" > $(obj)include/config.h ; \
		$(XECHO) "... on Premium board variant" ; \
	fi
	@if [ "$(findstring _platinum_,$@)" ] ; then \
		echo "#define CONFIG_VCT_PLATINUM" > $(obj)include/config.h ; \
		$(XECHO) "... on Platinum board variant" ; \
	fi
	@if [ "$(findstring _platinumavc,$@)" ] ; then \
		echo "#define CONFIG_VCT_PLATINUMAVC" > $(obj)include/config.h ; \
		$(XECHO) "... on PlatinumAVC board variant" ; \
	fi
	@if [ "$(findstring _onenand,$@)" ] ; then \
		echo "#define CONFIG_VCT_ONENAND" >> $(obj)include/config.h ; \
		$(XECHO) "... on OneNAND board variant" ; \
	fi
	@if [ "$(findstring _small,$@)" ] ; then \
		echo "#define CONFIG_VCT_SMALL_IMAGE" >> $(obj)include/config.h ; \
		$(XECHO) "... stripped down image variant" ; \
	fi
	@$(MKCONFIG) -a vct mips mips vct micronas

#########################################################################
## MIPS32 AU1X00
#########################################################################

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

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

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

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

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

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

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

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

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

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

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

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

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

#########################################################################
## 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-generic_config:	unconfig
	@mkdir -p $(obj)include
	@$(MKCONFIG) -a $(@:_config=) microblaze microblaze microblaze-generic xilinx

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

#========================================================================
# Blackfin
#========================================================================

# Analog Devices boards
BFIN_BOARDS = bf533-ezkit bf533-stamp bf537-stamp bf561-ezkit

$(BFIN_BOARDS:%=%_config)	: unconfig
	@$(MKCONFIG) $(@:_config=) blackfin blackfin $(@:_config=)

$(BFIN_BOARDS):
	$(MAKE) $@_config
	$(MAKE)

#========================================================================
# AVR32
#========================================================================

atngw100_config	:	unconfig
	@$(MKCONFIG) $(@:_config=) avr32 at32ap atngw100 atmel at32ap700x

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

atstk1003_config	:	unconfig
	@$(MKCONFIG) $(@:_config=) avr32 at32ap atstk1000 atmel at32ap700x

atstk1004_config	:	unconfig
	@$(MKCONFIG) $(@:_config=) avr32 at32ap atstk1000 atmel at32ap700x

atstk1006_config	:	unconfig
	@$(MKCONFIG) $(@:_config=) avr32 at32ap atstk1000 atmel at32ap700x

favr-32-ezkit_config	:	unconfig
	@$(MKCONFIG) $(@:_config=) avr32 at32ap favr-32-ezkit earthlcd at32ap700x

hammerhead_config	:	unconfig
	@$(MKCONFIG) $(@:_config=) avr32 at32ap hammerhead miromico at32ap700x

mimc200_config		:	unconfig
	@$(MKCONFIG) $(@:_config=) avr32 at32ap mimc200 mimc at32ap700x

#========================================================================
# SH3 (SuperH)
#========================================================================

#########################################################################
## sh2 (Renesas SuperH)
#########################################################################
rsk7203_config: unconfig
	@mkdir -p $(obj)include
	@echo "#define CONFIG_RSK7203 1" > $(obj)/include/config.h
	@$(MKCONFIG) -a $(@:_config=) sh sh2 rsk7203 renesas

#########################################################################
## sh3 (Renesas SuperH)
#########################################################################

mpr2_config: unconfig
	@mkdir -p $(obj)include
	@echo "#define CONFIG_MPR2 1" > $(obj)include/config.h
	@$(MKCONFIG) -a $(@:_config=) sh sh3 mpr2

ms7720se_config: unconfig
	@mkdir -p $(obj)include
	@echo "#define CONFIG_MS7720SE 1" > $(obj)include/config.h
	@$(MKCONFIG) -a $(@:_config=) sh sh3 ms7720se

#########################################################################
## sh4 (Renesas SuperH)
#########################################################################

MigoR_config :       unconfig
	@mkdir -p $(obj)include
	@echo "#define CONFIG_MIGO_R 1" > $(obj)include/config.h
	@$(MKCONFIG) -a $(@:_config=) sh sh4 MigoR renesas

ms7750se_config: unconfig
	@mkdir -p $(obj)include
	@echo "#define CONFIG_MS7750SE 1" > $(obj)include/config.h
	@$(MKCONFIG) -a $(@:_config=) sh sh4 ms7750se

ms7722se_config :	unconfig
	@mkdir -p $(obj)include
	@echo "#define CONFIG_MS7722SE 1" > $(obj)include/config.h
	@$(MKCONFIG) -a $(@:_config=) sh sh4 ms7722se

r2dplus_config  :   unconfig
	@mkdir -p $(obj)include
	@echo "#define CONFIG_R2DPLUS 1" > $(obj)include/config.h
	@$(MKCONFIG) -a $(@:_config=) sh sh4 r2dplus renesas

r7780mp_config: unconfig
	@mkdir -p $(obj)include
	@echo "#define CONFIG_R7780MP 1" > $(obj)include/config.h
	@$(MKCONFIG) -a $(@:_config=) sh sh4 r7780mp renesas

sh7763rdp_config  :   unconfig
	@mkdir -p $(obj)include
	@echo "#define CONFIG_SH7763RDP 1" > $(obj)include/config.h
	@$(MKCONFIG) -a $(@:_config=) sh sh4 sh7763rdp renesas

sh7785lcr_config  :   unconfig
	@ >include/config.h
	@echo "#define CONFIG_SH7785LCR 1" >> include/config.h
	@$(MKCONFIG) -a $(@:_config=) sh sh4 sh7785lcr renesas

ap325rxa_config  :   unconfig
	@mkdir -p $(obj)include
	@echo "#define CONFIG_AP325RXA 1" > $(obj)include/config.h
	@$(MKCONFIG) -a $(@:_config=) sh sh4 ap325rxa renesas

#========================================================================
# SPARC
#========================================================================

#########################################################################
## LEON3
#########################################################################

# Gaisler GR-XC3S-1500 board
gr_xc3s_1500_config : unconfig
	@$(MKCONFIG) $(@:_config=) sparc leon3 gr_xc3s_1500 gaisler

# Gaisler GR-CPCI-AX2000 board, a General purpose FPGA-AX system
gr_cpci_ax2000_config : unconfig
	@$(MKCONFIG) $(@:_config=) sparc leon3 gr_cpci_ax2000 gaisler

# Gaisler GRLIB template design (GPL SPARC/LEON3) for Altera NIOS
# Development board Stratix II edition, FPGA Device EP2S60.
gr_ep2s60_config: unconfig
	@$(MKCONFIG) $(@:_config=) sparc leon3 gr_ep2s60 gaisler

# Gaisler LEON3 GRSIM simulator
grsim_config : unconfig
	@$(MKCONFIG) $(@:_config=) sparc leon3 grsim gaisler

#########################################################################
## LEON2
#########################################################################

# Gaisler LEON2 GRSIM simulator
grsim_leon2_config : unconfig
	@$(MKCONFIG) $(@:_config=) sparc leon2 grsim_leon2 gaisler

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

clean:
	@rm -f $(obj)examples/82559_eeprom $(obj)examples/eepro100_eeprom \
	       $(obj)examples/hello_world  $(obj)examples/interrupt	  \
	       $(obj)examples/mem_to_mem_idma2intr			  \
	       $(obj)examples/sched	   $(obj)examples/smc91111_eeprom \
	       $(obj)examples/test_burst   $(obj)examples/timer
	@rm -f $(obj)tools/bmp_logo	   $(obj)tools/easylogo/easylogo  \
	       $(obj)tools/env/{fw_printenv,fw_setenv}			  \
	       $(obj)tools/envcrc					  \
	       $(obj)tools/gdb/{astest,gdbcont,gdbsend}			  \
	       $(obj)tools/gen_eth_addr    $(obj)tools/img2srec		  \
	       $(obj)tools/mkimage	   $(obj)tools/mpc86x_clk	  \
	       $(obj)tools/ncb		   $(obj)tools/ubsha1
	@rm -f $(obj)board/cray/L1/{bootscript.c,bootscript.image}	  \
	       $(obj)board/netstar/{eeprom,crcek,crcit,*.srec,*.bin}	  \
	       $(obj)board/trab/trab_fkt   $(obj)board/voiceblue/eeprom   \
	       $(obj)board/{integratorap,integratorcp}/u-boot.lds	  \
	       $(obj)board/{bf533-ezkit,bf533-stamp,bf537-stamp,bf561-ezkit}/u-boot.lds \
	       $(obj)cpu/blackfin/bootrom-asm-offsets.[chs]
	@rm -f $(obj)include/bmp_logo.h
	@rm -f $(obj)nand_spl/{u-boot-spl,u-boot-spl.map,System.map}
	@rm -f $(obj)onenand_ipl/onenand-{ipl,ipl.bin,ipl-2k.bin,ipl-4k.bin,ipl.map}
	@rm -f $(obj)api_examples/demo $(TIMESTAMP_FILE) $(VERSION_FILE)
	@find $(OBJTREE) -type f \
		\( -name 'core' -o -name '*.bak' -o -name '*~' \
		-o -name '*.o'	-o -name '*.a'	\) -print \
		| xargs rm -f

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)cscope.* $(obj)*.*~
	@rm -f $(obj)u-boot $(obj)u-boot.map $(obj)u-boot.hex $(ALL)
	@rm -f $(obj)tools/{crc32.c,env_embedded.c,env/crc32.c,md5.c,sha1.c,inca-swap-bytes}
	@rm -f $(obj)tools/{image.c,fdt.c,fdt_ro.c,fdt_rw.c,fdt_strerror.c,zlib.h}
	@rm -f $(obj)tools/{fdt_wip.c,libfdt_internal.h}
	@rm -f $(obj)cpu/mpc824x/bedbug_603e.c
	@rm -f $(obj)include/asm/proc $(obj)include/asm/arch $(obj)include/asm
	@[ ! -d $(obj)nand_spl ] || find $(obj)nand_spl -name "*" -type l -print | xargs rm -f
	@[ ! -d $(obj)onenand_ipl ] || find $(obj)onenand_ipl -name "*" -type l -print | xargs rm -f
	@[ ! -d $(obj)api_examples ] || find $(obj)api_examples -name "*" -type l -print | xargs rm -f

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

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

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