summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKyösti Mälkki <kyosti.malkki@gmail.com>2016-07-20 10:49:38 +0300
committerKyösti Mälkki <kyosti.malkki@gmail.com>2016-07-26 07:09:24 +0200
commit9551bed306aa54f5a707bde1d2a934a5341411b8 (patch)
treeb0196a18c38d2b2d193c1a00cda4db7294916908
parentd950f5191d1f7a0bd3a495cb630deda647d4245c (diff)
intel sandy/ivy: Redefine DCACHE_RAM_SIZE and DCACHE_RAM_MRC_VAR_SIZE
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 <kyosti.malkki@gmail.com> Reviewed-on: https://review.coreboot.org/15761 Tested-by: build bot (Jenkins) Reviewed-by: Paul Menzel <paulepanter@users.sourceforge.net> Reviewed-by: Aaron Durbin <adurbin@chromium.org>
-rw-r--r--src/cpu/intel/model_206ax/cache_as_ram.inc11
-rw-r--r--src/northbridge/intel/sandybridge/Kconfig32
2 files changed, 32 insertions, 11 deletions
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 <arch/acpi.h>
#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