coreboot-kgpe-d16/src/soc
Michał Żygowski d627f7b4f7 soc/intel/common/block/oc_wdt: Add OC watchdog common block
Add new block for handling overclocking watchdog. The watchdog is
present since Skylake or maybe even earlier so it is safe to use with
most of the microarchitectures utilizing intelblocks.

The patch adds the common block for initializing and feeding the
watchdog. Timeout is defined statically in Kconfig and should be set
high enough by the board or SoC Kconfig to let the board boot with
full memory training and avoid reset loops. Full training of 128GB
DDR5 DIMM memory on AlderLake takes about 5 minutes. Newer SoCs
with newer memory technologies and higher RAM capacity may take more.
The default has been set to 10 minutes.

The patch also adds support for feeding watchdog in driverless mode,
i.e. it utilizies periodic SMI to reload the timeout value and restart
the watchdog timer. This is optional and selectable by Kconfig option
as well. If the option is not enabled, payload and/or software must
ensure to keep feeding the watchdog, otherwise the platform will
reset.

TEST=Enable watchdog on MSI PRO Z690-A and see the platform resets
after some time. Enable the watchdog in driverless mode and see the
platform no longer resets and periodic SMI keeps feeding the watchdog.

Signed-off-by: Michał Żygowski <michal.zygowski@3mdeb.com>
Change-Id: Ib494aa0c7581351abca8b496fc5895b2c7cbc5bc
Reviewed-on: https://review.coreboot.org/c/coreboot/+/68944
Reviewed-by: Eric Lai <eric_lai@quanta.corp-partner.google.com>
Reviewed-by: Krystian Hebel <krystian.hebel@3mdeb.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2023-08-26 21:32:11 +00:00
..
amd soc/amd/common/include/root_complex: add IOHC MISC SMN base addresses 2023-08-25 12:24:01 +00:00
cavium soc/cavium/cn81xx: Use correct size for MPIDR_EL1 register 2023-05-13 17:22:16 +00:00
example/min86 soc: Remove SOC_SPECIFIC_OPTIONS 2023-08-21 23:45:43 +00:00
intel soc/intel/common/block/oc_wdt: Add OC watchdog common block 2023-08-26 21:32:11 +00:00
mediatek soc/mediatek/mt8188: Remove GPT timer init 2023-08-24 12:55:41 +00:00
nvidia soc/nvidia: Fix incorrect SPDX license 2023-08-24 05:30:10 +00:00
qualcomm soc/qualcomm: Add missing newlines for logs 2023-08-22 02:28:57 +00:00
rockchip cbmem_top_chipset: Change the return value to uintptr_t 2022-11-18 16:00:45 +00:00
samsung soc/samsung/exynos5250/clock: Remove space before semicolon 2023-08-20 22:00:03 +00:00
sifive/fu540 soc/sifive/fu540/Kconfig: Fix opensbi platform 2023-08-04 14:04:13 +00:00
ti src/soc/ti: Remove unnecessary space after casts 2022-11-22 13:42:28 +00:00
ucb/riscv cbmem_top_chipset: Change the return value to uintptr_t 2022-11-18 16:00:45 +00:00