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>
This commit is contained in:
Kyösti Mälkki 2018-06-28 21:18:12 +03:00 committed by Patrick Georgi
parent d35a4811db
commit 423d03c163
3 changed files with 6 additions and 26 deletions

View File

@ -34,6 +34,8 @@ enum {
/* Return current dispatcher or NULL on error. */ /* Return current dispatcher or NULL on error. */
MODULE_ENTRY agesa_get_dispatcher(void); 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_amdinitreset(void);
AGESA_STATUS agesawrapper_amdinitearly(void); AGESA_STATUS agesawrapper_amdinitearly(void);
AGESA_STATUS agesawrapper_amdinitenv(void); AGESA_STATUS agesawrapper_amdinitenv(void);
@ -41,8 +43,6 @@ AGESA_STATUS agesawrapper_amdinitlate(void);
AGESA_STATUS agesawrapper_amdinitpost(void); AGESA_STATUS agesawrapper_amdinitpost(void);
AGESA_STATUS agesawrapper_amdinitmid(void); AGESA_STATUS agesawrapper_amdinitmid(void);
void *agesawrapper_getlateinitptr(int pick); 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_amdinitrtb(void);
AGESA_STATUS agesawrapper_amdinitresume(void); AGESA_STATUS agesawrapper_amdinitresume(void);
AGESA_STATUS agesawrapper_amds3laterestore(void); AGESA_STATUS agesawrapper_amds3laterestore(void);

View File

@ -353,28 +353,9 @@ AGESA_STATUS agesawrapper_amdinitlate(void)
return Status; return Status;
} }
AGESA_STATUS agesawrapper_amdlaterunaptask(uint32_t Func, uintptr_t Data, AGESA_STATUS amd_late_run_ap_task(AP_EXE_PARAMS *ApExeParams)
void *ConfigPtr)
{ {
AGESA_STATUS Status; return AmdLateRunApTask(ApExeParams);
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;
} }
AGESA_STATUS agesawrapper_amdinitrtb(void) AGESA_STATUS agesawrapper_amdinitrtb(void)

View File

@ -186,7 +186,7 @@ AGESA_STATUS agesa_PcieSlotResetControl(uint32_t Func, uintptr_t Data,
static struct agesa_data { static struct agesa_data {
uint32_t Func; uint32_t Func;
uintptr_t Data; uintptr_t Data;
void *ConfigPtr; AP_EXE_PARAMS *ConfigPtr;
} agesadata; } agesadata;
/* /*
@ -205,8 +205,7 @@ static void callout_ap_entry(void *unused)
(agesadata.Data == lapicid()))) (agesadata.Data == lapicid())))
return; return;
Status = agesawrapper_amdlaterunaptask(agesadata.Func, agesadata.Data, Status = amd_late_run_ap_task(agesadata.ConfigPtr);
agesadata.ConfigPtr);
if (Status) if (Status)
printk(BIOS_DEBUG, "There was a problem with %lx returned %s\n", printk(BIOS_DEBUG, "There was a problem with %lx returned %s\n",