From 6e70d67824e7c12a590038379866dbc7d7418fea Mon Sep 17 00:00:00 2001 From: Marc Jones Date: Thu, 26 Oct 2017 16:42:03 -0600 Subject: [PATCH] soc/amd/common: Add weak call for platform PCIE slot reset Since it is fairly uncommon, add a weak call that may be done by the platform if it has the support. BUG=b:66690176 BRANCH=none TEST=coreboot builds. Change-Id: I50008da6f85039a428184bf9e7642c0aa6610247 Signed-off-by: Marc Jones Reviewed-on: https://review.coreboot.org/22193 Tested-by: build bot (Jenkins) Reviewed-by: Aaron Durbin --- src/soc/amd/common/BiosCallOuts.h | 2 ++ src/soc/amd/common/def_callouts.c | 13 +++++++++---- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/src/soc/amd/common/BiosCallOuts.h b/src/soc/amd/common/BiosCallOuts.h index 1f1ebf7dec..a2c719f2f5 100644 --- a/src/soc/amd/common/BiosCallOuts.h +++ b/src/soc/amd/common/BiosCallOuts.h @@ -64,6 +64,8 @@ AGESA_STATUS agesa_fch_initenv(UINT32 Func, UINTN FchData, VOID *ConfigPtr); void platform_FchParams_reset(FCH_RESET_DATA_BLOCK *FchParams_reset); void platform_FchParams_env(FCH_DATA_BLOCK *FchParams_env); void oem_fan_control(FCH_DATA_BLOCK *FchParams); +AGESA_STATUS platform_PcieSlotResetControl(UINT32 Func, UINTN Data, + VOID *ConfigPtr); typedef struct { UINT32 CalloutName; CALLOUT_ENTRY CalloutPtr; diff --git a/src/soc/amd/common/def_callouts.c b/src/soc/amd/common/def_callouts.c index fd3b5e9131..9cea9658fa 100644 --- a/src/soc/amd/common/def_callouts.c +++ b/src/soc/amd/common/def_callouts.c @@ -162,13 +162,18 @@ AGESA_STATUS agesa_RunFcnOnAllAps(UINT32 Func, UINTN Data, VOID *ConfigPtr) return Status; } +AGESA_STATUS __attribute__((weak)) platform_PcieSlotResetControl(UINT32 Func, + UINTN Data, VOID *ConfigPtr) +{ + printk(BIOS_WARNING, "Warning - AGESA callout: %s not supported\n", + __func__); + return AGESA_UNSUPPORTED; +} + AGESA_STATUS agesa_PcieSlotResetControl(UINT32 Func, UINTN Data, VOID *ConfigPtr) { - printk(BIOS_WARNING, "Warning - Missing AGESA callout: %s\n", __func__); - AGESA_STATUS Status = AGESA_UNSUPPORTED; - - return Status; + return platform_PcieSlotResetControl(Func, Data, ConfigPtr); } AGESA_STATUS agesa_WaitForAllApsFinished(UINT32 Func, UINTN Data,