From 9551bed306aa54f5a707bde1d2a934a5341411b8 Mon Sep 17 00:00:00 2001 From: Kyösti Mälkki Date: Wed, 20 Jul 2016 10:49:38 +0300 Subject: intel sandy/ivy: Redefine DCACHE_RAM_SIZE and DCACHE_RAM_MRC_VAR_SIZE MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Match the definition and use of these variable with haswell, such that DCACHE_RAM_MRC_VAR_SIZE is not included in DCACHE_RAM_SIZE. Change-Id: I5af20f63cd0cb631d39f7c7fe0e2a99ebd3ce986 Signed-off-by: Kyösti Mälkki Reviewed-on: https://review.coreboot.org/15761 Tested-by: build bot (Jenkins) Reviewed-by: Paul Menzel Reviewed-by: Aaron Durbin --- src/cpu/intel/model_206ax/cache_as_ram.inc | 11 ++++++---- src/northbridge/intel/sandybridge/Kconfig | 32 +++++++++++++++++++++++------- 2 files changed, 32 insertions(+), 11 deletions(-) (limited to 'src') diff --git a/src/cpu/intel/model_206ax/cache_as_ram.inc b/src/cpu/intel/model_206ax/cache_as_ram.inc index 1a1167c057..702881d19f 100644 --- a/src/cpu/intel/model_206ax/cache_as_ram.inc +++ b/src/cpu/intel/model_206ax/cache_as_ram.inc @@ -20,7 +20,11 @@ #include #include "northbridge/intel/sandybridge/sandybridge.h" -#define CACHE_AS_RAM_SIZE CONFIG_DCACHE_RAM_SIZE +/* The full cache-as-ram size includes the cache-as-ram portion from coreboot + * and the space used by the reference code. These 2 values combined should + * be a power of 2 because the MTRR setup assumes that. */ +#define CACHE_AS_RAM_SIZE \ + (CONFIG_DCACHE_RAM_SIZE + CONFIG_DCACHE_RAM_MRC_VAR_SIZE) #define CACHE_AS_RAM_BASE CONFIG_DCACHE_RAM_BASE /* Cache 4GB - MRC_SIZE_KB for MRC */ @@ -159,9 +163,8 @@ clear_mtrrs: andl $(~(CR0_CacheDisable | CR0_NoWriteThrough)), %eax movl %eax, %cr0 - /* Set up the stack pointer below MRC variable space. */ - movl $(CACHE_AS_RAM_SIZE + CACHE_AS_RAM_BASE - \ - CONFIG_DCACHE_RAM_MRC_VAR_SIZE - 4), %eax + /* Setup the stack. */ + movl $(CONFIG_DCACHE_RAM_BASE + CONFIG_DCACHE_RAM_SIZE), %eax movl %eax, %esp /* Restore the BIST result. */ diff --git a/src/northbridge/intel/sandybridge/Kconfig b/src/northbridge/intel/sandybridge/Kconfig index d3edf03a7d..2fb455159e 100644 --- a/src/northbridge/intel/sandybridge/Kconfig +++ b/src/northbridge/intel/sandybridge/Kconfig @@ -69,18 +69,35 @@ config MRC_CACHE_SIZE depends on !CHROMEOS default 0x10000 +config BOOTBLOCK_NORTHBRIDGE_INIT + string + default "northbridge/intel/sandybridge/bootblock.c" + +if USE_NATIVE_RAMINIT + config DCACHE_RAM_BASE hex - default 0xff7e0000 if !USE_NATIVE_RAMINIT - default 0xfefe0000 if USE_NATIVE_RAMINIT + default 0xfefe0000 config DCACHE_RAM_SIZE hex default 0x20000 -config BOOTBLOCK_NORTHBRIDGE_INIT - string - default "northbridge/intel/sandybridge/bootblock.c" +config DCACHE_RAM_MRC_VAR_SIZE + hex + default 0x0 + +endif # USE_NATIVE_RAMINIT + +if !USE_NATIVE_RAMINIT + +config DCACHE_RAM_BASE + hex + default 0xff7e0000 + +config DCACHE_RAM_SIZE + hex + default 0x1c000 config DCACHE_RAM_MRC_VAR_SIZE hex @@ -88,7 +105,6 @@ config DCACHE_RAM_MRC_VAR_SIZE config MRC_FILE string "Intel System Agent path and filename" - depends on !USE_NATIVE_RAMINIT default "3rdparty/blobs/northbridge/intel/sandybridge/systemagent-r6.bin" help The path and filename of the file to use as System Agent @@ -96,6 +112,8 @@ config MRC_FILE config MMCONF_BASE_ADDRESS hex - default 0xf0000000 if !USE_NATIVE_RAMINIT + default 0xf0000000 + +endif # !USE_NATIVE_RAMINIT endif -- cgit v1.2.3