#
# (C) Copyright 2000-2006
# Wolfgang Denk, DENX Software Engineering, wd@denx.de.
#
# Copyright (c) 2013 Qualcomm Atheros, Inc.
#
# 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 Foundation; 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
#

CFG_BOARD_TYPE = ap143
export BUILD_TYPE=jffs2

include ./config.board953x

VERSION = 1
PATCHLEVEL = 1
SUBLEVEL = 4
EXTRAVERSION =
U_BOOT_VERSION = $(VERSION).$(PATCHLEVEL).$(SUBLEVEL)$(EXTRAVERSION)
VERSION_FILE = include/version_autogenerated.h
EXT_ADDR_SUPPORT = 1

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

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

export	HOSTARCH HOSTOS

# Deal with colliding definitions from tcsh etc.
VENDOR=

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

TOPDIR	:= $(shell if [ "$$PWD" != "" ]; then echo $$PWD; else pwd; fi)
export	TOPDIR

ifndef COMPRESSED_UBOOT
COMPRESSED_UBOOT = 0
endif 

ifeq (include/config.mk,$(wildcard include/config.mk))
# load ARCH, BOARD, and CPU configuration
include include/config.mk
export	ARCH CPU BOARD VENDOR SOC
ifndef CROSS_COMPILE
ifeq ($(HOSTARCH),ppc)
CROSS_COMPILE =
else
ifeq ($(ARCH),ppc)
CROSS_COMPILE = powerpc-linux-
endif
ifeq ($(ARCH),arm)
CROSS_COMPILE = arm-linux-
endif
ifeq ($(ARCH),i386)
ifeq ($(HOSTARCH),i386)
CROSS_COMPILE =
else
CROSS_COMPILE = i386-linux-
endif
endif
ifeq ($(ARCH),mips)
CROSS_COMPILE = mips-linux-
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-elf-
endif
endif
endif

export	CROSS_COMPILE

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


#########################################################################
# U-Boot objects....order is important (i.e. start must be first)
OBJS  = cpu/$(CPU)/start.o

ifeq ($(COMPRESSED_UBOOT),1)
OBJS_BOOTSTRAP  = cpu/$(CPU)/start_bootstrap.o
endif

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),mpc83xx)
OBJS += cpu/$(CPU)/resetvec.o
endif
ifeq ($(CPU),mpc85xx)
OBJS += cpu/$(CPU)/resetvec.o
endif
ifeq ($(CPU),bf533)
OBJS += cpu/$(CPU)/start1.o	cpu/$(CPU)/interrupt.o	cpu/$(CPU)/cache.o
OBJS += cpu/$(CPU)/cplbhdlr.o	cpu/$(CPU)/cplbmgr.o	cpu/$(CPU)/flush.o
endif

LIBS  = lib_generic/libgeneric.a
LIBS += common/libcommon.a
LIBS += board/$(BOARDDIR)/lib$(BOARD).a
LIBS += cpu/$(CPU)/lib$(CPU).a
ifdef SOC
LIBS += cpu/$(CPU)/$(SOC)/lib$(SOC).a
endif
LIBS += lib_$(ARCH)/lib$(ARCH).a

#ifeq ($(KERNELVER),2.6.31)
LIBS += drivers/libdrivers.a
#endif
#ifeq ($(COMPRESSED_UBOOT),0)
#LIBS += fs/cramfs/libcramfs.a fs/fat/libfat.a fs/fdos/libfdos.a fs/jffs2/libjffs2.a \
#	fs/reiserfs/libreiserfs.a fs/ext2/libext2fs.a
#LIBS += disk/libdisk.a
#LIBS += dtt/libdtt.a
#ifneq ($(KERNELVER),2.6.31)
#LIBS += drivers/libdrivers.a
#endif
#LIBS += drivers/sk98lin/libsk98lin.a
#endif

LIBS += net/libnet.a
LIBS += rtc/librtc.a
#LIBS += post/libpost.a post/cpu/libcpu.a
LIBS += $(BOARDLIBS)

ifeq ($(COMPRESSED_UBOOT),1)
LIBS_BOOTSTRAP = lib_bootstrap/libbootstrap.a 
#LIBS_BOOTSTRAP += lib_$(CPU)/lib$(CPU).a
LIBS_BOOTSTRAP += board/$(BOARDDIR)/lib$(BOARD).a 
LIBS_BOOTSTRAP += cpu/$(CPU)/lib$(CPU).a
ifneq ($(SOC),)
LIBS_BOOTSTRAP += cpu/$(CPU)/$(SOC)/lib$(SOC).a
endif
endif
.PHONY : $(LIBS)

ifeq ($(COMPRESSED_UBOOT),1)
.PHONY : $(LIBS_BOOTSTRAP)
endif

# 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 \
	  post \
	  post/cpu
.PHONY : $(SUBDIRS)

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

ALL = u-boot.srec u-boot.bin System.map

ifeq ($(COMPRESSED_UBOOT),1)
all:		$(ALL) tuboot.bin
else
all:		$(ALL)
endif

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

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

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

u-boot.img:	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 $< $@

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

u-boot:		depend version $(SUBDIRS) $(OBJS) $(LIBS) $(LDSCRIPT) board/atheros/board953x/extra.o
		UNDEF_SYM=`$(OBJDUMP) -x $(LIBS) |sed  -n -e 's/.*\(__u_boot_cmd_.*\)/-u\1/p'|sort|uniq`;\
		$(LD) $(LDFLAGS) $$UNDEF_SYM $(OBJS) $(BOARD_EXTRA_OBJS) board/atheros/board953x/extra.o \
			--start-group $(LIBS) --end-group $(PLATFORM_LIBS) \
			-Map u-boot.map -o u-boot

$(LIBS):
		$(MAKE) -C `dirname $@`

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

ifeq ($(COMPRESSED_UBOOT),1)

LZMA = $(BUILD_DIR)/util/lzma

tuboot.bin:	System.map bootstrap.bin u-boot.lzimg	
		@cat bootstrap.bin > $@
		@cat u-boot.lzimg >> $@

u-boot.lzimg: $(obj)u-boot.bin System.map 
		@$(LZMA) e $(obj)u-boot.bin u-boot.bin.lzma
		@./tools/mkimage -A mips -T firmware -C lzma \
		-a 0x$(shell grep "T _start" $(TOPDIR)/System.map | awk '{ printf "%s", $$1 }') \
		-e 0x$(shell grep "T _start" $(TOPDIR)/System.map | awk '{ printf "%s", $$1 }') \
		-n 'u-boot image' -d $(obj)u-boot.bin.lzma $@

bootstrap.bin:	bootstrap
		$(OBJCOPY) ${OBJCFLAGS} -O binary $< $@

bootstrap:	depend version $(SUBDIRS) $(OBJS_BOOTSTRAP) $(LIBS_BOOTSTRAP) $(LDSCRIPT_BOOTSTRAP)
		UNDEF_SYM=`$(OBJDUMP) -x $(LIBS_BOOTSTRAP) |sed  -n -e 's/.*\(__u_boot_cmd_.*\)/-u\1/p'|sort|uniq`;\
		$(LD) $(LDFLAGS_BOOTSTRAP) $$UNDEF_SYM $(OBJS_BOOTSTRAP) \
			--start-group $(LIBS_BOOTSTRAP) --end-group $(PLATFORM_LIBS) \
			-Map bootstrap.map -o bootstrap

$(LIBS_BOOTSTRAP):
		$(MAKE) -C `dirname $@`
endif

version:
		@echo -n "#define U_BOOT_VERSION \"U-Boot " > $(VERSION_FILE); \
		echo -n "$(U_BOOT_VERSION)" >> $(VERSION_FILE); \
		echo -n $(shell $(CONFIG_SHELL) $(TOPDIR)/tools/setlocalversion \
			 $(TOPDIR)) >> $(VERSION_FILE); \
		echo "\"" >> $(VERSION_FILE)

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

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

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

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

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

#########################################################################
else
all install u-boot u-boot.srec depend dep:
	@echo "System not configured - see README" >&2
	@ exit 1
endif

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

