diff --git a/Makefile b/Makefile
index 42d807b95dfc4ab86b86f237545673b84056125d..9f7883afb62d081d87134831c697ec1646075e67 100644
--- a/Makefile
+++ b/Makefile
@@ -475,8 +475,11 @@ unconfig:
 		$(obj)board/*/config.tmp $(obj)board/*/*/config.tmp \
 		$(obj)include/autoconf.mk $(obj)include/autoconf.mk.dep
 
-%: %_config
-	$(MAKE)
+%_config::	unconfig
+	@$(MKCONFIG) -A $(@:_config=)
+
+##%: %_config
+##	$(MAKE)
 
 #
 # Functions to generate common board directory names
@@ -488,51 +491,10 @@ ucname	= $(shell echo $(1) | sed -e 's/\(.*\)_config/\U\1/')
 # PowerPC
 #========================================================================
 
-#########################################################################
-## MPC5xx Systems
-#########################################################################
-
-cmi_mpc5xx_config:	unconfig
-	@$(MKCONFIG) $@ powerpc mpc5xx cmi
-
-PATI_config:		unconfig
-	@$(MKCONFIG) $@ powerpc mpc5xx pati mpl
-
 #########################################################################
 ## MPC5xxx Systems
 #########################################################################
 
-# generic boards
-################
-BC3450_config	\
-canmb_config	\
-cm5200_config	\
-hmi1001_config	\
-jupiter_config	\
-inka4x0_config	\
-ipek01_config	\
-motionpro_config\
-mucmc52_config	\
-munices_config	\
-o2dnt_config	\
-uc101_config	\
-v38b_config:	unconfig
-	@$(MKCONFIG) $@ powerpc mpc5xxx $(call lcname,$@)
-
-# vendor specific boards (sorted by vendor)
-###########################################
-cpci5200_config	\
-mecp5200_config	\
-pf5200_config:	unconfig
-	@$(MKCONFIG) $@ powerpc mpc5xxx $(call lcname,$@) esd
-
-aev_config	\
-smmaco4_config	\
-spieval_config:	unconfig
-	@$(MKCONFIG) $@ powerpc mpc5xxx tqm5200 tqc
-
-# special boards
-################
 digsy_mtc_config \
 digsy_mtc_LOWBOOT_config	\
 digsy_mtc_RAMBOOT_config:	unconfig
@@ -717,21 +679,6 @@ TQM5200_STK100_config:	unconfig
 ## MPC512x Systems
 #########################################################################
 
-# generic boards
-################
-pdm360ng_config:	unconfig
-	@$(MKCONFIG) $@ powerpc mpc512x $(call lcname,$@)
-
-# vendor specific boards (sorted by vendor)
-###########################################
-aria_config:	unconfig
-	@$(MKCONFIG) $@ powerpc mpc512x aria davedenx
-
-mecp5123_config:	unconfig
-	@$(MKCONFIG) $@ powerpc mpc512x mecp5123 esd
-
-# special boards
-################
 mpc5121ads_config \
 mpc5121ads_rev2_config	\
 	: unconfig
@@ -745,80 +692,6 @@ mpc5121ads_rev2_config	\
 ## MPC8xx Systems
 #########################################################################
 
-# generic boards
-################
-
-c2mon_config		\
-EP88x_config		\
-ESTEEM192E_config	\
-ETX094_config		\
-FLAGADM_config		\
-GENIETV_config		\
-GTH_config		\
-hermes_config		\
-IP860_config		\
-LANTEC_config		\
-lwmon_config		\
-NX823_config		\
-quantum_config		\
-R360MPI_config		\
-RBC823_config		\
-rmu_config		\
-spc1920_config		\
-svm_sc8xx_config	\
-uc100_config	:	unconfig
-	@$(MKCONFIG) $@ powerpc mpc8xx $(call lcname,$@)
-
-RPXClassic_config	\
-RPXlite_config		\
-RRvision_config	:	unconfig
-	@$(MKCONFIG) $@ powerpc mpc8xx $(@:_config=)
-
-# vendor specific boards (sorted by vendor)
-###########################################
-
-MHPC_config:		unconfig
-	@$(MKCONFIG) $@ powerpc mpc8xx mhpc eltec
-
-TOP860_config:		unconfig
-	@$(MKCONFIG) $@ powerpc mpc8xx top860 emk
-
-kmsupx4_config	\
-mgsuvd_config	:	unconfig
-	@$(MKCONFIG) $@ powerpc mpc8xx km8xx keymile
-
-KUP4K_config	\
-KUP4X_config	:	unconfig
-	@$(MKCONFIG) $@ powerpc mpc8xx $(call lcname,$@) kup
-
-ELPT860_config:		unconfig
-	@$(MKCONFIG) $@ powerpc mpc8xx elpt860 LEOX
-
-stxxtc_config:	unconfig
-	@$(MKCONFIG) $@ powerpc mpc8xx stxxtc stx
-
-HMI10_config	\
-SM850_config	:	unconfig
-	@$(MKCONFIG) $@ powerpc mpc8xx tqm8xx tqc
-
-CCM_config	\
-IAD210_config	\
-pcu_e_config	:	unconfig
-	@$(MKCONFIG) $@ powerpc mpc8xx $(@:_config=) siemens
-
-QS823_config	\
-QS850_config	:	unconfig
-	@$(MKCONFIG) $@ powerpc mpc8xx qs850 snmc
-
-QS860T_config	:	unconfig
-	@$(MKCONFIG) $@ powerpc mpc8xx qs860t snmc
-
-AMX860_config	:	unconfig
-	@$(MKCONFIG) $@ powerpc mpc8xx amx860 westel
-
-# special boards
-################
-
 Adder87x_config \
 AdderII_config	\
 AdderUSB_config	\
@@ -829,9 +702,6 @@ Adder_config	\
 		@echo "#define CONFIG_MPC852T" > $(obj)include/config.h)
 	@$(MKCONFIG) -n $@ -a Adder powerpc mpc8xx adder
 
-cogent_mpc8xx_config:	unconfig
-	@$(MKCONFIG) $(@:_config=) powerpc mpc8xx cogent
-
 ADS860_config	  \
 FADS823_config	  \
 FADS850SAR_config \
@@ -1031,103 +901,6 @@ wtk_config:	unconfig
 ## PPC4xx Systems
 #########################################################################
 
