##
## This file is part of the coreboot project.
##
## Copyright (C) 2007-2012 coresystems GmbH
##
## 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_E7505
	bool

if NORTHBRIDGE_INTEL_E7505

config NORTHBRIDGE_SPECIFIC_OPTIONS # dummy
	def_bool y
	select NO_MMCONF_SUPPORT
	select HAVE_DEBUG_RAM_SETUP

config HW_SCRUBBER
	bool
	default n

endif
