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

config BOARD_SPECIFIC_OPTIONS
	def_bool y
	select AGESA_LEGACY
	select CPU_AMD_AGESA_FAMILY15
	select CPU_AMD_SOCKET_G34
	select NORTHBRIDGE_AMD_AGESA_FAMILY15
	select NORTHBRIDGE_AMD_CIMX_RD890
	select SOUTHBRIDGE_AMD_CIMX_SB700
	select SUPERIO_WINBOND_W83627DHG
	select SUPERIO_NUVOTON_WPCM450
	select DRIVERS_I2C_W83795
	select HAVE_OPTION_TABLE
	select HAVE_PIRQ_TABLE
	select HAVE_MP_TABLE
	select HAVE_ACPI_TABLES
	select BOARD_ROMSIZE_KB_2048

config MAINBOARD_DIR
	string
	default supermicro/h8qgi

config MAINBOARD_PART_NUMBER
	string
	default "H8QGI"

config HW_MEM_HOLE_SIZEK
	hex
	default 0x200000

config MAX_CPUS
	int
	default 64

config HW_MEM_HOLE_SIZE_AUTO_INC
	bool
	default n

config IRQ_SLOT_COUNT
	int
	default 11

config ONBOARD_VGA_IS_PRIMARY
	bool
	default y

config VGA_BIOS
	bool
	default n

config VGA_BIOS_ID
	string
	depends on VGA_BIOS
	default "102b,0532"

endif # BOARD_SUPERMICRO_H8QGI
