From bfea4e98b3de112cc22c703b2e5cedfd11dbeaa3 Mon Sep 17 00:00:00 2001 From: Andrey Petrov Date: Tue, 28 Jun 2016 17:37:09 -0700 Subject: [PATCH] UPSTREAM: soc/intel/apollolake: Let CSE know Ring Buffer Protocol is not needed On Apollolake CSE can be used to fetch firmware from boot media. However, when this feature is not used, CSE needs to be explicitly notified of it before memory training is complete. This way it can transition to next state. BUG=chrome-os-partner:53876 TEST=CSE can be power-gated during S0iX. Confirmed with LTB. BUG=None BRANCH=None TEST=None Change-Id: I5141bff350b6c0bb662424b7b709f0787ec5fd28 Original-Signed-off-by: Andrey Petrov Original-Reviewed-on: https://review.coreboot.org/15494 Original-Tested-by: build bot (Jenkins) Original-Reviewed-by: Aaron Durbin Original-Reviewed-by: Paul Menzel Signed-off-by: Aaron Durbin Reviewed-on: https://chromium-review.googlesource.com/358594 Reviewed-by: Martin Roth --- src/soc/intel/apollolake/romstage.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/soc/intel/apollolake/romstage.c b/src/soc/intel/apollolake/romstage.c index ce28326392..049bf4fe61 100644 --- a/src/soc/intel/apollolake/romstage.c +++ b/src/soc/intel/apollolake/romstage.c @@ -241,6 +241,14 @@ void platform_fsp_memory_init_params_cb(struct FSPM_UPD *mupd) } else printk(BIOS_DEBUG, "MRC cache was not found\n"); } + + /* + * Tell CSE we do not need to use Ring Buffer Protocol (RBP) to fetch + * firmware for us if we are using memory-mapped SPI. This lets CSE + * state machine transition to next boot state, so that it can function + * as designed. + */ + mupd->FspmConfig.SkipCseRbp = IS_ENABLED(CONFIG_SPI_FLASH_MEMORY_MAPPED); } __attribute__ ((weak))