#
# From Coreboot src/northbridge/intel/sandybridge/Kconfig
#
# Copyright (C) 2010 Google Inc.
#
# SPDX-License-Identifier:	GPL-2.0

config NORTHBRIDGE_INTEL_IVYBRIDGE
	bool
	select CACHE_MRC_BIN

if NORTHBRIDGE_INTEL_IVYBRIDGE

config CACHE_MRC_BIN
	bool
	default n

config CACHE_MRC_SIZE_KB
	int
	default 512

config DCACHE_RAM_BASE
	hex
	default 0xff7e0000

config DCACHE_RAM_SIZE
	hex
	default 0x20000

config HAVE_MRC
        bool "Add a System Agent binary"
        help
          Select this option to add a System Agent binary to
          the resulting U-Boot image. MRC stands for Memory Reference Code.
          It is a binary blob which U-Boot uses to set up SDRAM.

          Note: Without this binary U-Boot will not be able to set up its
          SDRAM so will not boot.

config DCACHE_RAM_MRC_VAR_SIZE
	hex
	default 0x4000
	help
	  This is the amount of CAR (Cache as RAM) reserved for use by the
	  memory reference code. This should be set to 16KB (0x4000 hex)
	  so that MRC has enough space to run.

config CPU_SPECIFIC_OPTIONS
	def_bool y
	select SMM_TSEG
	select HAVE_INTEL_ME
	select X86_RAMTEST

config SMM_TSEG_SIZE
	hex
	default 0x800000

config ENABLE_VMX
	bool "Enable VMX for virtualization"
	default n
	help
	  Virtual Machine Extensions are provided in many x86 CPUs. These
	  provide various facilities for allowing a host OS to provide an
	  environment where potentially several guest OSes have only
	  limited access to the underlying hardware. This is achieved
	  without resorting to software trapping and/or instruction set
	  emulation (which would be very slow).

	  Intel's implementation of this is called VT-x. This option enables
	  VT-x this so that the OS that is booted by U-Boot can make use of
	  these facilities. If this option is not enabled, then the host OS
	  will be unable to support virtualisation, or it will run very
	  slowly.

endif