unconfig:
	@rm -f include/config.h include/config.mk board/*/config.tmp

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

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

canmb_config:	unconfig
	@./mkconfig -a canmb ppc mpc5xxx canmb

cmi_mpc5xx_config:	unconfig
	@./mkconfig $(@:_config=) ppc mpc5xx cmi

PATI_config:		unconfig
	@./mkconfig $(@:_config=) ppc mpc5xx pati mpl

#########################################################################
## MPC5xxx Systems
#########################################################################

aev_config: unconfig
	@./mkconfig -a aev ppc mpc5xxx tqm5200

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

inka4x0_config:	unconfig
	@./mkconfig inka4x0 ppc mpc5xxx inka4x0

lite5200b_config	\
lite5200b_LOWBOOT_config:	unconfig
	@ >include/config.h
	@ echo "#define CONFIG_MPC5200_DDR"	>>include/config.h
	@ echo "... DDR memory revision"
	@ echo "#define CONFIG_MPC5200"		>>include/config.h
	@ echo "#define CONFIG_LITE5200B"	>>include/config.h
	@[ -z "$(findstring LOWBOOT_,$@)" ] || \
		{ echo "TEXT_BASE = 0xFF000000" >board/icecube/config.tmp ; \
		  echo "... with LOWBOOT configuration" ; \
		}
	@ echo "... with MPC5200B processor"
	@./mkconfig -a IceCube  ppc mpc5xxx icecube

mcc200_config	\
mcc200_lowboot_config:	unconfig
	@ >include/config.h
	@[ -z "$(findstring lowboot_,$@)" ] || \
		{ echo "TEXT_BASE = 0xFE000000" >board/mcc200/config.tmp ; \
		  echo "... with lowboot configuration" ; \
		}
	@./mkconfig mcc200 ppc mpc5xxx mcc200

o2dnt_config:
	@./mkconfig o2dnt ppc mpc5xxx o2dnt

pf5200_config:  unconfig
	@./mkconfig pf5200  ppc mpc5xxx pf5200 esd

PM520_config \
PM520_DDR_config \
PM520_ROMBOOT_config \
PM520_ROMBOOT_DDR_config:	unconfig
	@ >include/config.h
	@[ -z "$(findstring DDR,$@)" ] || \
		{ echo "#define CONFIG_MPC5200_DDR"	>>include/config.h ; \
		  echo "... DDR memory revision" ; \
		}
	@[ -z "$(findstring ROMBOOT,$@)" ] || \
		{ echo "#define CONFIG_BOOT_ROM" >>include/config.h ; \
		  echo "... booting from 8-bit flash" ; \
		}
	@./mkconfig -a PM520 ppc mpc5xxx pm520

smmaco4_config: unconfig
	@./mkconfig -a smmaco4 ppc mpc5xxx tqm5200

spieval_config:	unconfig
	echo "#define CONFIG_CS_AUTOCONF">>include/config.h
	echo "... with automatic CS configuration"
	@./mkconfig -a spieval ppc mpc5xxx tqm5200

MINI5200_config	\
EVAL5200_config	\
TOP5200_config:	unconfig
	@ echo "#define CONFIG_$(@:_config=) 1"	>include/config.h
	@./mkconfig -a TOP5200 ppc mpc5xxx top5200 emk

Total5100_config		\
Total5200_config		\
Total5200_lowboot_config	\
Total5200_Rev2_config		\
Total5200_Rev2_lowboot_config:	unconfig
	@ >include/config.h
	@[ -z "$(findstring 5100,$@)" ] || \
		{ echo "#define CONFIG_MGT5100"		>>include/config.h ; \
		  echo "... with MGT5100 processor" ; \
		}
	@[ -z "$(findstring 5200,$@)" ] || \
		{ echo "#define CONFIG_MPC5200"		>>include/config.h ; \
		  echo "... with MPC5200 processor" ; \
		}
	@[ -n "$(findstring Rev,$@)" ] || \
		{ echo "#define CONFIG_TOTAL5200_REV 1"	>>include/config.h ; \
		  echo "... revision 1 board" ; \
		}
	@[ -z "$(findstring Rev2_,$@)" ] || \
		{ echo "#define CONFIG_TOTAL5200_REV 2"	>>include/config.h ; \
		  echo "... revision 2 board" ; \
		}
	@[ -z "$(findstring lowboot_,$@)" ] || \
		{ echo "TEXT_BASE = 0xFE000000" >board/total5200/config.tmp ; \
		  echo "... with lowboot configuration" ; \
		}
	@./mkconfig -a Total5200 ppc mpc5xxx total5200

TQM5200_auto_config	\
TQM5200_AA_config	\
TQM5200_AB_config	\
TQM5200_AC_config	\
MiniFAP_config:	unconfig
	@ >include/config.h
	@[ -z "$(findstring MiniFAP,$@)" ] || \
		{ echo "#define CONFIG_MINIFAP"	>>include/config.h ; \
		  echo "#define CONFIG_TQM5200_AC"	>>include/config.h ; \
		  echo "... TQM5200_AC on MiniFAP" ; \
		}
	@[ -z "$(findstring AA,$@)" ] || \
		{ echo "#define CONFIG_TQM5200_AA"	>>include/config.h ; \
		  echo "... with 4 MB Flash, 16 MB SDRAM, 32 kB EEPROM" ; \
		}
	@[ -z "$(findstring AB,$@)" ] || \
		{ echo "#define CONFIG_TQM5200_AB"	>>include/config.h ; \
		  echo "... with 64 MB Flash, 64 MB SDRAM, 32 kB EEPROM, 512 kB SRAM" ; \
		  echo "... with Graphics Controller"; \
		}
	@[ -z "$(findstring AC,$@)" ] || \
		{ echo "#define CONFIG_TQM5200_AC"	>>include/config.h ; \
		  echo "... with 4 MB Flash, 128 MB SDRAM" ; \
		  echo "... with Graphics Controller"; \
		}
	@[ -z "$(findstring auto,$@)" ] || \
		{ echo "#define CONFIG_CS_AUTOCONF"	>>include/config.h ; \
		  echo "... with automatic CS configuration" ; \
		}
	@./mkconfig -a TQM5200 ppc mpc5xxx tqm5200

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

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

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

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
	@ >include/config.h
	@[ -z "$(findstring _SC,$@)" ] || \
		{ echo "#define CONFIG_SC" >>include/config.h ; \
		  echo "With reduced H/W feature set (SC)..." ; \
		}
	@./mkconfig -a $(call xtract_GEN860T,$@) ppc mpc8xx gen860t

GENIETV_config:	unconfig
	@./mkconfig $(@:_config=) ppc mpc8xx genietv

GTH_config:	unconfig
	@./mkconfig $(@:_config=) ppc mpc8xx gth

hermes_config	:	unconfig
	@./mkconfig $(@:_config=) ppc mpc8xx hermes

HMI10_config	:	unconfig
	@./mkconfig $(@:_config=) ppc mpc8xx tqm8xx

IAD210_config: unconfig
	@./mkconfig $(@:_config=) ppc mpc8xx IAD210 siemens

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

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

IP860_config	:	unconfig
	@./mkconfig $(@:_config=) ppc mpc8xx ip860

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

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

KUP4K_config	:	unconfig
	@./mkconfig $(@:_config=) ppc mpc8xx kup4k kup

KUP4X_config    :       unconfig
	@./mkconfig $(@:_config=) ppc mpc8xx kup4x kup

LANTEC_config	:	unconfig
	@./mkconfig $(@:_config=) ppc mpc8xx lantec

lwmon_config:		unconfig
	@./mkconfig $(@:_config=) ppc mpc8xx lwmon

MBX_config	\
MBX860T_config:	unconfig
	@./mkconfig $(@:_config=) ppc mpc8xx mbx8xx

MHPC_config:		unconfig
	@./mkconfig $(@:_config=) ppc mpc8xx mhpc eltec

MVS1_config :		unconfig
	@./mkconfig $(@:_config=) ppc mpc8xx mvs1

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

NETVIA_V2_config \
NETVIA_config:		unconfig
	@ >include/config.h
	@[ -z "$(findstring NETVIA_config,$@)" ] || \
		 { echo "#define CONFIG_NETVIA_VERSION 1" >>include/config.h ; \
		  echo "... Version 1" ; \
		 }
	@[ -z "$(findstring NETVIA_V2_config,$@)" ] || \
		 { echo "#define CONFIG_NETVIA_VERSION 2" >>include/config.h ; \
		  echo "... Version 2" ; \
		 }
	@./mkconfig -a $(call xtract_NETVIA,$@) ppc mpc8xx netvia

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

NETPHONE_V2_config \
NETPHONE_config:	unconfig
	@ >include/config.h
	@[ -z "$(findstring NETPHONE_config,$@)" ] || \
		 { echo "#define CONFIG_NETPHONE_VERSION 1" >>include/config.h ; \
		 }
	@[ -z "$(findstring NETPHONE_V2_config,$@)" ] || \
		 { echo "#define CONFIG_NETPHONE_VERSION 2" >>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
	@ >include/config.h
	@[ -z "$(findstring ISDN_,$@)" ] || \
		 { echo "#define CONFIG_NETTA_ISDN 1" >>include/config.h ; \
		 }
	@[ -n "$(findstring ISDN_,$@)" ] || \
		 { echo "#undef CONFIG_NETTA_ISDN" >>include/config.h ; \
		 }
	@[ -z "$(findstring 6412_,$@)" ] || \
		 { echo "#define CONFIG_NETTA_6412 1" >>include/config.h ; \
		 }
	@[ -n "$(findstring 6412_,$@)" ] || \
		 { echo "#undef CONFIG_NETTA_6412" >>include/config.h ; \
		 }
	@[ -z "$(findstring SWAPHOOK_,$@)" ] || \
		 { echo "#define CONFIG_NETTA_SWAPHOOK 1" >>include/config.h ; \
		 }
	@[ -n "$(findstring SWAPHOOK_,$@)" ] || \
		 { echo "#undef CONFIG_NETTA_SWAPHOOK" >>include/config.h ; \
		 }
	@./mkconfig -a $(call xtract_NETTA,$@) ppc mpc8xx netta

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

NETTA2_V2_config \
NETTA2_config:		unconfig
	@ >include/config.h
	@[ -z "$(findstring NETTA2_config,$@)" ] || \
		 { echo "#define CONFIG_NETTA2_VERSION 1" >>include/config.h ; \
		 }
	@[ -z "$(findstring NETTA2_V2_config,$@)" ] || \
		 { echo "#define CONFIG_NETTA2_VERSION 2" >>include/config.h ; \
		 }
	@./mkconfig -a $(call xtract_NETTA2,$@) ppc mpc8xx netta2

NC650_config:	unconfig
	@./mkconfig $(@:_config=) 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
	@ >include/config.h
	@[ -z "$(findstring _64,$@)" ] || \
		{ echo "#define RPXlite_64MHz"		>>include/config.h ; \
		  echo "... with 64MHz system clock ..."; \
		}
	@[ -z "$(findstring _LCD,$@)" ] || \
		{ echo "#define CONFIG_LCD"          	>>include/config.h ; \
		  echo "#define CONFIG_NEC_NL6448BC20"	>>include/config.h ; \
		  echo "... with LCD display ..."; \
		}
	@[ -z "$(findstring _NVRAM,$@)" ] || \
		{ echo "#define  CFG_ENV_IS_IN_NVRAM" 	>>include/config.h ; \
		  echo "... with ENV in NVRAM ..."; \
		}
	@./mkconfig -a RPXlite_DW ppc mpc8xx RPXlite_dw

rmu_config:	unconfig
	@./mkconfig $(@:_config=) ppc mpc8xx rmu

RRvision_config:	unconfig
	@./mkconfig $(@:_config=) ppc mpc8xx RRvision

RRvision_LCD_config:	unconfig
	@echo "#define CONFIG_LCD" >include/config.h
	@echo "#define CONFIG_SHARP_LQ104V7DS01" >>include/config.h
	@./mkconfig -a RRvision ppc mpc8xx RRvision

SM850_config	:	unconfig
	@./mkconfig $(@:_config=) ppc mpc8xx tqm8xx

SPD823TS_config:	unconfig
	@./mkconfig $(@:_config=) ppc mpc8xx spd8xx

stxxtc_config:	unconfig
	@./mkconfig $(@:_config=) ppc mpc8xx stxxtc

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

TTTech_config:	unconfig
	@echo "#define CONFIG_LCD" >include/config.h
	@echo "#define CONFIG_SHARP_LQ104V7DS01" >>include/config.h
	@./mkconfig -a TQM823L ppc mpc8xx tqm8xx

uc100_config	:	unconfig
	@./mkconfig $(@:_config=) ppc mpc8xx uc100

v37_config:	unconfig
	@echo "#define CONFIG_LCD" >include/config.h
	@echo "#define CONFIG_SHARP_LQ084V1DG21" >>include/config.h
	@./mkconfig $(@:_config=) ppc mpc8xx v37

wtk_config:	unconfig
	@echo "#define CONFIG_LCD" >include/config.h
	@echo "#define CONFIG_SHARP_LQ065T9DR51U" >>include/config.h
	@./mkconfig -a TQM823L ppc mpc8xx tqm8xx

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

ADCIOP_config:	unconfig
	@./mkconfig $(@:_config=) ppc ppc4xx adciop esd

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

bubinga_config:	unconfig
	@./mkconfig $(@:_config=) ppc ppc4xx bubinga amcc

CANBT_config:	unconfig
	@./mkconfig $(@:_config=) ppc ppc4xx canbt esd

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

CPCI2DP_config:	unconfig
	@./mkconfig $(@:_config=) ppc ppc4xx cpci2dp esd

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

CPCI440_config:	unconfig
	@./mkconfig $(@:_config=) ppc ppc4xx cpci440 esd

CPCIISER4_config:	unconfig
	@./mkconfig $(@:_config=) ppc ppc4xx cpciiser4 esd

CRAYL1_config:	unconfig
	@./mkconfig $(@:_config=) ppc ppc4xx L1 cray

csb272_config:	unconfig
	@./mkconfig $(@:_config=) ppc ppc4xx csb272

csb472_config:	unconfig
	@./mkconfig $(@:_config=) ppc ppc4xx csb472

DASA_SIM_config: unconfig
	@./mkconfig $(@:_config=) ppc ppc4xx dasa_sim esd

DP405_config:	unconfig
	@./mkconfig $(@:_config=) ppc ppc4xx dp405 esd

DU405_config:	unconfig
	@./mkconfig $(@:_config=) ppc ppc4xx du405 esd

ebony_config:	unconfig
	@./mkconfig $(@:_config=) ppc ppc4xx ebony amcc

ERIC_config:	unconfig
	@./mkconfig $(@:_config=) ppc ppc4xx eric

EXBITGEN_config:	unconfig
	@./mkconfig $(@:_config=) ppc ppc4xx exbitgen

G2000_config:	unconfig
	@./mkconfig $(@:_config=) ppc ppc4xx g2000

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

luan_config:	unconfig
	@./mkconfig $(@:_config=) ppc ppc4xx luan amcc

METROBOX_config: unconfig
	@./mkconfig $(@:_config=) ppc ppc4xx metrobox sandburst

MIP405_config:	unconfig
	@./mkconfig $(@:_config=) ppc ppc4xx mip405 mpl

MIP405T_config:	unconfig
	@echo "#define CONFIG_MIP405T" >include/config.h
	@echo "Enable subset config for MIP405T"
	@./mkconfig -a MIP405 ppc ppc4xx mip405 mpl

ML2_config:	unconfig
	@./mkconfig $(@:_config=) ppc ppc4xx ml2

ml300_config:	unconfig
	@./mkconfig $(@:_config=) ppc ppc4xx ml300 xilinx

ocotea_config:	unconfig
	@./mkconfig $(@:_config=) ppc ppc4xx ocotea amcc

OCRTC_config		\
ORSG_config:	unconfig
	@./mkconfig $(@:_config=) ppc ppc4xx ocrtc esd

p3p440_config:	unconfig
	@./mkconfig $(@:_config=) ppc ppc4xx p3p440 prodrive

PCI405_config:	unconfig
	@./mkconfig $(@:_config=) ppc ppc4xx pci405 esd

PIP405_config:	unconfig
	@./mkconfig $(@:_config=) ppc ppc4xx pip405 mpl

PLU405_config:	unconfig
	@./mkconfig $(@:_config=) ppc ppc4xx plu405 esd

PMC405_config:	unconfig
	@./mkconfig $(@:_config=) ppc ppc4xx pmc405 esd

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

sbc405_config:	unconfig
	@./mkconfig $(@:_config=) ppc ppc4xx sbc405

sycamore_config:	unconfig
	@echo "Configuring for sycamore board as subset of walnut..."
	@./mkconfig -a walnut ppc ppc4xx walnut amcc

VOH405_config:	unconfig
	@./mkconfig $(@:_config=) ppc ppc4xx voh405 esd

VOM405_config:	unconfig
	@./mkconfig $(@:_config=) ppc ppc4xx vom405 esd

CMS700_config:	unconfig
	@./mkconfig $(@:_config=) ppc ppc4xx cms700 esd

W7OLMC_config	\
W7OLMG_config: unconfig
	@./mkconfig $(@:_config=) ppc ppc4xx w7o

walnut_config: unconfig
	@./mkconfig $(@:_config=) ppc ppc4xx walnut amcc

WUH405_config:	unconfig
	@./mkconfig $(@:_config=) ppc ppc4xx wuh405 esd

XPEDITE1K_config:	unconfig
	@./mkconfig $(@:_config=) ppc ppc4xx xpedite1k

yosemite_config:	unconfig
	@./mkconfig $(@:_config=) ppc ppc4xx yosemite amcc

yellowstone_config:	unconfig
	@./mkconfig $(@:_config=) ppc ppc4xx yellowstone amcc

#########################################################################
## 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 ./include ;				\
	if [ "$(findstring _ROMBOOT_,$@)" ] ; then \
		echo "CONFIG_BOOT_ROM = y" >> config.mk ; \
		echo "... booting from 8-bit flash" ; \
	else \
		echo "CONFIG_BOOT_ROM = n" >> config.mk ; \
		echo "... booting from 64-bit flash" ; \
	fi; \
	echo "export CONFIG_BOOT_ROM" >> config.mk;

CU824_config: unconfig
	@./mkconfig $(@:_config=) ppc mpc824x cu824

debris_config: unconfig
	@./mkconfig $(@:_config=) ppc mpc824x debris etin

eXalion_config: unconfig
	@./mkconfig $(@:_config=) ppc mpc824x eXalion

HIDDEN_DRAGON_config: unconfig
	@./mkconfig $(@:_config=) ppc mpc824x hidden_dragon

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 ./include ;				\
	if [ "$(findstring _ROMBOOT_,$@)" ] ; then \
		echo "CONFIG_BOOT_ROM = y" >> config.mk ; \
		echo "... booting from 8-bit flash" ; \
	else \
		echo "CONFIG_BOOT_ROM = n" >> config.mk ; \
		echo "... booting from 64-bit flash" ; \
	fi; \
	echo "export CONFIG_BOOT_ROM" >> config.mk;

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

ep8248_config	\
ep8248E_config	:	unconfig
	@./mkconfig ep8248 ppc mpc8260 ep8248

ep8260_config:	unconfig
	@./mkconfig $(@:_config=) ppc mpc8260 ep8260

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
	@if [ "$(findstring _REVB_,$@)" ] ; then \
		echo "#define CFG_REV_B" > include/config.h ; \
	fi
	@./mkconfig -a ISPAN ppc mpc8260 ispan

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

MPC8266ADS_config:	unconfig
	@./mkconfig $(@:_config=) ppc mpc8260 mpc8266ads

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

ppmc8260_config:	unconfig
	@./mkconfig $(@:_config=) ppc mpc8260 ppmc8260

Rattler8248_config	\
Rattler_config:		unconfig
	$(if $(findstring 8248,$@), \
	@echo "#define CONFIG_MPC8248" > 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
	@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; \
	>include/config.h ; \
	if [ "$${CTYPE}" != "MPC8260" ] ; then \
		echo "#define CONFIG_$${CTYPE}"	>>include/config.h ; \
	fi; \
	echo "#define CONFIG_$${CFREQ}MHz"	>>include/config.h ; \
	echo "... with $${CFREQ}MHz system clock" ; \
	if [ "$${CACHE}" == "yes" ] ; then \
		echo "#define CONFIG_L2_CACHE"	>>include/config.h ; \
		echo "... with L2 Cache support" ; \
	else \
		echo "#undef CONFIG_L2_CACHE"	>>include/config.h ; \
		echo "... without L2 Cache support" ; \
	fi; \
	if [ "$${BMODE}" == "60x" ] ; then \
		echo "#define CONFIG_BUSMODE_60x" >>include/config.h ; \
		echo "... with 60x Bus Mode" ; \
	else \
		echo "#undef CONFIG_BUSMODE_60x"  >>include/config.h ; \
		echo "... without 60x Bus Mode" ; \
	fi
	@./mkconfig -a TQM8260 ppc mpc8260 tqm8260

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

ZPC1900_config: unconfig
	@./mkconfig $(@:_config=) ppc mpc8260 zpc1900

#========================================================================
# M68K
#========================================================================
#########################################################################
## Coldfire
#########################################################################

cobra5272_config :		unconfig
	@./mkconfig $(@:_config=) m68k mcf52x2 cobra5272

M5272C3_config :		unconfig
	@./mkconfig $(@:_config=) m68k mcf52x2 m5272c3

M5282EVB_config :		unconfig
	@./mkconfig $(@:_config=) m68k mcf52x2 m5282evb

TASREG_config :		unconfig
	@./mkconfig $(@:_config=) m68k mcf52x2 tasreg esd

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

MPC8349ADS_config:	unconfig
	@./mkconfig $(@:_config=) ppc mpc83xx mpc8349ads

TQM834x_config:	unconfig
	@./mkconfig $(@:_config=) ppc mpc83xx tqm834x

MPC8349EMDS_config:	unconfig
	@./mkconfig $(@:_config=) ppc mpc83xx mpc8349emds

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

MPC8540ADS_config:	unconfig
	@./mkconfig $(@:_config=) ppc mpc85xx mpc8540ads

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

MPC8560ADS_config:	unconfig
	@./mkconfig $(@:_config=) ppc mpc85xx mpc8560ads

MPC8541CDS_config:	unconfig
	@./mkconfig $(@:_config=) ppc mpc85xx mpc8541cds cds

MPC8548CDS_config:	unconfig
	@./mkconfig $(@:_config=) ppc mpc85xx mpc8548cds cds

MPC8555CDS_config:	unconfig
	@./mkconfig $(@:_config=) ppc mpc85xx mpc8555cds cds

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
	@if [ "$(findstring _66_,$@)" ] ; then \
		echo "#define CONFIG_PCI_66"	>>include/config.h ; \
		echo "... 66 MHz PCI" ; \
	else \
		>include/config.h ; \
		echo "... 33 MHz PCI" ; \
	fi
	@./mkconfig -a SBC8540 ppc mpc85xx sbc8560

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

stxgp3_config:		unconfig
	@./mkconfig $(@:_config=) ppc mpc85xx stxgp3

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

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

P3G4_config: unconfig
	@./mkconfig $(@:_config=) ppc 74xx_7xx evb64260

PCIPPC2_config \
PCIPPC6_config: unconfig
	@./mkconfig $(@:_config=) ppc 74xx_7xx pcippc2

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

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

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

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

at91rm9200dk_config	:	unconfig
	@./mkconfig $(@:_config=) arm arm920t at91rm9200dk NULL at91rm9200

cmc_pu2_config	:	unconfig
	@./mkconfig $(@:_config=) arm arm920t cmc_pu2 NULL at91rm9200

csb637_config	:	unconfig
	@./mkconfig $(@:_config=) arm arm920t csb637 NULL at91rm9200

mp2usb_config	:	unconfig
	@./mkconfig $(@:_config=) arm arm920t mp2usb NULL at91rm9200


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

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

kb9202_config	:	unconfig
	@./mkconfig $(@:_config=) arm arm920t kb9202 NULL at91rm9200

lpd7a400_config \
lpd7a404_config:	unconfig
	@./mkconfig $(@:_config=) arm lh7a40x lpd7a40x

mx1ads_config	:	unconfig
	@./mkconfig $(@:_config=) arm arm920t mx1ads NULL imx

mx1fs2_config	:	unconfig
	@./mkconfig $(@:_config=) arm arm920t mx1fs2 NULL imx

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

omap1510inn_config :	unconfig
	@./mkconfig $(@:_config=) arm arm925t omap1510inn

omap5912osk_config :	unconfig
	@./mkconfig $(@:_config=) arm arm926ejs omap5912osk NULL omap

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

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

scb9328_config	:	unconfig
	@./mkconfig $(@:_config=) arm arm920t scb9328 NULL imx

smdk2400_config	:	unconfig
	@./mkconfig $(@:_config=) arm arm920t smdk2400 NULL s3c24x0

smdk2410_config	:	unconfig
	@./mkconfig $(@:_config=) arm arm920t smdk2410 NULL s3c24x0

SX1_config :		unconfig
	@./mkconfig $(@:_config=) arm arm925t sx1

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

VCMA9_config	:	unconfig
	@./mkconfig $(@:_config=) arm arm920t vcma9 mpl s3c24x0

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

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

cm4008_config	:	unconfig
	@./mkconfig $(@:_config=) arm arm920t cm4008 NULL ks8695

cm41xx_config	:	unconfig
	@./mkconfig $(@:_config=) arm arm920t cm41xx NULL ks8695

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

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

adsvix_config	:	unconfig
	@./mkconfig $(@:_config=) arm pxa adsvix

cerf250_config :	unconfig
	@./mkconfig $(@:_config=) arm pxa cerf250

cradle_config	:	unconfig
	@./mkconfig $(@:_config=) arm pxa cradle

csb226_config	:	unconfig
	@./mkconfig $(@:_config=) arm pxa csb226

delta_config :
	@./mkconfig $(@:_config=) arm pxa delta

innokom_config	:	unconfig
	@./mkconfig $(@:_config=) arm pxa innokom

ixdp425_config	:	unconfig
	@./mkconfig $(@:_config=) arm ixp ixdp425

lubbock_config	:	unconfig
	@./mkconfig $(@:_config=) arm pxa lubbock

logodl_config	:	unconfig
	@./mkconfig $(@:_config=) arm pxa logodl

pxa255_idp_config:	unconfig
	@./mkconfig $(@:_config=) arm pxa pxa255_idp

wepep250_config	:	unconfig
	@./mkconfig $(@:_config=) arm pxa wepep250

xaeniax_config	:	unconfig
	@./mkconfig $(@:_config=) arm pxa xaeniax

xm250_config	:	unconfig
	@./mkconfig $(@:_config=) arm pxa xm250

xsengine_config :	unconfig
	@./mkconfig $(@:_config=) arm pxa xsengine

zylonite_config :
	@./mkconfig $(@:_config=) arm pxa zylonite

#########################################################################
## ARM1136 Systems
#########################################################################
omap2420h4_config :    unconfig
	@./mkconfig $(@:_config=) arm arm1136 omap2420h4

#========================================================================
# i386
#========================================================================
#########################################################################
## AMD SC520 CDP
#########################################################################
sc520_cdp_config	:	unconfig
	@./mkconfig $(@:_config=) i386 i386 sc520_cdp

sc520_spunk_config	:	unconfig
	@./mkconfig $(@:_config=) i386 i386 sc520_spunk

sc520_spunk_rel_config	:	unconfig
	@./mkconfig $(@:_config=) i386 i386 sc520_spunk

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

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

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

tb0229_config: unconfig
	@./mkconfig $(@:_config=) mips mips tb0229

#########################################################################
## MIPS32 AU1X00
#########################################################################
dbau1000_config		: 	unconfig
	@ >include/config.h
	@echo "#define CONFIG_DBAU1000 1" >>include/config.h
	@./mkconfig -a dbau1x00 mips mips dbau1x00

dbau1100_config		: 	unconfig
	@ >include/config.h
	@echo "#define CONFIG_DBAU1100 1" >>include/config.h
	@./mkconfig -a dbau1x00 mips mips dbau1x00

dbau1500_config		: 	unconfig
	@ >include/config.h
	@echo "#define CONFIG_DBAU1500 1" >>include/config.h
	@./mkconfig -a dbau1x00 mips mips dbau1x00

dbau1550_config		:	unconfig
	@ >include/config.h
	@echo "#define CONFIG_DBAU1550 1" >>include/config.h
	@./mkconfig -a dbau1x00 mips mips dbau1x00

dbau1550_el_config	:	unconfig
	@ >include/config.h
	@echo "#define CONFIG_DBAU1550 1" >>include/config.h
	@./mkconfig -a dbau1x00 mips mips dbau1x00

pb1000_config		: 	unconfig
	@ >include/config.h
	@echo "#define CONFIG_PB1000 1" >>include/config.h
	@./mkconfig -a pb1x00 mips mips pb1x00

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

purple_config :		unconfig
	@./mkconfig $(@:_config=) mips mips purple

#########################################################################
## MIPS32 AR7100 (24K)
#########################################################################
tb225_config		: 	unconfig
	@ >include/config.h
	@echo "#define CONFIG_AR7100 1" >>include/config.h
	@./mkconfig -a tb225 mips mips tb225 ar7100 ar7100

pb42_config		: 	unconfig
	@ >include/config.h
	@echo "#define CONFIG_AR7100 1" >>include/config.h
	@./mkconfig -a pb42 mips mips pb42 ar7100 ar7100

tb243_config		: 	unconfig
	@ >include/config.h
	@echo "#define CONFIG_AR7100 1" >>include/config.h
	@echo "#define CONFIG_AR9100 1" >>include/config.h
	@./mkconfig -a tb243 mips mips tb243 ar7100 ar7100

ap83_config		: 	unconfig
	@ >include/config.h
	@echo "#define CONFIG_AR7100 1" >>include/config.h
	@echo "#define CONFIG_AR9100 1" >>include/config.h
	@./mkconfig -a ap83 mips mips ap83 ar7100 ar7100

ap81_config		: 	unconfig
	@ >include/config.h
	@echo '#ifndef _INCLUDE_CONFIG_H' >>include/config.h
	@echo '#define _INCLUDE_CONFIG_H' >>include/config.h
	@echo '#define CONFIG_AR7100 1' >>include/config.h
	@echo '#define CONFIG_AR9100 1' >>include/config.h

ifeq ($(CONFIG_AP81_CARRIER_CUS109), 1)
	@echo '#define CONFIG_AP81_CUS109 1' >>include/config.h
endif
ifeq ($(BUILD_CONFIG), _4m)
ifeq ($(CONFIG_CARRIER_4MB), 1)
	@echo '#define BUILD_CONFIG_OVERRIDE 1' >>include/config.h
	@echo '#define CFG_FLASH_SIZE 0x00400000' >>include/config.h
	@echo '#define CONFIG_BOOTARGS "console=ttyS0,115200 root=31:02 rootfstype=squashfs init=/sbin/init mtdparts=ar7100-nor0:256k(u-boot),128k(u-boot-env),2112k(rootfs),384k(config),1024k(uImage),64k(nvram),64k(lang),64k(ART)"' >>include/config.h
	@echo '#define MTDPARTS_DEFAULT "mtdparts=ar7100-nor0:256k(u-boot),128k(u-boot-env),2112k(rootfs),384k(config),1024k(uImage),64k(nvram),64k(lang),64k(ART)"' >>include/config.h
	@echo '#define CONFIG_BOOTCOMMAND "bootm 0xbf300000"' >>include/config.h
else
	@echo '#define BUILD_CONFIG_OVERRIDE 1' >>include/config.h
	@echo '#define CFG_FLASH_SIZE 0x00400000' >>include/config.h
	@echo '#define CONFIG_BOOTARGS "console=ttyS0,115200 root=31:02 rootfstype=jffs2 init=/sbin/init mtdparts=ar7100-nor0:256k(u-boot),64k(u-boot-env),2688k(rootfs),1024k(uImage),64k(ART)"' >>include/config.h
	@echo '#define MTDPARTS_DEFAULT "mtdparts=ar7100-nor0:256k(u-boot),64k(u-boot-env),2688k(rootfs),1024k(uImage),64k(ART)"' >>include/config.h
	@echo '#define CONFIG_BOOTCOMMAND "bootm 0xbf300000"' >>include/config.h
endif
endif
	@echo '#endif /* _INCLUDE_CONFIG_H */' >>include/config.h
	@./mkconfig -a ap81 mips mips ap81 ar7100 ar7100