-# generic boards
-################
-
-csb272_config	\
-csb472_config	\
-ERIC_config	\
-G2000_config	\
-JSE_config	\
-korat_config	\
-lwmon5_config	\
-ML2_config	\
-pcs440ep_config	\
-quad100hd_config\
-sbc405_config	\
-sc3_config	\
-zeus_config:	unconfig
-	@$(MKCONFIG) $@ powerpc ppc4xx $(call lcname,$@)
-
-# vendor specific boards (sorted by vendor)
-###########################################
-
-acadia_config	\
-bamboo_config	\
-bubinga_config	\
-ebony_config	\
-katmai_config	\
-luan_config	\
-makalu_config	\
-ocotea_config	\
-redwood_config	\
-taihu_config	\
-taishan_config	\
-yucca_config:	unconfig
-	@$(MKCONFIG) $@ powerpc ppc4xx $(call lcname,$@) amcc
-
-AP1000_config:unconfig
-	@$(MKCONFIG) $@ powerpc ppc4xx $(call lcname,$@) amirix
-
-ADCIOP_config	\
-APC405_config	\
-AR405_config	\
-ASH405_config	\
-CANBT_config	\
-CMS700_config	\
-CPCI2DP_config	\
-CPCIISER4_config\
-DASA_SIM_config	\
-DP405_config	\
-DU405_config	\
-DU440_config	\
-HH405_config	\
-HUB405_config	\
-PCI405_config	\
-PLU405_config	\
-PMC405_config	\
-PMC405DE_config	\
-PMC440_config	\
-VOH405_config	\
-VOM405_config	\
-WUH405_config:	unconfig
-	@$(MKCONFIG) $@ powerpc ppc4xx $(call lcname,$@) esd
-
-CRAYL1_config:	unconfig
-	@$(MKCONFIG) $@ powerpc ppc4xx L1 cray
-
-dlvision_config		\
-gdppc440etx_config	\
-neo_config	:	unconfig
-	@$(MKCONFIG) $@ powerpc ppc4xx $(call lcname,$@) gdsys
-
-icon_config:	unconfig
-	@$(MKCONFIG) $@ powerpc ppc4xx $(call lcname,$@) mosaixtech
-
-MIP405_config	\
-PIP405_config:	unconfig
-	@$(MKCONFIG) $@ powerpc ppc4xx $(call lcname,$@) mpl
-
-hcu4_config	\
-hcu5_config	\
-mcu25_config:  unconfig
-	@mkdir -p $(obj)board/netstal/common
-	@$(MKCONFIG) $@ powerpc ppc4xx $(call lcname,$@) netstal
-
-alpr_config	\
-p3p440_config:	unconfig
-	@$(MKCONFIG) $@ powerpc ppc4xx $(call lcname,$@) prodrive
-
-KAREF_config	\
-METROBOX_config: unconfig
-	@$(MKCONFIG) $@ powerpc ppc4xx $(call lcname,$@) sandburst
-
-XPEDITE1000_config:	unconfig
-	@$(MKCONFIG) $@ powerpc ppc4xx $(call lcname,$@) xes
-
-# special boards
-################
-
 acadia_nand_config:	unconfig
 	@mkdir -p $(obj)include $(obj)board/amcc/acadia
 	@mkdir -p $(obj)nand_spl/board/amcc/acadia
@@ -1209,6 +982,12 @@ devconcenter_config:	unconfig
 		tr '[:lower:]' '[:upper:]')" >$(obj)include/config.h
 	@$(MKCONFIG) -n $@ -a intip powerpc ppc4xx intip gdsys
 
+hcu4_config    \
+hcu5_config    \
+mcu25_config:  unconfig
+	@mkdir -p $(obj)board/netstal/common
+	@$(MKCONFIG) $@ powerpc ppc4xx $(call lcname,$@) netstal
+
 # Kilauea & Haleakala images are identical (recognized via PVR)
 kilauea_config \
 haleakala_config: unconfig
@@ -1366,48 +1145,10 @@ yellowstone_config: unconfig
 		tr '[:lower:]' '[:upper:]')" >$(obj)include/config.h
 	@$(MKCONFIG) -n $@ -a yosemite powerpc ppc4xx yosemite amcc
 
-#########################################################################
-## MPC8220 Systems
-#########################################################################
-
-# generic boards
-################
-sorcery_config:		unconfig
-	@$(MKCONFIG) $@ powerpc mpc8220 $(call lcname,$@)
-
-Alaska8220_config	\
-Yukon8220_config:	unconfig
-	@$(MKCONFIG) $@ powerpc mpc8220 alaska
-
 #########################################################################
 ## MPC824x Systems
 #########################################################################
 
-# generic boards
-################
-A3000_config	\
-barco_config	\
-BMW_config	\
-CU824_config	\
-HIDDEN_DRAGON_config \
-MOUSSE_config	\
-MUSENKI_config	\
-MVBLUE_config	\
-OXC_config	\
-PN62_config	\
-sbc8240_config	\
-utx8245_config:	unconfig
-	@$(MKCONFIG) $@ powerpc mpc824x $(call lcname,$@)
-
-# vendor specific boards (sorted by vendor)
-###########################################
-
-debris_config	\
-kvme080_config:	unconfig
-	@$(MKCONFIG) $@ powerpc mpc824x $(call lcname,$@) etin
-
-# special boards
-################
 eXalion_config: unconfig
 	@$(MKCONFIG) $(@:_config=) powerpc mpc824x eXalion
 
@@ -1444,41 +1185,6 @@ Sandpoint8245_config: unconfig
 ## MPC8260 Systems
 #########################################################################
 
-# generic boards
-################
-atc_config		\
-ep8260_config		\
-ep82xxm_config		\
-gw8260_config		\
-hymod_config		\
-IDS8247_config		\
-IPHASE4539_config	\
-ppmc8260_config		\
-RPXsuper_config		\
-rsdproto_config		\
-sacsng_config		\
-sbc8260_config		\
-ZPC1900_config:		unconfig
-	@$(MKCONFIG) $@ powerpc mpc8260 $(call lcname,$@)
-
-# vendor specific boards (sorted by vendor)
-###########################################
-
-MPC8266ADS_config:	unconfig
-	@$(MKCONFIG) $@ powerpc mpc8260 $(call lcname,$@) freescale
-
-mgcoge_config	:	unconfig
-	@$(MKCONFIG) $@ powerpc mpc8260 $(call lcname,$@) keymile
-
-SCM_config:		unconfig
-	@$(MKCONFIG) $@ powerpc mpc8260 $(call ucname,$@) siemens
-
-TQM8272_config: unconfig
-	@$(MKCONFIG) TQM8272 powerpc mpc8260 $(call lcname,$@) tqc
-
-# special boards
-################
-
 cogent_mpc8260_config:	unconfig
 	@$(MKCONFIG) $(@:_config=) powerpc mpc8260 cogent
 
@@ -1661,35 +1367,6 @@ VoVPN-GW_100MHz_config:		unconfig
 ## Coldfire
 #########################################################################
 
-# generic boards
-################
-
-idmr_config:		unconfig
-	@$(MKCONFIG) $@ m68k mcf52x2 $(call lcname,$@)
-
-# vendor specific boards (sorted by vendor)
-###########################################
-
-TASREG_config :		unconfig
-	@$(MKCONFIG) $@ m68k mcf52x2 $(call lcname,$@) esd
-
-M5208EVBE_config	\
-M5249EVB_config		\
-M5253DEMO_config	\
-M5253EVBE_config	\
-M5271EVB_config		\
-M5272C3_config		\
-M5275EVB_config		\
-M5282EVB_config		\
-M53017EVB_config:	unconfig
-	@$(MKCONFIG) $@ m68k mcf52x2 $(call lcname,$@) freescale
-
-EP2500_config	:	unconfig
-	@$(MKCONFIG) $@ m68k mcf52x2 $(call lcname,$@) Mercury
-
-# special boards
-################
-
 astro_mcf5373l_config \
 astro_mcf5373l_RAM_config :	unconfig
 	@$(MKCONFIG) -n $@ -t $@ astro_mcf5373l m68k mcf532x mcf5373l astro
@@ -1896,29 +1573,6 @@ M5485HFE_config :	unconfig
 ## MPC83xx Systems
 #########################################################################
 
-# generic boards
-################
-
-# vendor specific boards (sorted by vendor)
-###########################################
-
-MPC8323ERDB_config	\
-MPC8349EMDS_config	\
-MPC837XERDB_config:	unconfig
-	@$(MKCONFIG) $@ powerpc mpc83xx $(call lcname,$@) freescale
-
-kmeter1_config: unconfig
-	@$(MKCONFIG) $@ powerpc mpc83xx $(call lcname,$@) keymile
-
-MVBLM7_config: unconfig
-	@$(MKCONFIG) $@ powerpc mpc83xx $(call lcname,$@) matrix_vision
-
-TQM834x_config:	unconfig
-	@$(MKCONFIG) $@ powerpc mpc83xx $(call lcname,$@) tqc
-
-# special boards
-################
-
 MPC8313ERDB_33_config \
 MPC8313ERDB_66_config \
 MPC8313ERDB_NAND_33_config \
@@ -2055,33 +1709,6 @@ vme8349_config:		unconfig
 ## MPC85xx Systems
 #########################################################################
 
