menu "Mainboard"

choice
	prompt "Mainboard vendor"
	default VENDOR_EMULATION

config VENDOR_AAEON
	bool "Aaeon"
config VENDOR_ABIT
	bool "Abit"
config VENDOR_ADLINK
	bool "ADLINK"
config VENDOR_ADVANSUS
	bool "Advansus"
config VENDOR_AMD
	bool "AMD"
config VENDOR_AOPEN
	bool "AOpen"
config VENDOR_APPLE
	bool "Apple"
config VENDOR_ARIMA
	bool "Arima"
config VENDOR_ARTECGROUP
	bool "Artec Group"
config VENDOR_ASROCK
	bool "ASROCK"
config VENDOR_ASUS
	bool "ASUS"
config VENDOR_A_TREND
	bool "A-Trend"
config VENDOR_AVALUE
	bool "AVALUE"
config VENDOR_AZZA
	bool "AZZA"
config VENDOR_BACHMANN
	bool "Bachmann electronic"
config VENDOR_BCOM
	bool "BCOM"
config VENDOR_BIFFEROS
	bool "Bifferos"
config VENDOR_BIOSTAR
	bool "Biostar"
config VENDOR_BROADCOM
	bool "Broadcom"
config VENDOR_COMPAQ
	bool "Compaq"
config VENDOR_CUBIETECH
	bool "Cubietech"
config VENDOR_DIGITALLOGIC
	bool "DIGITAL-LOGIC"
config VENDOR_DMP
	bool "DMP"
config VENDOR_ECS
	bool "ECS"
config VENDOR_EMULATION
	bool "Emulation"
config VENDOR_GETAC
	bool "Getac"
config VENDOR_GIGABYTE
	bool "GIGABYTE"
config VENDOR_GIZMOSPHERE
	bool "GizmoSphere"
config VENDOR_GOOGLE
	bool "Google"
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_IWAVE
	bool "iWave"
config VENDOR_IWILL
	bool "IWILL"
config VENDOR_JETWAY
	bool "Jetway"
config VENDOR_KONTRON
	bool "Kontron"
config VENDOR_LANNER
	bool "Lanner"
config VENDOR_LENOVO
	bool "Lenovo"
config VENDOR_LINUTOP
	bool "Linutop"
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_PACKARDBELL
	bool "Packard Bell"
config VENDOR_PCENGINES
	bool "PC Engines"
config VENDOR_RCA
	bool "RCA"
config VENDOR_RODA
	bool "Roda"
config VENDOR_SAMSUNG
	bool "SAMSUNG"
config VENDOR_SIEMENS
	bool "Siemens"
config VENDOR_SOYO
	bool "Soyo"
config VENDOR_SUNW
	bool "Sun"
config VENDOR_SUPERMICRO
	bool "Supermicro"
config VENDOR_TECHNEXION
	bool "Technexion"
config VENDOR_TI
	bool "TI"
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

source "src/mainboard/a-trend/Kconfig"
source "src/mainboard/aaeon/Kconfig"
source "src/mainboard/abit/Kconfig"
source "src/mainboard/adlink/Kconfig"
source "src/mainboard/advansus/Kconfig"
source "src/mainboard/amd/Kconfig"
source "src/mainboard/aopen/Kconfig"
source "src/mainboard/apple/Kconfig"
source "src/mainboard/arima/Kconfig"
source "src/mainboard/artecgroup/Kconfig"
source "src/mainboard/asrock/Kconfig"
source "src/mainboard/asus/Kconfig"
source "src/mainboard/avalue/Kconfig"
source "src/mainboard/azza/Kconfig"
source "src/mainboard/bachmann/Kconfig"
source "src/mainboard/bcom/Kconfig"
source "src/mainboard/bifferos/Kconfig"
source "src/mainboard/biostar/Kconfig"
source "src/mainboard/broadcom/Kconfig"
source "src/mainboard/compaq/Kconfig"
source "src/mainboard/cubietech/Kconfig"
source "src/mainboard/digitallogic/Kconfig"
source "src/mainboard/dmp/Kconfig"
source "src/mainboard/ecs/Kconfig"
source "src/mainboard/emulation/Kconfig"
source "src/mainboard/getac/Kconfig"
source "src/mainboard/gigabyte/Kconfig"
source "src/mainboard/gizmosphere/Kconfig"
source "src/mainboard/google/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/iwave/Kconfig"
source "src/mainboard/iwill/Kconfig"
source "src/mainboard/jetway/Kconfig"
source "src/mainboard/kontron/Kconfig"
source "src/mainboard/lanner/Kconfig"
source "src/mainboard/lenovo/Kconfig"
source "src/mainboard/linutop/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/packardbell/Kconfig"
source "src/mainboard/pcengines/Kconfig"
source "src/mainboard/rca/Kconfig"
source "src/mainboard/roda/Kconfig"
source "src/mainboard/samsung/Kconfig"
source "src/mainboard/siemens/Kconfig"
source "src/mainboard/soyo/Kconfig"
source "src/mainboard/sunw/Kconfig"
source "src/mainboard/supermicro/Kconfig"
source "src/mainboard/technexion/Kconfig"
source "src/mainboard/thomson/Kconfig"
source "src/mainboard/ti/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_64
	bool
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
config BOARD_ROMSIZE_KB_8192
	bool