ap94_config		: 	unconfig
	@ >include/config.h
	@echo "#define CONFIG_AR7100 1" >>include/config.h
	@./mkconfig -a ap94 mips mips ap94 ar7100 ar7100

ap94min_config		: 	unconfig
	@ >include/config.h
	@echo "#define CONFIG_AR7100 1" >>include/config.h
	@./mkconfig -a ap94min mips mips ap94 ar7100 ar7100

pb44_config		: 	unconfig
	@ >include/config.h
	@echo "#define CONFIG_AR7100 1" >>include/config.h
	@./mkconfig -a pb44 mips mips pb44 ar7100 ar7100

pb45_config		: 	unconfig
	@ >include/config.h
	@echo "#define CONFIG_AR7100 1" >>include/config.h
	@./mkconfig -a pb45 mips mips pb45 ar7100 ar7100

pb47_config		: 	unconfig
	@ >include/config.h
	@echo "#define CONFIG_AR7100 1" >>include/config.h
	@./mkconfig -a pb47 mips mips pb47 ar7100 ar7100

ap96_config		: 	unconfig
	@ >include/config.h
	@echo "#define CONFIG_AR7100 1" >>include/config.h
	@./mkconfig -a ap96 mips mips ap96 ar7100 ar7100

cus97_config		: 	unconfig
	@ >include/config.h
	@echo "#define CONFIG_AR7100 1" >>include/config.h
	@echo "#define CONFIG_AR9100 1" >>include/config.h
	@./mkconfig -a cus97 mips mips cus97 ar7100 ar7100
ar7240_emu_config		: 	unconfig
	@ >include/config.h
	@echo "#define CONFIG_AR7240 1" >>include/config.h
	@./mkconfig -a ar7240_emu mips mips ar7240_emu ar7240 ar7240

wasp_emu_config			: 	unconfig
	@ >include/config.h
	@echo "#define CONFIG_AR7240 1" >>include/config.h
	@echo "#define CONFIG_WASP 1" >>include/config.h
	@./mkconfig -a wasp_emu mips mips wasp_emu ar7240 ar7240

db12x_config			: 	unconfig
	@ >include/config.h

ifeq ($(ETH_CONFIG2), _s17)
	@echo '#define CONFIG_ATHRS17_PHY 1' >>include/config.h
	@echo '#define CFG_DUAL_PHY_SUPPORT 1' >>include/config.h
else
ifeq ($(ETH_CONFIG), _s17)
	@echo '#define CONFIG_ATHRS17_PHY 1' >>include/config.h
	@echo '#define CFG_AG7240_NMACS 1' >>include/config.h
endif
endif
ifeq ($(ETH_CONFIG2), _s17_hwaccel)
	@echo '#define CONFIG_ATHRS17_PHY 1' >>include/config.h
	@echo '#define CFG_DUAL_PHY_SUPPORT 1' >>include/config.h
else
ifeq ($(ETH_CONFIG), _s17_hwaccel)
	@echo '#define CONFIG_ATHRS17_PHY 1' >>include/config.h
	@echo '#define CFG_AG7240_NMACS 1' >>include/config.h
endif
endif
ifeq ($(ETH_CONFIG), _s16)
	@echo '#define CONFIG_AR7242_S16_PHY 1' >>include/config.h
	@echo '#define CFG_AG7240_NMACS 1' >>include/config.h
endif
ifeq ($(ETH_CONFIG), _f1e)
	@echo '#define CONFIG_F1E_PHY 1' >>include/config.h
	@echo '#define CFG_AG7240_NMACS 1' >>include/config.h
endif
ifeq ($(ETH_CONFIG), _f2e)
	@echo '#define CONFIG_F2E_PHY 1' >>include/config.h
	@echo '#define CFG_AG7240_NMACS 1' >>include/config.h
endif

ifeq ($(ETH_CONFIG), _vir)
	@echo '#define CONFIG_VIR_PHY 1' >>include/config.h
	@echo '#define CFG_AG7240_NMACS 1' >>include/config.h
endif
ifeq ($(ETH_CONFIG), _s27)
	@echo '#define CFG_ATHRS27_PHY 1' >>include/config.h
	@echo '#define CFG_AG7240_NMACS 2' >>include/config.h
endif

