coreboot/src/soc/intel
Wonkyu Kim 359ae67668 elog: Handle elog in later boot phase
Use POSTPONE_SPI_ACCESS to handle elog data later boot phase to avoid
flash access delay by other boot controllers.

Intel has pre-CPU boot controllers (e.g. CSE) which load non-CPU
firmwares. Boot-critical firmwares are loaded before CPU reset and
non-boot-critical firmwares are loaded during CPU boot. If another
controller accesses SPI to load firmwares, reading SPI by CPU is ok,
but writing to SPI for saving elog data can take ~32ms sometimes.
Saving elog data usually takes less than 1ms.

There are three elog handling sequences that need to move together
under the Kconfig:
- Soc folder
- Elog driver folder
- ChromeOS folder

Before this change, sometimes it delays like below:
BS: callback (0x7386d428) @ src/soc/intel/pantherlake/elog.c:216 (32 ms)
After this change, the delay is less than 1 ms:
BS: callback (0x7386d3e8) @ src/soc/intel/pantherlake/elog.c:213 (0 ms)

TEST
1. Enable DEBUG_BOOT_STATE
2. Check time
BS: callback (0x7386d3e8) @ src/soc/intel/pantherlake/elog.c:213 (0 ms))

Change-Id: I3f5e7acf5204e213179664d0d77151d415d00896
Signed-off-by: Wonkyu Kim <wonkyu.kim@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/87740
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2025-06-05 13:36:36 +00:00
..
alderlake intel/alderlake/romstage: Implement eSOL during EC software sync 2025-05-18 18:50:50 +00:00
apollolake soc/intel/apollolake: Hook up S0ix setting to option API 2025-05-14 18:05:12 +00:00
baytrail soc/intel/baytrail: Add microcode for '06-37-08' SOCs 2025-02-03 18:59:45 +00:00
braswell tree: Handle NULL pointer returned by smm_get_save_state() 2025-01-20 03:26:26 +00:00
broadwell soc/intel/broadwell: Add CFR objects for existing options 2025-04-25 14:24:27 +00:00
cannonlake soc/intel/cannonlake: Add/use enums for IGD config 2025-05-14 18:13:20 +00:00
common soc/intel/cmn/blk: Refactor CSE status flag and optimize forced sync 2025-05-23 16:51:07 +00:00
denverton_ns tree: remove duplicated includes 2025-04-20 05:13:57 +00:00
elkhartlake soc/intel/elkhartlake: Hook up S0ix setting to option API 2025-05-08 12:27:06 +00:00
jasperlake soc/intel/jasperlake: Add CFR objects for existing options 2025-05-14 18:13:53 +00:00
meteorlake soc/intel/meteorlake: Use CACHE_TMP_RAMTOP for TME exclusion range 2025-05-29 14:20:11 +00:00
pantherlake elog: Handle elog in later boot phase 2025-06-05 13:36:36 +00:00
skylake soc/intel/skylake: Add/use enums for IGD config 2025-05-14 18:13:12 +00:00
snowridge soc/intel/common/block: Add const qualifier for input of pirq ops 2024-12-09 13:55:53 +00:00
tigerlake soc/intel/tigerlake: Add CFR objects for existing options 2025-05-14 18:13:41 +00:00
xeon_sp soc/intel/xeon_sp: Add support for Emerald Rapids (5th Gen Xeon-SP) CPUs 2025-05-21 17:10:46 +00:00
Makefile.mk soc/intel: Rename Makefiles from .inc to .mk 2024-01-24 10:02:22 +00:00