summaryrefslogtreecommitdiff
path: root/src/soc/amd
diff options
context:
space:
mode:
authorKyösti Mälkki <kyosti.malkki@gmail.com>2018-06-28 21:18:12 +0300
committerPatrick Georgi <pgeorgi@google.com>2019-02-25 11:16:27 +0000
commit423d03c16307df584d8890eab2cbfe2cb936081e (patch)
treee94bae39f165df94c9a08832838f0e0e6dd04e50 /src/soc/amd
parentd35a4811dbe6badcc9fabd3c3a7c992039215e02 (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>
Diffstat (limited to 'src/soc/amd')
-rw-r--r--src/soc/amd/common/block/include/amdblocks/agesawrapper.h4
-rw-r--r--src/soc/amd/common/block/pi/agesawrapper.c23
-rw-r--r--src/soc/amd/common/block/pi/def_callouts.c5
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",