ifneq ($(findstring mi124,$(BUILD_CONFIG)),)
	@echo '#define CONFIG_MI124 1' >>include/config.h
endif
ifneq ($(findstring ap123,$(BUILD_CONFIG)),)
	@echo '#define CONFIG_AP123 1' >>include/config.h
endif
	@echo "#define CONFIG_AR7240 1" >>include/config.h
	@echo "#define CONFIG_WASP 1" >>include/config.h
ifeq ($(BOOT_FROM_NAND),1)
	@echo '#define CONFIG_ATH_NAND_BR	1' >>include/config.h
	@echo '#define CONFIG_ATH_NAND_SUPPORT	1' >>include/config.h
	@echo "#define ATH_CAL_NAND_PARTITION "\"$(strip ${ATH_CAL_NAND_PARTITION})\" >>include/config.h
	@echo '#define ATH_CAL_OFF_INVAL        0xbad0ff' >>include/config.h
endif
ifeq ($(ATH_DUAL_FLASH),1)
	@echo '#define CONFIG_ATH_NAND_SUPPORT  1' >>include/config.h
endif
ifdef FLASH_SIZE
	@echo "#define FLASH_SIZE $(FLASH_SIZE)" >>include/config.h
endif
ifeq ($(DB12X_P2P_ENV), 1)
        @echo "#define CONFIG_DB12X_P2P 1" >>include/config.h
endif
	@./mkconfig -a db12x mips mips db12x ar7240 ar7240

board953x_config:	unconfig
	@ >include/config.h
	@echo '#define CONFIG_ATHEROS		1'	>include/config.h
	@echo '#define CONFIG_MACH_QCA953x	1'	>>include/config.h
	@echo '#define CFG_INIT_STACK_IN_SRAM	1'	>>include/config.h
	@echo '#define CONFIG_'`echo $(CFG_BOARD_TYPE) | tr [a-z] [A-Z] | sed s/-/_/g`'	1' >>include/config.h
	@echo '#define __CONFIG_BOARD_NAME $(CFG_BOARD_TYPE)' >>include/config.h
	@echo '#define CONFIG_BOARD_NAME "$(CFG_BOARD_TYPE)"' >>include/config.h
	@echo "#define BUILD_VERSION "\"$(BUILDVERSION)\" >>include/config.h

gfwc100_config:        unconfig
	@ >include/config.h
	@echo '#define CONFIG_ATHEROS           1'      >include/config.h
	@echo '#define CONFIG_MACH_QCA953x      1'      >>include/config.h
	@echo '#define CFG_INIT_STACK_IN_SRAM   1'      >>include/config.h
	@echo '#define CONFIG_'`echo AP143 | tr [a-z] [A-Z] | sed s/-/_/g`' 1' >>include/config.h
	@echo '#define __CONFIG_BOARD_NAME ap143' >>include/config.h
	@echo '#define CONFIG_BOARD_NAME "ap143"' >>include/config.h
	@echo "#define BUILD_VERSION "\"$(BUILDVERSION)\" >>include/config.h
	@echo '#define FLASH_SIZE 32' >>include/config.h
	@echo '#define ENABLE_EXT_ADDR_SUPPORT	$(EXT_ADDR_SUPPORT)'	>>include/config.h


ifdef pll
	@echo '#define CFG_PLL_FREQ		$(pll)'	>>include/config.h
else
	@echo '#define CFG_PLL_FREQ		CFG_PLL_650_400_200'	>>include/config.h
endif

ifeq ($(ETH_CONFIG), _f1e)
	@echo '#define CONFIG_F1E_PHY 1' >>include/config.h
	@echo '#define CFG_ATH_GMAC_NMACS 1' >>include/config.h
endif

ifeq ($(ETH_CONFIG), _vir)
	@echo '#define CONFIG_VIR_PHY 1' >>include/config.h
	@echo '#define CFG_ATH_GMAC_NMACS 1' >>include/config.h
endif
ifeq ($(ETH_CONFIG), _s27)
	@echo '#define CFG_ATHRS27_PHY 1' >>include/config.h
	@echo '#define CFG_ATH_GMAC_NMACS 2' >>include/config.h
endif

ifdef FLASH_SIZE
	@echo "#define FLASH_SIZE $(FLASH_SIZE)" >>include/config.h
endif
	@./mkconfig -a board953x mips mips board953x atheros

ap120_config			: 	unconfig
	@ >include/config.h

ifeq ($(ETH_CONFIG2), _s17)
	@echo '#define CONFIG_ATHRS17_PHY 1' >>include/config.h
	@echo '#define CFG_DUAL_PHY_SUPPORT 1' >>include/config.h
else
ifeq ($(ETH_CONFIG), _s17)
	@echo '#define CONFIG_ATHRS17_PHY 1' >>include/config.h
	@echo '#define CFG_AG7240_NMACS 1' >>include/config.h
endif
endif
ifeq ($(ETH_CONFIG2), _s17_hwaccel)
	@echo '#define CONFIG_ATHRS17_PHY 1' >>include/config.h
	@echo '#define CFG_DUAL_PHY_SUPPORT 1' >>include/config.h
else
ifeq ($(ETH_CONFIG), _s17_hwaccel)
	@echo '#define CONFIG_ATHRS17_PHY 1' >>include/config.h
	@echo '#define CFG_AG7240_NMACS 1' >>include/config.h
endif
endif
ifeq ($(ETH_CONFIG), _s16)
	@echo '#define CONFIG_AR7242_S16_PHY 1' >>include/config.h
	@echo '#define CFG_AG7240_NMACS 1' >>include/config.h
endif
ifeq ($(ETH_CONFIG), _f1e)
	@echo '#define CONFIG_F1E_PHY 1' >>include/config.h
	@echo '#define CFG_AG7240_NMACS 1' >>include/config.h
endif
ifeq ($(ETH_CONFIG), _f2e)
	@echo '#define CONFIG_F2E_PHY 1' >>include/config.h
	@echo '#define CFG_AG7240_NMACS 1' >>include/config.h
endif

ifeq ($(ETH_CONFIG), _vir)
	@echo '#define CONFIG_VIR_PHY 1' >>include/config.h
	@echo '#define CFG_AG7240_NMACS 1' >>include/config.h
endif
ifeq ($(ETH_CONFIG), _s27)
	@echo '#define CFG_ATHRS27_PHY 1' >>include/config.h
	@echo '#define CFG_AG7240_NMACS 2' >>include/config.h
endif

ifneq ($(findstring mi124,$(BUILD_CONFIG)),)
	@echo '#define CONFIG_MI124 1' >>include/config.h
endif
ifneq ($(findstring ap123,$(BUILD_CONFIG)),)
	@echo '#define CONFIG_AP123 1' >>include/config.h
endif
	@echo "#define CONFIG_AR7240 1" >>include/config.h
	@echo "#define CONFIG_WASP 1" >>include/config.h
ifeq ($(BOOT_FROM_NAND),1)
	@echo '#define CONFIG_ATH_NAND_BR	1' >>include/config.h
endif
ifeq ($(or $(BOOT_FROM_NAND),$(ATH_DUAL_FLASH)),1)
	@echo '#define CONFIG_ATH_NAND_SUPPORT	1' >>include/config.h
endif
	@./mkconfig -a ap120 mips mips ap120 ar7240 ar7240

db12x-lte_config			: 	unconfig
	@ >include/config.h
ifeq ($(ETH_CONFIG2), _s17)
	@echo '#define CONFIG_ATHRS17_PHY 1' >>include/config.h
	@echo '#define CFG_DUAL_PHY_SUPPORT 1' >>include/config.h
else
ifeq ($(ETH_CONFIG), _s17)
	@echo '#define CONFIG_ATHRS17_PHY 1' >>include/config.h
	@echo '#define CFG_AG7240_NMACS 1' >>include/config.h
endif
endif
ifeq ($(ETH_CONFIG2), _s17_hwaccel)
	@echo '#define CONFIG_ATHRS17_PHY 1' >>include/config.h
	@echo '#define CFG_DUAL_PHY_SUPPORT 1' >>include/config.h
else
ifeq ($(ETH_CONFIG), _s17_hwaccel)
	@echo '#define CONFIG_ATHRS17_PHY 1' >>include/config.h
	@echo '#define CFG_AG7240_NMACS 1' >>include/config.h
endif
endif
ifeq ($(ETH_CONFIG), _s16)
	@echo '#define CONFIG_AR7242_S16_PHY 1' >>include/config.h
	@echo '#define CFG_AG7240_NMACS 1' >>include/config.h
endif
ifeq ($(ETH_CONFIG), _f1e)
	@echo '#define CONFIG_F1E_PHY 1' >>include/config.h
	@echo '#define CFG_AG7240_NMACS 1' >>include/config.h
endif
ifeq ($(ETH_CONFIG), _f2e)
	@echo '#define CONFIG_F2E_PHY 1' >>include/config.h
	@echo '#define CFG_AG7240_NMACS 1' >>include/config.h
endif

ifeq ($(ETH_CONFIG), _vir)
	@echo '#define CONFIG_VIR_PHY 1' >>include/config.h
	@echo '#define CFG_AG7240_NMACS 1' >>include/config.h
endif
ifeq ($(ETH_CONFIG), _s27)
	@echo '#define CFG_ATHRS27_PHY 1' >>include/config.h
	@echo '#define CFG_AG7240_NMACS 2' >>include/config.h
endif

ifneq ($(findstring mi124,$(BUILD_CONFIG)),)
	@echo '#define CONFIG_MI124 1' >>include/config.h
endif
ifneq ($(findstring ap123,$(BUILD_CONFIG)),)
	@echo '#define CONFIG_AP123 1' >>include/config.h
endif
	@echo "#define CONFIG_AR7240 1" >>include/config.h
	@echo "#define CONFIG_WASP 1" >>include/config.h
ifdef BOOT_FROM_NAND
	@echo "#define CONFIG_ATH_NAND_FL 1" >>include/config.h
ifeq ($(BUILD_TYPE),jffs2)
	@echo "#define CONFIG_ATH_NAND_JFFS2	1" >>include/config.h
	@echo "#define CONFIG_ATH_NAND_YAFFS	0" >>include/config.h
else
	@echo "#define CONFIG_ATH_NAND_JFFS2	0" >>include/config.h
	@echo "#define CONFIG_ATH_NAND_YAFFS	1" >>include/config.h
endif
endif
#
# U-Boot from spi flash. Kernel & FS in NAND
#
ifdef ATH_DUAL_FLASH
	@echo "#define ATH_DUAL_FLASH 1" >>include/config.h
ifeq ($(BUILD_TYPE),jffs2)
	@echo "#define CONFIG_ATH_NAND_JFFS2	1" >>include/config.h
	@echo "#define CONFIG_ATH_NAND_YAFFS	0" >>include/config.h
else
	@echo "#define CONFIG_ATH_NAND_JFFS2	0" >>include/config.h
	@echo "#define CONFIG_ATH_NAND_YAFFS	1" >>include/config.h
endif
endif
	@./mkconfig -a db12x mips mips db12x ar7240 ar7240

db12x-hgw_config			: 	unconfig
	@ >include/config.h
ifeq ($(ETH_CONFIG2), _s17)
	@echo '#define CONFIG_ATHRS17_PHY 1' >>include/config.h
	@echo '#define CFG_DUAL_PHY_SUPPORT 1' >>include/config.h
else
ifeq ($(ETH_CONFIG), _s17)
	@echo '#define CONFIG_ATHRS17_PHY 1' >>include/config.h
	@echo '#define CFG_AG7240_NMACS 1' >>include/config.h
endif
endif
ifeq ($(ETH_CONFIG2), _s17_hwaccel)
	@echo '#define CONFIG_ATHRS17_PHY 1' >>include/config.h
	@echo '#define CFG_DUAL_PHY_SUPPORT 1' >>include/config.h
else
ifeq ($(ETH_CONFIG), _s17_hwaccel)
	@echo '#define CONFIG_ATHRS17_PHY 1' >>include/config.h
	@echo '#define CFG_AG7240_NMACS 1' >>include/config.h
endif
endif
ifeq ($(ETH_CONFIG), _s16)
	@echo '#define CONFIG_AR7242_S16_PHY 1' >>include/config.h
	@echo '#define CFG_AG7240_NMACS 1' >>include/config.h
endif
ifeq ($(ETH_CONFIG), _f1e)
	@echo '#define CONFIG_F1E_PHY 1' >>include/config.h
	@echo '#define CFG_AG7240_NMACS 1' >>include/config.h
endif
ifeq ($(ETH_CONFIG), _f2e)
	@echo '#define CONFIG_F2E_PHY 1' >>include/config.h
	@echo '#define CFG_AG7240_NMACS 1' >>include/config.h
endif

ifeq ($(ETH_CONFIG), _vir)
	@echo '#define CONFIG_VIR_PHY 1' >>include/config.h
	@echo '#define CFG_AG7240_NMACS 1' >>include/config.h
endif
ifeq ($(ETH_CONFIG), _s27)
	@echo '#define CFG_ATHRS27_PHY 1' >>include/config.h
	@echo '#define CFG_AG7240_NMACS 2' >>include/config.h
endif

ifneq ($(findstring mi124,$(BUILD_CONFIG)),)
	@echo '#define CONFIG_MI124 1' >>include/config.h
endif
ifneq ($(findstring ap123,$(BUILD_CONFIG)),)
	@echo '#define CONFIG_AP123 1' >>include/config.h
endif
ifneq ($(findstring db12x-hgw,$(BOARD_TYPE)),)
	@echo '#define CONFIG_DB12X-HGW 1' >>include/config.h
endif
	@echo "#define CONFIG_AR7240 1" >>include/config.h
	@echo "#define CONFIG_WASP 1" >>include/config.h
ifeq ($(BOOT_FROM_NAND),1)
	@echo '#define CONFIG_ATH_NAND_BR	1' >>include/config.h
	@echo '#define CONFIG_ATH_NAND_SUPPORT	1' >>include/config.h
	@echo "#define ATH_CAL_NAND_PARTITION "\"$(strip ${ATH_CAL_NAND_PARTITION})\" >>include/config.h
	@echo '#define ATH_CAL_OFF_INVAL        0xbad0ff' >>include/config.h
endif
ifeq ($(ATH_DUAL_FLASH),1)
	@echo '#define CONFIG_ATH_NAND_SUPPORT	1' >>include/config.h
endif
#
# U-Boot from spi flash. Kernel & FS in NAND
#
ifdef ATH_DUAL_FLASH
	@echo "#define ATH_DUAL_FLASH 1" >>include/config.h
endif

	@./mkconfig -a db12x-hybrid mips mips db12x-hybrid ar7240 ar7240

zte-mf28l_config			: 	unconfig
	@ >include/config.h
ifeq ($(ETH_CONFIG2), _s17)
	@echo '#define CONFIG_ATHRS17_PHY 1' >>include/config.h
	@echo '#define CFG_DUAL_PHY_SUPPORT 1' >>include/config.h
