menu "Mainboard"

choice
	prompt "Mainboard vendor"
	default VENDOR_EMULATION

config VENDOR_ABIT
	bool "Abit"
config VENDOR_ADVANTECH
	bool "Advantech"
config VENDOR_AMD
	bool "AMD"
config VENDOR_ARIMA
	bool "Arima"
config VENDOR_ARTEC_GROUP
	bool "Artec Group"
config VENDOR_ASI
	bool "ASI"
config VENDOR_ASROCK
	bool "ASROCK"
config VENDOR_ASUS
	bool "ASUS"
config VENDOR_A_TREND
	bool "A-Trend"
config VENDOR_AXUS
	bool "AXUS"
config VENDOR_AZZA
	bool "AZZA"
config VENDOR_BCOM
	bool "BCOM"
config VENDOR_BIOSTAR
	bool "Biostar"
config VENDOR_BROADCOM
	bool "Broadcom"
config VENDOR_COMPAQ
	bool "Compaq"
config VENDOR_DELL
	bool "Dell"
config VENDOR_DIGITAL_LOGIC
	bool "DIGITAL-LOGIC"
config VENDOR_EAGLELION
	bool "EagleLion"
config VENDOR_ECS
	bool "ECS"
config VENDOR_EMULATION
	bool "Emulation"
config VENDOR_GETAC
	bool "Getac"
config VENDOR_GIGABYTE
	bool "GIGABYTE"
config VENDOR_HP
	bool "HP"
config VENDOR_IBASE
	bool "iBase"
config VENDOR_IBM
	bool "IBM"
config VENDOR_IEI
	bool "IEI"
config VENDOR_INTEL
	bool "Intel"
config VENDOR_IWILL
	bool "IWILL"
config VENDOR_JETWAY
	bool "Jetway"
config VENDOR_KONTRON
	bool "Kontron"
config VENDOR_LIPPERT
	bool "Lippert"
config VENDOR_MITAC
	bool "Mitac"
config VENDOR_MSI
	bool "MSI"
config VENDOR_NEC
	bool "NEC"
config VENDOR_NEWISYS
	bool "Newisys"
config VENDOR_NOKIA
	bool "Nokia"
config VENDOR_NVIDIA
	bool "NVIDIA"
config VENDOR_OLPC
	bool "OLPC"
config VENDOR_PC_ENGINES
	bool "PC Engines"
config VENDOR_RCA
	bool "RCA"
config VENDOR_RODA
	bool "Roda"
config VENDOR_SOYO
	bool "Soyo"
config VENDOR_SUNW
	bool "Sun"
config VENDOR_SUPERMICRO
	bool "Supermicro"
config VENDOR_TECHNEXION
	bool "Technexion"
config VENDOR_TECHNOLOGIC
	bool "Technologic"
config VENDOR_TELEVIDEO
	bool "TeleVideo"
config VENDOR_THOMSON
	bool "Thomson"
config VENDOR_TRAVERSE
	bool "Traverse Technologies"
config VENDOR_TYAN
	bool "Tyan"
config VENDOR_VIA
	bool "VIA"
config VENDOR_WINENT
	bool "Win Enterprises"
config VENDOR_WYSE
	bool "Wyse"

endchoice

config MAINBOARD_VENDOR
	string
	default "Abit"
	depends on VENDOR_ABIT

config MAINBOARD_VENDOR
	string
	default "Advantech"
	depends on VENDOR_ADVANTECH

config MAINBOARD_VENDOR
	string
	default "AMD"
	depends on VENDOR_AMD

config MAINBOARD_VENDOR
	string
	default "Arima"
	depends on VENDOR_ARIMA

config MAINBOARD_VENDOR
	string
	default "Artec Group"
	depends on VENDOR_ARTEC_GROUP

config MAINBOARD_VENDOR
	string
	default "ASI"
	depends on VENDOR_ASI

config MAINBOARD_VENDOR
	string
	default "ASROCK"
	depends on VENDOR_ASROCK

