From b4aaa6f0ab0a729a7638899140a1cdd0c800cb8a Mon Sep 17 00:00:00 2001 From: Arthur Heymans Date: Thu, 13 Jul 2023 14:11:18 +0200 Subject: [PATCH] soc/amd/genoa/reset.c: Add reset methods Signed-off-by: Arthur Heymans Change-Id: Ifb4d7dda5fcf1ccacb901b24e4f7cf6945ee16e0 Reviewed-on: https://review.coreboot.org/c/coreboot/+/76503 Reviewed-by: Matt DeVillier Reviewed-by: Martin Roth Tested-by: build bot (Jenkins) --- src/mainboard/amd/onyx/Kconfig | 1 - src/soc/amd/genoa/Makefile.inc | 1 + src/soc/amd/genoa/reset.c | 27 +++++++++++++++++++++++++++ 3 files changed, 28 insertions(+), 1 deletion(-) create mode 100644 src/soc/amd/genoa/reset.c diff --git a/src/mainboard/amd/onyx/Kconfig b/src/mainboard/amd/onyx/Kconfig index 260a498c65..21c8c8519c 100644 --- a/src/mainboard/amd/onyx/Kconfig +++ b/src/mainboard/amd/onyx/Kconfig @@ -3,7 +3,6 @@ if BOARD_AMD_ONYX config BOARD_SPECIFIC_OPTIONS def_bool y select SOC_AMD_GENOA - select MISSING_BOARD_RESET select BOARD_ROMSIZE_KB_32768 config FMDFILE diff --git a/src/soc/amd/genoa/Makefile.inc b/src/soc/amd/genoa/Makefile.inc index 56a98e6b48..efbd3b1275 100644 --- a/src/soc/amd/genoa/Makefile.inc +++ b/src/soc/amd/genoa/Makefile.inc @@ -2,6 +2,7 @@ ifeq ($(CONFIG_SOC_AMD_GENOA),y) all-y += mmap_boot.c +all-y += reset.c all-y += config.c bootblock-y += early_fch.c diff --git a/src/soc/amd/genoa/reset.c b/src/soc/amd/genoa/reset.c new file mode 100644 index 0000000000..ac0c981718 --- /dev/null +++ b/src/soc/amd/genoa/reset.c @@ -0,0 +1,27 @@ +/* SPDX-License-Identifier: GPL-2.0-only */ + +#include +#include +#include +#include +#include +#include + +void do_cold_reset(void) +{ + /* De-assert and then assert all PwrGood signals on CF9 reset. */ + pm_write16(PWR_RESET_CFG, pm_read16(PWR_RESET_CFG) | + TOGGLE_ALL_PWR_GOOD); + outb(RST_CPU | SYS_RST, RST_CNT); +} + +void do_warm_reset(void) +{ + /* Warm resets are not supported and must be executed as cold */ + do_cold_reset(); +} + +void do_board_reset(void) +{ + do_cold_reset(); +}