else
ifeq ($(ETH_CONFIG), _s17)
	@echo '#define CONFIG_ATHRS17_PHY 1' >>include/config.h
	@echo '#define CFG_AG7240_NMACS 1' >>include/config.h
endif
endif
ifeq ($(ETH_CONFIG2), _s17_hwaccel)
	@echo '#define CONFIG_ATHRS17_PHY 1' >>include/config.h
	@echo '#define CFG_DUAL_PHY_SUPPORT 1' >>include/config.h
else
ifeq ($(ETH_CONFIG), _s17_hwaccel)
	@echo '#define CONFIG_ATHRS17_PHY 1' >>include/config.h
	@echo '#define CFG_AG7240_NMACS 1' >>include/config.h
endif
endif
ifeq ($(ETH_CONFIG), _s16)
	@echo '#define CONFIG_AR7242_S16_PHY 1' >>include/config.h
	@echo '#define CFG_AG7240_NMACS 1' >>include/config.h
endif
ifeq ($(ETH_CONFIG), _f1e)
	@echo '#define CONFIG_F1E_PHY 1' >>include/config.h
	@echo '#define CFG_AG7240_NMACS 1' >>include/config.h
endif
ifeq ($(ETH_CONFIG), _f2e)
	@echo '#define CONFIG_F2E_PHY 1' >>include/config.h
	@echo '#define CFG_AG7240_NMACS 1' >>include/config.h
endif

ifeq ($(ETH_CONFIG), _vir)
	@echo '#define CONFIG_VIR_PHY 1' >>include/config.h
	@echo '#define CFG_AG7240_NMACS 1' >>include/config.h
endif
ifeq ($(ETH_CONFIG), _s27)
	@echo '#define CFG_ATHRS27_PHY 1' >>include/config.h
	@echo '#define CFG_AG7240_NMACS 2' >>include/config.h
endif

ifneq ($(findstring mi124,$(BUILD_CONFIG)),)
	@echo '#define CONFIG_MI124 1' >>include/config.h
endif
ifneq ($(findstring ap123,$(BUILD_CONFIG)),)
	@echo '#define CONFIG_AP123 1' >>include/config.h
endif
	@echo "#define CONFIG_AR7240 1" >>include/config.h
	@echo "#define CONFIG_WASP 1" >>include/config.h
ifeq ($(BOOT_FROM_NAND),1)
	@echo '#define CONFIG_ATH_NAND_BR	1' >>include/config.h
	@echo '#define CONFIG_ATH_NAND_SUPPORT	1' >>include/config.h
endif
ifeq ($(ATH_DUAL_FLASH),1)
	@echo '#define CONFIG_ATH_NAND_SUPPORT	1' >>include/config.h
endif

	@./mkconfig -a db12x mips mips db12x ar7240 ar7240


wah132_config			: 	unconfig
	@ >include/config.h
ifeq ($(ETH_CONFIG), _s27)
	@echo '#define CFG_ATHRS27_PHY 1' >>include/config.h
	@echo '#define CFG_AG7240_NMACS 2' >>include/config.h
endif
	@echo "#define CONFIG_AR7240 1" >>include/config.h
	@echo "#define CONFIG_WASP 1" >>include/config.h
ifdef BOOT_FROM_NAND
	@echo "#define CONFIG_ATH_NAND_FL 1" >>include/config.h
ifeq ($(BUILD_TYPE),jffs2)
	@echo "#define CONFIG_ATH_NAND_JFFS2	1" >>include/config.h
	@echo "#define CONFIG_ATH_NAND_YAFFS	0" >>include/config.h
else
	@echo "#define CONFIG_ATH_NAND_JFFS2	0" >>include/config.h
	@echo "#define CONFIG_ATH_NAND_YAFFS	1" >>include/config.h
endif
endif
	@./mkconfig -a wah132 mips mips wah132 ar7240 ar7240

reh132_config			: 	unconfig
	@ >include/config.h
ifeq ($(ETH_CONFIG), _s27)
	@echo '#define CFG_ATHRS27_PHY 1' >>include/config.h
	@echo '#define CFG_AG7240_NMACS 2' >>include/config.h
endif
	@echo "#define CONFIG_AR7240 1" >>include/config.h
	@echo "#define CONFIG_WASP 1" >>include/config.h
ifdef BOOT_FROM_NAND
	@echo "#define CONFIG_ATH_NAND_FL 1" >>include/config.h
ifeq ($(BUILD_TYPE),jffs2)
	@echo "#define CONFIG_ATH_NAND_JFFS2	1" >>include/config.h
	@echo "#define CONFIG_ATH_NAND_YAFFS	0" >>include/config.h
else
	@echo "#define CONFIG_ATH_NAND_JFFS2	0" >>include/config.h
	@echo "#define CONFIG_ATH_NAND_YAFFS	1" >>include/config.h
endif
endif
	@./mkconfig -a reh132 mips mips reh132 ar7240 ar7240

db12x-hybrid_config			: 	unconfig
	@ >include/config.h
ifeq ($(ETH_CONFIG2), _s17)
	@echo '#define CONFIG_ATHRS17_PHY 1' >>include/config.h
	@echo '#define CFG_DUAL_PHY_SUPPORT 1' >>include/config.h
else
ifeq ($(ETH_CONFIG), _s17)
	@echo '#define CONFIG_ATHRS17_PHY 1' >>include/config.h
	@echo '#define CFG_AG7240_NMACS 1' >>include/config.h
endif
endif
ifeq ($(ETH_CONFIG), _s16)
	@echo '#define CONFIG_AR7242_S16_PHY 1' >>include/config.h
	@echo '#define CFG_AG7240_NMACS 1' >>include/config.h
endif
ifeq ($(ETH_CONFIG), _f1e)
	@echo '#define CONFIG_F1E_PHY 1' >>include/config.h
	@echo '#define CFG_AG7240_NMACS 1' >>include/config.h
endif
ifeq ($(ETH_CONFIG), _vir)
	@echo '#define CONFIG_VIR_PHY 1' >>include/config.h
	@echo '#define CFG_AG7240_NMACS 1' >>include/config.h
endif
ifeq ($(ETH_CONFIG), _s27)
	@echo '#define CFG_ATHRS27_PHY 1' >>include/config.h
	@echo '#define CFG_AG7240_NMACS 2' >>include/config.h
endif

ifneq ($(findstring mi124,$(BUILD_CONFIG)),)
	@echo '#define CONFIG_MI124 1' >>include/config.h
endif
ifneq ($(findstring ap123,$(BUILD_CONFIG)),)
	@echo '#define CONFIG_AP123 1' >>include/config.h
endif
	@echo "#define CONFIG_AR7240 1" >>include/config.h
	@echo "#define CONFIG_WASP 1" >>include/config.h
ifdef BOOT_FROM_NAND
	@echo "#define CONFIG_ATH_NAND_FL 1" >>include/config.h
ifeq ($(BUILD_TYPE),jffs2)
	@echo "#define CONFIG_ATH_NAND_JFFS2	1" >>include/config.h
	@echo "#define CONFIG_ATH_NAND_YAFFS	0" >>include/config.h
else
	@echo "#define CONFIG_ATH_NAND_JFFS2	0" >>include/config.h
	@echo "#define CONFIG_ATH_NAND_YAFFS	1" >>include/config.h
endif
endif
	@./mkconfig -a db12x-hybrid mips mips db12x-hybrid ar7240 ar7240

aph126_config			: 	unconfig
	@ >include/config.h
ifeq ($(ETH_CONFIG2), _s17)
	@echo '#define CONFIG_ATHRS17_PHY 1' >>include/config.h
	@echo '#define CFG_DUAL_PHY_SUPPORT 1' >>include/config.h
else
ifeq ($(ETH_CONFIG), _s17)
	@echo '#define CONFIG_ATHRS17_PHY 1' >>include/config.h
	@echo '#define CFG_AG7240_NMACS 1' >>include/config.h
endif
endif
ifeq ($(ETH_CONFIG), _s16)
	@echo '#define CONFIG_AR7242_S16_PHY 1' >>include/config.h
	@echo '#define CFG_AG7240_NMACS 1' >>include/config.h
endif
ifeq ($(ETH_CONFIG), _f1e)
	@echo '#define CONFIG_F1E_PHY 1' >>include/config.h
	@echo '#define CFG_AG7240_NMACS 1' >>include/config.h
endif
ifeq ($(ETH_CONFIG), _vir)
	@echo '#define CONFIG_VIR_PHY 1' >>include/config.h
	@echo '#define CFG_AG7240_NMACS 1' >>include/config.h
endif
ifeq ($(ETH_CONFIG), _s27)
	@echo '#define CFG_ATHRS27_PHY 1' >>include/config.h
	@echo '#define CFG_AG7240_NMACS 2' >>include/config.h
endif

ifneq ($(findstring mi124,$(BUILD_CONFIG)),)
	@echo '#define CONFIG_MI124 1' >>include/config.h
endif
ifneq ($(findstring ap123,$(BUILD_CONFIG)),)
	@echo '#define CONFIG_AP123 1' >>include/config.h
endif
	@echo "#define CONFIG_AR7240 1" >>include/config.h
	@echo "#define CONFIG_WASP 1" >>include/config.h
ifdef BOOT_FROM_NAND
	@echo "#define CONFIG_ATH_NAND_FL 1" >>include/config.h
ifeq ($(BUILD_TYPE),jffs2)
	@echo "#define CONFIG_ATH_NAND_JFFS2	1" >>include/config.h
	@echo "#define CONFIG_ATH_NAND_YAFFS	0" >>include/config.h
else
	@echo "#define CONFIG_ATH_NAND_JFFS2	0" >>include/config.h
	@echo "#define CONFIG_ATH_NAND_YAFFS	1" >>include/config.h
endif
endif
	@./mkconfig -a aph126 mips mips aph126 ar7240 ar7240

aph128_config			: 	unconfig
	@ >include/config.h
ifeq ($(ETH_CONFIG2), _s17)
	@echo '#define CONFIG_ATHRS17_PHY 1' >>include/config.h
	@echo '#define CFG_DUAL_PHY_SUPPORT 1' >>include/config.h
else
ifeq ($(ETH_CONFIG), _s17)
	@echo '#define CONFIG_ATHRS17_PHY 1' >>include/config.h
	@echo '#define CFG_AG7240_NMACS 1' >>include/config.h
endif
endif
ifeq ($(ETH_CONFIG), _s16)
	@echo '#define CONFIG_AR7242_S16_PHY 1' >>include/config.h
	@echo '#define CFG_AG7240_NMACS 1' >>include/config.h
endif
ifeq ($(ETH_CONFIG), _f1e)
	@echo '#define CONFIG_F1E_PHY 1' >>include/config.h
	@echo '#define CFG_AG7240_NMACS 1' >>include/config.h
endif
ifeq ($(ETH_CONFIG), _vir)
	@echo '#define CONFIG_VIR_PHY 1' >>include/config.h
	@echo '#define CFG_AG7240_NMACS 1' >>include/config.h
endif
ifeq ($(ETH_CONFIG), _s27)
	@echo '#define CFG_ATHRS27_PHY 1' >>include/config.h
	@echo '#define CFG_AG7240_NMACS 2' >>include/config.h
endif

ifneq ($(findstring mi124,$(BUILD_CONFIG)),)
	@echo '#define CONFIG_MI124 1' >>include/config.h
endif
ifneq ($(findstring ap123,$(BUILD_CONFIG)),)
	@echo '#define CONFIG_AP123 1' >>include/config.h
endif
	@echo "#define CONFIG_AR7240 1" >>include/config.h
	@echo "#define CONFIG_WASP 1" >>include/config.h
ifdef BOOT_FROM_NAND
	@echo "#define CONFIG_ATH_NAND_FL 1" >>include/config.h
ifeq ($(BUILD_TYPE),jffs2)
	@echo "#define CONFIG_ATH_NAND_JFFS2	1" >>include/config.h
	@echo "#define CONFIG_ATH_NAND_YAFFS	0" >>include/config.h
else
	@echo "#define CONFIG_ATH_NAND_JFFS2	0" >>include/config.h
	@echo "#define CONFIG_ATH_NAND_YAFFS	1" >>include/config.h
endif
endif
	@./mkconfig -a aph128 mips mips aph128 ar7240 ar7240

dhp1565_config			: 	unconfig
	@ >include/config.h
ifeq ($(ETH_CONFIG2), _s17)
	@echo '#define CONFIG_ATHRS17_PHY 1' >>include/config.h
	@echo '#define CFG_DUAL_PHY_SUPPORT 1' >>include/config.h
else
ifeq ($(ETH_CONFIG), _s17)
	@echo '#define CONFIG_ATHRS17_PHY 1' >>include/config.h
	@echo '#define CFG_AG7240_NMACS 1' >>include/config.h
endif
endif
ifeq ($(ETH_CONFIG), _s16)
	@echo '#define CONFIG_AR7242_S16_PHY 1' >>include/config.h
	@echo '#define CFG_AG7240_NMACS 1' >>include/config.h
endif
ifeq ($(ETH_CONFIG), _f1e)
	@echo '#define CONFIG_F1E_PHY 1' >>include/config.h
	@echo '#define CFG_AG7240_NMACS 1' >>include/config.h
endif
ifeq ($(ETH_CONFIG), _vir)
	@echo '#define CONFIG_VIR_PHY 1' >>include/config.h
	@echo '#define CFG_AG7240_NMACS 1' >>include/config.h
endif
ifeq ($(ETH_CONFIG), _s27)
	@echo '#define CFG_ATHRS27_PHY 1' >>include/config.h
	@echo '#define CFG_AG7240_NMACS 2' >>include/config.h
endif

ifneq ($(findstring mi124,$(BUILD_CONFIG)),)
	@echo '#define CONFIG_MI124 1' >>include/config.h
endif
ifneq ($(findstring ap123,$(BUILD_CONFIG)),)
	@echo '#define CONFIG_AP123 1' >>include/config.h
endif
	@echo "#define CONFIG_AR7240 1" >>include/config.h
	@echo "#define CONFIG_WASP 1" >>include/config.h
ifdef BOOT_FROM_NAND
	@echo "#define CONFIG_ATH_NAND_FL 1" >>include/config.h
ifeq ($(BUILD_TYPE),jffs2)
	@echo "#define CONFIG_ATH_NAND_JFFS2	1" >>include/config.h
	@echo "#define CONFIG_ATH_NAND_YAFFS	0" >>include/config.h
else
	@echo "#define CONFIG_ATH_NAND_JFFS2	0" >>include/config.h
	@echo "#define CONFIG_ATH_NAND_YAFFS	1" >>include/config.h
endif
endif
	@./mkconfig -a dhp1565 mips mips dhp1565 ar7240 ar7240


db12x-extender_config			: 	unconfig
	@ >include/config.h
ifeq ($(ETH_CONFIG2), _s17)
	@echo '#define CONFIG_ATHRS17_PHY 1' >>include/config.h
	@echo '#define CFG_DUAL_PHY_SUPPORT 1' >>include/config.h