config MAINBOARD_VENDOR
	string
	default "ASUS"
	depends on VENDOR_ASUS

config MAINBOARD_VENDOR
	string
	default "A-Trend"
	depends on VENDOR_A_TREND

config MAINBOARD_VENDOR
	string
	default "AXUS"
	depends on VENDOR_AXUS

config MAINBOARD_VENDOR
	string
	default "AZZA"
	depends on VENDOR_AZZA

config MAINBOARD_VENDOR
	string
	default "BCOM"
	depends on VENDOR_BCOM

config MAINBOARD_VENDOR
	string
	default "Biostar"
	depends on VENDOR_BIOSTAR

config MAINBOARD_VENDOR
	string
	default "Broadcom"
	depends on VENDOR_BROADCOM

config MAINBOARD_VENDOR
	string
	default "Compaq"
	depends on VENDOR_COMPAQ

config MAINBOARD_VENDOR
	string
	default "Dell"
	depends on VENDOR_DELL

config MAINBOARD_VENDOR
	string
	default "DIGITAL-LOGIC"
	depends on VENDOR_DIGITAL_LOGIC

config MAINBOARD_VENDOR
	string
	default "EagleLion"
	depends on VENDOR_EAGLELION

config MAINBOARD_VENDOR
	string
	default "ECS"
	depends on VENDOR_ECS

config MAINBOARD_VENDOR
	string
	default "Emulation"
	depends on VENDOR_EMULATION

config MAINBOARD_VENDOR
	string
	default "Getac"
	depends on VENDOR_GETAC

config MAINBOARD_VENDOR
	string
	default "GIGABYTE"
	depends on VENDOR_GIGABYTE

config MAINBOARD_VENDOR
	string
	default "HP"
	depends on VENDOR_HP

config MAINBOARD_VENDOR
	string
	default "iBase"
	depends on VENDOR_IBASE

config MAINBOARD_VENDOR
	string
	default "IBM"
	depends on VENDOR_IBM

config MAINBOARD_VENDOR
	string
	default "IEI"
	depends on VENDOR_IEI

config MAINBOARD_VENDOR
	string
	default "Intel"
	depends on VENDOR_INTEL

config MAINBOARD_PCI_SUBSYSTEM_VENDOR_ID
	hex
	default 0x8086
	depends on VENDOR_INTEL

config MAINBOARD_VENDOR
	string
	default "IWILL"
	depends on VENDOR_IWILL

config MAINBOARD_VENDOR
	string
	default "Jetway"
	depends on VENDOR_JETWAY

config MAINBOARD_VENDOR
	string
	default "Kontron"
	depends on VENDOR_KONTRON

config MAINBOARD_VENDOR
	string
	default "Lippert"
	depends on VENDOR_LIPPERT

config MAINBOARD_VENDOR
	string
	default "Mitac"
	depends on VENDOR_MITAC

config MAINBOARD_VENDOR
	string
	default "MSI"
	depends on VENDOR_MSI

config MAINBOARD_PCI_SUBSYSTEM_VENDOR_ID
	hex
	default 0x1462
	depends on VENDOR_MSI

config MAINBOARD_VENDOR
	string
	default "NEC"
	depends on VENDOR_NEC

config MAINBOARD_VENDOR
	string
	default "Newisys"
	depends on VENDOR_NEWISYS

config MAINBOARD_VENDOR
	string
	default "Nokia"
	depends on VENDOR_NOKIA

config MAINBOARD_VENDOR
	string
	default "NVIDIA"
	depends on VENDOR_NVIDIA

config MAINBOARD_VENDOR
	string
	default "OLPC"
	depends on VENDOR_OLPC

config MAINBOARD_VENDOR
	string
	default "PC Engines"
	depends on VENDOR_PC_ENGINES

config MAINBOARD_VENDOR
	string
	default "RCA"
	depends on VENDOR_RCA

config MAINBOARD_VENDOR
	string
	default "Roda"
	depends on VENDOR_RODA

