##
## This file is part of the coreboot project.
##
## Copyright (C) 2009 Uwe Hermann <uwe@hermann-uwe.de>
##
## 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; version 2 of the License.
##
## 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
##
if VENDOR_IEI

choice
	prompt "Mainboard model"

config BOARD_IEI_JUKI_511P
	bool "JUKI-511P"
config BOARD_IEI_KINO_FAM10
	bool "Kino-780AM2(Fam10)"
config BOARD_IEI_NOVA_4899R
	bool "NOVA-4899R"
config BOARD_IEI_PCISA_LX_800_R10
	bool "PCISA LX-800-R10"
config BOARD_IEI_PM_LX_800_R11
	bool "PM LX-800-R11"
config BOARD_IEI_PM_LX2_800_R10
	bool "PM LX2-800-R10"

endchoice

source "src/mainboard/iei/juki-511p/Kconfig"
source "src/mainboard/iei/kino-780am2-fam10/Kconfig"
source "src/mainboard/iei/nova4899r/Kconfig"
source "src/mainboard/iei/pcisa-lx-800-r10/Kconfig"
source "src/mainboard/iei/pm-lx-800-r11/Kconfig"
source "src/mainboard/iei/pm-lx2-800-r10/Kconfig"

config MAINBOARD_VENDOR
	string
	default "IEI"

endif # VENDOR_IEI
