the following patch was just integrated into master:
commit ffbb3c0b8abea621eb7a1583d630cf06c8cbfbbc
Author: Vladimir Serbinenko <phcoder(a)gmail.com>
Date: Wed Feb 10 01:36:25 2016 +0100
Merge sandy/ivybridge romstage flow for MRC and non-MRC.
Change-Id: I11e09804ed1d8a7ae8b8d4502bd18f6be933f9fa
Signed-off-by: Vladimir Serbinenko <phcoder(a)gmail.com>
Reviewed-on: https://review.coreboot.org/13656
Tested-by: build bot (Jenkins)
Reviewed-by: Alexandru Gagniuc <mr.nuke.me(a)gmail.com>
Reviewed-by: Martin Roth <martinroth(a)google.com>
See https://review.coreboot.org/13656 for details.
-gerrit
the following patch was just integrated into master:
commit 622eea7e815af39dbee290eddc487baab5e8a5f5
Author: Aaron Durbin <adurbin(a)chromium.org>
Date: Wed Feb 10 23:15:07 2016 -0600
arches: lib: add main_decl.h for main() declaration
It is silly to have a single header to declare the main()
symbol, however some of the arches provided it while
lib/bootblock.c relied on the arch headers to declare it. Just
move the declaration into its own header file and utilize it.
Change-Id: I743b4c286956ae047c17fe46241b699feca73628
Signed-off-by: Aaron Durbin <adurbin(a)chromium.org>
Reviewed-on: https://review.coreboot.org/13681
Reviewed-by: Patrick Georgi <pgeorgi(a)google.com>
Tested-by: build bot (Jenkins)
See https://review.coreboot.org/13681 for details.
-gerrit
the following patch was just integrated into master:
commit 711455f24495d1616fff6ec93da11e5f7a863a8b
Author: Aaron Durbin <adurbin(a)chromium.org>
Date: Wed Feb 10 23:04:23 2016 -0600
arch/{arm64,riscv}: remove jmp_to_elf_entry() declaration
jmp_to_elf_entry() is not defined anywhere. Remove it.
Change-Id: I68f996a735f2ef3dd60cf69f9b72c3f1481cbb55
Signed-off-by: Aaron Durbin <adurbin(a)chromium.org>
Reviewed-on: https://review.coreboot.org/13680
Tested-by: build bot (Jenkins)
Reviewed-by: Patrick Georgi <pgeorgi(a)google.com>
See https://review.coreboot.org/13680 for details.
-gerrit
Aaron Durbin (adurbin(a)chromium.org) just uploaded a new patch set to gerrit, which you can find at https://review.coreboot.org/13692
-gerrit
commit 1bad47114676c815920b7ae0863a52adeb5ecb56
Author: Aaron Durbin <adurbin(a)chromium.org>
Date: Thu Feb 11 14:47:33 2016 -0600
soc/intel/apollolake: limit bootblock size to 32KiB
The CSE places the bootblock (IBBL in Intel parlance) below 4GiB
at top of the address space. However, it's size is limited to
32KiB. For now, just limit all of bootblock to 32KiB.
Change-Id: I8f84138fb81027eae1712b7af3943942c35cf0ea
Signed-off-by: Aaron Durbin <adurbin(a)chromium.org>
---
src/soc/intel/apollolake/Kconfig | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/src/soc/intel/apollolake/Kconfig b/src/soc/intel/apollolake/Kconfig
index dcfbad6..3212659 100644
--- a/src/soc/intel/apollolake/Kconfig
+++ b/src/soc/intel/apollolake/Kconfig
@@ -11,6 +11,7 @@ config CPU_SPECIFIC_OPTIONS
select ARCH_RAMSTAGE_X86_32
select ARCH_ROMSTAGE_X86_32
select ARCH_VERSTAGE_X86_32
+ select HAS_CUSTOM_BOOTBLOCK_SIZE
# CPU specific options
select CPU_INTEL_FIRMWARE_INTERFACE_TABLE
select IOAPIC
@@ -75,4 +76,9 @@ config CONSOLE_UART_BASE_ADDRESS
hex "MMIO base address for UART"
default 0xde000000
+# 32KiB bootblock is all that is mapped in by the CSE at top of 4GiB.
+config CUSTOM_BOOTBLOCK_SIZE
+ hex
+ default 0x8000
+
endif
Aaron Durbin (adurbin(a)chromium.org) just uploaded a new patch set to gerrit, which you can find at https://review.coreboot.org/13691
-gerrit
commit db6afd190ab1ef938e8ef274b2f0852b7bbc97d0
Author: Aaron Durbin <adurbin(a)chromium.org>
Date: Thu Feb 11 14:36:19 2016 -0600
x86: add option for custom bootblock size for C_ENVIRONMENT_BOOTBLOCK
Certain platforms may need to limit their bootblock size to within
a given size because specific constraints. Allow the size to be
changed based on HAS_CUSTOM_BOOTBLOCK_SIZE and deferring to
CONFIG_CUSTOM_BOOTBLOCK_SIZE as the specific value.
Change-Id: I46cc6315918cde575070fa2d3e2514f28008f575
Signed-off-by: Aaron Durbin <adurbin(a)chromium.org>
---
src/arch/x86/Kconfig | 4 ++++
src/arch/x86/memlayout.ld | 12 +++++++++++-
2 files changed, 15 insertions(+), 1 deletion(-)
diff --git a/src/arch/x86/Kconfig b/src/arch/x86/Kconfig
index 889e811..8050949 100644
--- a/src/arch/x86/Kconfig
+++ b/src/arch/x86/Kconfig
@@ -146,3 +146,7 @@ config ID_SECTION_OFFSET
config COMPILE_IN_DSDT
bool "compile in DSDT and use that over DSDT in CBFS"
default n
+
+# If selected defer to CUSTOM_BOOTBLOCK_SIZE
+config HAS_CUSTOM_BOOTBLOCK_SIZE
+ def_bool n
diff --git a/src/arch/x86/memlayout.ld b/src/arch/x86/memlayout.ld
index 1ecae8c..161bb27 100644
--- a/src/arch/x86/memlayout.ld
+++ b/src/arch/x86/memlayout.ld
@@ -45,7 +45,17 @@ SECTIONS
#elif ENV_BOOTBLOCK
/* This is for C_ENVIRONMENT_BOOTBLOCK. arch/x86/bootblock.ld contains
* the logic for the romcc linking. */
- BOOTBLOCK(0xffff0000, 64K)
+
+ /* Allow one to limit the size of bootblock for a given platform. */
+ #if IS_ENABLED(CONFIG_HAS_CUSTOM_BOOTBLOCK_SIZE)
+ #define _BB_SIZE CONFIG_CUSTOM_BOOTBLOCK_SIZE
+ #else
+ #define _BB_SIZE 64K
+ #endif
+
+ BOOTBLOCK(0xffffffff - _BB_SIZE + 1, _BB_SIZE)
+
+ #undef _BB_SIZE
/* Pull in the cache-as-ram rules. */
#include "car.ld"