summaryrefslogtreecommitdiff
path: root/src/soc/amd/common/block/pi/agesawrapper.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/soc/amd/common/block/pi/agesawrapper.c')
-rw-r--r--src/soc/amd/common/block/pi/agesawrapper.c74
1 files changed, 63 insertions, 11 deletions
diff --git a/src/soc/amd/common/block/pi/agesawrapper.c b/src/soc/amd/common/block/pi/agesawrapper.c
index d65400e43c..6cdabd3a6c 100644
--- a/src/soc/amd/common/block/pi/agesawrapper.c
+++ b/src/soc/amd/common/block/pi/agesawrapper.c
@@ -2,7 +2,7 @@
* This file is part of the coreboot project.
*
* Copyright (C) 2012 - 2017 Advanced Micro Devices, Inc.
- * Copyright (C) 2018 Kyösti Mälkki
+ * Copyright (C) 2018 - 2019 Kyösti Mälkki
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -88,7 +88,7 @@ static void *create_struct(AMD_INTERFACE_PARAMS *interface_struct)
return interface_struct->NewStructPtr;
}
-AGESA_STATUS agesawrapper_amdinitreset(void)
+static AGESA_STATUS amd_init_reset(void)
{
AGESA_STATUS status;
AMD_RESET_PARAMS _ResetParams;
@@ -113,7 +113,7 @@ AGESA_STATUS agesawrapper_amdinitreset(void)
return status;
}
-AGESA_STATUS agesawrapper_amdinitearly(void)
+static AGESA_STATUS amd_init_early(void)
{
AGESA_STATUS status;
AMD_INTERFACE_PARAMS AmdParamStruct = {
@@ -170,7 +170,7 @@ static void print_init_post_settings(AMD_POST_PARAMS *parms)
uma_size / MiB, uma_start);
}
-AGESA_STATUS agesawrapper_amdinitpost(void)
+static AGESA_STATUS amd_init_post(void)
{
AGESA_STATUS status;
AMD_INTERFACE_PARAMS AmdParamStruct = {
@@ -225,7 +225,7 @@ AGESA_STATUS agesawrapper_amdinitpost(void)
return status;
}
-AGESA_STATUS agesawrapper_amdinitenv(void)
+static AGESA_STATUS amd_init_env(void)
{
AGESA_STATUS status;
AMD_INTERFACE_PARAMS AmdParamStruct = {
@@ -275,7 +275,7 @@ void *agesawrapper_getlateinitptr(int pick)
}
}
-AGESA_STATUS agesawrapper_amdinitmid(void)
+static AGESA_STATUS amd_init_mid(void)
{
AGESA_STATUS status;
AMD_INTERFACE_PARAMS AmdParamStruct = {
@@ -302,7 +302,7 @@ AGESA_STATUS agesawrapper_amdinitmid(void)
return status;
}
-AGESA_STATUS agesawrapper_amdinitlate(void)
+static AGESA_STATUS amd_init_late(void)
{
AGESA_STATUS Status;
AMD_INTERFACE_PARAMS AmdParamStruct = {
@@ -357,7 +357,7 @@ AGESA_STATUS amd_late_run_ap_task(AP_EXE_PARAMS *ApExeParams)
return AmdLateRunApTask(ApExeParams);
}
-AGESA_STATUS agesawrapper_amdinitrtb(void)
+static AGESA_STATUS amd_init_rtb(void)
{
AGESA_STATUS Status;
AMD_INTERFACE_PARAMS AmdParamStruct = {
@@ -387,7 +387,7 @@ AGESA_STATUS agesawrapper_amdinitrtb(void)
return Status;
}
-AGESA_STATUS agesawrapper_amdinitresume(void)
+static AGESA_STATUS amd_init_resume(void)
{
AGESA_STATUS status;
AMD_INTERFACE_PARAMS AmdParamStruct = {
@@ -412,7 +412,7 @@ AGESA_STATUS agesawrapper_amdinitresume(void)
return status;
}
-AGESA_STATUS agesawrapper_amds3laterestore(void)
+static AGESA_STATUS amd_s3late_restore(void)
{
AGESA_STATUS Status;
AMD_S3LATE_PARAMS _S3LateParams;
@@ -444,7 +444,7 @@ AGESA_STATUS agesawrapper_amds3laterestore(void)
return Status;
}
-AGESA_STATUS agesawrapper_amds3finalrestore(void)
+static AGESA_STATUS amd_s3final_restore(void)
{
AGESA_STATUS Status;
AMD_S3FINAL_PARAMS _S3FinalParams;
@@ -473,3 +473,55 @@ AGESA_STATUS agesawrapper_amds3finalrestore(void)
return Status;
}
+
+static AGESA_STATUS romstage_dispatch(AMD_CONFIG_PARAMS *StdHeader)
+{
+ switch (StdHeader->Func) {
+ case AMD_INIT_RESET:
+ return amd_init_reset();
+ case AMD_INIT_EARLY:
+ return amd_init_early();
+ case AMD_INIT_POST:
+ return amd_init_post();
+ case AMD_INIT_RESUME:
+ return amd_init_resume();
+ default:
+ return AGESA_UNSUPPORTED;
+ }
+}
+
+static AGESA_STATUS ramstage_dispatch(AMD_CONFIG_PARAMS *StdHeader)
+{
+ switch (StdHeader->Func) {
+ case AMD_INIT_ENV:
+ return amd_init_env();
+ case AMD_INIT_MID:
+ return amd_init_mid();
+ case AMD_INIT_LATE:
+ return amd_init_late();
+ case AMD_INIT_RTB:
+ return amd_init_rtb();
+ case AMD_S3LATE_RESTORE:
+ return amd_s3late_restore();
+ case AMD_S3FINAL_RESTORE:
+ return amd_s3final_restore();
+ default:
+ return AGESA_UNSUPPORTED;
+ }
+}
+
+AGESA_STATUS agesa_execute_state(AGESA_STRUCT_NAME func)
+{
+ AGESA_STATUS status = AGESA_UNSUPPORTED;
+ AMD_CONFIG_PARAMS template = {};
+ AMD_CONFIG_PARAMS *StdHeader = &template;
+
+ StdHeader->Func = func;
+
+ if (ENV_ROMSTAGE)
+ status = romstage_dispatch(StdHeader);
+ if (ENV_RAMSTAGE)
+ status = ramstage_dispatch(StdHeader);
+
+ return status;
+}