coreboot/src/soc
Furquan Shaikh 2fb15c4181 UPSTREAM: soc/intel/skylake: Fix broken suspend-resume
With recent change (a4b11e5c90: soc/intel/skylake: Perform CPU MP Init
before FSP-S Init) to perform CPU MP init before FSP-S init, suspend
resume is currently broken for all skylake/kabylake boards. All the
skylake/kabylake boards store external stage cache in TSEG, which is
relocated post MP-init. Thus, if FSP loading and initialization is
done after MP-init, then ramstage is not able to:
1. Save FSP component in external stage cache during normal boot, and
2. Load FSP component from external stage cache during resume

In order to fix this, ensure that FSP loading happens separately from
FSP initialization. Add fsp_load callback for pre_mp_init which ensures
that the required FSP component is loaded/saved from/to external stage
cache.

BUG=chrome-os-partner:63114
BRANCH=None
TEST=Verified that 100 cycles of suspend/resume worked fine on poppy.

Change-Id: I1b5cef5e3d70669c7e1454f69443c5f4964361b7
Signed-off-by: Furquan Shaikh <furquan@chromium.org>
Original-Commit-Id: c248044b20
Original-Change-Id: I5b4deaf936a05b9bccf2f30b949674e2ba993488
Original-Signed-off-by: Furquan Shaikh <furquan@chromium.org>
Original-Reviewed-on: https://review.coreboot.org/18414
Original-Tested-by: build bot (Jenkins)
Original-Reviewed-by: Subrata Banik <subrata.banik@intel.com>
Original-Reviewed-by: Aaron Durbin <adurbin@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/445863
2017-02-22 00:35:24 -08:00
..
broadcom/cygnus UPSTREAM: spi: Get rid of SPI_ATOMIC_SEQUENCING 2017-01-05 11:00:04 -08:00
dmp/vortex86ex UPSTREAM: src/soc: Capitalize CPU, ACPI, RAM and ROM 2016-08-04 23:37:59 -07:00
imgtec/pistachio UPSTREAM: spi: Get rid of SPI_ATOMIC_SEQUENCING 2017-01-05 11:00:04 -08:00
intel UPSTREAM: soc/intel/skylake: Fix broken suspend-resume 2017-02-22 00:35:24 -08:00
lowrisc/lowrisc UPSTREAM: soc/lowrisc: Place CBMEM at top of autodetected RAM 2016-12-08 12:30:55 -08:00
marvell UPSTREAM: soc/marvell/mvmap2315: Mark mvmap2315_reset() as noreturn 2017-01-13 18:41:29 -08:00
mediatek/mt8173 various cleanups from upstream 2017-02-06 05:03:19 -08:00
nvidia UPSTREAM: spi: Define and use spi_ctrlr structure 2016-12-08 12:30:16 -08:00
qualcomm Gale: spi: add vector operation method 2017-02-03 17:52:18 -08:00
rdc/r8610 rdc/r8610: Move to src/soc 2016-05-05 20:08:58 +02:00
rockchip various cleanups from upstream 2017-02-06 05:03:19 -08:00
samsung UPSTREAM: samsung/exynos5420: Fix test for src < 0 2016-12-16 15:42:11 -08:00
ucb/riscv UPSTREAM: soc/ucb/riscv: Place CBMEM at top of autodetected RAM 2016-12-08 12:30:48 -08:00