config BOARD_ROMSIZE_KB_12288
	bool
config BOARD_ROMSIZE_KB_16384
	bool

# TODO: No help text possible for choice fields?
choice
	prompt "ROM chip size"
	default COREBOOT_ROMSIZE_KB_64 if BOARD_ROMSIZE_KB_64
	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
	default COREBOOT_ROMSIZE_KB_8192 if BOARD_ROMSIZE_KB_8192
	default COREBOOT_ROMSIZE_KB_12288 if BOARD_ROMSIZE_KB_12288
	default COREBOOT_ROMSIZE_KB_16384 if BOARD_ROMSIZE_KB_16384
	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_64
	bool "64 KB"
	help
	  Choose this option if you have a 64 KB ROM chip.

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.

config COREBOOT_ROMSIZE_KB_8192
	bool "8192 KB (8 MB)"
	help
	  Choose this option if you have a 8192 KB (8 MB) ROM chip.

config COREBOOT_ROMSIZE_KB_12288
	bool "12288 KB (12 MB)"
	help
	  Choose this option if you have a 12288 KB (12 MB) ROM chip.

config COREBOOT_ROMSIZE_KB_16384
	bool "16384 KB (16 MB)"
	help
	  Choose this option if you have a 16384 KB (16 MB) ROM chip.

endchoice

# Map the config names to an integer (KB).
config COREBOOT_ROMSIZE_KB
	int
	default 64 if COREBOOT_ROMSIZE_KB_64
	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
	default 8192 if COREBOOT_ROMSIZE_KB_8192
	default 12288 if COREBOOT_ROMSIZE_KB_12288
	default 16384 if COREBOOT_ROMSIZE_KB_16384

# Map the config names to a hex value (bytes).
config ROM_SIZE
	hex
	default 0x10000 if COREBOOT_ROMSIZE_KB_64
	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
	default 0x800000 if COREBOOT_ROMSIZE_KB_8192
	default 0xc00000 if COREBOOT_ROMSIZE_KB_12288
	default 0x1000000 if COREBOOT_ROMSIZE_KB_16384

config ENABLE_POWER_BUTTON
	bool "Enable the power button" if POWER_BUTTON_IS_OPTIONAL
	default y if POWER_BUTTON_DEFAULT_ENABLE
	default n if POWER_BUTTON_DEFAULT_DISABLE
	help
	  The selected mainboard can optionally have the power button tied
	  to ground with a jumper so that the button appears to be
	  constantly depressed. If this option is enabled and the jumper is
	  installed then the board will turn on, but turn off again after a
	  short timeout, usually 4 seconds.

	  Select Y here if you have removed the jumper and want to use an
	  actual power button. Select N if you have the jumper installed.

config ENABLE_POWER_BUTTON
	def_bool y if !POWER_BUTTON_IS_OPTIONAL && POWER_BUTTON_FORCE_ENABLE
	def_bool n if !POWER_BUTTON_IS_OPTIONAL && POWER_BUTTON_FORCE_DISABLE

endmenu