##
## This file is part of the coreboot project.
##
## Copyright (C) 2009 Uwe Hermann <uwe@hermann-uwe.de>
##
## 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.
##

config NORTHBRIDGE_INTEL_I82810
	bool
	select HAVE_DEBUG_RAM_SETUP
	select LATE_CBMEM_INIT

choice
	prompt "Onboard graphics"
	default I810_VIDEO_MB_1MB
	depends on NORTHBRIDGE_INTEL_I82810

config I810_VIDEO_MB_OFF
	bool "Disabled, 0KB"
config I810_VIDEO_MB_512KB
	bool "Enabled, 512KB"
config I810_VIDEO_MB_1MB
	bool "Enabled, 1MB"

endchoice

config VIDEO_MB
	int
	default 0   if I810_VIDEO_MB_OFF
	default 512 if I810_VIDEO_MB_512KB
	default 1   if I810_VIDEO_MB_1MB
	depends on NORTHBRIDGE_INTEL_I82810

config VGA_BIOS_ID
	string
	default "8086,7121"
	depends on NORTHBRIDGE_INTEL_I82810