else
ifeq ($(ETH_CONFIG), _s17)
	@echo '#define CONFIG_ATHRS17_PHY 1' >>include/config.h
	@echo '#define CFG_AG7240_NMACS 1' >>include/config.h
endif
endif
ifeq ($(ETH_CONFIG), _s16)
	@echo '#define CONFIG_AR7242_S16_PHY 1' >>include/config.h
	@echo '#define CFG_AG7240_NMACS 1' >>include/config.h
endif
ifeq ($(ETH_CONFIG), _f1e)
	@echo '#define CONFIG_F1E_PHY 1' >>include/config.h
	@echo '#define CFG_AG7240_NMACS 1' >>include/config.h
endif
ifeq ($(ETH_CONFIG), _vir)
	@echo '#define CONFIG_VIR_PHY 1' >>include/config.h
	@echo '#define CFG_AG7240_NMACS 1' >>include/config.h
endif
ifeq ($(ETH_CONFIG), _s27)
	@echo '#define CFG_ATHRS27_PHY 1' >>include/config.h
	@echo '#define CFG_AG7240_NMACS 2' >>include/config.h
endif

ifneq ($(findstring mi124,$(BUILD_CONFIG)),)
	@echo '#define CONFIG_MI124 1' >>include/config.h
endif
ifneq ($(findstring ap123,$(BUILD_CONFIG)),)
	@echo '#define CONFIG_AP123 1' >>include/config.h
endif
	@echo "#define CONFIG_AR7240 1" >>include/config.h
	@echo "#define CONFIG_WASP 1" >>include/config.h
ifdef BOOT_FROM_NAND
	@echo "#define CONFIG_ATH_NAND_FL 1" >>include/config.h
ifeq ($(BUILD_TYPE),jffs2)
	@echo "#define CONFIG_ATH_NAND_JFFS2	1" >>include/config.h
	@echo "#define CONFIG_ATH_NAND_YAFFS	0" >>include/config.h
else
	@echo "#define CONFIG_ATH_NAND_JFFS2	0" >>include/config.h
	@echo "#define CONFIG_ATH_NAND_YAFFS	1" >>include/config.h
endif
endif
	@./mkconfig -a db12x-extender mips mips db12x-extender ar7240 ar7240

ap123_config			: 	unconfig
	@ >include/config.h
ifeq ($(ETH_CONFIG2), _s17)
	@echo '#define CONFIG_ATHRS17_PHY 1' >>include/config.h
	@echo '#define CFG_DUAL_PHY_SUPPORT 1' >>include/config.h
else
ifeq ($(ETH_CONFIG), _s17)
	@echo '#define CONFIG_ATHRS17_PHY 1' >>include/config.h
	@echo '#define CFG_AG7240_NMACS 1' >>include/config.h
endif
endif
ifeq ($(ETH_CONFIG), _s16)
	@echo '#define CONFIG_AR7242_S16_PHY 1' >>include/config.h
	@echo '#define CFG_AG7240_NMACS 1' >>include/config.h
endif
ifeq ($(ETH_CONFIG), _f1e)
	@echo '#define CONFIG_F1E_PHY 1' >>include/config.h
	@echo '#define CFG_AG7240_NMACS 1' >>include/config.h
endif
ifeq ($(ETH_CONFIG), _vir)
	@echo '#define CONFIG_VIR_PHY 1' >>include/config.h
	@echo '#define CFG_AG7240_NMACS 1' >>include/config.h
endif
ifeq ($(ETH_CONFIG), _s27)
	@echo '#define CFG_ATHRS27_PHY 1' >>include/config.h
	@echo '#define CFG_AG7240_NMACS 2' >>include/config.h
endif

ifneq ($(findstring mi124,$(BUILD_CONFIG)),)
	@echo '#define CONFIG_MI124 1' >>include/config.h
endif

	@echo '#define CONFIG_AP123 1' >>include/config.h
	@echo '#define CONFIG_ROOTFS_TYPE "rootfstype=squashfs"' >>include/config.h
	@echo "#define CONFIG_AR7240 1" >>include/config.h
	@echo "#define CONFIG_WASP 1" >>include/config.h
ifdef FLASH_SIZE
	@echo "#define FLASH_SIZE $(FLASH_SIZE)" >>include/config.h
endif
ifeq ($(DB12X_P2P_ENV), 1)
	@echo "#define CONFIG_DB12X_P2P 1" >>include/config.h
endif

ifeq ($(BOOT_FROM_NAND),1)
	@echo '#define CONFIG_ATH_NAND_BR	1' >>include/config.h
	@echo '#define CONFIG_ATH_NAND_SUPPORT	1' >>include/config.h
endif
ifeq ($(ATH_DUAL_FLASH),1)
	@echo '#define CONFIG_ATH_NAND_SUPPORT	1' >>include/config.h
endif

	@./mkconfig -a ap123 mips mips ap123 ar7240 ar7240


ap91_config		: 	unconfig
	@ >include/config.h
	@echo "#define CONFIG_AR7240 1" >>include/config.h
	@./mkconfig -a ap91 mips mips ap91 ar7240 ar7240
ap91-2MB_config		: 	unconfig
	@ >include/config.h
	@echo "#define CONFIG_AR7240 1" >>include/config.h
	@./mkconfig -a ap91-2MB mips mips ap91-2MB ar7240 ar7240
ap91-2x8_config		: 	unconfig
	@ >include/config.h
	@echo "#define CONFIG_AR7240 1" >>include/config.h
	@./mkconfig -a ap91-2x8 mips mips ap91-2x8 ar7240 ar7240
ap93_config		: 	unconfig
	@ >include/config.h
	@echo "#define CONFIG_AR7240 1" >>include/config.h
	@./mkconfig -a ap93 mips mips ap93 ar7240 ar7240
ap91-router_config	: 	unconfig
	@ >include/config.h
	@echo "#define CONFIG_AR7240 1" >>include/config.h
	@./mkconfig -a ap91-router mips mips ap91-router ar7240 ar7240
ap93-hgw_config		: 	unconfig
	@ >include/config.h
	@echo "#define CONFIG_AR7240 1" >>include/config.h
	@./mkconfig -a ap93-hgw mips mips ap93-hgw ar7240 ar7240
cus136_config		: 	unconfig
	@ >include/config.h
	@echo "#define CONFIG_AR7240 1" >>include/config.h
	@./mkconfig -a cus136 mips mips cus136 ar7240 ar7240
wrt54g_config           :       unconfig
	@ >include/config.h
	@echo "#define CONFIG_AR7240 1" >>include/config.h
	@./mkconfig -a wrt54g mips mips wrt54g ar7240 ar7240
pb90_config		: 	unconfig
	@ >include/config.h
	@echo "#define CONFIG_AR7240 1" >>include/config.h
	@./mkconfig -a pb90 mips mips pb90 ar7240 ar7240
tb327_config		: 	unconfig
	@ >include/config.h
	@echo "#define CONFIG_AR7240 1" >>include/config.h
	@./mkconfig -a tb327 mips mips tb327 ar7240 ar7240
pb93_config		: 	unconfig
	@ >include/config.h
	@echo "#define CONFIG_AR7240 1" >>include/config.h
ifdef FLASH_SIZE
	@echo "#define FLASH_SIZE $(FLASH_SIZE)" >>include/config.h
endif
	@./mkconfig -a pb93 mips mips pb93 ar7240 ar7240
pb9x_config             :       unconfig
	@ >include/config.h
	@echo "#define CONFIG_AR7240 1" >>include/config.h
ifdef FLASH_SIZE
	@echo "#define FLASH_SIZE $(FLASH_SIZE)" >>include/config.h
endif
	@./mkconfig -a pb9x mips mips pb9x ar7240 ar7240

pb9x-2x8_config             :       unconfig
	@ >include/config.h
	@echo "#define CONFIG_AR7240 1" >>include/config.h
ifdef FLASH_SIZE
	@echo "#define FLASH_SIZE $(FLASH_SIZE)" >>include/config.h
endif
	@./mkconfig -a pb9x-2x8 mips mips pb9x-2x8 ar7240 ar7240
ap98_config		: 	unconfig
	@ >include/config.h
	@echo "#define CONFIG_AR7240 1" >>include/config.h
ifdef FLASH_SIZE
	@echo "#define FLASH_SIZE $(FLASH_SIZE)" >>include/config.h
endif
	@./mkconfig -a ap98 mips mips ap98 ar7240 ar7240

pb9x-2.6.31_config             :       unconfig
	@ >include/config.h
	@echo "#define CONFIG_AR7240 1" >>include/config.h
ifdef FLASH_SIZE
	@echo "#define FLASH_SIZE $(FLASH_SIZE)" >>include/config.h
endif
	@./mkconfig -a pb9x-2.6.31 mips mips pb9x-2.6.31 ar7240 ar7240

pb9x-offload_config             :       unconfig
	@ >include/config.h
	@echo "#define CONFIG_AR7240 1" >>include/config.h
ifdef FLASH_SIZE
	@echo "#define FLASH_SIZE $(FLASH_SIZE)" >>include/config.h
endif
ifdef ROOTFS
	@echo "#define ROOTFS $(ROOTFS)" >>include/config.h
endif
	@./mkconfig -a pb9x-2.6.31 mips mips pb9x-2.6.31 ar7240 ar7240

pb92_config             :       unconfig
	@ >include/config.h
	@echo "#define CONFIG_AR7240 1" >>include/config.h
ifdef FLASH_SIZE
	@echo "#define FLASH_SIZE $(FLASH_SIZE)" >>include/config.h
endif
	@./mkconfig -a pb92 mips mips pb92 ar7240 ar7240

ap99_config		: 	unconfig
	@ >include/config.h
	@echo "#define CONFIG_AR7240 1" >>include/config.h
ifdef FLASH_SIZE
	@echo "#define FLASH_SIZE $(FLASH_SIZE)" >>include/config.h
endif
	@./mkconfig -a ap99 mips mips ap99 ar7240 ar7240

ap99-small_config		: 	unconfig
	@ >include/config.h
	@echo "#define CONFIG_AR7240 1" >>include/config.h
ifdef FLASH_SIZE
	@echo "#define FLASH_SIZE $(FLASH_SIZE)" >>include/config.h
endif
	@./mkconfig -a ap99-small mips mips ap99-small ar7240 ar7240


ap99-2.6.31_config		: 	unconfig
	@ >include/config.h
	@echo "#define CONFIG_AR7240 1" >>include/config.h
ifdef FLASH_SIZE
	@echo "#define FLASH_SIZE $(FLASH_SIZE)" >>include/config.h
endif
	@./mkconfig -a ap99-2.6.31 mips mips ap99-2.6.31 ar7240 ar7240

ap99-hgw_config		: 	unconfig
	@ >include/config.h
	@echo "#define CONFIG_AR7240 1" >>include/config.h
ifdef FLASH_SIZE
	@echo "#define FLASH_SIZE $(FLASH_SIZE)" >>include/config.h
endif
	@./mkconfig -a ap99-hgw mips mips ap99-hgw ar7240 ar7240
ap99-ivi_config     :   unconfig
	@ >include/config.h
	@echo "#define CONFIG_AR7240 1" >>include/config.h
ifdef FLASH_SIZE
	@echo "#define FLASH_SIZE $(FLASH_SIZE)" >>include/config.h
endif
	@./mkconfig -a ap99-ivi mips mips ap99-ivi ar7240 ar7240

ap101_config             :       unconfig
	@ >include/config.h
	@echo "#define CONFIG_AR7240 1" >>include/config.h
	@./mkconfig -a ap101 mips mips ap101 ar7240 ar7240

ap101-small_config       :       unconfig
	@ >include/config.h
	@echo "#define CONFIG_AR7240 1" >>include/config.h
	@./mkconfig -a ap101-small mips mips ap101-small ar7240 ar7240

ap101-2.6.31_config      :       unconfig
	@ >include/config.h
	@echo "#define CONFIG_AR7240 1" >>include/config.h
	@./mkconfig -a ap101-2.6.31 mips mips ap101-2.6.31 ar7240 ar7240

mi93_config		: 	unconfig
	@ >include/config.h
	@echo "#define CONFIG_AR7240 1" >>include/config.h
	@./mkconfig -a mi93 mips mips mi93 ar7240 ar7240

ap111_config		: 	unconfig
	@ >include/config.h
	@echo "#define CONFIG_AR7240 1" >>include/config.h
	@./mkconfig -a ap111 mips mips ap111 ar7240 ar7240

ap111-2.6.31_config		: 	unconfig
	@ >include/config.h
	@echo "#define CONFIG_AR7240 1" >>include/config.h
	@./mkconfig -a ap111-2.6.31 mips mips ap111-2.6.31 ar7240 ar7240

hornet_common_config        :
	@ >include/config.h
	@echo "#define CONFIG_AR7240 1" >>include/config.h
	@echo "#define CONFIG_MACH_HORNET 1" >>include/config.h
ifdef BUILD_EMU
	@echo "#define CONFIG_HORNET_EMU 1" >>include/config.h
ifeq ($(BUILD_EMU), 24)
	@echo "#define CONFIG_HORNET_EMU_HARDI 1" >>include/config.h
	@echo "#define CONFIG_HORNET_EMU_HARDI_WLAN 1" >>include/config.h
else

ifeq ($(BUILD_EMU), 40)
    #
	# No need to include CONFIG_HORNET_EMU_HARDI_WLAN in 40Mhz, only for emulation and 24Mhz board
	#	
else
    #
	# Configure it as 24Mhz by default
	#
	@export BUILD_EMU=24
	@echo "#define CONFIG_HORNET_EMU_HARDI_WLAN 1" >>include/config.h
endif
endif
endif
ifeq ($(CONFIG_HORNET_XTAL), 40)
	@echo "#define CONFIG_40MHZ_XTAL_SUPPORT 1" >>include/config.h
endif
ifeq ($(CONFIG_HORNET_1_1_WAR), 1)
	@echo "#define CONFIG_HORNET_1_1_WAR 1" >>include/config.h
endif
ifeq ($(AG7240_BROADCAST_ENABLE), 1)
	@echo "#define AG7240_BROADCAST_ENABLE 1" >>include/config.h
endif
ifeq ($(NEW_DDR_TAP_CAL), 1)
	@echo "#define NEW_DDR_TAP_CAL 1" >>include/config.h
endif

ap121_config		    : 	unconfig    hornet_common_config
	@echo "#define FLASH_SIZE $(FLASH_SIZE)" >>include/config.h
ifdef BOARD_STRING
	@echo "#define BOARD_STRING 1" >>include/config.h
endif
	@./mkconfig -a ap121 mips mips ap121 ar7240 ar7240
ap121-2x16_config		    : 	unconfig    hornet_common_config
	@echo "#define FLASH_SIZE $(FLASH_SIZE)" >>include/config.h
	@./mkconfig -a ap121 mips mips ap121 ar7240 ar7240

ap121-2.6.31_config		    : 	unconfig    hornet_common_config
	@echo "#define FLASH_SIZE $(FLASH_SIZE)" >>include/config.h
	@./mkconfig -a ap121 mips mips ap121 ar7240 ar7240