-# generic boards
-################
-
-ATUM8548_config		\
-PM854_config		\
-PM856_config		\
-socrates_config:	unconfig
-	@$(MKCONFIG) $@ powerpc mpc85xx $(call lcname,$@)
-
-# vendor specific boards (sorted by vendor)
-###########################################
-
-MPC8540ADS_config	\
-MPC8560ADS_config	\
-MPC8544DS_config	\
-MPC8568MDS_config:	unconfig
-	@$(MKCONFIG) $@ powerpc mpc85xx $(call lcname,$@) freescale
-
-stxgp3_config:		unconfig
-	@$(MKCONFIG) $@ powerpc mpc85xx $(call lcname,$@) stx
-
-XPEDITE5200_config	\
-XPEDITE5370_config:	unconfig
-	@$(MKCONFIG) $@ powerpc mpc85xx $(call lcname,$@) xes
-
-# special boards
-################
 MPC8536DS_NAND_config \
 MPC8536DS_SDCARD_config \
 MPC8536DS_SPIFLASH_config \
@@ -2204,24 +1831,6 @@ TQM8560_config:		unconfig
 ## MPC86xx Systems
 #########################################################################
 
-# generic boards
-################
-
-sbc8641d_config:	unconfig
-	@$(MKCONFIG) $@ powerpc mpc86xx $(call lcname,$@)
-
-# vendor specific boards (sorted by vendor)
-###########################################
-
-MPC8610HPCD_config:	unconfig
-	@$(MKCONFIG) $@ powerpc mpc86xx $(call lcname,$@) freescale
-
-XPEDITE5170_config:	unconfig
-	@$(MKCONFIG) $@ powerpc mpc86xx $(call lcname,$@) xes
-
-# special boards
-################
-
 MPC8641HPCN_36BIT_config \
 MPC8641HPCN_config:    unconfig
 	@mkdir -p $(obj)include
@@ -2234,42 +1843,10 @@ MPC8641HPCN_config:    unconfig
 ## 74xx/7xx Systems
 #########################################################################
 
-# generic boards
-################
-
-ppmc7xx_config: unconfig
-	@$(MKCONFIG) $@ powerpc 74xx_7xx $(call lcname,$@)
-
-# vendor specific boards (sorted by vendor)
-###########################################
-
-BAB7xx_config	\
-ELPPC_config:	unconfig
-	@$(MKCONFIG) $@ powerpc 74xx_7xx $(call lcname,$@) eltec
-
-CPCI750_config:	unconfig
-	@$(MKCONFIG) $@ powerpc 74xx_7xx $(call lcname,$@) esd
-
-mpc7448hpc2_config:  unconfig
-	@$(MKCONFIG) $@ powerpc 74xx_7xx $(call lcname,$@) freescale
-
-AmigaOneG3SE_config:	unconfig
-	@$(MKCONFIG) $@ powerpc 74xx_7xx $(@:_config=) MAI
-
-DB64360_config	\
-DB64460_config:	unconfig
-	@$(MKCONFIG) $@ powerpc 74xx_7xx $(call lcname,$@) Marvell
-
-# special boards
-################
-
 EVB64260_config	\
 EVB64260_750CX_config:	unconfig
 	@$(MKCONFIG) -n $@ EVB64260 powerpc 74xx_7xx evb64260
 
-P3G4_config: unconfig
-	@$(MKCONFIG) $@ powerpc 74xx_7xx evb64260
-
 p3m750_config	\
 p3m7448_config:		unconfig
 	@mkdir -p $(obj)include
@@ -2284,100 +1861,14 @@ PCIPPC2_config \
 PCIPPC6_config: unconfig
 	@$(MKCONFIG) -n $@ $@ powerpc 74xx_7xx pcippc2
 
-ZUMA_config:	unconfig
-	@$(MKCONFIG) $@ powerpc 74xx_7xx evb64260
-
 #========================================================================
 # ARM
 #========================================================================
-#########################################################################
-## StrongARM Systems
-#########################################################################
-
-# generic boards
-################
-assabet_config	\
-dnp1110_config	\
-gcplus_config	\
-lart_config	\
-shannon_config	:	unconfig
-	@$(MKCONFIG) $@ arm sa1100 $(call lcname,$@)
-
-#########################################################################
-## ARM92xT Systems
-#########################################################################
-
-# generic boards
-################
-
-edb9301_config \
-edb9302_config \
-edb9302a_config \
-edb9307_config \
-edb9307a_config \
-edb9312_config \
-edb9315_config \
-edb9315a_config: unconfig
-	@$(MKCONFIG) -n $@ -t $@ edb93xx arm arm920t edb93xx NULL ep93xx
-
-mx1ads_config	\
-mx1fs2_config	:	unconfig
-	@$(MKCONFIG) $@ arm arm920t $(call lcname,$@) NULL imx
-
-sbc2410x_config: unconfig
-	@$(MKCONFIG) $@ arm arm920t $(call lcname,$@) NULL s3c24x0
-
-scb9328_config	:	unconfig
-	@$(MKCONFIG) $@ arm arm920t $(call lcname,$@) NULL imx
-
-cm4008_config	\
-cm41xx_config	:	unconfig
-	@$(MKCONFIG) $@ arm arm920t $(call lcname,$@) NULL ks8695
-
-netstar_config		\
-voiceblue_config:	unconfig
-	@$(MKCONFIG) $@ arm arm925t $(call lcname,$@)
-
-# vendor specific boards (sorted by vendor)
-###########################################
-
-a320evb_config	:	unconfig
-	@$(MKCONFIG) $@ arm arm920t $(call lcname,$@) faraday a320
-
-smdk2400_config		\
-smdk2410_config	:	unconfig
-	@$(MKCONFIG) $@ arm arm920t $(call lcname,$@) samsung s3c24x0
 
 #########################################################################
 ## Atmel AT91RM9200 Systems
 #########################################################################
 
-# generic boards
-################
-
-cmc_pu2_config	\
-csb637_config	\
-kb9202_config	\
-m501sk_config	\
-mp2usb_config	:	unconfig
-	@$(MKCONFIG) $@ arm arm920t $(call lcname,$@) NULL at91rm9200
-
-# vendor specific boards (sorted by vendor)
-###########################################
-
-at91rm9200dk_config	\
-at91rm9200ek_config	:	unconfig
-	@$(MKCONFIG) $@ arm arm920t $(call lcname,$@) atmel at91rm9200
-
-eb_cpux9k2_config	:	unconfig
-	@$(MKCONFIG) $@ arm arm920t $(call lcname,$@) BuS at91
-
-omap1510inn_config :	unconfig
-	@$(MKCONFIG) $@ arm arm925t $(call lcname,$@) ti
-
-# special boards
-################
-
 CPUAT91_RAM_config \
 CPUAT91_config	:	unconfig
 	@mkdir -p $(obj)include
@@ -2388,42 +1879,6 @@ CPUAT91_config	:	unconfig
 ## ARM926EJ-S Systems
 #########################################################################
 
-# generic boards
-################
-
-afeb9260_config:	unconfig
-	@$(MKCONFIG) $@ arm arm926ejs $(call lcname,$@) NULL at91
-
-# vendor specific boards (sorted by vendor)
-###########################################
-
-at91cap9adk_config	:	unconfig
-	@$(MKCONFIG) $@ arm arm926ejs $(call lcname,$@) atmel at91
-
-meesc_config	\
-otc570_config	:	unconfig
-	@$(MKCONFIG) $@ arm arm926ejs $(call lcname,$@) esd at91
-
-guruplug_config		\
-mv88f6281gtw_ge_config	\
-openrd_base_config	\
-rd6281a_config		\
-sheevaplug_config:	unconfig
-	@$(MKCONFIG) $@ arm arm926ejs $(call lcname,$@) Marvell kirkwood
-
-VCMA9_config	:	unconfig
-	@$(MKCONFIG) $@ arm arm920t $(call lcname,$@) mpl s3c24x0
-
-pm9261_config	\
-pm9263_config	:	unconfig
-	@$(MKCONFIG) $@ arm arm926ejs $(call lcname,$@) ronetix at91
-
-omap5912osk_config :	unconfig
-	@$(MKCONFIG) $@ arm arm926ejs $(call lcname,$@) ti omap
-
-# special boards
-################
-
 at91sam9260ek_nandflash_config \
 at91sam9260ek_dataflash_cs0_config \
 at91sam9260ek_dataflash_cs1_config \
