From fe58977e6fe2501e2ae50ce9a6bd1790e47eadb8 Mon Sep 17 00:00:00 2001 From: Martin Roth Date: Fri, 25 Jun 2021 15:09:43 -0600 Subject: [PATCH] soc/amd/cezanne: Add call to mb to configure eSPI requirements When initializing espi early, there may be mainboard requirements to configure the bus properly. This allows the mainboard to do that. BUG=192100564 TEST=Build along with next patch, eSPI works on guybrush Change-Id: Icc02877a09b8f8ed20fd1b04f3cee0509f1a85c5 Signed-off-by: Martin Roth Reviewed-on: https://review.coreboot.org/c/coreboot/+/55863 Tested-by: build bot (Jenkins) Reviewed-by: Nikolai Vyssotski Reviewed-by: Jason Glenesk Reviewed-by: Raul Rangel --- src/soc/amd/cezanne/early_fch.c | 1 + src/soc/amd/common/block/include/amdblocks/espi.h | 3 +++ src/soc/amd/common/block/lpc/espi_util.c | 4 ++++ 3 files changed, 8 insertions(+) diff --git a/src/soc/amd/cezanne/early_fch.c b/src/soc/amd/cezanne/early_fch.c index d76afc8174..5d268bcbab 100644 --- a/src/soc/amd/cezanne/early_fch.c +++ b/src/soc/amd/cezanne/early_fch.c @@ -35,6 +35,7 @@ static void reset_i2c_peripherals(void) /* Initialize port80h routing early if needed */ void configure_port80_routing_early(void) { + mb_set_up_early_espi(); if (CONFIG(SOC_AMD_COMMON_BLOCK_USE_ESPI)) espi_setup(); } diff --git a/src/soc/amd/common/block/include/amdblocks/espi.h b/src/soc/amd/common/block/include/amdblocks/espi.h index 5d758354c5..9a563f9e36 100644 --- a/src/soc/amd/common/block/include/amdblocks/espi.h +++ b/src/soc/amd/common/block/include/amdblocks/espi.h @@ -128,4 +128,7 @@ void espi_update_static_bar(uintptr_t bar); */ int espi_setup(void); +/* Run mainboard configuration needed to set up eSPI */ +void mb_set_up_early_espi(void); + #endif /* AMD_BLOCK_ESPI_H */ diff --git a/src/soc/amd/common/block/lpc/espi_util.c b/src/soc/amd/common/block/lpc/espi_util.c index b724408022..e698c8cc48 100644 --- a/src/soc/amd/common/block/lpc/espi_util.c +++ b/src/soc/amd/common/block/lpc/espi_util.c @@ -17,6 +17,10 @@ void espi_update_static_bar(uintptr_t bar) espi_bar = bar; } +__weak void mb_set_up_early_espi(void) +{ +} + static uintptr_t espi_get_bar(void) { if (ENV_X86 && !espi_bar)