summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFurquan Shaikh <furquan@chromium.org>2017-04-25 22:48:31 -0700
committerFurquan Shaikh <furquan@google.com>2017-04-28 21:57:37 +0200
commit8ac19c8629c05eaa494528f5a11b44fc1a488dc6 (patch)
treee1dbbb8963bcc56064e1046147451cef1bf09284
parent13c6dbf8d3dcb2fd29e0a408f5c3541c1a225f0a (diff)
downloadcoreboot-8ac19c8629c05eaa494528f5a11b44fc1a488dc6.tar.xz
mainboard/google/poppy: Enable separate MRC cache for recovery mode
Enable separate MRC cache for recovery mode. This requires change in flash layout to accomodate another region for RECOVERY_MRC_CACHE. BUG=b:37682566 TEST=Verified following scenarios: 1. Boot into recovery does not destroy normal mode MRC cache. 2. Once recovery MRC cache is populated, all future boots in recovery mode re-use data from the cache. 3. Forcing recovery mode to retrain memory causes normal mode to retrain memory as well. Change-Id: I4c748a316436001c5a33754084ab4a74243e21df Signed-off-by: Furquan Shaikh <furquan@chromium.org> Reviewed-on: https://review.coreboot.org/19457 Tested-by: build bot (Jenkins) Reviewed-by: Aaron Durbin <adurbin@chromium.org>
-rw-r--r--src/mainboard/google/poppy/Kconfig2
-rw-r--r--src/mainboard/google/poppy/chromeos.fmd31
2 files changed, 20 insertions, 13 deletions
diff --git a/src/mainboard/google/poppy/Kconfig b/src/mainboard/google/poppy/Kconfig
index fa0c6b69b4..ce320813c0 100644
--- a/src/mainboard/google/poppy/Kconfig
+++ b/src/mainboard/google/poppy/Kconfig
@@ -72,6 +72,8 @@ config VARIANT_DIR
config VBOOT
select EC_GOOGLE_CHROMEEC_SWITCHES
+ select HAS_RECOVERY_MRC_CACHE
+ select MRC_CLEAR_NORMAL_CACHE_ON_RECOVERY_RETRAIN
select VBOOT_LID_SWITCH
config DRIVER_TPM_SPI_BUS
diff --git a/src/mainboard/google/poppy/chromeos.fmd b/src/mainboard/google/poppy/chromeos.fmd
index 58b612781f..bdadcf728d 100644
--- a/src/mainboard/google/poppy/chromeos.fmd
+++ b/src/mainboard/google/poppy/chromeos.fmd
@@ -4,24 +4,29 @@ FLASH@0xff000000 0x1000000 {
SI_ME@0x1000 0x1ff000
}
SI_BIOS@0x200000 0xe00000 {
- RW_SECTION_A@0x0 0x3f0000 {
+ RW_SECTION_A@0x0 0x3e8000 {
VBLOCK_A@0x0 0x10000
- FW_MAIN_A(CBFS)@0x10000 0x3dffc0
- RW_FWID_A@0x3effc0 0x40
+ FW_MAIN_A(CBFS)@0x10000 0x3d7fc0
+ RW_FWID_A@0x3e7fc0 0x40
}
- RW_SECTION_B@0x3f0000 0x3f0000 {
+ RW_SECTION_B@0x3e8000 0x3e8000 {
VBLOCK_B@0x0 0x10000
- FW_MAIN_B(CBFS)@0x10000 0x3dffc0
- RW_FWID_B@0x3effc0 0x40
+ FW_MAIN_B(CBFS)@0x10000 0x3d7fc0
+ RW_FWID_B@0x3e7fc0 0x40
}
- RW_MRC_CACHE@0x7e0000 0x10000
- RW_ELOG@0x7f0000 0x4000
- RW_SHARED@0x7f4000 0x4000 {
- SHARED_DATA@0x0 0x2000
- VBLOCK_DEV@0x2000 0x2000
+ RW_MISC@0x7d0000 0x30000 {
+ UNIFIED_MRC_CACHE@0x0 0x20000 {
+ RECOVERY_MRC_CACHE@0x0 0x10000
+ RW_MRC_CACHE@0x10000 0x10000
+ }
+ RW_ELOG@0x20000 0x4000
+ RW_SHARED@0x24000 0x4000 {
+ SHARED_DATA@0x0 0x2000
+ VBLOCK_DEV@0x2000 0x2000
+ }
+ RW_VPD@0x28000 0x2000
+ RW_NVRAM@0x2a000 0x6000
}
- RW_VPD@0x7f8000 0x2000
- RW_NVRAM@0x7fa000 0x6000
RW_LEGACY(CBFS)@0x800000 0x200000
WP_RO@0xa00000 0x400000 {
RO_VPD@0x0 0x4000