@@ -2599,14 +2054,6 @@ davinci_dm6467evm_config	:	unconfig
 	@$(MKCONFIG) -n $@ $@ arm arm926ejs \
 		$(subst davinci_,,$(@:_config=)) davinci davinci
 
-magnesium_config	\
-imx27lite_config:	unconfig
-	@$(MKCONFIG) $@ arm arm926ejs imx27lite logicpd mx27
-
-lpd7a400_config \
-lpd7a404_config:	unconfig
-	@$(MKCONFIG) $@ arm lh7a40x lpd7a40x
-
 nhk8815_config \
 nhk8815_onenand_config:	unconfig
 	@mkdir -p $(obj)include
@@ -2655,9 +2102,6 @@ spear320_config :	unconfig
 spear600_config :	unconfig
 	@$(MKCONFIG) -n $@ -t $@ spear6xx arm arm926ejs $(@:_config=) spear spear
 
-suen3_config:	unconfig
-	@$(MKCONFIG) $@ arm arm926ejs km_arm keymile kirkwood
-
 SX1_stdout_serial_config \
 SX1_config:		unconfig
 	@mkdir -p $(obj)include
@@ -2689,12 +2133,22 @@ trab_old_config:	unconfig
 		  echo "#define CONFIG_RAM_16MB"   >>$(obj)include/config.h ; \
 		  echo "TEXT_BASE = 0x0CF40000" >$(obj)board/trab/config.tmp ; \
 		}
-	@$(MKCONFIG) -n $@ -a trab arm arm920t trab NULL s3c24x0
+	@$(MKCONFIG) -n $@ -a trab arm arm920t trab - s3c24x0
 
 tx25_config	: unconfig
 	@echo "CONFIG_NAND_U_BOOT = y" >> $(obj)include/config.mk
 	@$(MKCONFIG) $@ arm arm926ejs tx25 karo mx25
 
+edb9301_config \
+edb9302_config \
+edb9302a_config \
+edb9307_config \
+edb9307a_config \
+edb9312_config \
+edb9315_config \
+edb9315a_config: unconfig
+	@$(MKCONFIG) -n $@ -t $(@:_config=) edb93xx arm arm920t edb93xx - ep93xx
+
 #########################################################################
 # ARM supplied Versatile development boards
 #########################################################################
@@ -2704,105 +2158,10 @@ versatileab_config	\
 versatilepb_config :	unconfig
 	@board/armltd/versatile/split_by_variant.sh $@
 
-#########################################################################
-## S3C44B0 Systems
-#########################################################################
-
-B2_config	:	unconfig
-	@$(MKCONFIG) $@ arm s3c44b0 $(call ucname,$@) dave
-
-#########################################################################
-## ARM720T Systems
-#########################################################################
-
-# generic boards
-################
-
-armadillo_config	\
-ep7312_config		\
-impa7_config		\
-modnet50_config :	unconfig
-	@$(MKCONFIG) $@ arm arm720t $(call lcname,$@)
-
-evb4510_config :	unconfig
-	@$(MKCONFIG) $@ arm arm720t $(call lcname,$@) NULL s3c4510b
-
-lpc2292sodimm_config:	unconfig
-	@$(MKCONFIG) $@ arm arm720t $(call lcname,$@) NULL lpc2292
-
-# vendor specific boards (sorted by vendor)
-###########################################
-
-SMN42_config	:	unconfig
-	@$(MKCONFIG) $@ arm arm720t $(call ucname,$@) siemens lpc2292
-
-#########################################################################
-## ARM CORTEX Systems
-#########################################################################
-omapname = $(shell echo $(1) | sed -e 's/omap[0-9]_//' -e 's/\(.*\)_config/\L\1/')
-
-# generic boards
-################
-
-omap3_overo_config	\
-omap3_pandora_config :	unconfig
-	@$(MKCONFIG) $@ arm arm_cortexa8 $(call omapname,$@) NULL omap3
-
-# vendor specific boards (sorted by vendor)
-###########################################
-
-mx51evk_config	: unconfig
-	@$(MKCONFIG) $@ arm arm_cortexa8 $(call lcname,$@) freescale mx51
-
-omap3_zoom1_config	\
-omap3_zoom2_config :	unconfig
-	@$(MKCONFIG) $@ arm arm_cortexa8 $(call omapname,$@) logicpd omap3
-
-smdkc100_config:	unconfig
-	@$(MKCONFIG) $@ arm arm_cortexa8 $(call lcname,$@) samsung s5pc1xx
-
-omap3_beagle_config	\
-omap3_evm_config	\
-omap3_sdp3430_config :	unconfig
-	@$(MKCONFIG) $@ arm arm_cortexa8 $(call omapname,$@) ti omap3
-
-devkit8000_config :	unconfig
-	@$(MKCONFIG) $@ arm arm_cortexa8 $(call lcname,$@) timll omap3
-
 #########################################################################
 ## XScale Systems
 #########################################################################
 
-# generic boards
-################
-
-actux1_config	\
-actux2_config	\
-actux3_config	\
-actux4_config	\
-ixdp425_config	\
-ixdpg425_config	:	unconfig
-	@$(MKCONFIG) $@ arm ixp $(call lcname,$@)
-
-cerf250_config	\
-cradle_config	\
-csb226_config	\
-delta_config	\
-innokom_config	\
-lubbock_config	\
-pleb2_config	\
-logodl_config	\
-pxa255_idp_config \
-wepep250_config	\
-xaeniax_config	\
-xm250_config	\
-xsengine_config \
-zylonite_config :
-	@$(MKCONFIG) $@ arm pxa $(call lcname,$@)
-
-# special boards
-################
-
 pdnb3_config \
 scpu_config:	unconfig
 	@mkdir -p $(obj)include
@@ -2823,32 +2182,11 @@ trizepsiv_config	:	unconfig
 ## ARM1136 Systems
 #########################################################################
 
-# generic boards
-################
-
-# vendor specific boards (sorted by vendor)
-###########################################
-
-qong_config		: unconfig
-	@$(MKCONFIG) $@ arm arm1136 $(call lcname,$@) davedenx mx31
-
-mx31ads_config		: unconfig
-	@$(MKCONFIG) $@ arm arm1136 $(call lcname,$@) freescale mx31
-
-imx31_litekit_config	: unconfig
-	@$(MKCONFIG) $@ arm arm1136 $(call lcname,$@) logicpd mx31
-
-omap2420h4_config	: unconfig
-	@$(MKCONFIG) $@ arm arm1136 $(call lcname,$@) ti omap24xx
-
-# special boards
-################
-
 apollon_config		: unconfig
 	@mkdir -p $(obj)include
 	@echo "#define CONFIG_ONENAND_U_BOOT" > $(obj)include/config.h
 	@echo "CONFIG_ONENAND_U_BOOT = y" >> $(obj)include/config.mk
-	@$(MKCONFIG) $@ arm arm1136 apollon NULL omap24xx
+	@$(MKCONFIG) $@ arm arm1136 apollon - omap24xx
 
 imx31_phycore_eet_config \
 imx31_phycore_config	: unconfig
@@ -2856,7 +2194,7 @@ imx31_phycore_config	: unconfig
 	@if [ -n "$(findstring _eet_,$@)" ]; then			\
 		echo "#define CONFIG_IMX31_PHYCORE_EET" >> $(obj)include/config.h;	\
 	fi