config MAINBOARD_PCI_SUBSYSTEM_VENDOR_ID
	hex
	default 0x4352
	depends on VENDOR_RODA

config MAINBOARD_VENDOR
	string
	default "Soyo"
	depends on VENDOR_SOYO

config MAINBOARD_VENDOR
	string
	default "Sun"
	depends on VENDOR_SUNW

config MAINBOARD_VENDOR
	string
	default "Supermicro"
	depends on VENDOR_SUPERMICRO

config MAINBOARD_PCI_SUBSYSTEM_VENDOR_ID
	hex
	default 0x15d9
	depends on VENDOR_SUPERMICRO

config MAINBOARD_VENDOR
	string
	default "Technexion"
	depends on VENDOR_TECHNEXION

config MAINBOARD_VENDOR
	string
	default "Technologic"
	depends on VENDOR_TECHNOLOGIC

config MAINBOARD_VENDOR
	string
	default "TeleVideo"
	depends on VENDOR_TELEVIDEO

config MAINBOARD_VENDOR
	string
	default "Thomson"
	depends on VENDOR_THOMSON

config MAINBOARD_VENDOR
	string
	default "Traverse Technologies"
	depends on VENDOR_TRAVERSE

config MAINBOARD_VENDOR
	string
	default "Tyan"
	depends on VENDOR_TYAN

config MAINBOARD_PCI_SUBSYSTEM_VENDOR_ID
	hex
	default 0x10f1
	depends on VENDOR_TYAN

config MAINBOARD_VENDOR
	string
	default "VIA"
	depends on VENDOR_VIA

config MAINBOARD_PCI_SUBSYSTEM_VENDOR_ID
	hex
	default 0x1019
	depends on VENDOR_VIA

config MAINBOARD_VENDOR
	string
	default "Win Enterprise"
	depends on VENDOR_WINENT

config MAINBOARD_VENDOR
	string
	default "Wyse"
	depends on VENDOR_WYSE
	
config MAINBOARD_PCI_SUBSYSTEM_VENDOR_ID
	hex
	default 0x102d
	depends on VENDOR_WYSE

source "src/mainboard/a-trend/Kconfig"
source "src/mainboard/abit/Kconfig"
source "src/mainboard/advantech/Kconfig"
source "src/mainboard/amd/Kconfig"
source "src/mainboard/arima/Kconfig"
source "src/mainboard/artecgroup/Kconfig"
source "src/mainboard/asi/Kconfig"
source "src/mainboard/asrock/Kconfig"
source "src/mainboard/asus/Kconfig"
source "src/mainboard/axus/Kconfig"
source "src/mainboard/azza/Kconfig"
source "src/mainboard/bcom/Kconfig"
source "src/mainboard/biostar/Kconfig"
source "src/mainboard/broadcom/Kconfig"
source "src/mainboard/compaq/Kconfig"
source "src/mainboard/dell/Kconfig"
source "src/mainboard/digitallogic/Kconfig"
source "src/mainboard/eaglelion/Kconfig"
source "src/mainboard/ecs/Kconfig"
source "src/mainboard/emulation/Kconfig"
source "src/mainboard/getac/Kconfig"
source "src/mainboard/gigabyte/Kconfig"
source "src/mainboard/hp/Kconfig"
source "src/mainboard/ibase/Kconfig"
source "src/mainboard/ibm/Kconfig"
source "src/mainboard/iei/Kconfig"
source "src/mainboard/intel/Kconfig"
source "src/mainboard/iwill/Kconfig"
source "src/mainboard/jetway/Kconfig"
source "src/mainboard/kontron/Kconfig"
source "src/mainboard/lippert/Kconfig"
source "src/mainboard/mitac/Kconfig"
source "src/mainboard/msi/Kconfig"
source "src/mainboard/nec/Kconfig"
source "src/mainboard/newisys/Kconfig"
source "src/mainboard/nokia/Kconfig"
source "src/mainboard/nvidia/Kconfig"
source "src/mainboard/olpc/Kconfig"
source "src/mainboard/pcengines/Kconfig"
source "src/mainboard/rca/Kconfig"
source "src/mainboard/roda/Kconfig"
source "src/mainboard/soyo/Kconfig"
source "src/mainboard/sunw/Kconfig"
source "src/mainboard/supermicro/Kconfig"
source "src/mainboard/technexion/Kconfig"
source "src/mainboard/technologic/Kconfig"
source "src/mainboard/televideo/Kconfig"
source "src/mainboard/thomson/Kconfig"
source "src/mainboard/traverse/Kconfig"
source "src/mainboard/tyan/Kconfig"
source "src/mainboard/via/Kconfig"
source "src/mainboard/winent/Kconfig"
source "src/mainboard/wyse/Kconfig"

