#
# This file is part of the coreboot project.
#
# Copyright (C) 2011 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.
#
# 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
#

config CPU_AMD_AGESA_FAMILY12
	bool
	select PCI_IO_CFG_EXT
	select X86_AMD_FIXED_MTRRS

config CPU_ADDR_BITS
	int
	default 48
	depends on CPU_AMD_AGESA_FAMILY12

config CPU_SOCKET_TYPE
	hex
	default 0x10
	depends on CPU_AMD_AGESA_FAMILY12

# DDR2 and REG
config DIMM_SUPPORT
	hex
	default 0x0104
	depends on CPU_AMD_AGESA_FAMILY12

config EXT_RT_TBL_SUPPORT
	bool
	default n
	depends on CPU_AMD_AGESA_FAMILY12

config EXT_CONF_SUPPORT
	bool
	default n
	depends on CPU_AMD_AGESA_FAMILY12

config CBB
	hex
	default 0x0
	depends on CPU_AMD_AGESA_FAMILY12

config CDB
	hex
	default 0x18
	depends on CPU_AMD_AGESA_FAMILY12

config XIP_ROM_SIZE
	hex
	default 0x80000
	depends on CPU_AMD_AGESA_FAMILY12

config HAVE_INIT_TIMER
	bool
	default y
	depends on CPU_AMD_AGESA_FAMILY12