-	@$(MKCONFIG) -n $@ -a imx31_phycore arm arm1136 imx31_phycore NULL mx31
+	@$(MKCONFIG) -n $@ -a imx31_phycore arm arm1136 imx31_phycore - mx31
 
 mx31pdk_config \
 mx31pdk_nand_config	: unconfig
@@ -2885,23 +2223,6 @@ smdk6400_config	:	unconfig
 	fi
 	@$(MKCONFIG) $(subst _noUSB,,$(@:_config=)) arm arm1176 smdk6400 samsung s3c64xx
 
-#========================================================================
-# i386
-#========================================================================
-#########################################################################
-## AMD SC520 CDP
-#########################################################################
-
-# generic boards
-################
-eNET_config		\
-sc520_cdp_config	\
-sc520_spunk_config	:	unconfig
-	@$(MKCONFIG) $@ i386 i386 $(call lcname,$@) NULL sc520
-
-sc520_spunk_rel_config	:	unconfig
-	@$(MKCONFIG) $@ i386 i386 sc520_spunk NULL sc520
-
 #========================================================================
 # MIPS
 #========================================================================
@@ -2909,15 +2230,6 @@ sc520_spunk_rel_config	:	unconfig
 ## MIPS32 4Kc
 #########################################################################
 
-# generic boards
-################
-
-tb0229_config: unconfig
-	@$(MKCONFIG) $@ mips mips $(call lcname,$@)
-
-# special boards
-################
-
 incaip_100MHz_config	\
 incaip_133MHz_config	\
 incaip_150MHz_config	\
@@ -3000,13 +2312,6 @@ qemu_mips_config	: unconfig
 	@echo "#define CONFIG_QEMU_MIPS 1" >$(obj)include/config.h
 	@$(MKCONFIG) -a qemu-mips mips mips qemu-mips
 
-#########################################################################
-## MIPS64 5Kc
-#########################################################################
-
-purple_config :		unconfig
-	@$(MKCONFIG) $@ mips mips purple
-
 #========================================================================
 # Nios
 #========================================================================
@@ -3015,78 +2320,20 @@ purple_config :		unconfig
 ## Nios-II
 #########################################################################
 
-# vendor specific boards (sorted by vendor)
-###########################################
-
-EP1C20_config	\
-EP1S10_config	\
-EP1S40_config	: unconfig
-	@$(MKCONFIG) $@ nios2 nios2 $(call lcname,$@) altera
-
-PK1C20_config	\
-PCI5441_config	: unconfig
-	@$(MKCONFIG) $@ nios2 nios2 $(call lcname,$@) psyent
-
 # nios2 generic boards
 NIOS2_GENERIC = nios2-generic
 
 $(NIOS2_GENERIC:%=%_config) : unconfig
 	@$(MKCONFIG) $@ nios2 nios2 nios2-generic altera
 
-#========================================================================
-## Microblaze
-#========================================================================
-
-microblaze-generic_config:	unconfig
-	@$(MKCONFIG) $@ microblaze microblaze microblaze-generic xilinx
-
 #========================================================================
 # Blackfin
 #========================================================================
 
-# Analog Devices boards
-BFIN_BOARDS = bf518f-ezbrd bf526-ezbrd bf527-ezkit bf533-ezkit bf533-stamp \
-	bf537-pnav bf537-stamp bf538f-ezkit bf548-ezkit bf561-ezkit
-
-# Bluetechnix tinyboards
-BFIN_BOARDS += cm-bf527 cm-bf533 cm-bf537e cm-bf537u cm-bf548 cm-bf561 \
-	tcm-bf518 tcm-bf537
-
-# Misc third party boards
-BFIN_BOARDS += bf537-minotaur bf537-srv1 bf561-acvilon blackstamp ip04
-
-# I-SYST Micromodule
-BFIN_BOARDS += ibf-dsp561
-
-$(BFIN_BOARDS:%=%_config)	: unconfig
-	@$(MKCONFIG) $@ blackfin blackfin $(@:_config=)
-
 bf527-ezkit-v2_config	: unconfig
 	@$(MKCONFIG) -t BF527_EZKIT_REV_2_1 \
 		bf527-ezkit blackfin blackfin bf527-ezkit
 
-#========================================================================
-# AVR32
-#========================================================================
-
-atngw100_config	:	unconfig
-	@$(MKCONFIG) $@ avr32 at32ap atngw100 atmel at32ap700x
-
-atstk1002_config	\
-atstk1003_config	\
-atstk1004_config	\
-atstk1006_config	:	unconfig
-	@$(MKCONFIG) $@ avr32 at32ap atstk1000 atmel at32ap700x
-
-favr-32-ezkit_config	:	unconfig
-	@$(MKCONFIG) $@ avr32 at32ap favr-32-ezkit earthlcd at32ap700x
-
-hammerhead_config	:	unconfig
-	@$(MKCONFIG) $@ avr32 at32ap hammerhead miromico at32ap700x
-
-mimc200_config		:	unconfig
-	@$(MKCONFIG) $@ avr32 at32ap mimc200 mimc at32ap700x
-
 #========================================================================
 # SH3 (SuperH)
 #========================================================================
@@ -3169,28 +2416,6 @@ espt_config  :   unconfig
 	@echo "#define CONFIG_ESPT 1" > $(obj)include/config.h
 	@$(MKCONFIG) -a $@ sh sh4 espt
 
-#========================================================================
-# SPARC
-#========================================================================
-
-#########################################################################
-## LEON2
-#########################################################################
-
-grsim_leon2_config : unconfig
-	@$(MKCONFIG) $@ sparc leon2 $(call lcname,$@) gaisler
-
-#########################################################################
-## LEON3
-#########################################################################
-
-gr_xc3s_1500_config	\
-gr_cpci_ax2000_config	\
-gr_ep2s60_config	\
-grsim_config	:	unconfig
-	@$(MKCONFIG) $@ sparc leon3 $(call lcname,$@) gaisler
-
-#########################################################################
 #########################################################################
 #########################################################################
 