ap121-2.6.31-2MB_config		: 	unconfig    hornet_common_config
	@./mkconfig -a ap121 mips mips ap121 ar7240 ar7240
ifeq ($(VXWORKS_UBOOT), 1)
	@echo "#define VXWORKS_UBOOT 1" >>include/config.h
endif

ap121-2MB_config		: 	unconfig   hornet_common_config
	@./mkconfig -a ap121 mips mips ap121 ar7240 ar7240

ap121-hgw_config		    : 	unconfig    hornet_common_config
	@echo "#define FLASH_SIZE $(FLASH_SIZE)" >>include/config.h
	@./mkconfig -a ap121 mips mips ap121 ar7240 ar7240

hornet_emu_config		: 	unconfig
	@ >include/config.h
	@echo "#define CONFIG_AR7240 1" >>include/config.h
	@echo "#define CONFIG_MACH_HORNET 1" >>include/config.h
ifdef BUILD_EMU
	@echo "#define CONFIG_HORNET_EMU 1" >>include/config.h
ifeq ($(BUILD_EMU), 24)
	@echo "#define CONFIG_HORNET_EMU_HARDI 1" >>include/config.h
	@echo "#define CONFIG_HORNET_EMU_HARDI_WLAN 1" >>include/config.h
else

ifeq ($(BUILD_EMU), 40)
    #
	# No need to include CONFIG_HORNET_EMU_HARDI_WLAN in 40Mhz, only for emulation and 24Mhz board
	#	
else
    #
	# Configure it as 24Mhz by default
	#
	@export BUILD_EMU=24
	@echo "#define CONFIG_HORNET_EMU_HARDI_WLAN 1" >>include/config.h
endif
endif
endif
	@./mkconfig -a hornet_emu mips mips hornet_emu ar7240 ar7240

scoemu_config: 	unconfig
	@echo '#define CONFIG_ATHEROS		1'	>include/config.h
	@echo '#define CONFIG_MACH_QCA955x	1'	>>include/config.h
	@echo '#define CFG_INIT_STACK_IN_SRAM	1'	>>include/config.h
	@echo '#define CONFIG_ATH_EMULATION	1'	>>include/config.h
ifeq ($(ETH_CONFIG2), _s17)
	@echo '#define CONFIG_ATHRS17_PHY	1'	>>include/config.h
	@echo '#define CFG_DUAL_PHY_SUPPORT	1'	>>include/config.h
else
ifeq ($(ETH_CONFIG), _s17)
	@echo '#define CONFIG_ATHRS17_PHY	1'	>>include/config.h
	@echo '#define CFG_ATH_GMAC_NMACS	1'	>>include/config.h
endif
endif
ifeq ($(ETH_CONFIG2), _s17_hwaccel)
	@echo '#define CONFIG_ATHRS17_PHY	1'	>>include/config.h
	@echo '#define CFG_DUAL_PHY_SUPPORT	1'	>>include/config.h
else
ifeq ($(ETH_CONFIG), _s17_hwaccel)
	@echo '#define CONFIG_ATHRS17_PHY	1'	>>include/config.h
	@echo '#define CFG_ATH_GMAC_NMACS	1'	>>include/config.h
endif
endif
ifeq ($(ETH_CONFIG), _s16)
	@echo '#define CONFIG_AR7242_S16_PHY	1'	>>include/config.h
	@echo '#define CFG_ATH_GMAC_NMACS	1'	>>include/config.h
endif
ifeq ($(ETH_CONFIG), _f1e)
	@echo '#define CONFIG_F1E_PHY		1'	>>include/config.h
	@echo '#define CFG_ATH_GMAC_NMACS	1'	>>include/config.h
endif
ifeq ($(ETH_CONFIG), _f2e)
	@echo '#define CONFIG_F2E_PHY		1'	>>include/config.h
	@echo '#define CFG_ATH_GMAC_NMACS	1'	>>include/config.h
endif

ifeq ($(ETH_CONFIG), _vir)
	@echo '#define CONFIG_VIR_PHY		1'	>>include/config.h
	@echo '#define CFG_ATH_GMAC_NMACS	1'	>>include/config.h
endif
ifeq ($(ETH_CONFIG), _s27)
	@echo '#define CFG_ATHRS27_PHY		1'	>>include/config.h
	@echo '#define CFG_ATH_GMAC_NMACS	2'	>>include/config.h
endif
ifeq ($(BOOT_FROM_NAND),1)
	@echo '#define CONFIG_ATH_NAND_BR	1'	>>include/config.h
	@echo '#define CONFIG_ATH_NAND_SUPPORT	1'	>>include/config.h
	@echo "#define ATH_CAL_NAND_PARTITION "\"$(strip ${ATH_CAL_NAND_PARTITION})\" >>include/config.h
	@echo '#define ATH_CAL_OFF_INVAL        0xbad0ff' >>include/config.h
endif
ifeq ($(ATH_DUAL_FLASH),1)
	@echo '#define CONFIG_ATH_NAND_SUPPORT	1'	>>include/config.h
	@echo "#define ATH_CAL_NAND_PARTITION "\"$(strip ${ATH_CAL_NAND_PARTITION})\" >>include/config.h
	@echo '#define ATH_CAL_OFF_INVAL        0xbad0ff' >>include/config.h
endif
ifdef FLASH_SIZE
	@echo '#define FLASH_SIZE	$(FLASH_SIZE)'	>>include/config.h
endif
	@./mkconfig -a scoemu mips mips scoemu atheros


ifneq ($(findstring $(BOARD_TYPE), board955x-offload-target),) #{
ifneq ($(findstring $(BUILD_CONFIG), _ap136),)
CFG_BOARD_TYPE=ap136
endif
ifneq ($(findstring $(BUILD_CONFIG), _ap132),)
CFG_BOARD_TYPE=ap132
endif
ifneq ($(findstring $(BUILD_CONFIG), _ap135),)
CFG_BOARD_TYPE=ap135
endif
endif #}

ifneq ($(findstring $(BOARD_TYPE), board955x-offload-host),)
ifneq ($(findstring $(BUILD_CONFIG), _ap136 _ap136_bootrom),)
CFG_BOARD_TYPE=ap136

ifneq ($(findstring $(BUILD_CONFIG), _ap136_bootrom),) #{
ETH_CONFIG=_s17
ATH_GMAC_GE0_IS_CONNECTED=1
ATH_GMAC_GE1_IS_CONNECTED=1
ATH_GMAC0_MII=ATHR_RGMII
ATH_GMAC1_MII=ATHR_SGMII
#sgmii defines
ATH_CFG_SGMII=1
ATH_CONFIG_SWAP_SGMII=0
AH_CAL_IN_FLASH_PCI=1
ATH_S17_PHY0_WAN=1
ATH_SGMII_FORCED=1
#LED defines
ATH_SUPPORT_LED=1
GPIO_PIN_FUNC_0=7
GPIO_PIN_FUNC_1=7
GPIO_PIN_FUNC_2=7
ATH_LED_CUSTOMER=CUSTOMER_ATHEROS_SCORPION
endif #}

endif
endif


board955x_config: 	unconfig
	@echo '#define CONFIG_ATHEROS		1'	>include/config.h
	@echo '#define CONFIG_MACH_QCA955x	1'	>>include/config.h
	@echo '#define CFG_INIT_STACK_IN_SRAM	1'	>>include/config.h
	@echo '#define CONFIG_'`echo $(CFG_BOARD_TYPE) | tr [a-z] [A-Z] | sed s/-/_/g`'	1' >>include/config.h
	@echo '#define __CONFIG_BOARD_NAME $(CFG_BOARD_TYPE)' >>include/config.h
	@echo '#define CONFIG_BOARD_NAME "$(CFG_BOARD_TYPE)"' >>include/config.h
ifdef pll
	@echo '#define CFG_PLL_FREQ		$(pll)'	>>include/config.h
else
	@echo '#define CFG_PLL_FREQ		CFG_PLL_720_600_200'	>>include/config.h
endif
ifeq ($(ETH_CONFIG2), _s17)
	@echo '#define CONFIG_ATHRS17_PHY	1'	>>include/config.h
endif

ifeq ($(ATH_SGMII_FORCED),1)
	@echo '#define ATH_SGMII_FORCED		1'	>>include/config.h
endif
ifneq (,$(findstring _s17,$(ETH_CONFIG))) #{
	@echo '#define CONFIG_ATHRS17_PHY	1'	>>include/config.h

ifneq (,$(findstring $(CFG_BOARD_TYPE),ap136 ap135)) #{
	@echo '#define CFG_ATH_GMAC_NMACS	2'	>>include/config.h
	@echo '#define CFG_ATH_GE1_IS_CONNECTED 1' 	>>include/config.h
	@echo '#define CONFIG_ATHRS_GMAC_SGMII  1'      >>include/config.h

ifeq ($(ATH_S17_PHY0_WAN),1)
	@echo "#define CONFIG_ATH_S17_WAN 1" >> include/config.h
endif

endif #}
ifeq ($(S17_SWMAC6_CONNECTED),1)
	@echo "#define CONFIG_S17_SWMAC6_CONNECTED 1" >> include/config.h
endif
endif

ifeq ($(CFG_BOARD_TYPE), ap132)
	@echo '#define CFG_ATH_GMAC_NMACS       2'      >>include/config.h
	@echo '#define CFG_ATH_GE1_IS_CONNECTED 1'      >>include/config.h
	@echo '#define CONFIG_ATHRS_GMAC_SGMII  1'      >>include/config.h
	@echo '#define CONFIG_MGMT_INIT         1'      >>include/config.h
ifeq ($(ATH_SWITCH_ONLY_MODE),1)
	@echo "#define CONFIG_ATHR_SWITCH_ONLY_MODE 1" >> include/config.h
endif
endif

ifeq ($(ATH_S17_MAC0_SGMII),1)
	@echo "#define ATH_S17_MAC0_SGMII 1" >> include/config.h
endif


#ifeq ($(ETH_CONFIG2), _s17_hwaccel)
#	@echo '#define CONFIG_ATHRS17_PHY	1'	>>include/config.h
#	@echo '#define CFG_DUAL_PHY_SUPPORT	1'	>>include/config.h
#else
#ifeq ($(ETH_CONFIG), _s17_hwaccel)
#	@echo '#define CONFIG_ATHRS17_PHY	1'	>>include/config.h
#	@echo '#define CFG_ATH_GMAC_NMACS	1'	>>include/config.h
#endif
ifeq ($(ETH_CONFIG2), _ar8033) #{
	@echo '#define CONFIG_ATHR_8033_PHY     1'      >>include/config.h
	@echo '#define CONFIG_ATHRS_GMAC_SGMII  1'      >>include/config.h
	@echo '#define CFG_DUAL_PHY_SUPPORT	1'	>>include/config.h
	@echo '#define CFG_ATH_GMAC_NMACS	2'	>>include/config.h
ifeq ($(ATH_MDC_GPIO),1)
	@echo '#define ATH_MDC_GPIO       1'      >>include/config.h
endif

endif #}
ifeq ($(ETH_CONFIG), _vir) #{

ifneq ($(findstring ATHR_MII,$(ATH_GMAC0_MII)),)
	@echo "#define GMAC0_MII 1" >> include/config.h

else
	@echo '#define CONFIG_VIR_PHY		1'	>>include/config.h
	@echo '#define CFG_ATH_GMAC_NMACS	1'	>>include/config.h
endif

ifeq ($(ATH_SLAVE_CONNECTED),1)
	@echo "#define CONFIG_SCO_SLAVE_CONNECTED 1" >> include/config.h
endif

endif #}
ifeq ($(ATH_SGMII_FORCED),1)
	@echo "#define ATH_SGMII_FORCED_MODE 1" >> include/config.h
endif

ifeq ($(ATH_RGMII_CAL),1)
	@echo "#define ATH_RGMII_CAL 1" >> include/config.h
endif

ifeq ($(BOOT_FROM_NAND),1)
	@echo '#define CONFIG_ATH_NAND_BR	1'	>>include/config.h
	@echo '#define CONFIG_ATH_NAND_SUPPORT	1'	>>include/config.h
	@echo "#define ATH_CAL_NAND_PARTITION "\"$(strip ${ATH_CAL_NAND_PARTITION})\" >>include/config.h
	@echo '#define ATH_CAL_OFF_INVAL        0xbad0ff' >>include/config.h
endif
ifeq ($(ATH_DUAL_FLASH),1)
	@echo '#define CONFIG_ATH_NAND_SUPPORT	1'	>>include/config.h
	@echo "#define ATH_CAL_NAND_PARTITION "\"$(strip ${ATH_CAL_NAND_PARTITION})\" >>include/config.h
	@echo '#define ATH_CAL_OFF_INVAL        0xbad0ff' >>include/config.h
endif
ifdef FLASH_SIZE
	@echo '#define FLASH_SIZE	$(FLASH_SIZE)'	>>include/config.h
endif
	@./mkconfig -a board955x mips mips board955x atheros

ap135_config: 	unconfig
	@echo '#define CONFIG_ATHEROS		1'	>include/config.h
	@echo '#define CONFIG_MACH_QCA955x	1'	>>include/config.h
	@echo '#define CFG_INIT_STACK_IN_SRAM	1'	>>include/config.h
	@echo '#define CONFIG_'`echo $(CFG_BOARD_TYPE) | tr [a-z] [A-Z] | sed s/-/_/g`'	1' >>include/config.h
	@echo '#define __CONFIG_BOARD_NAME $(CFG_BOARD_TYPE)' >>include/config.h
	@echo '#define CONFIG_BOARD_NAME "$(CFG_BOARD_TYPE)"' >>include/config.h
ifdef pll
	@echo '#define CFG_PLL_FREQ		$(pll)'	>>include/config.h
else
	@echo '#define CFG_PLL_FREQ		CFG_PLL_720_600_200'	>>include/config.h
endif
ifeq ($(ETH_CONFIG2), _s17)
	@echo '#define CONFIG_ATHRS17_PHY	1'	>>include/config.h
endif

ifeq ($(ATH_SGMII_FORCED),1)
	@echo '#define ATH_SGMII_FORCED		1'	>>include/config.h
endif
ifneq (,$(findstring _s17,$(ETH_CONFIG))) #{
	@echo '#define CONFIG_ATHRS17_PHY	1'	>>include/config.h

ifneq (,$(findstring $(CFG_BOARD_TYPE),ap136 ap135)) #{
	@echo '#define CFG_ATH_GMAC_NMACS	2'	>>include/config.h
	@echo '#define CFG_ATH_GE1_IS_CONNECTED 1' 	>>include/config.h
	@echo '#define CONFIG_ATHRS_GMAC_SGMII  1'      >>include/config.h

ifeq ($(ATH_S17_PHY0_WAN),1)
	@echo "#define CONFIG_ATH_S17_WAN 1" >> include/config.h
endif

endif #}
ifeq ($(S17_SWMAC6_CONNECTED),1)
	@echo "#define CONFIG_S17_SWMAC6_CONNECTED 1" >> include/config.h
