#
# This file is part of the coreboot project.
#
# Copyright (C) 2012 Advanced Micro Devices, Inc.
#
# 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.
#

if BOARD_ODE_E21XX

config BOARD_SPECIFIC_OPTIONS # dummy
	def_bool y
	select CPU_AMD_PI_00730F01
	select NORTHBRIDGE_AMD_PI_00730F01
	select SOUTHBRIDGE_AMD_PI_AVALON
	select HAVE_OPTION_TABLE
	select HAVE_PIRQ_TABLE
	select HAVE_MP_TABLE
	select HAVE_ACPI_TABLES
	select BOARD_ROMSIZE_KB_8192
	select GFXUMA
	select SUPERIO_FINTEK_F81866D

config MAINBOARD_DIR
	string
	default bap/ode_e21XX

config MAINBOARD_PART_NUMBER
	string
	default "ODE_E21XX"

config MAX_CPUS
	int
	default 4

config IRQ_SLOT_COUNT
	int
	default 11

config ONBOARD_VGA_IS_PRIMARY
	bool
	default y

config HUDSON_LEGACY_FREE
	bool
	default y

choice
	prompt "Select DDR3 clock"
	default BAP_E21_DDR3_1333
	help
	  Select your preferenced DDR3 clock setting.

	  Note: This option changes the total power consumption.

	  If unsure, use DDR3-1333.

config BAP_E21_DDR3_800
	bool "Select DDR3-800"

config BAP_E21_DDR3_1066
	bool "Select DDR3-1066"

config BAP_E21_DDR3_1333
	bool "Select DDR3-1333"

endchoice

config DIMM_SPD_SIZE
	int
	default 128

endif # BOARD_ODE_E21XX