diff --git a/boards.cfg b/boards.cfg
new file mode 100644
index 0000000000000000000000000000000000000000..e54673e960866822e45882447b59989092e4c773
--- /dev/null
+++ b/boards.cfg
@@ -0,0 +1,356 @@
+#
+# List of boards
+#
+# Syntax:
+#	white-space separated list of entries;
+#	each entry has the following fields:
+#
+#	Targetname  Architecture  CPU  Boardname  Vendor  SoC
+#
+#	Unused fields can be specified as "-", or omitted if they
+#	are the last field on the line.
+#
+#	Lines starting with '#' are comments.
+#	Blank lines are ignored.
+#
+# To keep the list sorted, use something like
+#
+#	:.,$! sort -f -k2,2 -k3,3 -k6,6 -k5,5 -k1,1
+#
+# Target	ARCH	CPU		Board name	Vendor		SoC
+###########################################################################
+
+qong		arm	arm1136		-		davedenx	mx31
+mx31ads		arm	arm1136		-		freescale	mx31
+ep7312		arm	arm720t
+impa7		arm	arm720t
+SMN42		arm	arm720t		-		siemens		lpc2292
+evb4510		arm	arm720t		-		-		s3c4510b
+a320evb		arm	arm920t		-		faraday		a320
+cmc_pu2		arm	arm920t		-		-		at91rm9200
+csb637		arm	arm920t		-		-		at91rm9200
+kb9202		arm	arm920t		-		-		at91rm9200
+m501sk		arm	arm920t		-		-		at91rm9200
+mp2usb		arm	arm920t		-		-		at91rm9200
+mx1ads		arm	arm920t		-		-		imx
+mx1fs2		arm	arm920t		-		-		imx
+scb9328		arm	arm920t		-		-		imx
+cm4008		arm	arm920t		-		-		ks8695
+cm41xx		arm	arm920t		-		-		ks8695
+VCMA9		arm	arm920t		vcma9		mpl		s3c24x0
+netstar		arm	arm925t
+meesc		arm	arm926ejs	-		esd		at91
+otc570		arm	arm926ejs	-		esd		at91
+pm9261		arm	arm926ejs	-		ronetix		at91
+pm9263		arm	arm926ejs	-		ronetix		at91
+suen3		arm	arm926ejs	km_arm		keymile		kirkwood
+rd6281a		arm	arm926ejs	-		Marvell		kirkwood
+mx51evk		arm	arm_cortexa8	mx51evk		freescale	mx51
+actux1		arm	ixp
+actux2		arm	ixp
+actux3		arm	ixp
+actux4		arm	ixp
+ixdp425		arm	ixp
+cerf250		arm	pxa
+cradle		arm	pxa
+csb226		arm	pxa
+delta		arm	pxa
+innokom		arm	pxa
+logodl		arm	pxa
+lubbock		arm	pxa
+pleb2		arm	pxa
+xaeniax		arm	pxa
+xm250		arm	pxa
+B2		arm	s3c44b0		-		dave
+assabet		arm	sa1100
+dnp1110		arm	sa1100
+gcplus		arm	sa1100
+lart		arm	sa1100
+shannon		arm	sa1100
+mimc200		avr32	at32ap		-		mimc		at32ap700x
+eNET		i386	i386		-		-		sc520
+idmr		m68k	mcf52x2
+TASREG		m68k	mcf52x2		tasreg		esd
+M5272C3		m68k	mcf52x2		m5272c3		freescale
+EP2500		m68k	mcf52x2		ep2500		Mercury
+purple		mips	mips
+tb0229		mips	mips
+EP1C20		nios2	nios2		ep1c20		altera
+EP1S10		nios2	nios2		ep1s10		altera
+EP1S40		nios2	nios2		ep1s40		altera
+PCI5441		nios2	nios2		pci5441		psyent
+PK1C20		nios2	nios2		pk1c20		psyent
+P3G4		powerpc	74xx_7xx	evb64260
+ppmc7xx		powerpc	74xx_7xx
+ZUMA		powerpc	74xx_7xx	evb64260
+BAB7xx		powerpc	74xx_7xx 	bab7xx		eltec
+ELPPC		powerpc	74xx_7xx 	elppc		eltec
+CPCI750		powerpc	74xx_7xx 	cpci750		esd
+DB64360		powerpc	74xx_7xx 	db64360		Marvell
+DB64460		powerpc	74xx_7xx 	db64460		Marvell
+aria		powerpc	mpc512x		-		davedenx
+PATI		powerpc	mpc5xx		pati		mpl
+BC3450		powerpc	mpc5xxx		bc3450
+canmb		powerpc	mpc5xxx
+cm5200		powerpc	mpc5xxx
+hmi1001		powerpc	mpc5xxx
+inka4x0		powerpc	mpc5xxx
+ipek01		powerpc	mpc5xxx
+jupiter		powerpc	mpc5xxx
+mucmc52		powerpc	mpc5xxx
+munices		powerpc	mpc5xxx
+o2dnt		powerpc	mpc5xxx
+uc101		powerpc	mpc5xxx
+v38b		powerpc	mpc5xxx
+pf5200		powerpc	mpc5xxx		-		esd
+aev		powerpc	mpc5xxx		tqm5200		tqc
+smmaco4		powerpc	mpc5xxx		tqm5200		tqc
+spieval		powerpc	mpc5xxx		tqm5200		tqc
+sorcery		powerpc	mpc8220
+A3000		powerpc	mpc824x		a3000
+barco		powerpc	mpc824x
+BMW		powerpc	mpc824x		bmw
+CU824		powerpc	mpc824x		cu824
+MOUSSE		powerpc	mpc824x		mousse
+MUSENKI		powerpc	mpc824x		musenki
+MVBLUE		powerpc	mpc824x		mvblue
+OXC		powerpc	mpc824x		oxc
+PN62		powerpc	mpc824x		pn62
+sbc8240		powerpc	mpc824x
+utx8245		powerpc	mpc824x
+debris		powerpc	mpc824x		-		etin
+kvme080		powerpc	mpc824x		-		etin
+atc		powerpc	mpc8260
+ep8260		powerpc	mpc8260
+ep82xxm		powerpc	mpc8260
+gw8260		powerpc	mpc8260
+hymod		powerpc	mpc8260
+IDS8247		powerpc	mpc8260		ids8247
+sacsng		powerpc	mpc8260
+sbc8260		powerpc	mpc8260
+ZPC1900		powerpc	mpc8260		zpc1900
+mgcoge		powerpc	mpc8260		-		keymile
+SCM		powerpc	mpc8260		-		siemens
+TQM8272		powerpc	mpc8260		tqm8272		tqc
+kmeter1		powerpc	mpc83xx		kmeter1		keymile
+MVBLM7		powerpc	mpc83xx		mvblm7		matrix_vision
+TQM834x		powerpc	mpc83xx		tqm834x		tqc
+PM854		powerpc	mpc85xx		pm854
+PM856		powerpc	mpc85xx		pm856
+stxgp3		powerpc	mpc85xx		stxgp3		stx
+c2mon		powerpc	mpc8xx
+EP88x		powerpc	mpc8xx		ep88x
+ETX094		powerpc	mpc8xx		etx094
+FLAGADM		powerpc	mpc8xx		flagadm
+GENIETV		powerpc	mpc8xx		genietv
+GTH		powerpc	mpc8xx		gth
+hermes		powerpc	mpc8xx
+IP860		powerpc	mpc8xx		ip860
+LANTEC		powerpc	mpc8xx		lantec
+lwmon		powerpc	mpc8xx
+NX823		powerpc	mpc8xx		nx823
+quantum		powerpc	mpc8xx
+R360MPI		powerpc	mpc8xx		r360mpi
+RBC823		powerpc	mpc8xx		rbc823
+rmu		powerpc	mpc8xx
+RPXlite		powerpc	mpc8xx
+spc1920		powerpc	mpc8xx
+uc100		powerpc	mpc8xx
+MHPC		powerpc	mpc8xx		mhpc		eltec
+TOP860		powerpc	mpc8xx		top860		emk
+kmsupx4		powerpc	mpc8xx		km8xx		keymile
+mgsuvd		powerpc	mpc8xx		km8xx		keymile
+KUP4K		powerpc	mpc8xx		kup4k		kup
+KUP4X		powerpc	mpc8xx		kup4k		kup
+ELPT860		powerpc	mpc8xx		elpt860		LEOX
+CCM		powerpc	mpc8xx		-		siemens
+IAD210		powerpc	mpc8xx		-		siemens
+pcu_e		powerpc	mpc8xx		-		siemens
+QS823		powerpc	mpc8xx		qs850		snmc
+QS850		powerpc	mpc8xx		qs850		snmc
+QS860T		powerpc	mpc8xx		qs860t		snmc
+stxxtc		powerpc	mpc8xx		stxxtc		stx
+HMI10		powerpc	mpc8xx		tqm8xx		tqc
+SM850		powerpc	mpc8xx		tqm8xx		tqc
+AMX860		powerpc	mpc8xx		amx860		westel
+csb272		powerpc	ppc4xx
+csb472		powerpc	ppc4xx
+ERIC		powerpc	ppc4xx		eric
+G2000		powerpc	ppc4xx		g2000
+JSE		powerpc	ppc4xx		jse
+korat		powerpc	ppc4xx
+lwmon5		powerpc	ppc4xx
+ML2		powerpc	ppc4xx
+sbc405		powerpc	ppc4xx
+sc3		powerpc	ppc4xx
+zeus		powerpc	ppc4xx
+acadia		powerpc	ppc4xx		-		amcc
+bamboo		powerpc	ppc4xx		-		amcc
+bubinga		powerpc	ppc4xx		-		amcc
+ebony		powerpc	ppc4xx		-		amcc
+katmai		powerpc	ppc4xx		-		amcc
+luan		powerpc	ppc4xx		-		amcc
+makalu		powerpc	ppc4xx		-		amcc
+ocotea		powerpc	ppc4xx		-		amcc
+redwood		powerpc	ppc4xx		-		amcc
+taihu		powerpc	ppc4xx		-		amcc
+taishan		powerpc	ppc4xx		-		amcc
+yucca		powerpc	ppc4xx		-		amcc
+AP1000		powerpc	ppc4xx		ap1000		amirix
+CRAYL1		powerpc	ppc4xx		L1		cray
+ADCIOP		powerpc	ppc4xx		adciop		esd
+APC405		powerpc	ppc4xx		apc405		esd
+AR405		powerpc	ppc4xx		ar405		esd
+ASH405		powerpc	ppc4xx		ash405		esd
+CANBT		powerpc	ppc4xx		canbt		esd
+CMS700		powerpc	ppc4xx		cms700		esd
+CPCI2DP		powerpc	ppc4xx		cpci2dp		esd
+DP405		powerpc	ppc4xx		dp405		esd
+DU405		powerpc	ppc4xx		du405		esd
+DU440		powerpc	ppc4xx		du440		esd
+HH405		powerpc	ppc4xx		hh405		esd
+HUB405		powerpc	ppc4xx		hub405		esd
+PCI405		powerpc	ppc4xx		pci405		esd
+PLU405		powerpc	ppc4xx		plu405		esd
+PMC405		powerpc	ppc4xx		pmc405		esd
+PMC440		powerpc	ppc4xx		pmc440		esd
+VOH405		powerpc	ppc4xx		voh405		esd
+VOM405		powerpc	ppc4xx		vom405		esd
+WUH405		powerpc	ppc4xx		wuh405		esd
+neo		powerpc	ppc4xx		-		gdsys
+icon		powerpc	ppc4xx		-		mosaixtech
+MIP405		powerpc	ppc4xx		mip405		mpl
+PIP405		powerpc	ppc4xx		pip405		mpl
+alpr		powerpc	ppc4xx		-		prodrive
+p3p440		powerpc	ppc4xx		-		prodrive
+KAREF		powerpc	ppc4xx		karef		sandburst
+grsim		sparc	leon3		-		gaisler
+imx31_litekit	arm	arm1136		-		logicpd		mx31
+omap2420h4	arm	arm1136		-		ti		omap24xx
+armadillo	arm	arm720t
+modnet50	arm	arm720t
+lpc2292sodimm	arm	arm720t		-		-		lpc2292
+eb_cpux9k2	arm	arm920t		-		BuS		at91
+at91rm9200dk	arm	arm920t		-		atmel		at91rm9200
+at91rm9200ek	arm	arm920t		-		atmel		at91rm9200
+sbc2410x	arm	arm920t		-		-		s3c24x0
+smdk2400	arm	arm920t		-		samsung		s3c24x0
+smdk2410	arm	arm920t		-		samsung		s3c24x0
+voiceblue	arm	arm925t
+omap1510inn	arm	arm925t		-		ti
+at91cap9adk	arm	arm926ejs	-		atmel		at91
+afeb9260	arm	arm926ejs	-		-		at91
+guruplug	arm	arm926ejs	-		Marvell		kirkwood
+mv88f6281gtw_ge	arm	arm926ejs	-		Marvell		kirkwood
+openrd_base	arm	arm926ejs	-		Marvell		kirkwood
+sheevaplug	arm	arm926ejs	-		Marvell		kirkwood
+imx27lite	arm	arm926ejs	imx27lite	logicpd		mx27
+magnesium	arm	arm926ejs	imx27lite	logicpd		mx27
+omap5912osk	arm	arm926ejs	-		ti		omap
+omap3_zoom1	arm	arm_cortexa8	zoom1		logicpd		omap3
+omap3_zoom2	arm	arm_cortexa8	zoom2		logicpd		omap3
+omap3_overo	arm	arm_cortexa8	overo		-		omap3
+omap3_pandora	arm	arm_cortexa8	pandora		-		omap3
+omap3_beagle	arm	arm_cortexa8	beagle		ti		omap3
+omap3_evm	arm	arm_cortexa8	evm		ti		omap3
+omap3_sdp3430	arm	arm_cortexa8	sdp3430		ti		omap3
+devkit8000	arm	arm_cortexa8	devkit8000	timll		omap3
+smdkc100	arm	arm_cortexa8	smdkc100	samsung		s5pc1xx
+ixdpg425	arm	ixp
+lpd7a400	arm	lh7a40x		lpd7a40x
+lpd7a404	arm	lh7a40x		lpd7a40x
+pxa255_idp	arm	pxa
+wepep250	arm	pxa
+xsengine	arm	pxa
+zylonite	arm	pxa
+atngw100	avr32	at32ap		-		atmel		at32ap700x
+atstk1002	avr32	at32ap		atstk1000	atmel		at32ap700x
+atstk1003	avr32	at32ap		atstk1000	atmel		at32ap700x
+atstk1004	avr32	at32ap		atstk1000	atmel		at32ap700x
+atstk1006	avr32	at32ap		atstk1000	atmel		at32ap700x
+favr-32-ezkit	avr32	at32ap		-		earthlcd	at32ap700x
+hammerhead	avr32	at32ap		-		miromico	at32ap700x
+bf518f-ezbrd	blackfin	blackfin
+bf526-ezbrd	blackfin	blackfin
+bf527-ezkit	blackfin	blackfin
+bf533-ezkit	blackfin	blackfin
+bf533-stamp	blackfin	blackfin
+bf537-minotaur	blackfin	blackfin
+bf537-pnav	blackfin	blackfin
+bf537-srv1	blackfin	blackfin
+bf537-stamp	blackfin	blackfin
+bf538f-ezkit	blackfin	blackfin
+bf548-ezkit	blackfin	blackfin
+bf561-acvilon	blackfin	blackfin
+bf561-ezkit	blackfin	blackfin
+blackstamp	blackfin	blackfin
+cm-bf527	blackfin	blackfin
+cm-bf533	blackfin	blackfin
+cm-bf537e	blackfin	blackfin
+cm-bf537u	blackfin	blackfin
+cm-bf548	blackfin	blackfin
+cm-bf561	blackfin	blackfin
+ibf-dsp561	blackfin	blackfin
+ip04	blackfin	blackfin
+tcm-bf518	blackfin	blackfin
+tcm-bf537	blackfin	blackfin
+sc520_cdp	i386	i386		-		-		sc520
+sc520_spunk	i386	i386		-		-		sc520
+sc520_spunk_rel	i386	i386		sc520_spunk_rel	-		sc520
+M5208EVBE	m68k	mcf52x2		m5208evbe	freescale
+M5249EVB	m68k	mcf52x2		m5249evb	freescale
+M5253DEMO	m68k	mcf52x2		m5253demo	freescale
+M5253EVBE	m68k	mcf52x2		m5253evbe	freescale
+M5271EVB	m68k	mcf52x2		m5271evb	freescale
+M5275EVB	m68k	mcf52x2		m5275evb	freescale
+M5282EVB	m68k	mcf52x2		m5282evb	freescale
+M53017EVB	m68k	mcf52x2		m53017evb	freescale
+microblaze-generic	microblaze	microblaze	microblaze-generic	xilinx
+mpc7448hpc2	powerpc	74xx_7xx 	mpc7448hpc2	freescale
+AmigaOneG3SE	powerpc	74xx_7xx 	AmigaOneG3SE	MAI
+pdm360ng	powerpc	mpc512x
+mecp5123	powerpc	mpc512x		-		esd
+cmi_mpc5xx	powerpc	mpc5xx		cmi
+motionpro	powerpc	mpc5xxx
+cpci5200	powerpc	mpc5xxx		-		esd
+mecp5200	powerpc	mpc5xxx		-		esd
+Alaska8220	powerpc	mpc8220		alaska
+Yukon8220	powerpc	mpc8220		alaska
+HIDDEN_DRAGON	powerpc	mpc824x		hidden_dragon
+IPHASE4539	powerpc	mpc8260		iphase4539
+ppmc8260	powerpc	mpc8260
+RPXsuper	powerpc	mpc8260		rpxsuper
+rsdproto	powerpc	mpc8260
+MPC8266ADS	powerpc	mpc8260		mpc8266ads	freescale
+MPC8323ERDB	powerpc	mpc83xx		mpc8323erdb	freescale
+MPC8349EMDS	powerpc	mpc83xx		mpc8349emds	freescale
+MPC837XERDB	powerpc	mpc83xx		mpc837xerdb	freescale
+ATUM8548	powerpc	mpc85xx		atum8548
+socrates	powerpc	mpc85xx		socrates
+MPC8540ADS	powerpc	mpc85xx		mpc8540ads	freescale
+MPC8544DS	powerpc	mpc85xx		mpc8544ds	freescale
+MPC8560ADS	powerpc	mpc85xx		mpc8560ads	freescale
+MPC8568MDS	powerpc	mpc85xx		mpc8568mds	freescale
+XPEDITE5200	powerpc	mpc85xx		xpedite5200	xes
+XPEDITE5370	powerpc	mpc85xx		xpedite5370	xes
+sbc8641d	powerpc	mpc86xx
+MPC8610HPCD	powerpc	mpc86xx		mpc8610hpcd	freescale
+XPEDITE5170	powerpc	mpc86xx		xpedite5170	xes
+cogent_mpc8xx	powerpc	mpc8xx		cogent
+ESTEEM192E	powerpc	mpc8xx		esteem192e
+RPXClassic	powerpc	mpc8xx
+RRvision	powerpc	mpc8xx
+svm_sc8xx	powerpc	mpc8xx
+pcs440ep	powerpc	ppc4xx
+quad100hd	powerpc	ppc4xx
+dlvision	powerpc	ppc4xx		-		gdsys
+gdppc440etx	powerpc	ppc4xx		-		gdsys
+CPCIISER4	powerpc	ppc4xx		cpciiser4	esd
+DASA_SIM	powerpc	ppc4xx		dasa_sim	esd
+PMC405DE	powerpc	ppc4xx		pmc405de	esd
+METROBOX	powerpc	ppc4xx		metrobox	sandburst
+XPEDITE1000	powerpc	ppc4xx		xpedite1000	xes
+grsim_leon2	sparc	leon2		-		gaisler
+gr_cpci_ax2000	sparc	leon3		-		gaisler
+gr_ep2s60	sparc	leon3		-		gaisler
+gr_xc3s_1500	sparc	leon3		-		gaisler
diff --git a/mkconfig b/mkconfig
index a71d09e95c5bf7d4f3a0a41db7533cee91c45800..b661071834e42836b2fc81c88ac1158fcdad2140 100755
--- a/mkconfig
+++ b/mkconfig
@@ -12,6 +12,24 @@ APPEND=no	# Default: Create new config file
 BOARD_NAME=""	# Name to print in make output
 TARGETS=""
 