endif
endif

ifeq ($(CFG_BOARD_TYPE), ap132)
	@echo '#define CFG_ATH_GMAC_NMACS       2'      >>include/config.h
	@echo '#define CFG_ATH_GE1_IS_CONNECTED 1'      >>include/config.h
	@echo '#define CONFIG_ATHRS_GMAC_SGMII  1'      >>include/config.h
	@echo '#define CONFIG_MGMT_INIT         1'      >>include/config.h
ifeq ($(ATH_SWITCH_ONLY_MODE),1)
	@echo "#define CONFIG_ATHR_SWITCH_ONLY_MODE 1" >> include/config.h
endif
endif

ifeq ($(ATH_S17_MAC0_SGMII),1)
	@echo "#define ATH_S17_MAC0_SGMII 1" >> include/config.h
endif


#ifeq ($(ETH_CONFIG2), _s17_hwaccel)
#	@echo '#define CONFIG_ATHRS17_PHY	1'	>>include/config.h
#	@echo '#define CFG_DUAL_PHY_SUPPORT	1'	>>include/config.h
#else
#ifeq ($(ETH_CONFIG), _s17_hwaccel)
#	@echo '#define CONFIG_ATHRS17_PHY	1'	>>include/config.h
#	@echo '#define CFG_ATH_GMAC_NMACS	1'	>>include/config.h
#endif
ifeq ($(ETH_CONFIG2), _ar8033) #{
	@echo '#define CONFIG_ATHR_8033_PHY     1'      >>include/config.h
	@echo '#define CONFIG_ATHRS_GMAC_SGMII  1'      >>include/config.h
	@echo '#define CFG_DUAL_PHY_SUPPORT	1'	>>include/config.h
	@echo '#define CFG_ATH_GMAC_NMACS	2'	>>include/config.h
ifeq ($(ATH_MDC_GPIO),1)
	@echo '#define ATH_MDC_GPIO       1'      >>include/config.h
endif

endif #}
ifeq ($(ETH_CONFIG), _vir) #{

ifneq ($(findstring ATHR_MII,$(ATH_GMAC0_MII)),)
	@echo "#define GMAC0_MII 1" >> include/config.h

else
	@echo '#define CONFIG_VIR_PHY		1'	>>include/config.h
	@echo '#define CFG_ATH_GMAC_NMACS	1'	>>include/config.h
endif

ifeq ($(ATH_SLAVE_CONNECTED),1)
	@echo "#define CONFIG_SCO_SLAVE_CONNECTED 1" >> include/config.h
endif

endif #}
ifeq ($(ATH_SGMII_FORCED),1)
	@echo "#define ATH_SGMII_FORCED_MODE 1" >> include/config.h
endif

ifeq ($(ATH_RGMII_CAL),1)
	@echo "#define ATH_RGMII_CAL 1" >> include/config.h
endif

ifeq ($(BOOT_FROM_NAND),1)
	@echo '#define CONFIG_ATH_NAND_BR	1'	>>include/config.h
	@echo '#define CONFIG_ATH_NAND_SUPPORT	1'	>>include/config.h
	@echo "#define ATH_CAL_NAND_PARTITION "\"$(strip ${ATH_CAL_NAND_PARTITION})\" >>include/config.h
	@echo '#define ATH_CAL_OFF_INVAL        0xbad0ff' >>include/config.h
endif
ifeq ($(ATH_DUAL_FLASH),1)
	@echo '#define CONFIG_ATH_NAND_SUPPORT	1'	>>include/config.h
	@echo "#define ATH_CAL_NAND_PARTITION "\"$(strip ${ATH_CAL_NAND_PARTITION})\" >>include/config.h
	@echo '#define ATH_CAL_OFF_INVAL        0xbad0ff' >>include/config.h
endif
ifdef FLASH_SIZE
	@echo '#define FLASH_SIZE	$(FLASH_SIZE)'	>>include/config.h
endif
	@./mkconfig -a board955x mips mips board955x atheros


board956x_config: unconfig
	@echo '#define CONFIG_ATHEROS		1'	>include/config.h
	@echo '#define CONFIG_MACH_QCA956x	1'	>>include/config.h
	@echo '#define CFG_INIT_STACK_IN_SRAM	1'	>>include/config.h
	@echo '#define CONFIG_'`echo $(CFG_BOARD_TYPE) | tr [a-z] [A-Z] | sed s/-/_/g`'	1' >>include/config.h
	@echo '#define __CONFIG_BOARD_NAME $(CFG_BOARD_TYPE)' >>include/config.h
	@echo '#define CONFIG_BOARD_NAME "$(CFG_BOARD_TYPE)"' >>include/config.h
ifdef EXT_ADDR_SUPPORT
	@echo '#define ENABLE_EXT_ADDR_SUPPORT	$(EXT_ADDR_SUPPORT)'	>>include/config.h
endif
ifdef pll
	@echo '#define CFG_PLL_FREQ		$(pll)'	>>include/config.h
else
	@echo '#define CFG_PLL_FREQ		CFG_PLL_750_400_250'	>>include/config.h
endif
ifdef ddr_cas
	@echo '#define CFG_DDR2_DRAGONFLY_CAS_LATENCY		$(ddr_cas)'	>>include/config.h
endif
ifneq (,$(findstring $(CFG_BOARD_TYPE),cus249 tb753)) #{
	@echo '#define CFG_ATH_GMAC_NMACS	2'	>>include/config.h
	@echo '#define CFG_ATH_GE1_IS_CONNECTED 1' 	>>include/config.h
endif #}
ifneq (,$(findstring $(CFG_BOARD_TYPE),ap151 ap151-020 tb754)) #{
	@echo '#define CFG_ATH_GMAC_NMACS	2'	>>include/config.h
	@echo '#define CFG_ATH_GE1_IS_CONNECTED 1' 	>>include/config.h
endif #}
ifneq (,$(findstring $(CFG_BOARD_TYPE), ap152 tb755)) #{
	@echo '#define CFG_ATH_GMAC_NMACS	1'	>>include/config.h
	@echo '#define CFG_ATH_GE1_IS_CONNECTED 1' 	>>include/config.h
	@echo '#define CONFIG_ATHRS_GMAC_SGMII  1'      >>include/config.h
	@echo '#define ATH_S17_MAC0_SGMII	1'	>>include/config.h
endif #}

ifneq (,$(findstring $(CFG_BOARD_TYPE), ap152)) #{
	@echo '#define UART_RX18_TX22           1'      >>include/config.h
endif #}
ifeq ($(CFG_BOARD_TYPE), ap151-020)
	@echo '#define UART_RX24_TX20           1'      >>include/config.h
endif 
ifeq ($(CFG_BOARD_TYPE), ap151)
	@echo '#define UART_RX18_TX20           1'      >>include/config.h
endif
ifneq (,$(findstring $(CFG_BOARD_TYPE), tb755)) #{
	@echo '#define UART_RX20_TX22           1'      >>include/config.h
endif #}

ifneq (,$(findstring $(CFG_BOARD_TYPE), tb753 tb754)) #{
	@echo '#define TEST_BOARD_UART          1'      >>include/config.h
endif #}

ifneq (,$(findstring $(CFG_BOARD_TYPE),dragonflyemu)) #{
	@echo '#define CFG_ATH_GMAC_NMACS	2'	>>include/config.h
	@echo '#define CFG_ATH_GE1_IS_CONNECTED 1' 	>>include/config.h
	@echo '#define CONFIG_ATHRS_GMAC_SGMII  1'      >>include/config.h
endif #}

ifeq ($(CFG_BOARD_TYPE), ap152)
	@echo '#define CONFIG_ATHRS_GMAC_SGMII	1'	>>include/config.h
endif

ifeq ($(ETH_CONFIG), _s27)
	@echo '#define CFG_ATHRS27_PHY		1'	>>include/config.h	
endif

ifeq ($(ETH_CONFIG), _s17)
	@echo '#define CONFIG_ATHRS17_PHY	1'	>>include/config.h
endif

ifeq ($(ETH_CONFIG), _s17_hwaccel)
	@echo '#define CONFIG_ATHRS17_PHY	1'	>>include/config.h
endif

ifeq ($(ATH_SGMII_FORCED),1)
	@echo '#define ATH_SGMII_FORCED_MODE    1'	>>include/config.h
endif

ifdef FLASH_SIZE
	@echo '#define FLASH_SIZE	$(FLASH_SIZE)'	>>include/config.h
endif
	@./mkconfig -a board956x mips mips board956x atheros


ap138_config: 	unconfig
	@echo '#define CONFIG_ATHEROS		1'	>include/config.h
	@echo '#define CONFIG_MACH_QCA955x	1'	>>include/config.h
	@echo '#define CFG_INIT_STACK_IN_SRAM	1'	>>include/config.h
ifdef pll
	@echo '#define CFG_PLL_FREQ		$(pll)'	>>include/config.h
else
	@echo '#define CFG_PLL_FREQ		CFG_PLL_720_600_240'	>>include/config.h
endif
ifeq ($(ETH_CONFIG2), _s17)
	@echo '#define CONFIG_ATHRS17_PHY	1'	>>include/config.h
	@echo '#define CFG_DUAL_PHY_SUPPORT	1'	>>include/config.h
else
ifeq ($(ETH_CONFIG), _s17)
	@echo '#define CONFIG_ATHRS17_PHY	1'	>>include/config.h
	@echo '#define CFG_ATH_GMAC_NMACS	1'	>>include/config.h
endif
endif
ifeq ($(ETH_CONFIG2), _s17_hwaccel)
	@echo '#define CONFIG_ATHRS17_PHY	1'	>>include/config.h
	@echo '#define CFG_DUAL_PHY_SUPPORT	1'	>>include/config.h
else
ifeq ($(ETH_CONFIG), _s17_hwaccel)
	@echo '#define CONFIG_ATHRS17_PHY	1'	>>include/config.h
	@echo '#define CFG_ATH_GMAC_NMACS	1'	>>include/config.h
endif
endif
ifeq ($(ETH_CONFIG), _s16)
	@echo '#define CONFIG_AR7242_S16_PHY	1'	>>include/config.h
	@echo '#define CFG_ATH_GMAC_NMACS	1'	>>include/config.h
endif
ifeq ($(ETH_CONFIG), _f1e)
	@echo '#define CONFIG_F1E_PHY		1'	>>include/config.h
	@echo '#define CFG_ATH_GMAC_NMACS	1'	>>include/config.h
endif
ifeq ($(ETH_CONFIG), _f2e)
	@echo '#define CONFIG_F2E_PHY		1'	>>include/config.h
	@echo '#define CFG_ATH_GMAC_NMACS	1'	>>include/config.h
endif

ifeq ($(ETH_CONFIG), _vir)
	@echo '#define CONFIG_VIR_PHY		1'	>>include/config.h
	@echo '#define CFG_ATH_GMAC_NMACS	1'	>>include/config.h
endif
ifeq ($(ETH_CONFIG), _s27)
	@echo '#define CFG_ATHRS27_PHY		1'	>>include/config.h
	@echo '#define CFG_ATH_GMAC_NMACS	2'	>>include/config.h
endif
ifeq ($(BOOT_FROM_NAND),1)
	@echo '#define CONFIG_ATH_NAND_BR	1'	>>include/config.h
	@echo '#define CONFIG_ATH_NAND_SUPPORT	1'	>>include/config.h
	@echo "#define ATH_CAL_NAND_PARTITION "\"$(strip ${ATH_CAL_NAND_PARTITION})\" >>include/config.h
	@echo '#define ATH_CAL_OFF_INVAL        0xbad0ff' >>include/config.h
endif
ifeq ($(ATH_DUAL_FLASH),1)
	@echo '#define CONFIG_ATH_NAND_SUPPORT	1'	>>include/config.h
	@echo "#define ATH_CAL_NAND_PARTITION "\"$(strip ${ATH_CAL_NAND_PARTITION})\" >>include/config.h
	@echo '#define ATH_CAL_OFF_INVAL        0xbad0ff' >>include/config.h
endif
ifdef FLASH_SIZE
	@echo '#define FLASH_SIZE	$(FLASH_SIZE)'	>>include/config.h
endif
	@./mkconfig -a board955x mips mips board955x atheros


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

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

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

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

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

PK1C20_config : unconfig
	@./mkconfig  PK1C20 nios2 nios2 pk1c20 psyent

PCI5441_config : unconfig
	@./mkconfig  PCI5441 nios2 nios2 pci5441 psyent

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

#########################################################################
## Blackfin
#########################################################################
ezkit533_config	:	unconfig
	@./mkconfig $(@:_config=) blackfin bf533 ezkit533

stamp_config	:	unconfig
	@./mkconfig $(@:_config=) blackfin bf533 stamp

dspstamp_config	:	unconfig
	@./mkconfig $(@:_config=) blackfin bf533 dsp_stamp

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

clean:
	@echo Making $@
	@find . -type f \
		\( -name 'core' -o -name '*.bak' -o -name '*~' \
		-o -name '*.o'  -o -name '*.a' -o -name .depend \) -print \
		| xargs rm -f
	@rm -f examples/hello_world examples/timer \
	      examples/eepro100_eeprom examples/sched \
	      examples/mem_to_mem_idma2intr examples/82559_eeprom \
	      examples/smc91111_eeprom \
	      examples/test_burst
	@rm -f tools/img2srec tools/mkimage tools/envcrc tools/gen_eth_addr
	@rm -f tools/mpc86x_clk tools/ncb
	@rm -f tools/easylogo/easylogo tools/bmp_logo
	@rm -f tools/gdb/astest tools/gdb/gdbcont tools/gdb/gdbsend
	@rm -f tools/env/fw_printenv tools/env/fw_setenv
	@rm -f board/cray/L1/bootscript.c board/cray/L1/bootscript.image
	@rm -f board/netstar/eeprom board/netstar/crcek
	@rm -f board/netstar/*.srec board/netstar/*.bin
	@rm -f board/trab/trab_fkt board/voiceblue/eeprom
	@rm -f board/integratorap/u-boot.lds board/integratorcp/u-boot.lds
ifeq ($(COMPRESSED_UBOOT),1)
	@rm -f lib_bootstrap/*.o
	@rm -f lib_bootstrap/*.a
	@rm -f bootstrap bootstrap.bin tuboot.bin u-boot.lzimg
endif

clobber:	clean
	@echo Making $@
	@find . -type f \( -name .depend \
		-o -name '*.srec' -o -name '*.bin' -o -name u-boot.img \) \
		-print0 \
		| xargs -0 rm -f
	@rm -f $(OBJS) *.bak tags TAGS include/version_autogenerated.h
	@rm -fr *.*~
	@rm -f u-boot u-boot.map u-boot.hex $(ALL)
	@rm -f tools/crc32.c tools/environment.c tools/env/crc32.c
	@rm -f tools/inca-swap-bytes cpu/mpc824x/bedbug_603e.c
	@rm -f include/asm/proc include/asm/arch include/asm

mrproper \
distclean:	clobber unconfig

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

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