[U-Boot] [PATCH 4/4 v2] Makefile/mkconfig: read simple board configurations from boards.cfg

Wolfgang Denk wd at denx.de
Thu May 27 23:18:36 CEST 2010


Instead of adding explicit build rules for each and every board to the
top level Makefile (which makes it grow and grow), we now provide a
simple default rule and extend the "mkconfig" script to read board
configurations from a plain text file (table), "boards.cfg".

For simple boards it is now sufficient to add a single line of text to
the "boards.cfg" file, no changes to the top level Makefile are needed
any more.

To make the table better readable, change the notation for unused
fields from "NULL" into "-".

Signed-off-by: Wolfgang Denk <wd at denx.de>
Cc: Peter Tyser <ptyser at xes-inc.com>
Cc: Mike Frysinger <vapier at gentoo.org>
---
Note:
	I had to disable the simple and very convenient rule
		%: %_config
			$(MAKE)
	in the top level Makefile, because it caused each invocation
	of "make" to fail with an error message:

		make: *** No rule to make target `Makefile_config'.  Stop.
	
	Fixes welcome!


 Makefile   |  823 ++----------------------------------------------------------
 boards.cfg |  356 ++++++++++++++++++++++++++
 mkconfig   |   72 ++++--
 3 files changed, 431 insertions(+), 820 deletions(-)
 create mode 100644 boards.cfg

diff --git a/Makefile b/Makefile
index 48ca9e5..9c4e600 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
@@ -489,50 +492,9 @@ ucname	= $(shell echo $(1) | sed -e 's/\(.*\)_config/\U\1/')
 #========================================================================
 
 #########################################################################
-## 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
@@ -1367,47 +1146,9 @@ yellowstone_config: unconfig
 	@$(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
 #########################################################################
@@ -2705,104 +2159,9 @@ 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
@@ -2886,38 +2224,12 @@ smdk6400_config	:	unconfig
 	@$(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
 #========================================================================
 #########################################################################
 ## 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
 #========================================================================
@@ -3057,18 +2362,6 @@ DK1S10_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
 
@@ -3076,60 +2369,14 @@ $(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)
 #========================================================================
 
@@ -3211,28 +2458,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 0000000..e54673e
--- /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 a71d09e..b661071 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
 
-- 
1.6.6.1



More information about the U-Boot mailing list