+arch=""
+cpu=""
+board=""
+vendor=""
+soc=""
+
+if [ \( $# -eq 2 \) -a \( "$1" = "-A" \) ] ; then
+	# Automatic mode
+	line=`egrep -i "^[[:space:]]*${2}[[:space:]]" boards.cfg` || {
+		echo "make: *** No rule to make target \`$2_config'.  Stop." >&2
+		exit 1
+	}
+
+	set ${line}
+	# add default board name if needed
+	[ $# = 3 ] && set ${line} ${1}
+fi
+
 while [ $# -gt 0 ] ; do
 	case "$1" in
 	--) shift ; break ;;
@@ -22,13 +40,25 @@ while [ $# -gt 0 ] ; do
 	esac
 done
 
-[ "${BOARD_NAME}" ] || BOARD_NAME="${1%_config}"
-
 [ $# -lt 4 ] && exit 1
 [ $# -gt 6 ] && exit 1
 
-if [ "${ARCH}" -a "${ARCH}" != "$2" ]; then
-	echo "Failed: \$ARCH=${ARCH}, should be '$2' for ${BOARD_NAME}" 1>&2
+CONFIG_NAME="${1%_config}"
+
+[ "${BOARD_NAME}" ] || BOARD_NAME="${CONFIG_NAME}"
+
+arch="$2"
+cpu="$3"
+if [ "$4" = "-" ] ; then
+	board=${BOARD_NAME}
+else
+	board="$4"
+fi
+[ $# -gt 4 ] && [ "$5" != "-" ] && vendor="$5"
+[ $# -gt 5 ] && [ "$6" != "-" ] && soc="$6"
+
+if [ "${ARCH}" -a "${ARCH}" != "${arch}" ]; then
+	echo "Failed: \$ARCH=${ARCH}, should be '${arch}' for ${BOARD_NAME}" 1>&2
 	exit 1
 fi
 
@@ -42,26 +72,26 @@ if [ "$SRCTREE" != "$OBJTREE" ] ; then
 	mkdir -p ${OBJTREE}/include2
 	cd ${OBJTREE}/include2
 	rm -f asm
-	ln -s ${SRCTREE}/arch/$2/include/asm asm
-	LNPREFIX=${SRCTREE}/arch/$2/include/asm/
+	ln -s ${SRCTREE}/arch/${arch}/include/asm asm
+	LNPREFIX=${SRCTREE}/arch/${arch}/include/asm/
 	cd ../include
 	rm -f asm
-	ln -s ${SRCTREE}/arch/$2/include/asm asm
+	ln -s ${SRCTREE}/arch/${arch}/include/asm asm
 else
 	cd ./include
 	rm -f asm
-	ln -s ../arch/$2/include/asm asm
+	ln -s ../arch/${arch}/include/asm asm
 fi
 
 rm -f asm/arch
 
-if [ -z "$6" -o "$6" = "NULL" ] ; then
-	ln -s ${LNPREFIX}arch-$3 asm/arch
+if [ -z "${soc}" ] ; then
+	ln -s ${LNPREFIX}arch-${cpu} asm/arch
 else
-	ln -s ${LNPREFIX}arch-$6 asm/arch
+	ln -s ${LNPREFIX}arch-${soc} asm/arch
 fi
 
-if [ "$2" = "arm" ] ; then
+if [ "${arch}" = "arm" ] ; then
 	rm -f asm/proc
 	ln -s ${LNPREFIX}proc-armv asm/proc
 fi
@@ -69,19 +99,19 @@ fi
 #
 # Create include file for Make
 #
-echo "ARCH   = $2" >  config.mk
-echo "CPU    = $3" >> config.mk
-echo "BOARD  = $4" >> config.mk
+echo "ARCH   = ${arch}"  >  config.mk
+echo "CPU    = ${cpu}"   >> config.mk
+echo "BOARD  = ${board}" >> config.mk
 
-[ "$5" ] && [ "$5" != "NULL" ] && echo "VENDOR = $5" >> config.mk
+[ "${vendor}" ] && echo "VENDOR = ${vendor}" >> config.mk
 
-[ "$6" ] && [ "$6" != "NULL" ] && echo "SOC    = $6" >> config.mk
+[ "${soc}"    ] && echo "SOC    = ${soc}"    >> config.mk
 
 # Assign board directory to BOARDIR variable
-if [ -z "$5" -o "$5" = "NULL" ] ; then
-    BOARDDIR=$4
+if [ -z "${vendor}" ] ; then
+    BOARDDIR=${board}
 else
-    BOARDDIR=$5/$4
+    BOARDDIR=${vendor}/${board}
 fi
 
 #
@@ -102,7 +132,7 @@ done
 cat << EOF >> config.h
 #define CONFIG_BOARDDIR board/$BOARDDIR
 #include <config_defaults.h>
-#include <configs/${BOARDNAME}.h>
+#include <configs/${CONFIG_NAME}.h>
 #include <asm/config.h>
 EOF