coreboot/src/drivers
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
..
acpi/thermal_zone tree: Remove unused <string.h> 2024-05-29 10:34:08 +00:00
amd drivers/amd/opensil/memmap.c: Factor out common memmap code to driver 2025-02-21 14:11:43 +00:00
ams drivers: Add SPDX license headers to Kconfig files 2024-02-18 01:59:32 +00:00
analogix/anx7625 commonlib: Change GCD function to always use 64 bits 2024-02-08 13:13:58 +00:00
asmedia drivers/asmedia/asm1061: Align = only with tabs and not spaces 2025-02-10 15:14:32 +00:00
aspeed drivers/aspeed/common: Add AST2600 support 2024-09-26 15:09:17 +00:00
broadcom
camera drivers: Add SPDX license headers to Kconfig files 2024-02-18 01:59:32 +00:00
crb drivers/crb: Always generate TPM ACPI Tables 2025-02-25 09:03:46 +00:00
efi drivers/efi/fw_info: Select necessary UDK binding as needed 2025-04-23 14:17:53 +00:00
elog elog: Handle elog in later boot phase 2025-06-05 13:36:36 +00:00
emulation/qemu drivers/qemu/bochs: Use arch-independent data port 2025-02-14 17:10:10 +00:00
generic tree: Remove unused <string.h> 2024-05-29 10:34:08 +00:00
genesyslogic tree: Drop duplicated <device/{path,resource}.h> 2024-04-12 04:24:20 +00:00
gfx/generic drivers/gfx/generic: Don't set DOD constraints when generating device address 2024-06-13 11:46:53 +00:00
i2c drivers/i2c/generic: Add option to generate proper PowerResource _STA 2025-03-11 21:40:57 +00:00
intel {commonlib, drivers}: Track firmware splash screen rendering completion 2025-05-25 14:35:09 +00:00
ipmi drivers/ipmi/ocp: Add missing include 2024-12-05 04:47:02 +00:00
lenovo drivers: Add SPDX license headers to Kconfig files 2024-02-18 01:59:32 +00:00
maxim
mipi drivers/mipi: Add support for CSOT_PNA957QT1_1 panel 2025-01-29 18:26:50 +00:00
mrc_cache drivers/mrc_cache: Measure MRC cache as runtime data 2025-05-10 22:50:41 +00:00
net drivers/net/r8168.c: Add option to program MAC address to ERI registers 2025-04-29 22:17:48 +00:00
nxp/uwb tree: Remove unused <string.h> 2024-05-29 10:34:08 +00:00
ocp drivers/ocp/ewl: Remove space after a cast 2024-10-09 17:27:37 +00:00
option drivers/option/cfr: Select EFI variable store when edk2 payload used 2025-04-23 14:17:59 +00:00
parade
pc80 drivers/pc80/pc/keyboard.c: Add function to change a command byte bit 2025-01-22 20:45:37 +00:00
pcie drivers: Add SPDX license headers to Kconfig files 2024-02-18 01:59:32 +00:00
ricoh/rce822 drivers: Add SPDX license headers to Kconfig files 2024-02-18 01:59:32 +00:00
secunet/dmi drivers: Add SPDX license headers to Kconfig files 2024-02-18 01:59:32 +00:00
siemens/nc_fpga drivers: Add SPDX license headers to Kconfig files 2024-02-18 01:59:32 +00:00
sil/3114 drivers: Add SPDX license headers to Kconfig files 2024-02-18 01:59:32 +00:00
smbus console/i2c_smbus: Allow to send data w/o register offset 2024-07-11 00:06:22 +00:00
smmstore drivers/smmstore: Support 64-bit MMIO addresses 2025-05-08 22:28:16 +00:00
sof tree: Drop duplicated <device/{path,resource}.h> 2024-04-12 04:24:20 +00:00
soundwire drivers/soundwire/alc1320: use common struct to set soundwire ADDR_ 2025-04-11 03:47:37 +00:00
spi drivers/spi/winbond.c: Add W25Q64JV signature 2025-05-21 17:18:29 +00:00
ti
tpm drivers/tpm: Remove unused 2nd argument in FUNC method 2024-10-02 11:50:52 +00:00
uart drivers/uart: Replace 'unsigned long int' by 'unsigned long' 2025-01-08 03:09:36 +00:00
usb drivers/usb/intel_bluetooth: Hook RTD3 up to the option API 2025-04-30 16:00:11 +00:00
vpd drivers/vpd: Add vpd_get_feature_level() API 2024-03-05 10:17:00 +00:00
wifi/generic soc/intel/cnvi: Add HotPlugSupportInD3 Property 2025-04-18 15:00:01 +00:00
wwan/fm drivers: Add SPDX license headers to Kconfig files 2024-02-18 01:59:32 +00:00