summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAaron Durbin <adurbin@chromium.org>2016-02-11 14:36:19 -0600
committerAaron Durbin <adurbin@chromium.org>2016-02-13 01:15:36 +0100
commit65ac3d862f99c520b05da7c1ff66f4eaa336ad1d (patch)
treeb0f5a9f82ae1ccca529e3bccf601d94d44b04113
parenta50478f151218b3bfb8f45a318533b0f3c14c3f0 (diff)
downloadcoreboot-65ac3d862f99c520b05da7c1ff66f4eaa336ad1d.tar.xz
x86: make bootblock size for C_ENVIRONMENT_BOOTBLOCK configurable
Certain platforms may need to limit their bootblock size to within a given size because specific constraints. Allow the size to be provided by the mainboard or chipset by way of the arch Kconfig being processed after those. Change-Id: I46cc6315918cde575070fa2d3e2514f28008f575 Signed-off-by: Aaron Durbin <adurbin@chromium.org> Reviewed-on: https://review.coreboot.org/13691 Tested-by: build bot (Jenkins) Reviewed-by: Martin Roth <martinroth@google.com> Reviewed-by: Andrey Petrov <andrey.petrov@intel.com>
-rw-r--r--src/arch/x86/Kconfig5
-rw-r--r--src/arch/x86/memlayout.ld3
2 files changed, 7 insertions, 1 deletions
diff --git a/src/arch/x86/Kconfig b/src/arch/x86/Kconfig
index 889e811aee..204a9be052 100644
--- a/src/arch/x86/Kconfig
+++ b/src/arch/x86/Kconfig
@@ -146,3 +146,8 @@ config ID_SECTION_OFFSET
config COMPILE_IN_DSDT
bool "compile in DSDT and use that over DSDT in CBFS"
default n
+
+# 64KiB default bootblock size when employing C_ENVIRONMENT_BOOTBLOCK.
+config C_ENV_BOOTBLOCK_SIZE
+ hex
+ default 0x10000
diff --git a/src/arch/x86/memlayout.ld b/src/arch/x86/memlayout.ld
index 1ecae8c230..fb675759c1 100644
--- a/src/arch/x86/memlayout.ld
+++ b/src/arch/x86/memlayout.ld
@@ -45,7 +45,8 @@ SECTIONS
#elif ENV_BOOTBLOCK
/* This is for C_ENVIRONMENT_BOOTBLOCK. arch/x86/bootblock.ld contains
* the logic for the romcc linking. */
- BOOTBLOCK(0xffff0000, 64K)
+ BOOTBLOCK(0xffffffff - CONFIG_C_ENV_BOOTBLOCK_SIZE + 1,
+ CONFIG_C_ENV_BOOTBLOCK_SIZE)
/* Pull in the cache-as-ram rules. */
#include "car.ld"