config BOARD_ROMSIZE_KB_128
	bool
config BOARD_ROMSIZE_KB_256
	bool
config BOARD_ROMSIZE_KB_512
	bool
config BOARD_ROMSIZE_KB_1024
	bool
config BOARD_ROMSIZE_KB_2048
	bool
config BOARD_ROMSIZE_KB_4096
	bool

# TODO: No help text possible for choice fields?
choice
	prompt "ROM chip size"
	default COREBOOT_ROMSIZE_KB_128 if BOARD_ROMSIZE_KB_128
	default COREBOOT_ROMSIZE_KB_256 if BOARD_ROMSIZE_KB_256
	default COREBOOT_ROMSIZE_KB_512 if BOARD_ROMSIZE_KB_512
	default COREBOOT_ROMSIZE_KB_1024 if BOARD_ROMSIZE_KB_1024
	default COREBOOT_ROMSIZE_KB_2048 if BOARD_ROMSIZE_KB_2048
	default COREBOOT_ROMSIZE_KB_4096 if BOARD_ROMSIZE_KB_4096
	help
	  Select the size of the ROM chip you intend to flash coreboot on.

	  The build system will take care of creating a coreboot.rom file
	  of the matching size.

config COREBOOT_ROMSIZE_KB_128
	bool "128 KB"
	help
	  Choose this option if you have a 128 KB ROM chip.

config COREBOOT_ROMSIZE_KB_256
	bool "256 KB"
	help
	  Choose this option if you have a 256 KB ROM chip.

config COREBOOT_ROMSIZE_KB_512
	bool "512 KB"
	help
	  Choose this option if you have a 512 KB ROM chip.

config COREBOOT_ROMSIZE_KB_1024
	bool "1024 KB (1 MB)"
	help
	  Choose this option if you have a 1024 KB (1 MB) ROM chip.

config COREBOOT_ROMSIZE_KB_2048
	bool "2048 KB (2 MB)"
	help
	  Choose this option if you have a 2048 KB (2 MB) ROM chip.

config COREBOOT_ROMSIZE_KB_4096
	bool "4096 KB (4 MB)"
	help
	  Choose this option if you have a 4096 KB (4 MB) ROM chip.

endchoice

# Map the config names to an integer (KB).
config COREBOOT_ROMSIZE_KB
	int
	default 128 if COREBOOT_ROMSIZE_KB_128
	default 256 if COREBOOT_ROMSIZE_KB_256
	default 512 if COREBOOT_ROMSIZE_KB_512
	default 1024 if COREBOOT_ROMSIZE_KB_1024
	default 2048 if COREBOOT_ROMSIZE_KB_2048
	default 4096 if COREBOOT_ROMSIZE_KB_4096

# Map the config names to a hex value (bytes).
config ROM_SIZE
	hex
	default 0x20000 if COREBOOT_ROMSIZE_KB_128
	default 0x40000 if COREBOOT_ROMSIZE_KB_256
	default 0x80000 if COREBOOT_ROMSIZE_KB_512
	default 0x100000 if COREBOOT_ROMSIZE_KB_1024
	default 0x200000 if COREBOOT_ROMSIZE_KB_2048
	default 0x400000 if COREBOOT_ROMSIZE_KB_4096

endmenu

