#
# (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 = 1
PATCHLEVEL = 3
SUBLEVEL = 4
EXTRAVERSION =
U_BOOT_VERSION = $(VERSION).$(PATCHLEVEL).$(SUBLEVEL)$(EXTRAVERSION)
VERSION_FILE = $(obj)include/version_autogenerated.h

HOSTARCH := $(shell uname -m | \
	sed -e s/i.86/i386/ \
	    -e s/sun4u/sparc64/ \
	    -e s/arm.*/arm/ \
	    -e s/sa110/arm/ \
	    -e s/powerpc/ppc/ \
	    -e s/ppc64/ppc/ \
	    -e s/macppc/ppc/)

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

export	HOSTARCH HOSTOS

# Deal with colliding definitions from tcsh etc.
VENDOR=

#########################################################################
# 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)/reset.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 += $(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/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/spi/libspi_flash.a
LIBS += drivers/net/libnet.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
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) $(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) ${OBJCFLAGS} -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) -f -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
		$(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):	$(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):	$(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 $(CONFIG_SHELL) $(TOPDIR)/tools/setlocalversion $(TOPDIR))' \
		 ) > $@.tmp
		@cmp -s $@ $@.tmp && rm -f $@.tmp || mv -f $@.tmp $@

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

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) $(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

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

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

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

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

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

# Canyonlands & Glacier use different U-Boot images
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
	@$(MKCONFIG) $(@:_config=) ppc ppc4xx cpci405 esd
	@echo "BOARD_REVISION = $(@:_config=)"	>> $(obj)include/config.mk

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

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

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/ml507
	@cp $(obj)board/xilinx/ml507/u-boot-rom.lds  $(obj)board/xilinx/ml507/u-boot.lds
	@echo "TEXT_BASE = 0xFE360000" > $(obj)board/xilinx/ml507/config.tmp
	@$(MKCONFIG) $(@:_flash_config=) ppc ppc4xx ml507 xilinx

ml507_config:	unconfig
	@mkdir -p $(obj)include $(obj)board/xilinx/ml507
	@cp $(obj)board/xilinx/ml507/u-boot-ram.lds  $(obj)board/xilinx/ml507/u-boot.lds
	@$(MKCONFIG) $(@:_config=) ppc ppc4xx ml507 xilinx

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

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

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

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

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

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

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

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

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

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

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 CFG_REV_B" > $(obj)include/config.h ; \
	fi
	@$(MKCONFIG) -a ISPAN ppc mpc8260 ispan

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

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 CFG_PQ2FADS" > $(obj)include/config.h, \
	@echo "#define CONFIG_ADSTYPE CFG_"$(subst MPC,,$(word 1,$(subst _, ,$@))) > $(obj)include/config.h)
	$(if $(findstring MHz,$@), \
	@echo "#define CONFIG_8260_CLKIN" $(subst MHz,,$(word 2,$(subst _, ,$@)))"000000" >> $(obj)include/config.h, \
	$(if $(findstring VR,$@), \
	@echo "#define CONFIG_8260_CLKIN 66000000" >> $(obj)include/config.h))
	@[ -z "$(findstring lowboot_,$@)" ] || \
		{ echo "TEXT_BASE = 0xFF800000" >$(obj)board/freescale/mpc8260ads/config.tmp ; \
		  $(XECHO) "... with lowboot configuration" ; \
		}
	@$(MKCONFIG) -a MPC8260ADS ppc mpc8260 mpc8260ads freescale

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

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

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 CFG_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 CFG_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 CFG_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 CFG_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 CFG_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 CFG_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 CFG_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 CFG_BUSCLK	133333333" > $(obj)include/config.h ; \
	echo "#define CFG_BOOTSZ	$${BOOT}" >> $(obj)include/config.h ; \
	echo "#define CFG_DRAMSZ	$${RAM}" >> $(obj)include/config.h ; \
	if [ "$${RAM1}" != "0" ] ; then \
		echo "#define CFG_DRAMSZ1	$${RAM1}" >> $(obj)include/config.h ; \
	fi; \
	if [ "$${CODE}" != "0" ] ; then \
		echo "#define CFG_NOR1SZ	$${CODE}" >> $(obj)include/config.h ; \
	fi; \
	if [ "$${VID}" == "1" ] ; then \
		echo "#define CFG_VIDEO" >> $(obj)include/config.h ; \
	fi; \
	if [ "$${USB}" == "1" ] ; then \
		echo "#define CFG_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 CFG_BUSCLK	100000000" > $(obj)include/config.h ; \
	echo "#define CFG_BOOTSZ	$${BOOT}" >> $(obj)include/config.h ; \
	echo "#define CFG_DRAMSZ	$${RAM}" >> $(obj)include/config.h ; \
	if [ "$${RAM1}" != "0" ] ; then \
		echo "#define CFG_DRAMSZ1	$${RAM1}" >> $(obj)include/config.h ; \
	fi; \
	if [ "$${CODE}" != "0" ] ; then \
		echo "#define CFG_NOR1SZ	$${CODE}" >> $(obj)include/config.h ; \
	fi; \
	if [ "$${VID}" == "1" ] ; then \
		echo "#define CFG_VIDEO" >> $(obj)include/config.h ; \
	fi; \
	if [ "$${USB}" == "1" ] ; then \
		echo "#define CFG_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
#########################################################################

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 CFG_33MHZ" >>$(obj)include/config.h ; \
	fi ; \
	if [ "$(findstring _66_,$@)" ] ; then \
		$(XECHO) -n "...66M..." ; \
		echo "#define CFG_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

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

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

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


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

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

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

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

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

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

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

sbc8641d_config:	unconfig
	@$(MKCONFIG) $(@:_config=) ppc mpc86xx sbc8641d

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

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

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

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

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

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

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

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

mpc7448hpc2_config:  unconfig
	@$(MKCONFIG) $(@:_config=) ppc 74xx_7xx mpc7448hpc2 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

at91sam9261ek_config	:	unconfig
	@$(MKCONFIG) $(@:_config=) arm arm926ejs at91sam9261ek atmel at91

at91sam9263ek_config	:	unconfig
	@$(MKCONFIG) $(@:_config=) arm arm926ejs at91sam9263ek atmel at91

at91sam9rlek_config	:	unconfig
	@$(MKCONFIG) $(@:_config=) arm arm926ejs at91sam9rlek atmel at91

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

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

at91sam9260ek_config	:	unconfig
	@$(MKCONFIG) $(@:_config=) arm arm926ejs at91sam9260ek 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/integratorap/split_by_variant.sh $@

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

davinci_dvevm_config :	unconfig
	@$(MKCONFIG) $(@:_config=) arm arm926ejs dv-evm 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

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 NULL s3c24x0

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

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

# TRAB default configuration:	8 MB Flash, 32 MB RAM
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/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

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

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

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

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

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

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

incaip_100MHz_config	\
incaip_133MHz_config	\
incaip_150MHz_config	\
incaip_config: unconfig
	@mkdir -p $(obj)include
	@[ -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

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

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

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

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

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

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

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

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

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

#========================================================================
# 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 $(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,environment.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

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