diff options
author | Kyösti Mälkki <kyosti.malkki@gmail.com> | 2018-06-28 21:18:12 +0300 |
---|---|---|
committer | Patrick Georgi <pgeorgi@google.com> | 2019-02-25 11:16:27 +0000 |
commit | 423d03c16307df584d8890eab2cbfe2cb936081e (patch) | |
tree | e94bae39f165df94c9a08832838f0e0e6dd04e50 | |
parent | d35a4811dbe6badcc9fabd3c3a7c992039215e02 (diff) |
soc/amd/common: Fix AmdLateRunApTask()
Third parameter ConfigPtr of the callout is of type
AP_EXE_PARAMS and needs to be passed back to AGESA
with AmdLateRunApTask() call.
Change-Id: I1dad64b955b53bd19363737665235f95aa3d451e
Signed-off-by: Kyösti Mälkki <kyosti.malkki@gmail.com>
Reviewed-on: https://review.coreboot.org/c/27277
Reviewed-by: Richard Spiegel <richard.spiegel@silverbackltd.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
-rw-r--r-- | src/soc/amd/common/block/include/amdblocks/agesawrapper.h | 4 | ||||
-rw-r--r-- | src/soc/amd/common/block/pi/agesawrapper.c | 23 | ||||
-rw-r--r-- | src/soc/amd/common/block/pi/def_callouts.c | 5 |
3 files changed, 6 insertions, 26 deletions
diff --git a/src/soc/amd/common/block/include/amdblocks/agesawrapper.h b/src/soc/amd/common/block/include/amdblocks/agesawrapper.h index 43bd8deaf4..2f3b8a6268 100644 --- a/src/soc/amd/common/block/include/amdblocks/agesawrapper.h +++ b/src/soc/amd/common/block/include/amdblocks/agesawrapper.h @@ -34,6 +34,8 @@ enum { /* Return current dispatcher or NULL on error. */ MODULE_ENTRY agesa_get_dispatcher(void); +AGESA_STATUS amd_late_run_ap_task(AP_EXE_PARAMS *ApExeParams); + AGESA_STATUS agesawrapper_amdinitreset(void); AGESA_STATUS agesawrapper_amdinitearly(void); AGESA_STATUS agesawrapper_amdinitenv(void); @@ -41,8 +43,6 @@ AGESA_STATUS agesawrapper_amdinitlate(void); AGESA_STATUS agesawrapper_amdinitpost(void); AGESA_STATUS agesawrapper_amdinitmid(void); void *agesawrapper_getlateinitptr(int pick); -AGESA_STATUS agesawrapper_amdlaterunaptask(uint32_t Func, uintptr_t Data, - void *ConfigPtr); AGESA_STATUS agesawrapper_amdinitrtb(void); AGESA_STATUS agesawrapper_amdinitresume(void); AGESA_STATUS agesawrapper_amds3laterestore(void); diff --git a/src/soc/amd/common/block/pi/agesawrapper.c b/src/soc/amd/common/block/pi/agesawrapper.c index 92153eee7d..fc69b46ee2 100644 --- a/src/soc/amd/common/block/pi/agesawrapper.c +++ b/src/soc/amd/common/block/pi/agesawrapper.c @@ -353,28 +353,9 @@ AGESA_STATUS agesawrapper_amdinitlate(void) return Status; } -AGESA_STATUS agesawrapper_amdlaterunaptask(uint32_t Func, uintptr_t Data, - void *ConfigPtr) +AGESA_STATUS amd_late_run_ap_task(AP_EXE_PARAMS *ApExeParams) { - AGESA_STATUS Status; - AP_EXE_PARAMS ApExeParams; - - memset(&ApExeParams, 0, sizeof(ApExeParams)); - - ApExeParams.StdHeader.AltImageBasePtr = 0; - ApExeParams.StdHeader.CalloutPtr = &GetBiosCallout; - ApExeParams.StdHeader.Func = 0; - ApExeParams.StdHeader.ImageBasePtr = 0; - ApExeParams.FunctionNumber = Func; - ApExeParams.RelatedDataBlock = ConfigPtr; - - Status = AmdLateRunApTask(&ApExeParams); - if (Status != AGESA_SUCCESS) { - /* agesawrapper_readeventlog(); */ - ASSERT(Status == AGESA_SUCCESS); - } - - return Status; + return AmdLateRunApTask(ApExeParams); } AGESA_STATUS agesawrapper_amdinitrtb(void) diff --git a/src/soc/amd/common/block/pi/def_callouts.c b/src/soc/amd/common/block/pi/def_callouts.c index 693c7c58e3..0b119b71d3 100644 --- a/src/soc/amd/common/block/pi/def_callouts.c +++ b/src/soc/amd/common/block/pi/def_callouts.c @@ -186,7 +186,7 @@ AGESA_STATUS agesa_PcieSlotResetControl(uint32_t Func, uintptr_t Data, static struct agesa_data { uint32_t Func; uintptr_t Data; - void *ConfigPtr; + AP_EXE_PARAMS *ConfigPtr; } agesadata; /* @@ -205,8 +205,7 @@ static void callout_ap_entry(void *unused) (agesadata.Data == lapicid()))) return; - Status = agesawrapper_amdlaterunaptask(agesadata.Func, agesadata.Data, - agesadata.ConfigPtr); + Status = amd_late_run_ap_task(agesadata.ConfigPtr); if (Status) printk(BIOS_DEBUG, "There was a problem with %lx returned %s\n", |