[coreboot-gerrit] Patch set updated for coreboot: b46d2b6 AGESA: Unify some of f*/Proc/Common
Edward O'Callaghan (eocallaghan@alterapraxis.com)
gerrit at coreboot.org
Wed Dec 10 14:32:09 CET 2014
Edward O'Callaghan (eocallaghan at alterapraxis.com) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/7781
-gerrit
commit b46d2b6d32f35930c17405b414eabcf0a140cdd2
Author: Edward O'Callaghan <eocallaghan at alterapraxis.com>
Date: Wed Dec 10 23:17:21 2014 +1100
AGESA: Unify some of f*/Proc/Common
Sanitize some board includes to match the refactor.
Change-Id: I5e304d5a02a54322dfce9c376ab32455b81d8a0a
Signed-off-by: Edward O'Callaghan <eocallaghan at alterapraxis.com>
---
src/cpu/amd/agesa/family12/Makefile.inc | 2 +-
src/cpu/amd/agesa/family16kb/Makefile.inc | 2 +-
src/mainboard/amd/dinar/buildOpts.c | 2 +-
src/mainboard/amd/inagua/buildOpts.c | 2 +-
src/mainboard/amd/olivehill/buildOpts.c | 2 +-
src/mainboard/amd/parmer/buildOpts.c | 2 +-
src/mainboard/amd/persimmon/buildOpts.c | 2 +-
src/mainboard/amd/south_station/buildOpts.c | 2 +-
src/mainboard/amd/thatcher/buildOpts.c | 2 +-
src/mainboard/amd/torpedo/buildOpts.c | 2 +-
src/mainboard/amd/union_station/buildOpts.c | 2 +-
src/mainboard/asrock/e350m1/buildOpts.c | 2 +-
src/mainboard/asrock/imb-a180/buildOpts.c | 2 +-
src/mainboard/asus/f2a85-m/buildOpts.c | 2 +-
src/mainboard/asus/f2a85-m_le/buildOpts.c | 2 +-
src/mainboard/gizmosphere/gizmo/buildOpts.c | 2 +-
src/mainboard/gizmosphere/gizmo2/buildOpts.c | 2 +-
src/mainboard/hp/pavilion_m6_1035dx/buildOpts.c | 2 +-
src/mainboard/jetway/nf81-t56n-lf/buildOpts.c | 2 +-
src/mainboard/lenovo/g505s/buildOpts.c | 2 +-
src/mainboard/lippert/frontrunner-af/buildOpts.c | 2 +-
src/mainboard/lippert/toucan-af/buildOpts.c | 2 +-
.../amd/agesa/common/Proc/Common/AmdFch.h | 65 +++++
.../amd/agesa/common/Proc/Common/AmdInitRecovery.c | 168 +++++++++++
.../agesa/common/Proc/Common/AmdLateRunApTask.c | 159 +++++++++++
.../amd/agesa/common/Proc/Common/CommonInits.h | 65 +++++
.../amd/agesa/common/Proc/Common/CommonPage.h | 116 ++++++++
.../amd/agesa/common/Proc/Common/CreateStruct.c | 313 ++++++++++++++++++++
.../amd/agesa/common/Proc/Common/CreateStruct.h | 197 +++++++++++++
src/vendorcode/amd/agesa/f10/Makefile.inc | 3 +-
.../amd/agesa/f10/Proc/Common/AmdInitRecovery.c | 165 -----------
.../amd/agesa/f10/Proc/Common/AmdLateRunApTask.c | 156 ----------
.../amd/agesa/f10/Proc/Common/CommonInits.h | 65 -----
.../amd/agesa/f10/Proc/Common/CommonPage.h | 116 --------
.../amd/agesa/f10/Proc/Common/CreateStruct.h | 195 -------------
src/vendorcode/amd/agesa/f12/Makefile.inc | 1 +
src/vendorcode/amd/agesa/f12/Proc/Common/AmdFch.h | 65 -----
.../amd/agesa/f12/Proc/Common/AmdInitRecovery.c | 168 -----------
.../amd/agesa/f12/Proc/Common/CommonInits.h | 65 -----
.../amd/agesa/f12/Proc/Common/CommonPage.h | 116 --------
.../amd/agesa/f12/Proc/Common/CreateStruct.c | 313 --------------------
.../amd/agesa/f12/Proc/Common/CreateStruct.h | 195 -------------
src/vendorcode/amd/agesa/f14/Makefile.inc | 5 +-
.../amd/agesa/f14/Proc/Common/AmdInitRecovery.c | 171 -----------
.../amd/agesa/f14/Proc/Common/AmdLateRunApTask.c | 161 -----------
.../amd/agesa/f14/Proc/Common/CommonInits.h | 66 -----
.../amd/agesa/f14/Proc/Common/CommonPage.h | 118 --------
.../amd/agesa/f14/Proc/Common/CreateStruct.c | 315 ---------------------
.../amd/agesa/f14/Proc/Common/CreateStruct.h | 197 -------------
src/vendorcode/amd/agesa/f15/Makefile.inc | 5 +-
src/vendorcode/amd/agesa/f15/Proc/Common/AmdFch.h | 65 -----
.../amd/agesa/f15/Proc/Common/AmdInitRecovery.c | 168 -----------
.../amd/agesa/f15/Proc/Common/AmdLateRunApTask.c | 159 -----------
.../amd/agesa/f15/Proc/Common/CommonInits.h | 65 -----
.../amd/agesa/f15/Proc/Common/CommonPage.h | 116 --------
.../amd/agesa/f15/Proc/Common/CreateStruct.c | 313 --------------------
.../amd/agesa/f15/Proc/Common/CreateStruct.h | 195 -------------
src/vendorcode/amd/agesa/f15tn/Makefile.inc | 5 +-
.../amd/agesa/f15tn/Proc/Common/AmdFch.h | 65 -----
.../amd/agesa/f15tn/Proc/Common/AmdInitRecovery.c | 168 -----------
.../amd/agesa/f15tn/Proc/Common/AmdLateRunApTask.c | 159 -----------
.../amd/agesa/f15tn/Proc/Common/CommonInits.h | 65 -----
.../amd/agesa/f15tn/Proc/Common/CommonPage.h | 116 --------
.../amd/agesa/f15tn/Proc/Common/CreateStruct.c | 313 --------------------
.../amd/agesa/f15tn/Proc/Common/CreateStruct.h | 195 -------------
src/vendorcode/amd/agesa/f16kb/Makefile.inc | 1 +
.../amd/agesa/f16kb/Proc/Common/AmdFch.h | 65 -----
.../amd/agesa/f16kb/Proc/Common/AmdLateRunApTask.c | 159 -----------
.../amd/agesa/f16kb/Proc/Common/CommonInits.h | 65 -----
.../amd/agesa/f16kb/Proc/Common/CreateStruct.c | 313 --------------------
.../amd/agesa/f16kb/Proc/Common/CreateStruct.h | 195 -------------
71 files changed, 1118 insertions(+), 5635 deletions(-)
diff --git a/src/cpu/amd/agesa/family12/Makefile.inc b/src/cpu/amd/agesa/family12/Makefile.inc
index 7b6c661..f4c4524 100644
--- a/src/cpu/amd/agesa/family12/Makefile.inc
+++ b/src/cpu/amd/agesa/family12/Makefile.inc
@@ -48,7 +48,7 @@ agesa_lib_src += $(AGESA_ROOT)/Proc/Common/AmdS3LateRestore.c
agesa_lib_src += $(AGESA_ROOT)/Proc/Common/AmdS3Save.c
agesa_lib_src += $(AGESA_ROOT)/Proc/Common/CommonInits.c
agesa_lib_src += $(AGESA_ROOT)/Proc/Common/CommonReturns.c
-agesa_lib_src += $(AGESA_ROOT)/Proc/Common/CreateStruct.c
+agesa_lib_src += $(AGESA_ROOT)/../common/Proc/Common/CreateStruct.c
agesa_lib_src += $(AGESA_ROOT)/Proc/Common/S3RestoreState.c
agesa_lib_src += $(AGESA_ROOT)/Proc/Common/S3SaveState.c
agesa_lib_src += $(AGESA_ROOT)/Proc/CPU/cahalt.c
diff --git a/src/cpu/amd/agesa/family16kb/Makefile.inc b/src/cpu/amd/agesa/family16kb/Makefile.inc
index b238965..2526c4b 100644
--- a/src/cpu/amd/agesa/family16kb/Makefile.inc
+++ b/src/cpu/amd/agesa/family16kb/Makefile.inc
@@ -39,7 +39,7 @@ agesa_lib_src += $(AGESA_ROOT)/Proc/Common/AmdS3LateRestore.c
agesa_lib_src += $(AGESA_ROOT)/Proc/Common/AmdS3Save.c
agesa_lib_src += $(AGESA_ROOT)/Proc/Common/CommonInits.c
agesa_lib_src += $(AGESA_ROOT)/Proc/Common/CommonReturns.c
-agesa_lib_src += $(AGESA_ROOT)/Proc/Common/CreateStruct.c
+agesa_lib_src += $(AGESA_ROOT)/../common/Proc/Common/CreateStruct.c
agesa_lib_src += $(AGESA_ROOT)/Proc/Common/S3RestoreState.c
agesa_lib_src += $(AGESA_ROOT)/Proc/Common/S3SaveState.c
agesa_lib_src += $(AGESA_ROOT)/Proc/CPU/cahaltasm.S
diff --git a/src/mainboard/amd/dinar/buildOpts.c b/src/mainboard/amd/dinar/buildOpts.c
index 88e3c6f..b26d6c9 100644
--- a/src/mainboard/amd/dinar/buildOpts.c
+++ b/src/mainboard/amd/dinar/buildOpts.c
@@ -400,7 +400,7 @@ CONST DEVICE_CAP_OVERRIDE ROMDATA MaranelloOverrideDevCap[2] =
#include "cpuFamilyTranslation.h"
#include "AdvancedApi.h"
#include "heapManager.h"
-#include "CreateStruct.h"
+#include <vendorcode/amd/agesa/common/Proc/Common/CreateStruct.h>
#include "cpuFeatures.h"
#include "Table.h"
#include "CommonReturns.h"
diff --git a/src/mainboard/amd/inagua/buildOpts.c b/src/mainboard/amd/inagua/buildOpts.c
index 5779ccd..eb984ce 100644
--- a/src/mainboard/amd/inagua/buildOpts.c
+++ b/src/mainboard/amd/inagua/buildOpts.c
@@ -252,7 +252,7 @@ CONST AP_MTRR_SETTINGS ROMDATA OntarioApMtrrSettingsList[] =
#include "cpuFamilyTranslation.h"
#include "AdvancedApi.h"
#include "heapManager.h"
-#include "CreateStruct.h"
+#include <vendorcode/amd/agesa/common/Proc/Common/CreateStruct.h>
#include "cpuFeatures.h"
#include "Table.h"
#include "cpuEarlyInit.h"
diff --git a/src/mainboard/amd/olivehill/buildOpts.c b/src/mainboard/amd/olivehill/buildOpts.c
index 5aa1768..81dca9a 100644
--- a/src/mainboard/amd/olivehill/buildOpts.c
+++ b/src/mainboard/amd/olivehill/buildOpts.c
@@ -258,7 +258,7 @@ CONST AP_MTRR_SETTINGS ROMDATA KabiniApMtrrSettingsList[] =
#include "cpuFamilyTranslation.h"
#include "AdvancedApi.h"
#include "heapManager.h"
-#include "CreateStruct.h"
+#include <vendorcode/amd/agesa/common/Proc/Common/CreateStruct.h>
#include "cpuFeatures.h"
#include "Table.h"
#include "CommonReturns.h"
diff --git a/src/mainboard/amd/parmer/buildOpts.c b/src/mainboard/amd/parmer/buildOpts.c
index a2b0f87..fde0275 100644
--- a/src/mainboard/amd/parmer/buildOpts.c
+++ b/src/mainboard/amd/parmer/buildOpts.c
@@ -259,7 +259,7 @@ CONST AP_MTRR_SETTINGS ROMDATA TrinityApMtrrSettingsList[] =
#include "cpuFamilyTranslation.h"
#include "AdvancedApi.h"
#include "heapManager.h"
-#include "CreateStruct.h"
+#include <vendorcode/amd/agesa/common/Proc/Common/CreateStruct.h>
#include "cpuFeatures.h"
#include "Table.h"
#include "CommonReturns.h"
diff --git a/src/mainboard/amd/persimmon/buildOpts.c b/src/mainboard/amd/persimmon/buildOpts.c
index 2f93930..d67680d 100644
--- a/src/mainboard/amd/persimmon/buildOpts.c
+++ b/src/mainboard/amd/persimmon/buildOpts.c
@@ -252,7 +252,7 @@ CONST AP_MTRR_SETTINGS ROMDATA OntarioApMtrrSettingsList[] =
#include "cpuFamilyTranslation.h"
#include "AdvancedApi.h"
#include "heapManager.h"
-#include "CreateStruct.h"
+#include <vendorcode/amd/agesa/common/Proc/Common/CreateStruct.h>
#include "cpuFeatures.h"
#include "Table.h"
#include "cpuEarlyInit.h"
diff --git a/src/mainboard/amd/south_station/buildOpts.c b/src/mainboard/amd/south_station/buildOpts.c
index 9c7c219..8cdb056 100644
--- a/src/mainboard/amd/south_station/buildOpts.c
+++ b/src/mainboard/amd/south_station/buildOpts.c
@@ -252,7 +252,7 @@ CONST AP_MTRR_SETTINGS ROMDATA OntarioApMtrrSettingsList[] =
#include "cpuFamilyTranslation.h"
#include "AdvancedApi.h"
#include "heapManager.h"
-#include "CreateStruct.h"
+#include <vendorcode/amd/agesa/common/Proc/Common/CreateStruct.h>
#include "cpuFeatures.h"
#include "Table.h"
#include "cpuEarlyInit.h"
diff --git a/src/mainboard/amd/thatcher/buildOpts.c b/src/mainboard/amd/thatcher/buildOpts.c
index 07ad168..e98c98a 100644
--- a/src/mainboard/amd/thatcher/buildOpts.c
+++ b/src/mainboard/amd/thatcher/buildOpts.c
@@ -259,7 +259,7 @@ CONST AP_MTRR_SETTINGS ROMDATA TrinityApMtrrSettingsList[] =
#include "cpuFamilyTranslation.h"
#include "AdvancedApi.h"
#include "heapManager.h"
-#include "CreateStruct.h"
+#include <vendorcode/amd/agesa/common/Proc/Common/CreateStruct.h>
#include "cpuFeatures.h"
#include "Table.h"
#include "CommonReturns.h"
diff --git a/src/mainboard/amd/torpedo/buildOpts.c b/src/mainboard/amd/torpedo/buildOpts.c
index 31d1fef..2f547be 100644
--- a/src/mainboard/amd/torpedo/buildOpts.c
+++ b/src/mainboard/amd/torpedo/buildOpts.c
@@ -235,7 +235,7 @@ CONST AP_MTRR_SETTINGS ROMDATA LlanoApMtrrSettingsList[] =
#include "cpuFamilyTranslation.h"
#include "AdvancedApi.h"
#include "heapManager.h"
-#include "CreateStruct.h"
+#include <vendorcode/amd/agesa/common/Proc/Common/CreateStruct.h>
#include "cpuFeatures.h"
#include "Table.h"
#include "CommonReturns.h"
diff --git a/src/mainboard/amd/union_station/buildOpts.c b/src/mainboard/amd/union_station/buildOpts.c
index 9c7c219..8cdb056 100644
--- a/src/mainboard/amd/union_station/buildOpts.c
+++ b/src/mainboard/amd/union_station/buildOpts.c
@@ -252,7 +252,7 @@ CONST AP_MTRR_SETTINGS ROMDATA OntarioApMtrrSettingsList[] =
#include "cpuFamilyTranslation.h"
#include "AdvancedApi.h"
#include "heapManager.h"
-#include "CreateStruct.h"
+#include <vendorcode/amd/agesa/common/Proc/Common/CreateStruct.h>
#include "cpuFeatures.h"
#include "Table.h"
#include "cpuEarlyInit.h"
diff --git a/src/mainboard/asrock/e350m1/buildOpts.c b/src/mainboard/asrock/e350m1/buildOpts.c
index bc106b7..8e733c2 100644
--- a/src/mainboard/asrock/e350m1/buildOpts.c
+++ b/src/mainboard/asrock/e350m1/buildOpts.c
@@ -251,7 +251,7 @@ CONST AP_MTRR_SETTINGS ROMDATA OntarioApMtrrSettingsList[] =
#include "cpuFamilyTranslation.h"
#include "AdvancedApi.h"
#include "heapManager.h"
-#include "CreateStruct.h"
+#include <vendorcode/amd/agesa/common/Proc/Common/CreateStruct.h>
#include "cpuFeatures.h"
#include "Table.h"
#include "CommonReturns.h"
diff --git a/src/mainboard/asrock/imb-a180/buildOpts.c b/src/mainboard/asrock/imb-a180/buildOpts.c
index 55df22a..d01bae5 100644
--- a/src/mainboard/asrock/imb-a180/buildOpts.c
+++ b/src/mainboard/asrock/imb-a180/buildOpts.c
@@ -258,7 +258,7 @@ CONST AP_MTRR_SETTINGS ROMDATA KabiniApMtrrSettingsList[] =
#include "cpuFamilyTranslation.h"
#include "AdvancedApi.h"
#include "heapManager.h"
-#include "CreateStruct.h"
+#include <vendorcode/amd/agesa/common/Proc/Common/CreateStruct.h>
#include "cpuFeatures.h"
#include "Table.h"
#include "CommonReturns.h"
diff --git a/src/mainboard/asus/f2a85-m/buildOpts.c b/src/mainboard/asus/f2a85-m/buildOpts.c
index cd1c812..3a0402d 100644
--- a/src/mainboard/asus/f2a85-m/buildOpts.c
+++ b/src/mainboard/asus/f2a85-m/buildOpts.c
@@ -44,7 +44,7 @@
#include <vendorcode/amd/agesa/f15tn/Proc/CPU/Feature/cpuFeatures.h>
#include <vendorcode/amd/agesa/f15tn/Proc/CPU/heapManager.h>
/* the next two headers depend on heapManager.h */
-#include <vendorcode/amd/agesa/f15tn/Proc/Common/CreateStruct.h>
+#include <vendorcode/amd/agesa/common/Proc/Common/CreateStruct.h>
#include <vendorcode/amd/agesa/f15tn/Proc/CPU/cpuEarlyInit.h>
/* These tables are optional and may be used to adjust memory timing settings */
#include <vendorcode/amd/agesa/f15tn/Proc/Mem/mm.h>
diff --git a/src/mainboard/asus/f2a85-m_le/buildOpts.c b/src/mainboard/asus/f2a85-m_le/buildOpts.c
index 4e43ead..bed6c02 100644
--- a/src/mainboard/asus/f2a85-m_le/buildOpts.c
+++ b/src/mainboard/asus/f2a85-m_le/buildOpts.c
@@ -44,7 +44,7 @@
#include <vendorcode/amd/agesa/f15tn/Proc/CPU/Feature/cpuFeatures.h>
#include <vendorcode/amd/agesa/f15tn/Proc/CPU/heapManager.h>
/* the next two headers depend on heapManager.h */
-#include <vendorcode/amd/agesa/f15tn/Proc/Common/CreateStruct.h>
+#include <vendorcode/amd/agesa/common/Proc/Common/CreateStruct.h>
#include <vendorcode/amd/agesa/f15tn/Proc/CPU/cpuEarlyInit.h>
/* These tables are optional and may be used to adjust memory timing settings */
#include <vendorcode/amd/agesa/f15tn/Proc/Mem/mm.h>
diff --git a/src/mainboard/gizmosphere/gizmo/buildOpts.c b/src/mainboard/gizmosphere/gizmo/buildOpts.c
index 613b3bc..adbf1c8 100644
--- a/src/mainboard/gizmosphere/gizmo/buildOpts.c
+++ b/src/mainboard/gizmosphere/gizmo/buildOpts.c
@@ -254,7 +254,7 @@ CONST AP_MTRR_SETTINGS ROMDATA OntarioApMtrrSettingsList[] =
#include "cpuFamilyTranslation.h"
#include "AdvancedApi.h"
#include "heapManager.h"
-#include "CreateStruct.h"
+#include <vendorcode/amd/agesa/common/Proc/Common/CreateStruct.h>
#include "cpuFeatures.h"
#include "Table.h"
#include "cpuEarlyInit.h"
diff --git a/src/mainboard/gizmosphere/gizmo2/buildOpts.c b/src/mainboard/gizmosphere/gizmo2/buildOpts.c
index 51d9dd0..8d4e585 100644
--- a/src/mainboard/gizmosphere/gizmo2/buildOpts.c
+++ b/src/mainboard/gizmosphere/gizmo2/buildOpts.c
@@ -258,7 +258,7 @@ CONST AP_MTRR_SETTINGS ROMDATA KabiniApMtrrSettingsList[] =
#include "cpuFamilyTranslation.h"
#include "AdvancedApi.h"
#include "heapManager.h"
-#include "CreateStruct.h"
+#include <vendorcode/amd/agesa/common/Proc/Common/CreateStruct.h>
#include "cpuFeatures.h"
#include "Table.h"
#include "CommonReturns.h"
diff --git a/src/mainboard/hp/pavilion_m6_1035dx/buildOpts.c b/src/mainboard/hp/pavilion_m6_1035dx/buildOpts.c
index bfd6383..0a241b2 100644
--- a/src/mainboard/hp/pavilion_m6_1035dx/buildOpts.c
+++ b/src/mainboard/hp/pavilion_m6_1035dx/buildOpts.c
@@ -46,7 +46,7 @@
#include <vendorcode/amd/agesa/f15tn/Proc/CPU/Feature/cpuFeatures.h>
#include <vendorcode/amd/agesa/f15tn/Proc/CPU/heapManager.h>
/* AGESA nonesense: the next two headers depend on heapManager.h */
-#include <vendorcode/amd/agesa/f15tn/Proc/Common/CreateStruct.h>
+#include <vendorcode/amd/agesa/common/Proc/Common/CreateStruct.h>
#include <vendorcode/amd/agesa/f15tn/Proc/CPU/cpuEarlyInit.h>
/* These tables are optional and may be used to adjust memory timing settings */
#include <vendorcode/amd/agesa/f15tn/Proc/Mem/mm.h>
diff --git a/src/mainboard/jetway/nf81-t56n-lf/buildOpts.c b/src/mainboard/jetway/nf81-t56n-lf/buildOpts.c
index 8d8bbec..3c4c6a8 100644
--- a/src/mainboard/jetway/nf81-t56n-lf/buildOpts.c
+++ b/src/mainboard/jetway/nf81-t56n-lf/buildOpts.c
@@ -44,7 +44,7 @@
#include <vendorcode/amd/agesa/f14/Proc/CPU/Feature/cpuFeatures.h>
#include <vendorcode/amd/agesa/f14/Proc/CPU/heapManager.h>
/* AGESA nonesense: the next two headers depend on heapManager.h */
-#include <vendorcode/amd/agesa/f14/Proc/Common/CreateStruct.h>
+#include <vendorcode/amd/agesa/common/Proc/Common/CreateStruct.h>
#include <vendorcode/amd/agesa/f14/Proc/CPU/cpuEarlyInit.h>
/* These tables are optional and may be used to adjust memory timing settings */
#include <vendorcode/amd/agesa/f14/Proc/Mem/mm.h>
diff --git a/src/mainboard/lenovo/g505s/buildOpts.c b/src/mainboard/lenovo/g505s/buildOpts.c
index 9ed4c74..82ce249 100644
--- a/src/mainboard/lenovo/g505s/buildOpts.c
+++ b/src/mainboard/lenovo/g505s/buildOpts.c
@@ -46,7 +46,7 @@
#include <vendorcode/amd/agesa/f15tn/Proc/CPU/Feature/cpuFeatures.h>
#include <vendorcode/amd/agesa/f15tn/Proc/CPU/heapManager.h>
/* AGESA nonesense: the next two headers depend on heapManager.h */
-#include <vendorcode/amd/agesa/f15tn/Proc/Common/CreateStruct.h>
+#include <vendorcode/amd/agesa/common/Proc/Common/CreateStruct.h>
#include <vendorcode/amd/agesa/f15tn/Proc/CPU/cpuEarlyInit.h>
/* These tables are optional and may be used to adjust memory timing settings */
#include <vendorcode/amd/agesa/f15tn/Proc/Mem/mm.h>
diff --git a/src/mainboard/lippert/frontrunner-af/buildOpts.c b/src/mainboard/lippert/frontrunner-af/buildOpts.c
index a6e4472..f9ffa02 100644
--- a/src/mainboard/lippert/frontrunner-af/buildOpts.c
+++ b/src/mainboard/lippert/frontrunner-af/buildOpts.c
@@ -253,7 +253,7 @@ CONST AP_MTRR_SETTINGS ROMDATA OntarioApMtrrSettingsList[] =
#include "cpuFamilyTranslation.h"
#include "AdvancedApi.h"
#include "heapManager.h"
-#include "CreateStruct.h"
+#include <vendorcode/amd/agesa/common/Proc/Common/CreateStruct.h>
#include "cpuFeatures.h"
#include "Table.h"
#include "cpuEarlyInit.h"
diff --git a/src/mainboard/lippert/toucan-af/buildOpts.c b/src/mainboard/lippert/toucan-af/buildOpts.c
index a6e4472..f9ffa02 100644
--- a/src/mainboard/lippert/toucan-af/buildOpts.c
+++ b/src/mainboard/lippert/toucan-af/buildOpts.c
@@ -253,7 +253,7 @@ CONST AP_MTRR_SETTINGS ROMDATA OntarioApMtrrSettingsList[] =
#include "cpuFamilyTranslation.h"
#include "AdvancedApi.h"
#include "heapManager.h"
-#include "CreateStruct.h"
+#include <vendorcode/amd/agesa/common/Proc/Common/CreateStruct.h>
#include "cpuFeatures.h"
#include "Table.h"
#include "cpuEarlyInit.h"
diff --git a/src/vendorcode/amd/agesa/common/Proc/Common/AmdFch.h b/src/vendorcode/amd/agesa/common/Proc/Common/AmdFch.h
new file mode 100644
index 0000000..afe565b
--- /dev/null
+++ b/src/vendorcode/amd/agesa/common/Proc/Common/AmdFch.h
@@ -0,0 +1,65 @@
+/* $NoKeywords:$ */
+/**
+ * @file
+ *
+ * AMD FCH Component
+ *
+ *
+ *
+ * @xrefitem bom "File Content Label" "Release Content"
+ * @e project: AGESA
+ * @e sub-project: FCH
+ * @e \$Revision: 63425 $ @e \$Date: 2011-12-22 11:24:10 -0600 (Thu, 22 Dec 2011) $
+ *
+ */
+/*
+*****************************************************************************
+*
+ * Copyright (c) 2008 - 2012, Advanced Micro Devices, Inc.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * * Neither the name of Advanced Micro Devices, Inc. nor the names of
+ * its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL ADVANCED MICRO DEVICES, INC. BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+* ***************************************************************************
+*
+*/
+
+#ifndef _AMD_FCH_H_
+#define _AMD_FCH_H_
+
+typedef AGESA_STATUS FCH_INIT (IN VOID *DataPtr);
+typedef VOID FCH_TASK_ENTRY (IN VOID *FchCfg);
+
+
+/// FCH API build options
+typedef struct {
+ FCH_INIT *InitReset; ///< InitReset
+ FCH_INIT *InitResetConstructor; ///< InitResetConstructor
+ FCH_INIT *InitEnv; ///< InitEnv
+ FCH_INIT *InitEnvConstructor; ///< InitEnvConstructor
+ FCH_INIT *InitMid; ///< InitMid
+ FCH_INIT *InitMidConstructor; ///< InitMidConstructor
+ FCH_INIT *InitLate; ///< InitLate
+ FCH_INIT *InitLateConstructor; ///< InitLateConstructor
+} BLDOPT_FCH_FUNCTION;
+
+#endif
diff --git a/src/vendorcode/amd/agesa/common/Proc/Common/AmdInitRecovery.c b/src/vendorcode/amd/agesa/common/Proc/Common/AmdInitRecovery.c
new file mode 100644
index 0000000..ac4c08d
--- /dev/null
+++ b/src/vendorcode/amd/agesa/common/Proc/Common/AmdInitRecovery.c
@@ -0,0 +1,168 @@
+/* $NoKeywords:$ */
+/**
+ * @file
+ *
+ * AMD AGESA Basic Level Public APIs
+ *
+ * Contains basic Level Initialization routines.
+ *
+ * @xrefitem bom "File Content Label" "Release Content"
+ * @e project: AGESA
+ * @e sub-project: Common
+ * @e \$Revision: 63425 $ @e \$Date: 2011-12-22 11:24:10 -0600 (Thu, 22 Dec 2011) $
+ *
+ */
+/*****************************************************************************
+ *
+ * Copyright (c) 2008 - 2012, Advanced Micro Devices, Inc.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * * Neither the name of Advanced Micro Devices, Inc. nor the names of
+ * its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL ADVANCED MICRO DEVICES, INC. BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ ******************************************************************************
+ */
+
+
+/*----------------------------------------------------------------------------------------
+ * M O D U L E S U S E D
+ *----------------------------------------------------------------------------------------
+ */
+#include "AGESA.h"
+#include "amdlib.h"
+#include "Ids.h"
+#include "AdvancedApi.h"
+#include "heapManager.h"
+#include "mm.h"
+#include "GnbInterface.h"
+#include "cpuRecovery.h"
+#include "cpuCacheInit.h"
+#include "Filecode.h"
+CODE_GROUP (G2_PEI)
+RDATA_GROUP (G2_PEI)
+
+#define FILECODE PROC_COMMON_AMDINITRECOVERY_FILECODE
+
+/*----------------------------------------------------------------------------------------
+ * P R O T O T Y P E S O F L O C A L F U N C T I O N S
+ *----------------------------------------------------------------------------------------
+ */
+
+/*----------------------------------------------------------------------------------------
+ * D E F I N I T I O N S A N D M A C R O S
+ *----------------------------------------------------------------------------------------
+ */
+
+/*---------------------------------------------------------------------------------------*/
+/**
+ * Perform initialization services required at the Early Init POST time point.
+ *
+ * Execution Cache, HyperTransport, C1e, and AP Init advanced services are performed.
+ *
+ * @param[in, out] RecoveryParams The interface struct for Recovery services
+ *
+ * @return The most severe AGESA_STATUS returned by any called service.
+ *
+ */
+AGESA_STATUS
+AmdInitRecovery (
+ IN OUT AMD_RECOVERY_PARAMS *RecoveryParams
+ )
+{
+ AGESA_STATUS AgesaStatus;
+ AGESA_STATUS CalledAgesaStatus;
+
+ AGESA_TESTPOINT (TpIfAmdInitRecoveryEntry, &RecoveryParams->StdHeader);
+
+ ASSERT (RecoveryParams != NULL);
+
+ AgesaStatus = AGESA_SUCCESS;
+
+ // Setup ROM execution cache
+ CalledAgesaStatus = AllocateExecutionCache (&RecoveryParams->StdHeader, &RecoveryParams->CacheRegion[0]);
+ if (CalledAgesaStatus > AgesaStatus) {
+ AgesaStatus = CalledAgesaStatus;
+ }
+
+ CalledAgesaStatus = AmdHtInitRecovery (&RecoveryParams->StdHeader);
+ if (CalledAgesaStatus > AgesaStatus) {
+ AgesaStatus = CalledAgesaStatus;
+ }
+
+ CalledAgesaStatus = AmdCpuRecovery ((AMD_CPU_RECOVERY_PARAMS *) &RecoveryParams->StdHeader);
+ if (CalledAgesaStatus > AgesaStatus) {
+ AgesaStatus = CalledAgesaStatus;
+ }
+
+ CalledAgesaStatus = AmdMemRecovery (RecoveryParams->MemConfig.MemData);
+ if (CalledAgesaStatus > AgesaStatus) {
+ AgesaStatus = CalledAgesaStatus;
+ }
+
+ CalledAgesaStatus = AmdGnbRecovery (&RecoveryParams->StdHeader);
+ if (CalledAgesaStatus > AgesaStatus) {
+ AgesaStatus = CalledAgesaStatus;
+ }
+
+ AGESA_TESTPOINT (TpIfAmdInitRecoveryExit, &RecoveryParams->StdHeader);
+ return AgesaStatus;
+}
+
+/*---------------------------------------------------------------------------------------*/
+/**
+ *
+ * Initialize defaults and options for Amd Init Reset.
+ *
+ * @param[in] StdHeader AMD standard header config param.
+ * @param[in] AmdRecoveryParamsPtr The Reset Init interface to initialize.
+ *
+ * @retval AGESA_SUCCESS Always Succeeds.
+ */
+AGESA_STATUS
+AmdInitRecoveryInitializer (
+ IN AMD_CONFIG_PARAMS *StdHeader,
+ IN OUT AMD_RECOVERY_PARAMS *AmdRecoveryParamsPtr
+ )
+{
+ ALLOCATE_HEAP_PARAMS AllocHeapParams;
+
+ ASSERT (StdHeader != NULL);
+ ASSERT (AmdRecoveryParamsPtr != NULL);
+
+ AmdRecoveryParamsPtr->StdHeader = *StdHeader;
+
+ AllocHeapParams.RequestedBufferSize = sizeof (MEM_DATA_STRUCT);
+ AllocHeapParams.BufferHandle = AMD_MEM_DATA_HANDLE;
+ AllocHeapParams.Persist = HEAP_LOCAL_CACHE;
+ if (HeapAllocateBuffer (&AllocHeapParams, &AmdRecoveryParamsPtr->StdHeader) == AGESA_SUCCESS) {
+ AmdRecoveryParamsPtr->MemConfig.MemData = (MEM_DATA_STRUCT *) AllocHeapParams.BufferPtr;
+ AmdRecoveryParamsPtr->MemConfig.MemData->ParameterListPtr = &(AmdRecoveryParamsPtr->MemConfig);
+ LibAmdMemCopy ((VOID *) AmdRecoveryParamsPtr->MemConfig.MemData,
+ (VOID *) AmdRecoveryParamsPtr,
+ (UINTN) sizeof (AmdRecoveryParamsPtr->StdHeader),
+ &AmdRecoveryParamsPtr->StdHeader
+ );
+ AmdMemInitDataStructDefRecovery (AmdRecoveryParamsPtr->MemConfig.MemData);
+ return AGESA_SUCCESS;
+ } else {
+ return AGESA_ERROR;
+ }
+}
diff --git a/src/vendorcode/amd/agesa/common/Proc/Common/AmdLateRunApTask.c b/src/vendorcode/amd/agesa/common/Proc/Common/AmdLateRunApTask.c
new file mode 100644
index 0000000..b7e125e
--- /dev/null
+++ b/src/vendorcode/amd/agesa/common/Proc/Common/AmdLateRunApTask.c
@@ -0,0 +1,159 @@
+/* $NoKeywords:$ */
+/**
+ * @file
+ *
+ * AMD AGESA Basic Level Public APIs
+ *
+ * Contains basic Level Initialization routines.
+ *
+ * @xrefitem bom "File Content Label" "Release Content"
+ * @e project: AGESA
+ * @e sub-project: Interface
+ * @e \$Revision: 84150 $ @e \$Date: 2012-12-12 15:46:25 -0600 (Wed, 12 Dec 2012) $
+ *
+ */
+/*****************************************************************************
+ *
+ * Copyright (c) 2008 - 2013, Advanced Micro Devices, Inc.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * * Neither the name of Advanced Micro Devices, Inc. nor the names of
+ * its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL ADVANCED MICRO DEVICES, INC. BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ ******************************************************************************
+ */
+
+
+/*----------------------------------------------------------------------------------------
+ * M O D U L E S U S E D
+ *----------------------------------------------------------------------------------------
+ */
+#include "AGESA.h"
+#include "Ids.h"
+#include "Options.h"
+#include "Filecode.h"
+#include "heapManager.h"
+#include "CreateStruct.h"
+CODE_GROUP (G3_DXE)
+RDATA_GROUP (G3_DXE)
+
+#define FILECODE PROC_COMMON_AMDLATERUNAPTASK_FILECODE
+/*----------------------------------------------------------------------------------------
+ * D E F I N I T I O N S A N D M A C R O S
+ *----------------------------------------------------------------------------------------
+ */
+
+
+/*----------------------------------------------------------------------------------------
+ * T Y P E D E F S A N D S T R U C T U R E S
+ *----------------------------------------------------------------------------------------
+ */
+
+
+/*----------------------------------------------------------------------------------------
+ * P R O T O T Y P E S O F L O C A L F U N C T I O N S
+ *----------------------------------------------------------------------------------------
+ */
+
+
+/*----------------------------------------------------------------------------------------
+ * E X P O R T E D F U N C T I O N S
+ *----------------------------------------------------------------------------------------
+ */
+extern CONST DISPATCH_TABLE ApDispatchTable[];
+
+/*---------------------------------------------------------------------------------------*/
+/**
+ * Application Processor perform a function as directed by the BSC.
+ *
+ * This is needed for an AP task that must run after AGESA has relinquished control
+ * of the APs to the IBV.
+ *
+ * @param[in] AmdApExeParams The interface struct for any required routine.
+ *
+ * @return The most severe AGESA_STATUS returned by any called service. Note
+ * that this will be the return value passed back to the BSC as the
+ * return value for the call out.
+ *
+ */
+AGESA_STATUS
+AmdLateRunApTask (
+ IN AP_EXE_PARAMS *AmdApExeParams
+ )
+{
+ AGESA_STATUS CalledAgesaStatus;
+ AGESA_STATUS ApLateTaskStatus;
+ DISPATCH_TABLE *Entry;
+
+ AGESA_TESTPOINT (TpIfAmdLateRunApTaskEntry, &AmdApExeParams->StdHeader);
+
+ ASSERT (AmdApExeParams != NULL);
+ ApLateTaskStatus = AGESA_SUCCESS;
+ CalledAgesaStatus = AGESA_UNSUPPORTED;
+
+ // Dispatch, if valid
+ Entry = (DISPATCH_TABLE *) ApDispatchTable;
+ while (Entry->FunctionId != 0) {
+ if (AmdApExeParams->FunctionNumber == Entry->FunctionId) {
+ CalledAgesaStatus = Entry->EntryPoint (AmdApExeParams);
+ break;
+ }
+ Entry++;
+ }
+
+ if (CalledAgesaStatus > ApLateTaskStatus) {
+ ApLateTaskStatus = CalledAgesaStatus;
+ }
+
+ AGESA_TESTPOINT (TpIfAmdLateRunApTaskExit, &AmdApExeParams->StdHeader);
+ return ApLateTaskStatus;
+}
+
+/*---------------------------------------------------------------------------------------*/
+/**
+ * Constructor for the AMD_LATE_RUN_AP_TASK function.
+ *
+ * This routine is responsible for setting default values for the
+ * input parameters needed by the AMD_S3_SAVE entry point.
+ *
+ * @param[in] StdHeader The standard header.
+ * @param[in,out] AmdApExeParams Required input parameters for the AMD_LATE_RUN_AP_TASK
+ * entry point.
+ *
+ * @retval AGESA_SUCCESS Always Succeeds.
+ *
+ */
+AGESA_STATUS
+AmdLateRunApTaskInitializer (
+ IN AMD_CONFIG_PARAMS *StdHeader,
+ IN OUT AP_EXE_PARAMS *AmdApExeParams
+ )
+{
+ ASSERT (StdHeader != NULL);
+ ASSERT (AmdApExeParams != NULL);
+
+ AmdApExeParams->StdHeader = *StdHeader;
+ AmdApExeParams->FunctionNumber = 0;
+ AmdApExeParams->RelatedDataBlock = NULL;
+ AmdApExeParams->RelatedBlockLength = 0;
+ return AGESA_SUCCESS;
+}
+
diff --git a/src/vendorcode/amd/agesa/common/Proc/Common/CommonInits.h b/src/vendorcode/amd/agesa/common/Proc/Common/CommonInits.h
new file mode 100644
index 0000000..681bc4a
--- /dev/null
+++ b/src/vendorcode/amd/agesa/common/Proc/Common/CommonInits.h
@@ -0,0 +1,65 @@
+/* $NoKeywords:$ */
+/**
+ * @file
+ *
+ * Common initialization routines.
+ *
+ * Contains common initialization routines across AGESA entries of phases.
+ *
+ * @xrefitem bom "File Content Label" "Release Content"
+ * @e project: AGESA
+ * @e sub-project: Common
+ * @e \$Revision: 63425 $ @e \$Date: 2011-12-22 11:24:10 -0600 (Thu, 22 Dec 2011) $
+ *
+ */
+/*
+*****************************************************************************
+*
+ * Copyright (c) 2008 - 2012, Advanced Micro Devices, Inc.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * * Neither the name of Advanced Micro Devices, Inc. nor the names of
+ * its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL ADVANCED MICRO DEVICES, INC. BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+* ***************************************************************************
+*
+*/
+
+#ifndef _COMMON_INITS_H_
+#define _COMMON_INITS_H_
+
+/**
+ * Common routine to initialize PLATFORM_CONFIGURATION.
+ *
+ * @param[in,out] PlatformConfig Platform profile/build option config structure
+ * @param[in,out] StdHeader AMD standard header config param
+ *
+ * @retval AGESA_SUCCESS Always Succeeds.
+ *
+ */
+AGESA_STATUS
+CommonPlatformConfigInit (
+ IN OUT PLATFORM_CONFIGURATION *PlatformConfig,
+ IN OUT AMD_CONFIG_PARAMS *StdHeader
+ );
+
+#endif // _COMMON_INITS_H_
+
diff --git a/src/vendorcode/amd/agesa/common/Proc/Common/CommonPage.h b/src/vendorcode/amd/agesa/common/Proc/Common/CommonPage.h
new file mode 100644
index 0000000..1dcc6da
--- /dev/null
+++ b/src/vendorcode/amd/agesa/common/Proc/Common/CommonPage.h
@@ -0,0 +1,116 @@
+/* $NoKeywords:$ */
+/**
+ * @file
+ *
+ * Create outline and references for Processor Common Component mainpage documentation.
+ *
+ * Design guides, maintenance guides, and general documentation, are
+ * collected using this file onto the documentation mainpage.
+ * This file contains doxygen comment blocks, only.
+ *
+ * @xrefitem bom "File Content Label" "Release Content"
+ * @e project: AGESA
+ * @e sub-project: Documentation
+ * @e \$Revision: 63425 $ @e \$Date: 2011-12-22 11:24:10 -0600 (Thu, 22 Dec 2011) $
+ *
+ */
+/*
+ ******************************************************************************
+ *
+ * Copyright (c) 2008 - 2012, Advanced Micro Devices, Inc.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * * Neither the name of Advanced Micro Devices, Inc. nor the names of
+ * its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL ADVANCED MICRO DEVICES, INC. BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ ******************************************************************************
+ */
+
+/**
+ * @page commonmain Processor Common Component Documentation
+ *
+ * Additional documentation for the Common component consists of
+ *
+ * - Maintenance Guides:
+ * - @subpage amdconfigparamname "Naming Guidelines for type AMD_CONFIG_PARAMS"
+ * - Design Guides:
+ * - add here >>>
+ *
+ */
+
+/**
+ * @page amdconfigparamname Naming Guidelines for type AMD_CONFIG_PARAMS
+ * @par
+ * These are the guidelines for naming objects of type AMD_CONFIG_PARAMS and AMD_CONFIG_PARAMS * in AGESA code.
+ * <ul>
+ *
+ * <li>
+ * Formal parameter names of type AMD_CONFIG_PARAMS and AMD_CONFIG_PARAMS * will always be named
+ * StdHeader. This covers all function prototypes, function definitions, and method typedefs (a
+ * typedef of a function prototype) in AGESA code. Examples:
+ * @n @code
+ * VOID
+ * LibAmdPciFindNextCap (
+ * IN OUT PCI_ADDR *Address,
+ * IN AMD_CONFIG_PARAMS *StdHeader
+ * )
+ *
+ * typedef VOID F_DO_TABLE_ENTRY (
+ * IN TABLE_ENTRY_DATA *CurrentEntry,
+ * IN PLATFORM_CONFIGURATION *PlatformConfig,
+ * IN AMD_CONFIG_PARAMS *StdHeader
+ * );
+ *
+ * @endcode
+ *
+ * <li>
+ * Structure members of type AMD_CONFIG_PARAMS or AMD_CONFIG_PARAMS * will always be named StdHeader. Examples:
+ * @n @code
+ /// Example of struct member naming.
+ * typedef struct {
+ * IN OUT AMD_CONFIG_PARAMS StdHeader; ///< Standard Header
+ * IN PLATFORM_CONFIGURATION PlatformConfig; ///< platform operational characteristics.
+ * } AMD_CPU_RECOVERY_PARAMS;
+ *
+ * @endcode
+ *
+ * <li>
+ * Routines which define local variables of type AMD_CONFIG_PARAMS or AMD_CONFIG_PARAMS * should
+ * name the local variable as closely as practical to StdHeader, but otherwise freedom is allowed. Example:
+ * @n @code
+ * AMD_CONFIG_PARAMS *NewStdHeader;
+ * [...]
+ * NewStdHeader = (AMD_CONFIG_PARAMS *)AllocHeapParams.BufferPtr;
+ * @endcode
+ *
+ * <li>
+ * Arguments to routines with AMD_CONFIG_PARAMS or AMD_CONFIG_PARAMS * formal parameters are not
+ * checked. Freedom is allowed in order to conform to these guidelines in a practical, readable
+ * way. This includes typecast arguments. Examples:
+ * @n @code
+ * Status = GetEventLog (&LogEvent, (AMD_CONFIG_PARAMS *)Event);
+ *
+ * MemS3ExitSelfRefRegDA (NBPtr, &MemPtr->StdHeader);
+ * @endcode
+ *
+ * </ul>
+ *
+ */
diff --git a/src/vendorcode/amd/agesa/common/Proc/Common/CreateStruct.c b/src/vendorcode/amd/agesa/common/Proc/Common/CreateStruct.c
new file mode 100644
index 0000000..8468d3b
--- /dev/null
+++ b/src/vendorcode/amd/agesa/common/Proc/Common/CreateStruct.c
@@ -0,0 +1,313 @@
+/* $NoKeywords:$ */
+/**
+ * @file
+ *
+ * AMD AGESA Input Structure Creation
+ *
+ * Contains AGESA input structure creation support.
+ *
+ * @xrefitem bom "File Content Label" "Release Content"
+ * @e project: AGESA
+ * @e sub-project: Common
+ * @e \$Revision: 84150 $ @e \$Date: 2012-12-12 15:46:25 -0600 (Wed, 12 Dec 2012) $
+ *
+ */
+/*
+ ******************************************************************************
+ *
+ * Copyright (c) 2008 - 2013, Advanced Micro Devices, Inc.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * * Neither the name of Advanced Micro Devices, Inc. nor the names of
+ * its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL ADVANCED MICRO DEVICES, INC. BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ ******************************************************************************
+ */
+
+/*----------------------------------------------------------------------------------------
+ * M O D U L E S U S E D
+ *----------------------------------------------------------------------------------------
+ */
+#include "AGESA.h"
+#include "amdlib.h"
+#include "Ids.h"
+#include "GeneralServices.h"
+#include "heapManager.h"
+#include "CreateStruct.h"
+#include "cpuFamilyTranslation.h"
+#include "Filecode.h"
+CODE_GROUP (G1_PEICC)
+RDATA_GROUP (G1_PEICC)
+
+#define FILECODE PROC_COMMON_CREATESTRUCT_FILECODE
+/*----------------------------------------------------------------------------------------
+ * D E F I N I T I O N S A N D M A C R O S
+ *----------------------------------------------------------------------------------------
+ */
+extern CONST FUNCTION_PARAMS_INFO FuncParamsInfo[];
+extern CONST UINTN InitializerCount;
+
+/*----------------------------------------------------------------------------------------
+ * T Y P E D E F S A N D S T R U C T U R E S
+ *----------------------------------------------------------------------------------------
+ */
+
+/*----------------------------------------------------------------------------------------
+ * P R O T O T Y P E S O F L O C A L F U N C T I O N S
+ *----------------------------------------------------------------------------------------
+ */
+
+/*----------------------------------------------------------------------------------------
+ * E X P O R T E D F U N C T I O N S
+ *----------------------------------------------------------------------------------------
+ */
+extern BUILD_OPT_CFG UserOptions;
+
+/*---------------------------------------------------------------------------------------*/
+/**
+ * Allocate and initialize Config headers and Service Interface structures.
+ *
+ * This function will be called for each AGESA public APIs.
+ * This function will do the following:
+ * -# Locate the AGESA API structure parameters initializer function information.
+ * -# Find the size of the structure that gets passed to each public APIs as
+ * the entry parameter. Allocate heap space using the size for PreMemHeap, callout for
+ * memory allocation for PostMemDram, and just set the config and service interface
+ * pointers for ByHost.
+ * -# If the allocation is not ByHost, copy the AmdConfigParams into the newly created AmdConfigParams.
+ * For ByHost, we're using the caller's existing config params.
+ * -# Call the initializer function, and pass a reference to the Config params and to
+ * the Service Interface struct. On return the constructor will have filled the
+ * remaining structure with default values.
+ * -# Fill the remaining info in the newly created structure on heap in AMD_CONFIG_PARAMS
+ * area (i.e. Fill *newStructPtr with the pointer to the newly created structure)
+ * -# Set the appropriate AGESA function number in the StdHeader member of the input
+ * parameter structure.
+ *
+ * @param[in,out] InterfaceParams Pointer to structure containing the function call
+ * whose parameter structure is to be created, the
+ * allocation method, and a pointer to the newly
+ * created structure.
+ *
+ * @retval AGESA_SUCCESS The interface struct is allocated and initialized.
+ * @retval AGESA_UNSUPPORTED The Service is not supported.
+ *
+ */
+AGESA_STATUS
+AmdCreateStruct (
+ IN OUT AMD_INTERFACE_PARAMS *InterfaceParams
+ )
+{
+ UINTN ServiceIndex;
+ ALLOCATE_HEAP_PARAMS AllocHeapParams;
+ AMD_CONFIG_PARAMS *NewlyCreatedConfig;
+ VOID *NewlyCreatedServiceInterface;
+ AGESA_STATUS AgesaStatus;
+ AGESA_STATUS TempStatus;
+ AGESA_STATUS IgnoredSts;
+ CPU_SPECIFIC_SERVICES *FamilySpecificServices;
+
+ AgesaStatus = AGESA_SUCCESS;
+
+ ASSERT (InterfaceParams != NULL);
+
+ switch (InterfaceParams->AgesaFunctionName) {
+ case AMD_INIT_RESET:
+ if (!IsBsp (&InterfaceParams->StdHeader, &IgnoredSts)) {
+ // APs must transfer their system core number from the mailbox to
+ // a local register while it is still valid.
+ GetCpuServicesOfCurrentCore ((CONST CPU_SPECIFIC_SERVICES **)&FamilySpecificServices, &InterfaceParams->StdHeader);
+ FamilySpecificServices->TransferApCoreNumber (FamilySpecificServices, &InterfaceParams->StdHeader);
+ }
+ InterfaceParams->StdHeader.HeapStatus = HEAP_DO_NOT_EXIST_YET;
+ break;
+ case AMD_INIT_EARLY:
+ case AMD_INIT_RECOVERY:
+ case AMD_INIT_RESUME:
+ case AMD_INIT_POST:
+ InterfaceParams->StdHeader.HeapStatus = HEAP_LOCAL_CACHE;
+ break;
+ case AMD_INIT_ENV:
+ InterfaceParams->StdHeader.HeapStatus = HEAP_TEMP_MEM;
+ break;
+ case AMD_INIT_LATE:
+ case AMD_INIT_MID:
+ case AMD_S3_SAVE:
+ case AMD_LATE_RUN_AP_TASK:
+ InterfaceParams->StdHeader.HeapStatus = HEAP_SYSTEM_MEM;
+ break;
+ case AMD_S3LATE_RESTORE:
+ InterfaceParams->StdHeader.HeapStatus = HEAP_S3_RESUME;
+ break;
+ default:
+ ASSERT (FALSE);
+ InterfaceParams->StdHeader.HeapStatus = HEAP_LOCAL_CACHE;
+ break;
+ }
+
+ InterfaceParams->StdHeader.HeapBasePtr = HeapGetBaseAddress (&InterfaceParams->StdHeader);
+
+ if (InterfaceParams->AgesaFunctionName == AMD_INIT_RESET) {
+ AgesaStatus = HeapManagerInit (&InterfaceParams->StdHeader);
+ }
+
+ // Step 1
+ for (ServiceIndex = 0; ServiceIndex < InitializerCount; ServiceIndex++) {
+ if (FuncParamsInfo[ServiceIndex].AgesaFunctionName == InterfaceParams->AgesaFunctionName) {
+ break;
+ }
+ }
+ if (ServiceIndex >= InitializerCount) {
+ // A call was made to AGESA with an invalid function number. This wrapper error may be due to the build target
+ // not containing the desired entry point.
+ return AGESA_UNSUPPORTED;
+ }
+
+ // Step 2
+ LibAmdMemFill (&AllocHeapParams, 0, (UINTN) (sizeof (ALLOCATE_HEAP_PARAMS)), &InterfaceParams->StdHeader);
+
+ if (InterfaceParams->AllocationMethod < ByHost) {
+ // Allocate one buffer to contain the config params and the service struct.
+ // The service struct begins immediately after the config params.
+ AllocHeapParams.RequestedBufferSize = FuncParamsInfo[ServiceIndex].CreateStructSize + sizeof (AMD_CONFIG_PARAMS);
+ AllocHeapParams.BufferHandle = FuncParamsInfo[ServiceIndex].BufferHandle;
+ AllocHeapParams.Persist = HEAP_SYSTEM_MEM;
+ TempStatus = HeapAllocateBuffer (&AllocHeapParams, &(InterfaceParams->StdHeader));
+ AgesaStatus = ((AgesaStatus > TempStatus) ? AgesaStatus : TempStatus);
+ NewlyCreatedConfig = (AMD_CONFIG_PARAMS *)AllocHeapParams.BufferPtr;
+ NewlyCreatedConfig++;
+ NewlyCreatedServiceInterface = NewlyCreatedConfig;
+ NewlyCreatedConfig = (AMD_CONFIG_PARAMS *)AllocHeapParams.BufferPtr;
+ } else {
+ // The caller (example, agesa basic interface implementation) already has a buffer to use.
+ NewlyCreatedConfig = (AMD_CONFIG_PARAMS *)InterfaceParams;
+ NewlyCreatedServiceInterface = InterfaceParams->NewStructPtr;
+ ASSERT (InterfaceParams->NewStructSize >= FuncParamsInfo[ServiceIndex].CreateStructSize);
+ }
+ ASSERT (NewlyCreatedConfig != NULL);
+ ASSERT (NewlyCreatedServiceInterface != NULL);
+
+ // Step 3
+ if (InterfaceParams->AllocationMethod != ByHost) {
+ *NewlyCreatedConfig = InterfaceParams->StdHeader;
+ }
+
+ // Step 4
+ TempStatus = FuncParamsInfo[ServiceIndex].AgesaFunction (NewlyCreatedConfig, NewlyCreatedServiceInterface);
+ AgesaStatus = ((AgesaStatus > TempStatus) ? AgesaStatus : TempStatus);
+
+ // Step 5
+ if (InterfaceParams->AllocationMethod != ByHost) {
+ InterfaceParams->NewStructPtr = (VOID *) NewlyCreatedServiceInterface;
+ InterfaceParams->NewStructSize = FuncParamsInfo[ServiceIndex].CreateStructSize;
+ }
+
+ // Step 6
+ ((AMD_CONFIG_PARAMS *) InterfaceParams->NewStructPtr)->Func = InterfaceParams->AgesaFunctionName;
+ return AgesaStatus;
+}
+
+
+/*---------------------------------------------------------------------------------------*/
+/**
+ * Clears storage space from allocation for a parameter block of an
+ * AGESA software call entry.
+ *
+ * @param[in,out] InterfaceParams Pointer to structure containing the function call
+ * whose parameter structure is to be deallocated.
+ *
+ * @retval AGESA_STATUS
+ *
+ *---------------------------------------------------------------------------------------
+ **/
+AGESA_STATUS
+AmdReleaseStruct (
+ IN OUT AMD_INTERFACE_PARAMS *InterfaceParams
+ )
+{
+ UINT8 i;
+ UINT8 *BufferPtr;
+ VOID *ServicePtr;
+ AGESA_STATUS AgesaStatus;
+ AGESA_STATUS TempStatus;
+ LOCATE_HEAP_PTR LocHeap;
+
+ AgesaStatus = AGESA_SUCCESS;
+
+ switch (InterfaceParams->AgesaFunctionName) {
+ case AMD_INIT_RESET:
+ case AMD_INIT_EARLY:
+ case AMD_INIT_RECOVERY:
+ case AMD_INIT_RESUME:
+ InterfaceParams->StdHeader.HeapStatus = HEAP_LOCAL_CACHE;
+ break;
+ case AMD_INIT_POST:
+ InterfaceParams->StdHeader.HeapStatus = HEAP_TEMP_MEM;
+ break;
+ case AMD_INIT_ENV:
+ case AMD_INIT_LATE:
+ case AMD_INIT_MID:
+ case AMD_S3_SAVE:
+ case AMD_LATE_RUN_AP_TASK:
+ InterfaceParams->StdHeader.HeapStatus = HEAP_SYSTEM_MEM;
+ break;
+ case AMD_S3LATE_RESTORE:
+ InterfaceParams->StdHeader.HeapStatus = HEAP_S3_RESUME;
+ break;
+ default:
+ ASSERT (FALSE);
+ InterfaceParams->StdHeader.HeapStatus = HEAP_LOCAL_CACHE;
+ break;
+ }
+
+ InterfaceParams->StdHeader.HeapBasePtr = HeapGetBaseAddress (&InterfaceParams->StdHeader);
+
+// Step 1
+ for (i = 0; i < InitializerCount; i++) {
+ if (FuncParamsInfo[i].AgesaFunctionName == InterfaceParams->AgesaFunctionName) {
+ break;
+ }
+ }
+ if (i >= InitializerCount) {
+ return AGESA_BOUNDS_CHK;
+ }
+
+ // Step 2
+ if (InterfaceParams->AllocationMethod < ByHost) {
+ LocHeap.BufferHandle = FuncParamsInfo[i].BufferHandle;
+ if (HeapLocateBuffer (&LocHeap, &(InterfaceParams->StdHeader)) == AGESA_SUCCESS) {
+ BufferPtr = (UINT8 *) LocHeap.BufferPtr;
+ ServicePtr = &BufferPtr[sizeof (AMD_CONFIG_PARAMS)];
+ TempStatus = FuncParamsInfo[i].AgesaDestructor (&(InterfaceParams->StdHeader), ServicePtr);
+ AgesaStatus = ((AgesaStatus > TempStatus) ? AgesaStatus : TempStatus);
+ }
+ }
+
+ // Step 3
+ if (InterfaceParams->AllocationMethod < ByHost) {
+ TempStatus = HeapDeallocateBuffer (FuncParamsInfo[i].BufferHandle, &(InterfaceParams->StdHeader));
+ AgesaStatus = ((AgesaStatus > TempStatus) ? AgesaStatus : TempStatus);
+ } else {
+ // Unless we define service specific destructors, nothing to do for ByHost.
+ return AGESA_SUCCESS;
+ }
+ return AgesaStatus;
+}
diff --git a/src/vendorcode/amd/agesa/common/Proc/Common/CreateStruct.h b/src/vendorcode/amd/agesa/common/Proc/Common/CreateStruct.h
new file mode 100644
index 0000000..ace0176
--- /dev/null
+++ b/src/vendorcode/amd/agesa/common/Proc/Common/CreateStruct.h
@@ -0,0 +1,197 @@
+/* $NoKeywords:$ */
+/**
+ * @file
+ *
+ * AMD AGESA Input Structure Creation
+ *
+ * Contains AGESA input creation structures.
+ *
+ * @xrefitem bom "File Content Label" "Release Content"
+ * @e project: AGESA
+ * @e sub-project: Common
+ * @e \$Revision: 34897 $ @e \$Date: 2010-07-14 10:07:10 +0800 (Wed, 14 Jul 2010) $
+ *
+ */
+/*
+ *****************************************************************************
+ *
+ * Copyright (c) 2011, Advanced Micro Devices, Inc.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * * Neither the name of Advanced Micro Devices, Inc. nor the names of
+ * its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL ADVANCED MICRO DEVICES, INC. BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * ***************************************************************************
+ *
+ */
+
+#ifndef _CREATE_STRUCT_H_
+#define _CREATE_STRUCT_H_
+
+/**
+ * A constructor method.
+ *
+ * Sets inputs to valid, basic level, defaults for the specific service instance.
+ * Constructors should avoid using the header, since these routines should not
+ * do operations which may fail or require status back to the user. The constructor
+ * should always SUCCEED.
+ *
+ * @param[in] StdHeader Opaque handle to standard config header
+ * @param[in] ServiceInterface Service Interface structure to initialize.
+ *
+ * @retval AGESA_SUCCESS Constructors are not allowed to fail
+*/
+typedef AGESA_STATUS
+F_AGESA_FUNCTION (
+ IN AMD_CONFIG_PARAMS *StdHeader,
+ IN VOID *ServiceInterface
+ );
+
+/// Reference to a Method.
+typedef F_AGESA_FUNCTION *PF_AGESA_FUNCTION;
+
+/**
+ * A Destructor method.
+ *
+ * Sets inputs to valid, basic level, defaults for the specific service instance.
+ * The constructor should always SUCCEED.
+ *
+ * @param[in] StdHeader Opaque handle to standard config header.
+ * @param[in] ServiceInterface Service Interface structure to initialize.
+ *
+ * @retval AGESA_SUCCESS Constructors are not allowed to fail
+*/
+typedef AGESA_STATUS
+F_AGESA_DESTRUCTOR (
+ IN AMD_CONFIG_PARAMS *StdHeader,
+ IN VOID *ServiceInterface
+ );
+
+/// Reference to a Method.
+typedef F_AGESA_DESTRUCTOR *PF_AGESA_DESTRUCTOR;
+
+/**
+ * Provide the information needed to invoke each service constructor.
+ */
+typedef struct {
+ IN AGESA_STRUCT_NAME AgesaFunctionName; ///< Identifies the service
+ IN UINT16 CreateStructSize; ///< The service's input struct size.
+ /// Do NOT include a config params header!
+ OUT PF_AGESA_FUNCTION AgesaFunction; ///< The constructor function
+ OUT PF_AGESA_DESTRUCTOR AgesaDestructor; ///< The destructor function.
+ IN UINT32 BufferHandle; ///< The buffer handle id for the service.
+} FUNCTION_PARAMS_INFO;
+
+/**
+ * All available services have their constructor info here.
+ */
+AGESA_STATUS
+AmdInitResetConstructor (
+ IN AMD_CONFIG_PARAMS *StdHeader,
+ IN AMD_RESET_PARAMS *AmdResetParams
+ );
+
+AGESA_STATUS
+AmdInitRecoveryInitializer (
+ IN AMD_CONFIG_PARAMS *StdHeader,
+ IN OUT AMD_RECOVERY_PARAMS *AmdRecoveryParamsPtr
+ );
+
+AGESA_STATUS
+AmdInitEarlyInitializer (
+ IN AMD_CONFIG_PARAMS *StdHeader,
+ IN OUT AMD_EARLY_PARAMS *EarlyParams
+ );
+
+AGESA_STATUS
+AmdInitPostInitializer (
+ IN AMD_CONFIG_PARAMS *StdHeader,
+ IN OUT AMD_POST_PARAMS *PostParamsPtr
+ );
+
+AGESA_STATUS
+AmdInitPostDestructor (
+ IN AMD_CONFIG_PARAMS *StdHeader,
+ IN AMD_POST_PARAMS *PostParamsPtr
+ );
+
+AGESA_STATUS
+AmdInitEnvInitializer (
+ IN AMD_CONFIG_PARAMS *StdHeader,
+ IN OUT AMD_ENV_PARAMS *EnvParamsPtr
+ );
+
+AGESA_STATUS
+AmdInitMidInitializer (
+ IN AMD_CONFIG_PARAMS *StdHeader,
+ IN OUT AMD_MID_PARAMS *MidParamsPtr
+ );
+
+AGESA_STATUS
+AmdInitLateInitializer (
+ IN AMD_CONFIG_PARAMS *StdHeader,
+ IN OUT AMD_LATE_PARAMS *LateParamsPtr
+ );
+
+AGESA_STATUS
+AmdInitLateDestructor (
+ IN AMD_CONFIG_PARAMS *StdHeader,
+ IN AMD_LATE_PARAMS *LateParamsPtr
+ );
+
+AGESA_STATUS
+AmdInitResumeInitializer (
+ IN AMD_CONFIG_PARAMS *StdHeader,
+ IN OUT AMD_RESUME_PARAMS *ResumeParams
+ );
+
+AGESA_STATUS
+AmdInitResumeDestructor (
+ IN AMD_CONFIG_PARAMS *StdHeader,
+ IN OUT AMD_RESUME_PARAMS *ResumeParams
+ );
+
+AGESA_STATUS
+AmdS3SaveInitializer (
+ IN OUT AMD_CONFIG_PARAMS *StdHeader,
+ IN OUT AMD_S3SAVE_PARAMS *S3SaveParams
+ );
+
+AGESA_STATUS
+AmdS3SaveDestructor (
+ IN AMD_CONFIG_PARAMS *StdHeader,
+ IN OUT AMD_S3SAVE_PARAMS *S3SaveParams
+ );
+
+AGESA_STATUS
+AmdS3LateRestoreInitializer (
+ IN AMD_CONFIG_PARAMS *StdHeader,
+ IN OUT AMD_S3LATE_PARAMS *S3LateParams
+ );
+
+AGESA_STATUS
+AmdLateRunApTaskInitializer (
+ IN AMD_CONFIG_PARAMS *StdHeader,
+ IN OUT AP_EXE_PARAMS *AmdApExeParams
+ );
+#endif // _CREATE_STRUCT_H_
+
diff --git a/src/vendorcode/amd/agesa/f10/Makefile.inc b/src/vendorcode/amd/agesa/f10/Makefile.inc
index b6b2c77..8f8e40c 100644
--- a/src/vendorcode/amd/agesa/f10/Makefile.inc
+++ b/src/vendorcode/amd/agesa/f10/Makefile.inc
@@ -28,6 +28,7 @@ AGESA_INC += -I$(AGESA_ROOT)/../common
AGESA_INC += -I$(AGESA_ROOT)/Include
AGESA_INC += -I$(AGESA_ROOT)/Lib
AGESA_INC += -I$(AGESA_ROOT)/Legacy
+AGESA_INC += -I$(AGESA_ROOT)/../common/Proc/Common
AGESA_INC += -I$(AGESA_ROOT)/Proc/Common
AGESA_INC += -I$(AGESA_ROOT)/Proc/HT
AGESA_INC += -I$(AGESA_ROOT)/Proc/HT/NbCommon
@@ -133,7 +134,7 @@ libagesa-y += Proc/CPU/Feature/cpuWhea.c
libagesa-y += Proc/Mem/Feat/CSINTLV/mfcsi.c
libagesa-y += Proc/Mem/Feat/ECC/mfecc.c
libagesa-y += Proc/Mem/Feat/DMI/mfDMI.c
-libagesa-y += Proc/Common/AmdLateRunApTask.c
+libagesa-y += ../common/Proc/Common/AmdLateRunApTask.c
libagesa-y += Proc/CPU/cpuPowerMgmtMultiSocket.c
libagesa-y += Proc/Mem/Main/mmUmaAlloc.c
libagesa-y += Proc/CPU/Feature/cpuPstateTables.c
diff --git a/src/vendorcode/amd/agesa/f10/Proc/Common/AmdInitRecovery.c b/src/vendorcode/amd/agesa/f10/Proc/Common/AmdInitRecovery.c
deleted file mode 100644
index 169e09c..0000000
--- a/src/vendorcode/amd/agesa/f10/Proc/Common/AmdInitRecovery.c
+++ /dev/null
@@ -1,165 +0,0 @@
-/**
- * @file
- *
- * AMD AGESA Basic Level Public APIs
- *
- * Contains basic Level Initialization routines.
- *
- * @xrefitem bom "File Content Label" "Release Content"
- * @e project: AGESA
- * @e sub-project: Common
- * @e \$Revision: 7359 $ @e \$Date: 2008-08-13 01:53:23 +0800 (Wed, 13 Aug 2008) $
- *
- */
-/*****************************************************************************
- *
- * Copyright (c) 2011, Advanced Micro Devices, Inc.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * * Neither the name of Advanced Micro Devices, Inc. nor the names of
- * its contributors may be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL ADVANCED MICRO DEVICES, INC. BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- ******************************************************************************
- */
-
-
-/*----------------------------------------------------------------------------------------
- * M O D U L E S U S E D
- *----------------------------------------------------------------------------------------
- */
-#include "AGESA.h"
-#include "amdlib.h"
-#include "Ids.h"
-#include "AdvancedApi.h"
-#include "heapManager.h"
-#include "mm.h"
-#include "GnbInterface.h"
-#include "cpuRecovery.h"
-#include "cpuCacheInit.h"
-#include "Filecode.h"
-#define FILECODE PROC_COMMON_AMDINITRECOVERY_FILECODE
-
-/*----------------------------------------------------------------------------------------
- * P R O T O T Y P E S O F L O C A L F U N C T I O N S
- *----------------------------------------------------------------------------------------
- */
-
-/*----------------------------------------------------------------------------------------
- * D E F I N I T I O N S A N D M A C R O S
- *----------------------------------------------------------------------------------------
- */
-
-/*---------------------------------------------------------------------------------------*/
-/**
- * Perform initialization services required at the Early Init POST time point.
- *
- * Execution Cache, HyperTransport, C1e, and AP Init advanced services are performed.
- *
- * @param[in, out] RecoveryParams The interface struct for Recovery services
- *
- * @return The most severe AGESA_STATUS returned by any called service.
- *
- */
-AGESA_STATUS
-AmdInitRecovery (
- IN OUT AMD_RECOVERY_PARAMS *RecoveryParams
- )
-{
- AGESA_STATUS AgesaStatus;
- AGESA_STATUS CalledAgesaStatus;
-
- AGESA_TESTPOINT (TpIfAmdInitRecoveryEntry, &RecoveryParams->StdHeader);
-
- ASSERT (RecoveryParams != NULL);
-
- AgesaStatus = AGESA_SUCCESS;
-
- // Setup ROM execution cache
- CalledAgesaStatus = AllocateExecutionCache (&RecoveryParams->StdHeader, &RecoveryParams->CacheRegion[0]);
- if (CalledAgesaStatus > AgesaStatus) {
- AgesaStatus = CalledAgesaStatus;
- }
-
- CalledAgesaStatus = AmdHtInitRecovery (&RecoveryParams->StdHeader);
- if (CalledAgesaStatus > AgesaStatus) {
- AgesaStatus = CalledAgesaStatus;
- }
-
- CalledAgesaStatus = AmdCpuRecovery ((AMD_CPU_RECOVERY_PARAMS *) &RecoveryParams->StdHeader);
- if (CalledAgesaStatus > AgesaStatus) {
- AgesaStatus = CalledAgesaStatus;
- }
-
- CalledAgesaStatus = AmdMemRecovery (RecoveryParams->MemConfig.MemData);
- if (CalledAgesaStatus > AgesaStatus) {
- AgesaStatus = CalledAgesaStatus;
- }
-
- CalledAgesaStatus = AmdGnbRecovery (&RecoveryParams->StdHeader);
- if (CalledAgesaStatus > AgesaStatus) {
- AgesaStatus = CalledAgesaStatus;
- }
-
- AGESA_TESTPOINT (TpIfAmdInitRecoveryExit, &RecoveryParams->StdHeader);
- return AgesaStatus;
-}
-
-/*---------------------------------------------------------------------------------------*/
-/**
- *
- * Initialize defaults and options for Amd Init Reset.
- *
- * @param[in] StdHeader AMD standard header config param.
- * @param[in] AmdRecoveryParamsPtr The Reset Init interface to initialize.
- *
- * @retval AGESA_SUCCESS Always Succeeds.
- */
-AGESA_STATUS
-AmdInitRecoveryInitializer (
- IN AMD_CONFIG_PARAMS *StdHeader,
- IN OUT AMD_RECOVERY_PARAMS *AmdRecoveryParamsPtr
- )
-{
- ALLOCATE_HEAP_PARAMS AllocHeapParams;
-
- ASSERT (StdHeader != NULL);
- ASSERT (AmdRecoveryParamsPtr != NULL);
-
- AmdRecoveryParamsPtr->StdHeader = *StdHeader;
-
- AllocHeapParams.RequestedBufferSize = sizeof (MEM_DATA_STRUCT);
- AllocHeapParams.BufferHandle = AMD_MEM_DATA_HANDLE;
- AllocHeapParams.Persist = HEAP_LOCAL_CACHE;
- if (HeapAllocateBuffer (&AllocHeapParams, &AmdRecoveryParamsPtr->StdHeader) == AGESA_SUCCESS) {
- AmdRecoveryParamsPtr->MemConfig.MemData = (MEM_DATA_STRUCT *) AllocHeapParams.BufferPtr;
- AmdRecoveryParamsPtr->MemConfig.MemData->ParameterListPtr = &(AmdRecoveryParamsPtr->MemConfig);
- LibAmdMemCopy ((VOID *) AmdRecoveryParamsPtr->MemConfig.MemData,
- (VOID *) AmdRecoveryParamsPtr,
- (UINTN) sizeof (AmdRecoveryParamsPtr->StdHeader),
- &AmdRecoveryParamsPtr->StdHeader
- );
- AmdMemInitDataStructDefRecovery (AmdRecoveryParamsPtr->MemConfig.MemData);
- return AGESA_SUCCESS;
- } else {
- return AGESA_ERROR;
- }
-}
diff --git a/src/vendorcode/amd/agesa/f10/Proc/Common/AmdLateRunApTask.c b/src/vendorcode/amd/agesa/f10/Proc/Common/AmdLateRunApTask.c
deleted file mode 100644
index 5bb58af..0000000
--- a/src/vendorcode/amd/agesa/f10/Proc/Common/AmdLateRunApTask.c
+++ /dev/null
@@ -1,156 +0,0 @@
-/**
- * @file
- *
- * AMD AGESA Basic Level Public APIs
- *
- * Contains basic Level Initialization routines.
- *
- * @xrefitem bom "File Content Label" "Release Content"
- * @e project: AGESA
- * @e sub-project: Interface
- * @e \$Revision: 7735 $ @e \$Date: 2008-08-27 14:49:19 -0500 (Wed, 27 Aug 2008) $
- *
- */
-/*****************************************************************************
- *
- * Copyright (c) 2011, Advanced Micro Devices, Inc.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * * Neither the name of Advanced Micro Devices, Inc. nor the names of
- * its contributors may be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL ADVANCED MICRO DEVICES, INC. BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- ******************************************************************************
- */
-
-
-/*----------------------------------------------------------------------------------------
- * M O D U L E S U S E D
- *----------------------------------------------------------------------------------------
- */
-#include "AGESA.h"
-#include "Ids.h"
-#include "Options.h"
-#include "heapManager.h"
-#include "CreateStruct.h"
-#include "Filecode.h"
-#define FILECODE PROC_COMMON_AMDLATERUNAPTASK_FILECODE
-/*----------------------------------------------------------------------------------------
- * D E F I N I T I O N S A N D M A C R O S
- *----------------------------------------------------------------------------------------
- */
-
-
-/*----------------------------------------------------------------------------------------
- * T Y P E D E F S A N D S T R U C T U R E S
- *----------------------------------------------------------------------------------------
- */
-
-
-/*----------------------------------------------------------------------------------------
- * P R O T O T Y P E S O F L O C A L F U N C T I O N S
- *----------------------------------------------------------------------------------------
- */
-
-
-/*----------------------------------------------------------------------------------------
- * E X P O R T E D F U N C T I O N S
- *----------------------------------------------------------------------------------------
- */
-extern CONST DISPATCH_TABLE ApDispatchTable[];
-
-/*---------------------------------------------------------------------------------------*/
-/**
- * Application Processor perform a function as directed by the BSC.
- *
- * This is needed for an AP task that must run after AGESA has relinquished control
- * of the APs to the IBV.
- *
- * @param[in] AmdApExeParams The interface struct for any required routine.
- *
- * @return The most severe AGESA_STATUS returned by any called service. Note
- * that this will be the return value passed back to the BSC as the
- * return value for the call out.
- *
- */
-AGESA_STATUS
-AmdLateRunApTask (
- IN AP_EXE_PARAMS *AmdApExeParams
- )
-{
- AGESA_STATUS CalledAgesaStatus;
- AGESA_STATUS ApLateTaskStatus;
- DISPATCH_TABLE *Entry;
-
- AGESA_TESTPOINT (TpIfAmdLateRunApTaskEntry, &AmdApExeParams->StdHeader);
-
- ASSERT (AmdApExeParams != NULL);
- ApLateTaskStatus = AGESA_SUCCESS;
- CalledAgesaStatus = AGESA_UNSUPPORTED;
-
- // Dispatch, if valid
- Entry = (DISPATCH_TABLE *) ApDispatchTable;
- while (Entry->FunctionId != 0) {
- if (AmdApExeParams->FunctionNumber == Entry->FunctionId) {
- CalledAgesaStatus = Entry->EntryPoint (AmdApExeParams);
- break;
- }
- Entry++;
- }
-
- if (CalledAgesaStatus > ApLateTaskStatus) {
- ApLateTaskStatus = CalledAgesaStatus;
- }
-
- AGESA_TESTPOINT (TpIfAmdLateRunApTaskExit, &AmdApExeParams->StdHeader);
- return ApLateTaskStatus;
-}
-
-/*---------------------------------------------------------------------------------------*/
-/**
- * Constructor for the AMD_LATE_RUN_AP_TASK function.
- *
- * This routine is responsible for setting default values for the
- * input parameters needed by the AMD_S3_SAVE entry point.
- *
- * @param[in] StdHeader The standard header.
- * @param[in,out] AmdApExeParams Required input parameters for the AMD_LATE_RUN_AP_TASK
- * entry point.
- *
- * @retval AGESA_SUCCESS Always Succeeds.
- *
- */
-AGESA_STATUS
-AmdLateRunApTaskInitializer (
- IN AMD_CONFIG_PARAMS *StdHeader,
- IN OUT AP_EXE_PARAMS *AmdApExeParams
- )
-{
- ASSERT (StdHeader != NULL);
- ASSERT (AmdApExeParams != NULL);
-
- AmdApExeParams->StdHeader = *StdHeader;
- AmdApExeParams->FunctionNumber = 0;
- AmdApExeParams->RelatedDataBlock = NULL;
- AmdApExeParams->RelatedBlockLength = 0;
- return AGESA_SUCCESS;
-}
-
diff --git a/src/vendorcode/amd/agesa/f10/Proc/Common/CommonInits.h b/src/vendorcode/amd/agesa/f10/Proc/Common/CommonInits.h
deleted file mode 100644
index afecdce..0000000
--- a/src/vendorcode/amd/agesa/f10/Proc/Common/CommonInits.h
+++ /dev/null
@@ -1,65 +0,0 @@
-/**
- * @file
- *
- * Common initialization routines.
- *
- * Contains common initialization routines across AGESA entries of phases.
- *
- * @xrefitem bom "File Content Label" "Release Content"
- * @e project: AGESA
- * @e sub-project: Common
- * @e \$Revision: 7735 $ @e \$Date: 2008-08-27 14:49:19 -0500 (Wed, 27 Aug 2008) $
- *
- */
-/*
-*****************************************************************************
-*
-* Copyright (c) 2011, Advanced Micro Devices, Inc.
-* All rights reserved.
-*
-* Redistribution and use in source and binary forms, with or without
-* modification, are permitted provided that the following conditions are met:
-* * Redistributions of source code must retain the above copyright
-* notice, this list of conditions and the following disclaimer.
-* * Redistributions in binary form must reproduce the above copyright
-* notice, this list of conditions and the following disclaimer in the
-* documentation and/or other materials provided with the distribution.
-* * Neither the name of Advanced Micro Devices, Inc. nor the names of
-* its contributors may be used to endorse or promote products derived
-* from this software without specific prior written permission.
-*
-* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
-* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-* DISCLAIMED. IN NO EVENT SHALL ADVANCED MICRO DEVICES, INC. BE LIABLE FOR ANY
-* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*
-* ***************************************************************************
-*
-*/
-
-#ifndef _COMMON_INITS_H_
-#define _COMMON_INITS_H_
-
-/**
- * Common routine to initialize PLATFORM_CONFIGURATION.
- *
- * @param[in,out] PlatformConfig Platform profile/build option config structure
- * @param[in,out] StdHeader AMD standard header config param
- *
- * @retval AGESA_SUCCESS Always Succeeds.
- *
- */
-AGESA_STATUS
-CommonPlatformConfigInit (
- IN OUT PLATFORM_CONFIGURATION *PlatformConfig,
- IN OUT AMD_CONFIG_PARAMS *StdHeader
- );
-
-#endif // _COMMON_INITS_H_
-
diff --git a/src/vendorcode/amd/agesa/f10/Proc/Common/CommonPage.h b/src/vendorcode/amd/agesa/f10/Proc/Common/CommonPage.h
deleted file mode 100644
index 85aa183..0000000
--- a/src/vendorcode/amd/agesa/f10/Proc/Common/CommonPage.h
+++ /dev/null
@@ -1,116 +0,0 @@
-/**
- * @file
- *
- * Create outline and references for Processor Common Component mainpage documentation.
- *
- * Design guides, maintenance guides, and general documentation, are
- * collected using this file onto the documentation mainpage.
- * This file contains doxygen comment blocks, only.
- *
- * @xrefitem bom "File Content Label" "Release Content"
- * @e project: AGESA
- * @e sub-project: Documentation
- * @e \$Revision: 44323 $ @e \$Date: 2010-12-22 01:24:58 -0700 (Wed, 22 Dec 2010) $
- *
- */
-/*
- ******************************************************************************
- *
- * Copyright (c) 2011, Advanced Micro Devices, Inc.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * * Neither the name of Advanced Micro Devices, Inc. nor the names of
- * its contributors may be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL ADVANCED MICRO DEVICES, INC. BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- ******************************************************************************
- */
-
-/**
- * @page commonmain Processor Common Component Documentation
- *
- * Additional documentation for the Common component consists of
- *
- * - Maintenance Guides:
- * - @subpage amdconfigparamname "Naming Guidelines for type AMD_CONFIG_PARAMS"
- * - Design Guides:
- * - add here >>>
- *
- */
-
-/**
- * @page amdconfigparamname Naming Guidelines for type AMD_CONFIG_PARAMS
- * @par
- * These are the guidelines for naming objects of type AMD_CONFIG_PARAMS and AMD_CONFIG_PARAMS * in AGESA code.
- * <ul>
- *
- * <li>
- * Formal parameter names of type AMD_CONFIG_PARAMS and AMD_CONFIG_PARAMS * will always be named
- * StdHeader. This covers all function prototypes, function definitions, and method typedefs (a
- * typedef of a function prototype) in AGESA code. Examples:
- * @n @code
- * VOID
- * LibAmdPciFindNextCap (
- * IN OUT PCI_ADDR *Address,
- * IN AMD_CONFIG_PARAMS *StdHeader
- * )
- *
- * typedef VOID F_DO_TABLE_ENTRY (
- * IN TABLE_ENTRY_DATA *CurrentEntry,
- * IN PLATFORM_CONFIGURATION *PlatformConfig,
- * IN AMD_CONFIG_PARAMS *StdHeader
- * );
- *
- * @endcode
- *
- * <li>
- * Structure members of type AMD_CONFIG_PARAMS or AMD_CONFIG_PARAMS * will always be named StdHeader. Examples:
- * @n @code
- /// Example of struct member naming.
- * typedef struct {
- * IN OUT AMD_CONFIG_PARAMS StdHeader; ///< Standard Header
- * IN PLATFORM_CONFIGURATION PlatformConfig; ///< platform operational characteristics.
- * } AMD_CPU_RECOVERY_PARAMS;
- *
- * @endcode
- *
- * <li>
- * Routines which define local variables of type AMD_CONFIG_PARAMS or AMD_CONFIG_PARAMS * should
- * name the local variable as closely as practical to StdHeader, but otherwise freedom is allowed. Example:
- * @n @code
- * AMD_CONFIG_PARAMS *NewStdHeader;
- * [...]
- * NewStdHeader = (AMD_CONFIG_PARAMS *)AllocHeapParams.BufferPtr;
- * @endcode
- *
- * <li>
- * Arguments to routines with AMD_CONFIG_PARAMS or AMD_CONFIG_PARAMS * formal parameters are not
- * checked. Freedom is allowed in order to conform to these guidelines in a practical, readable
- * way. This includes typecast arguments. Examples:
- * @n @code
- * Status = GetEventLog (&LogEvent, (AMD_CONFIG_PARAMS *)Event);
- *
- * MemS3ExitSelfRefRegDA (NBPtr, &MemPtr->StdHeader);
- * @endcode
- *
- * </ul>
- *
- */
diff --git a/src/vendorcode/amd/agesa/f10/Proc/Common/CreateStruct.h b/src/vendorcode/amd/agesa/f10/Proc/Common/CreateStruct.h
deleted file mode 100644
index e782042..0000000
--- a/src/vendorcode/amd/agesa/f10/Proc/Common/CreateStruct.h
+++ /dev/null
@@ -1,195 +0,0 @@
-/**
- * @file
- *
- * AMD AGESA Input Structure Creation
- *
- * Contains AGESA input creation structures.
- *
- * @xrefitem bom "File Content Label" "Release Content"
- * @e project: AGESA
- * @e sub-project: Common
- * @e \$Revision: 6913 $ @e \$Date: 2008-07-23 11:34:49 -0500 (Wed, 23 Jul 2008) $
- *
- */
-/*
- ******************************************************************************
- *
- * Copyright (c) 2011, Advanced Micro Devices, Inc.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * * Neither the name of Advanced Micro Devices, Inc. nor the names of
- * its contributors may be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL ADVANCED MICRO DEVICES, INC. BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- ******************************************************************************
- */
-
-#ifndef _CREATE_STRUCT_H_
-#define _CREATE_STRUCT_H_
-
-/**
- * A constructor method.
- *
- * Sets inputs to valid, basic level, defaults for the specific service instance.
- * Constructors should avoid using the header, since these routines should not
- * do operations which may fail or require status back to the user. The constructor
- * should always SUCCEED.
- *
- * @param[in] StdHeader Opaque handle to standard config header
- * @param[in] ServiceInterface Service Interface structure to initialize.
- *
- * @retval AGESA_SUCCESS Constructors are not allowed to fail
-*/
-typedef AGESA_STATUS
-F_AGESA_FUNCTION (
- IN AMD_CONFIG_PARAMS *StdHeader,
- IN VOID *ServiceInterface
- );
-
-/// Reference to a Method.
-typedef F_AGESA_FUNCTION *PF_AGESA_FUNCTION;
-
-/**
- * A Destructor method.
- *
- * Sets inputs to valid, basic level, defaults for the specific service instance.
- * The constructor should always SUCCEED.
- *
- * @param[in] StdHeader Opaque handle to standard config header.
- * @param[in] ServiceInterface Service Interface structure to initialize.
- *
- * @retval AGESA_SUCCESS Constructors are not allowed to fail
-*/
-typedef AGESA_STATUS
-F_AGESA_DESTRUCTOR (
- IN AMD_CONFIG_PARAMS *StdHeader,
- IN VOID *ServiceInterface
- );
-
-/// Reference to a Method.
-typedef F_AGESA_DESTRUCTOR *PF_AGESA_DESTRUCTOR;
-
-/**
- * Provide the information needed to invoke each service constructor.
- */
-typedef struct {
- IN AGESA_STRUCT_NAME AgesaFunctionName; ///< Identifies the service
- IN UINT16 CreateStructSize; ///< The service's input struct size.
- /// Do NOT include a config params header!
- OUT PF_AGESA_FUNCTION AgesaFunction; ///< The constructor function
- OUT PF_AGESA_DESTRUCTOR AgesaDestructor; ///< The destructor function.
- IN AGESA_BUFFER_HANDLE BufferHandle; ///< The buffer handle id for the service.
-} FUNCTION_PARAMS_INFO;
-
-/**
- * All available services have their constructor info here.
- */
-AGESA_STATUS
-AmdInitResetConstructor (
- IN AMD_CONFIG_PARAMS *StdHeader,
- IN AMD_RESET_PARAMS *AmdResetParams
- );
-
-AGESA_STATUS
-AmdInitRecoveryInitializer (
- IN AMD_CONFIG_PARAMS *StdHeader,
- IN OUT AMD_RECOVERY_PARAMS *AmdRecoveryParamsPtr
- );
-
-AGESA_STATUS
-AmdInitEarlyInitializer (
- IN AMD_CONFIG_PARAMS *StdHeader,
- IN OUT AMD_EARLY_PARAMS *EarlyParams
- );
-
-AGESA_STATUS
-AmdInitPostInitializer (
- IN AMD_CONFIG_PARAMS *StdHeader,
- IN OUT AMD_POST_PARAMS *PostParamsPtr
- );
-
-AGESA_STATUS
-AmdInitPostDestructor (
- IN AMD_CONFIG_PARAMS *StdHeader,
- IN AMD_POST_PARAMS *PostParamsPtr
- );
-
-AGESA_STATUS
-AmdInitEnvInitializer (
- IN AMD_CONFIG_PARAMS *StdHeader,
- IN OUT AMD_ENV_PARAMS *EnvParamsPtr
- );
-
-AGESA_STATUS
-AmdInitMidInitializer (
- IN AMD_CONFIG_PARAMS *StdHeader,
- IN OUT AMD_MID_PARAMS *MidParamsPtr
- );
-
-AGESA_STATUS
-AmdInitLateInitializer (
- IN AMD_CONFIG_PARAMS *StdHeader,
- IN OUT AMD_LATE_PARAMS *LateParamsPtr
- );
-
-AGESA_STATUS
-AmdInitLateDestructor (
- IN AMD_CONFIG_PARAMS *StdHeader,
- IN AMD_LATE_PARAMS *LateParamsPtr
- );
-
-AGESA_STATUS
-AmdInitResumeInitializer (
- IN AMD_CONFIG_PARAMS *StdHeader,
- IN OUT AMD_RESUME_PARAMS *ResumeParams
- );
-
-AGESA_STATUS
-AmdInitResumeDestructor (
- IN AMD_CONFIG_PARAMS *StdHeader,
- IN OUT AMD_RESUME_PARAMS *ResumeParams
- );
-
-AGESA_STATUS
-AmdS3SaveInitializer (
- IN OUT AMD_CONFIG_PARAMS *StdHeader,
- IN OUT AMD_S3SAVE_PARAMS *S3SaveParams
- );
-
-AGESA_STATUS
-AmdS3SaveDestructor (
- IN AMD_CONFIG_PARAMS *StdHeader,
- IN OUT AMD_S3SAVE_PARAMS *S3SaveParams
- );
-
-AGESA_STATUS
-AmdS3LateRestoreInitializer (
- IN AMD_CONFIG_PARAMS *StdHeader,
- IN OUT AMD_S3LATE_PARAMS *S3LateParams
- );
-
-AGESA_STATUS
-AmdLateRunApTaskInitializer (
- IN AMD_CONFIG_PARAMS *StdHeader,
- IN OUT AP_EXE_PARAMS *AmdApExeParams
- );
-#endif // _CREATE_STRUCT_H_
-
diff --git a/src/vendorcode/amd/agesa/f12/Makefile.inc b/src/vendorcode/amd/agesa/f12/Makefile.inc
index 1e5bc70..24eb3d2 100644
--- a/src/vendorcode/amd/agesa/f12/Makefile.inc
+++ b/src/vendorcode/amd/agesa/f12/Makefile.inc
@@ -39,6 +39,7 @@ AGESA_INC += -I$(AGESA_ROOT)/Include
AGESA_INC += -I$(AGESA_ROOT)/Proc/IDS
AGESA_INC += -I$(AGESA_ROOT)/Lib
AGESA_INC += -I$(AGESA_ROOT)/Proc/CPU/Feature
+AGESA_INC += -I$(AGESA_ROOT)/../common/Proc/Common
AGESA_INC += -I$(AGESA_ROOT)/Proc/Common
AGESA_INC += -I$(AGESA_ROOT)/Proc/Mem
AGESA_INC += -I$(AGESA_ROOT)/Proc/Recovery/CPU
diff --git a/src/vendorcode/amd/agesa/f12/Proc/Common/AmdFch.h b/src/vendorcode/amd/agesa/f12/Proc/Common/AmdFch.h
deleted file mode 100644
index f9bdddb..0000000
--- a/src/vendorcode/amd/agesa/f12/Proc/Common/AmdFch.h
+++ /dev/null
@@ -1,65 +0,0 @@
-/* $NoKeywords:$ */
-/**
- * @file
- *
- * AMD FCH Component
- *
- *
- *
- * @xrefitem bom "File Content Label" "Release Content"
- * @e project: AGESA
- * @e sub-project: FCH
- * @e \$Revision: 34897 $ @e \$Date: 2010-07-13 19:07:10 -0700 (Tue, 13 Jul 2010) $
- *
- */
-/*
-*****************************************************************************
-*
-* Copyright (c) 2011, Advanced Micro Devices, Inc.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * * Neither the name of Advanced Micro Devices, Inc. nor the names of
- * its contributors may be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL ADVANCED MICRO DEVICES, INC. BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-* ***************************************************************************
-*
-*/
-
-#ifndef _AMD_FCH_H_
-#define _AMD_FCH_H_
-
-typedef AGESA_STATUS FCH_INIT (IN VOID *DataPtr);
-typedef VOID FCH_TASK_ENTRY (IN VOID *FchCfg);
-
-
-/// FCH API build options
-typedef struct {
- FCH_INIT *InitReset; ///< InitReset
- FCH_INIT *InitResetConstructor; ///< InitResetConstructor
- FCH_INIT *InitEnv; ///< InitEnv
- FCH_INIT *InitEnvConstructor; ///< InitEnvConstructor
- FCH_INIT *InitMid; ///< InitMid
- FCH_INIT *InitMidConstructor; ///< InitMidConstructor
- FCH_INIT *InitLate; ///< InitLate
- FCH_INIT *InitLateConstructor; ///< InitLateConstructor
-} BLDOPT_FCH_FUNCTION;
-
-#endif
diff --git a/src/vendorcode/amd/agesa/f12/Proc/Common/AmdInitRecovery.c b/src/vendorcode/amd/agesa/f12/Proc/Common/AmdInitRecovery.c
deleted file mode 100644
index 47fc364..0000000
--- a/src/vendorcode/amd/agesa/f12/Proc/Common/AmdInitRecovery.c
+++ /dev/null
@@ -1,168 +0,0 @@
-/* $NoKeywords:$ */
-/**
- * @file
- *
- * AMD AGESA Basic Level Public APIs
- *
- * Contains basic Level Initialization routines.
- *
- * @xrefitem bom "File Content Label" "Release Content"
- * @e project: AGESA
- * @e sub-project: Common
- * @e \$Revision: 44324 $ @e \$Date: 2010-12-22 17:16:51 +0800 (Wed, 22 Dec 2010) $
- *
- */
-/*****************************************************************************
- *
- * Copyright (c) 2011, Advanced Micro Devices, Inc.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * * Neither the name of Advanced Micro Devices, Inc. nor the names of
- * its contributors may be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL ADVANCED MICRO DEVICES, INC. BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- ******************************************************************************
- */
-
-
-/*----------------------------------------------------------------------------------------
- * M O D U L E S U S E D
- *----------------------------------------------------------------------------------------
- */
-#include "AGESA.h"
-#include "amdlib.h"
-#include "Ids.h"
-#include "AdvancedApi.h"
-#include "heapManager.h"
-#include "mm.h"
-#include "GnbInterface.h"
-#include "cpuRecovery.h"
-#include "cpuCacheInit.h"
-#include "Filecode.h"
-CODE_GROUP (G2_PEI)
-RDATA_GROUP (G2_PEI)
-
-#define FILECODE PROC_COMMON_AMDINITRECOVERY_FILECODE
-
-/*----------------------------------------------------------------------------------------
- * P R O T O T Y P E S O F L O C A L F U N C T I O N S
- *----------------------------------------------------------------------------------------
- */
-
-/*----------------------------------------------------------------------------------------
- * D E F I N I T I O N S A N D M A C R O S
- *----------------------------------------------------------------------------------------
- */
-
-/*---------------------------------------------------------------------------------------*/
-/**
- * Perform initialization services required at the Early Init POST time point.
- *
- * Execution Cache, HyperTransport, C1e, and AP Init advanced services are performed.
- *
- * @param[in, out] RecoveryParams The interface struct for Recovery services
- *
- * @return The most severe AGESA_STATUS returned by any called service.
- *
- */
-AGESA_STATUS
-AmdInitRecovery (
- IN OUT AMD_RECOVERY_PARAMS *RecoveryParams
- )
-{
- AGESA_STATUS AgesaStatus;
- AGESA_STATUS CalledAgesaStatus;
-
- AGESA_TESTPOINT (TpIfAmdInitRecoveryEntry, &RecoveryParams->StdHeader);
-
- ASSERT (RecoveryParams != NULL);
-
- AgesaStatus = AGESA_SUCCESS;
-
- // Setup ROM execution cache
- CalledAgesaStatus = AllocateExecutionCache (&RecoveryParams->StdHeader, &RecoveryParams->CacheRegion[0]);
- if (CalledAgesaStatus > AgesaStatus) {
- AgesaStatus = CalledAgesaStatus;
- }
-
- CalledAgesaStatus = AmdHtInitRecovery (&RecoveryParams->StdHeader);
- if (CalledAgesaStatus > AgesaStatus) {
- AgesaStatus = CalledAgesaStatus;
- }
-
- CalledAgesaStatus = AmdCpuRecovery ((AMD_CPU_RECOVERY_PARAMS *) &RecoveryParams->StdHeader);
- if (CalledAgesaStatus > AgesaStatus) {
- AgesaStatus = CalledAgesaStatus;
- }
-
- CalledAgesaStatus = AmdMemRecovery (RecoveryParams->MemConfig.MemData);
- if (CalledAgesaStatus > AgesaStatus) {
- AgesaStatus = CalledAgesaStatus;
- }
-
- CalledAgesaStatus = AmdGnbRecovery (&RecoveryParams->StdHeader);
- if (CalledAgesaStatus > AgesaStatus) {
- AgesaStatus = CalledAgesaStatus;
- }
-
- AGESA_TESTPOINT (TpIfAmdInitRecoveryExit, &RecoveryParams->StdHeader);
- return AgesaStatus;
-}
-
-/*---------------------------------------------------------------------------------------*/
-/**
- *
- * Initialize defaults and options for Amd Init Reset.
- *
- * @param[in] StdHeader AMD standard header config param.
- * @param[in] AmdRecoveryParamsPtr The Reset Init interface to initialize.
- *
- * @retval AGESA_SUCCESS Always Succeeds.
- */
-AGESA_STATUS
-AmdInitRecoveryInitializer (
- IN AMD_CONFIG_PARAMS *StdHeader,
- IN OUT AMD_RECOVERY_PARAMS *AmdRecoveryParamsPtr
- )
-{
- ALLOCATE_HEAP_PARAMS AllocHeapParams;
-
- ASSERT (StdHeader != NULL);
- ASSERT (AmdRecoveryParamsPtr != NULL);
-
- AmdRecoveryParamsPtr->StdHeader = *StdHeader;
-
- AllocHeapParams.RequestedBufferSize = sizeof (MEM_DATA_STRUCT);
- AllocHeapParams.BufferHandle = AMD_MEM_DATA_HANDLE;
- AllocHeapParams.Persist = HEAP_LOCAL_CACHE;
- if (HeapAllocateBuffer (&AllocHeapParams, &AmdRecoveryParamsPtr->StdHeader) == AGESA_SUCCESS) {
- AmdRecoveryParamsPtr->MemConfig.MemData = (MEM_DATA_STRUCT *) AllocHeapParams.BufferPtr;
- AmdRecoveryParamsPtr->MemConfig.MemData->ParameterListPtr = &(AmdRecoveryParamsPtr->MemConfig);
- LibAmdMemCopy ((VOID *) AmdRecoveryParamsPtr->MemConfig.MemData,
- (VOID *) AmdRecoveryParamsPtr,
- (UINTN) sizeof (AmdRecoveryParamsPtr->StdHeader),
- &AmdRecoveryParamsPtr->StdHeader
- );
- AmdMemInitDataStructDefRecovery (AmdRecoveryParamsPtr->MemConfig.MemData);
- return AGESA_SUCCESS;
- } else {
- return AGESA_ERROR;
- }
-}
diff --git a/src/vendorcode/amd/agesa/f12/Proc/Common/CommonInits.h b/src/vendorcode/amd/agesa/f12/Proc/Common/CommonInits.h
deleted file mode 100644
index 1a736b6..0000000
--- a/src/vendorcode/amd/agesa/f12/Proc/Common/CommonInits.h
+++ /dev/null
@@ -1,65 +0,0 @@
-/* $NoKeywords:$ */
-/**
- * @file
- *
- * Common initialization routines.
- *
- * Contains common initialization routines across AGESA entries of phases.
- *
- * @xrefitem bom "File Content Label" "Release Content"
- * @e project: AGESA
- * @e sub-project: Common
- * @e \$Revision: 44324 $ @e \$Date: 2010-12-22 17:16:51 +0800 (Wed, 22 Dec 2010) $
- *
- */
-/*
-*****************************************************************************
-*
-* Copyright (c) 2011, Advanced Micro Devices, Inc.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * * Neither the name of Advanced Micro Devices, Inc. nor the names of
- * its contributors may be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL ADVANCED MICRO DEVICES, INC. BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-* ***************************************************************************
-*
-*/
-
-#ifndef _COMMON_INITS_H_
-#define _COMMON_INITS_H_
-
-/**
- * Common routine to initialize PLATFORM_CONFIGURATION.
- *
- * @param[in,out] PlatformConfig Platform profile/build option config structure
- * @param[in,out] StdHeader AMD standard header config param
- *
- * @retval AGESA_SUCCESS Always Succeeds.
- *
- */
-AGESA_STATUS
-CommonPlatformConfigInit (
- IN OUT PLATFORM_CONFIGURATION *PlatformConfig,
- IN OUT AMD_CONFIG_PARAMS *StdHeader
- );
-
-#endif // _COMMON_INITS_H_
-
diff --git a/src/vendorcode/amd/agesa/f12/Proc/Common/CommonPage.h b/src/vendorcode/amd/agesa/f12/Proc/Common/CommonPage.h
deleted file mode 100644
index ec08ba8..0000000
--- a/src/vendorcode/amd/agesa/f12/Proc/Common/CommonPage.h
+++ /dev/null
@@ -1,116 +0,0 @@
-/* $NoKeywords:$ */
-/**
- * @file
- *
- * Create outline and references for Processor Common Component mainpage documentation.
- *
- * Design guides, maintenance guides, and general documentation, are
- * collected using this file onto the documentation mainpage.
- * This file contains doxygen comment blocks, only.
- *
- * @xrefitem bom "File Content Label" "Release Content"
- * @e project: AGESA
- * @e sub-project: Documentation
- * @e \$Revision: 44324 $ @e \$Date: 2010-12-22 17:16:51 +0800 (Wed, 22 Dec 2010) $
- *
- */
-/*
- ******************************************************************************
- *
- * Copyright (c) 2011, Advanced Micro Devices, Inc.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * * Neither the name of Advanced Micro Devices, Inc. nor the names of
- * its contributors may be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL ADVANCED MICRO DEVICES, INC. BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- ******************************************************************************
- */
-
-/**
- * @page commonmain Processor Common Component Documentation
- *
- * Additional documentation for the Common component consists of
- *
- * - Maintenance Guides:
- * - @subpage amdconfigparamname "Naming Guidelines for type AMD_CONFIG_PARAMS"
- * - Design Guides:
- * - add here >>>
- *
- */
-
-/**
- * @page amdconfigparamname Naming Guidelines for type AMD_CONFIG_PARAMS
- * @par
- * These are the guidelines for naming objects of type AMD_CONFIG_PARAMS and AMD_CONFIG_PARAMS * in AGESA code.
- * <ul>
- *
- * <li>
- * Formal parameter names of type AMD_CONFIG_PARAMS and AMD_CONFIG_PARAMS * will always be named
- * StdHeader. This covers all function prototypes, function definitions, and method typedefs (a
- * typedef of a function prototype) in AGESA code. Examples:
- * @n @code
- * VOID
- * LibAmdPciFindNextCap (
- * IN OUT PCI_ADDR *Address,
- * IN AMD_CONFIG_PARAMS *StdHeader
- * )
- *
- * typedef VOID F_DO_TABLE_ENTRY (
- * IN TABLE_ENTRY_DATA *CurrentEntry,
- * IN PLATFORM_CONFIGURATION *PlatformConfig,
- * IN AMD_CONFIG_PARAMS *StdHeader
- * );
- *
- * @endcode
- *
- * <li>
- * Structure members of type AMD_CONFIG_PARAMS or AMD_CONFIG_PARAMS * will always be named StdHeader. Examples:
- * @n @code
- /// Example of struct member naming.
- * typedef struct {
- * IN OUT AMD_CONFIG_PARAMS StdHeader; ///< Standard Header
- * IN PLATFORM_CONFIGURATION PlatformConfig; ///< platform operational characteristics.
- * } AMD_CPU_RECOVERY_PARAMS;
- *
- * @endcode
- *
- * <li>
- * Routines which define local variables of type AMD_CONFIG_PARAMS or AMD_CONFIG_PARAMS * should
- * name the local variable as closely as practical to StdHeader, but otherwise freedom is allowed. Example:
- * @n @code
- * AMD_CONFIG_PARAMS *NewStdHeader;
- * [...]
- * NewStdHeader = (AMD_CONFIG_PARAMS *)AllocHeapParams.BufferPtr;
- * @endcode
- *
- * <li>
- * Arguments to routines with AMD_CONFIG_PARAMS or AMD_CONFIG_PARAMS * formal parameters are not
- * checked. Freedom is allowed in order to conform to these guidelines in a practical, readable
- * way. This includes typecast arguments. Examples:
- * @n @code
- * Status = GetEventLog (&LogEvent, (AMD_CONFIG_PARAMS *)Event);
- *
- * MemS3ExitSelfRefRegDA (NBPtr, &MemPtr->StdHeader);
- * @endcode
- *
- * </ul>
- *
- */
diff --git a/src/vendorcode/amd/agesa/f12/Proc/Common/CreateStruct.c b/src/vendorcode/amd/agesa/f12/Proc/Common/CreateStruct.c
deleted file mode 100644
index 010536e..0000000
--- a/src/vendorcode/amd/agesa/f12/Proc/Common/CreateStruct.c
+++ /dev/null
@@ -1,313 +0,0 @@
-/* $NoKeywords:$ */
-/**
- * @file
- *
- * AMD AGESA Input Structure Creation
- *
- * Contains AGESA input structure creation support.
- *
- * @xrefitem bom "File Content Label" "Release Content"
- * @e project: AGESA
- * @e sub-project: Common
- * @e \$Revision: 44324 $ @e \$Date: 2010-12-22 17:16:51 +0800 (Wed, 22 Dec 2010) $
- *
- */
-/*
- ******************************************************************************
- *
- * Copyright (c) 2011, Advanced Micro Devices, Inc.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * * Neither the name of Advanced Micro Devices, Inc. nor the names of
- * its contributors may be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL ADVANCED MICRO DEVICES, INC. BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- ******************************************************************************
- */
-
-/*----------------------------------------------------------------------------------------
- * M O D U L E S U S E D
- *----------------------------------------------------------------------------------------
- */
-#include "AGESA.h"
-#include "amdlib.h"
-#include "Ids.h"
-#include "GeneralServices.h"
-#include "heapManager.h"
-#include "CreateStruct.h"
-#include "cpuFamilyTranslation.h"
-#include "Filecode.h"
-CODE_GROUP (G1_PEICC)
-RDATA_GROUP (G1_PEICC)
-
-#define FILECODE PROC_COMMON_CREATESTRUCT_FILECODE
-/*----------------------------------------------------------------------------------------
- * D E F I N I T I O N S A N D M A C R O S
- *----------------------------------------------------------------------------------------
- */
-extern CONST FUNCTION_PARAMS_INFO FuncParamsInfo[];
-extern CONST UINTN InitializerCount;
-
-/*----------------------------------------------------------------------------------------
- * T Y P E D E F S A N D S T R U C T U R E S
- *----------------------------------------------------------------------------------------
- */
-
-/*----------------------------------------------------------------------------------------
- * P R O T O T Y P E S O F L O C A L F U N C T I O N S
- *----------------------------------------------------------------------------------------
- */
-
-/*----------------------------------------------------------------------------------------
- * E X P O R T E D F U N C T I O N S
- *----------------------------------------------------------------------------------------
- */
-extern BUILD_OPT_CFG UserOptions;
-
-/*---------------------------------------------------------------------------------------*/
-/**
- * Allocate and initialize Config headers and Service Interface structures.
- *
- * This function will be called for each AGESA public APIs.
- * This function will do the following:
- * -# Locate the AGESA API structure parameters initializer function information.
- * -# Find the size of the structure that gets passed to each public APIs as
- * the entry parameter. Allocate heap space using the size for PreMemHeap, callout for
- * memory allocation for PostMemDram, and just set the config and service interface
- * pointers for ByHost.
- * -# If the allocation is not ByHost, copy the AmdConfigParams into the newly created AmdConfigParams.
- * For ByHost, we're using the caller's existing config params.
- * -# Call the initializer function, and pass a reference to the Config params and to
- * the Service Interface struct. On return the constructor will have filled the
- * remaining structure with default values.
- * -# Fill the remaining info in the newly created structure on heap in AMD_CONFIG_PARAMS
- * area (i.e. Fill *newStructPtr with the pointer to the newly created structure)
- * -# Set the appropriate AGESA function number in the StdHeader member of the input
- * parameter structure.
- *
- * @param[in,out] InterfaceParams Pointer to structure containing the function call
- * whose parameter structure is to be created, the
- * allocation method, and a pointer to the newly
- * created structure.
- *
- * @retval AGESA_SUCCESS The interface struct is allocated and initialized.
- * @retval AGESA_UNSUPPORTED The Service is not supported.
- *
- */
-AGESA_STATUS
-AmdCreateStruct (
- IN OUT AMD_INTERFACE_PARAMS *InterfaceParams
- )
-{
- UINTN ServiceIndex;
- ALLOCATE_HEAP_PARAMS AllocHeapParams;
- AMD_CONFIG_PARAMS *NewlyCreatedConfig;
- VOID *NewlyCreatedServiceInterface;
- AGESA_STATUS AgesaStatus;
- AGESA_STATUS TempStatus;
- AGESA_STATUS IgnoredSts;
- CPU_SPECIFIC_SERVICES *FamilySpecificServices;
-
- AgesaStatus = AGESA_SUCCESS;
-
- ASSERT (InterfaceParams != NULL);
-
- switch (InterfaceParams->AgesaFunctionName) {
- case AMD_INIT_RESET:
- if (!IsBsp (&InterfaceParams->StdHeader, &IgnoredSts)) {
- // APs must transfer their system core number from the mailbox to
- // a local register while it is still valid.
- GetCpuServicesOfCurrentCore ((const CPU_SPECIFIC_SERVICES **)&FamilySpecificServices, &InterfaceParams->StdHeader);
- FamilySpecificServices->TransferApCoreNumber (FamilySpecificServices, &InterfaceParams->StdHeader);
- }
- InterfaceParams->StdHeader.HeapStatus = HEAP_DO_NOT_EXIST_YET;
- break;
- case AMD_INIT_EARLY:
- case AMD_INIT_RECOVERY:
- case AMD_INIT_RESUME:
- case AMD_INIT_POST:
- InterfaceParams->StdHeader.HeapStatus = HEAP_LOCAL_CACHE;
- break;
- case AMD_INIT_ENV:
- InterfaceParams->StdHeader.HeapStatus = HEAP_TEMP_MEM;
- break;
- case AMD_INIT_LATE:
- case AMD_INIT_MID:
- case AMD_S3_SAVE:
- case AMD_LATE_RUN_AP_TASK:
- InterfaceParams->StdHeader.HeapStatus = HEAP_SYSTEM_MEM;
- break;
- case AMD_S3LATE_RESTORE:
- InterfaceParams->StdHeader.HeapStatus = HEAP_S3_RESUME;
- break;
- default:
- ASSERT (FALSE);
- InterfaceParams->StdHeader.HeapStatus = HEAP_LOCAL_CACHE;
- break;
- }
-
- InterfaceParams->StdHeader.HeapBasePtr = HeapGetBaseAddress (&InterfaceParams->StdHeader);
-
- if (InterfaceParams->AgesaFunctionName == AMD_INIT_RESET) {
- AgesaStatus = HeapManagerInit (&InterfaceParams->StdHeader);
- }
-
- // Step 1
- for (ServiceIndex = 0; ServiceIndex < InitializerCount; ServiceIndex++) {
- if (FuncParamsInfo[ServiceIndex].AgesaFunctionName == InterfaceParams->AgesaFunctionName) {
- break;
- }
- }
- if (ServiceIndex >= InitializerCount) {
- // A call was made to AGESA with an invalid function number. This wrapper error may be due to the build target
- // not containing the desired entry point.
- return AGESA_UNSUPPORTED;
- }
-
- // Step 2
- LibAmdMemFill (&AllocHeapParams, 0, (UINTN) (sizeof (ALLOCATE_HEAP_PARAMS)), &InterfaceParams->StdHeader);
-
- if (InterfaceParams->AllocationMethod < ByHost) {
- // Allocate one buffer to contain the config params and the service struct.
- // The service struct begins immediately after the config params.
- AllocHeapParams.RequestedBufferSize = FuncParamsInfo[ServiceIndex].CreateStructSize + sizeof (AMD_CONFIG_PARAMS);
- AllocHeapParams.BufferHandle = FuncParamsInfo[ServiceIndex].BufferHandle;
- AllocHeapParams.Persist = HEAP_SYSTEM_MEM;
- TempStatus = HeapAllocateBuffer (&AllocHeapParams, &(InterfaceParams->StdHeader));
- AgesaStatus = ((AgesaStatus > TempStatus) ? AgesaStatus : TempStatus);
- NewlyCreatedConfig = (AMD_CONFIG_PARAMS *)AllocHeapParams.BufferPtr;
- NewlyCreatedConfig++;
- NewlyCreatedServiceInterface = NewlyCreatedConfig;
- NewlyCreatedConfig = (AMD_CONFIG_PARAMS *)AllocHeapParams.BufferPtr;
- } else {
- // The caller (example, agesa basic interface implementation) already has a buffer to use.
- NewlyCreatedConfig = (AMD_CONFIG_PARAMS *)InterfaceParams;
- NewlyCreatedServiceInterface = InterfaceParams->NewStructPtr;
- ASSERT (InterfaceParams->NewStructSize >= FuncParamsInfo[ServiceIndex].CreateStructSize);
- }
- ASSERT (NewlyCreatedConfig != NULL);
- ASSERT (NewlyCreatedServiceInterface != NULL);
-
- // Step 3
- if (InterfaceParams->AllocationMethod != ByHost) {
- *NewlyCreatedConfig = InterfaceParams->StdHeader;
- }
-
- // Step 4
- TempStatus = FuncParamsInfo[ServiceIndex].AgesaFunction (NewlyCreatedConfig, NewlyCreatedServiceInterface);
- AgesaStatus = ((AgesaStatus > TempStatus) ? AgesaStatus : TempStatus);
-
- // Step 5
- if (InterfaceParams->AllocationMethod != ByHost) {
- InterfaceParams->NewStructPtr = (VOID *) NewlyCreatedServiceInterface;
- InterfaceParams->NewStructSize = FuncParamsInfo[ServiceIndex].CreateStructSize;
- }
-
- // Step 6
- ((AMD_CONFIG_PARAMS *) InterfaceParams->NewStructPtr)->Func = InterfaceParams->AgesaFunctionName;
- return AgesaStatus;
-}
-
-
-/*---------------------------------------------------------------------------------------*/
-/**
- * Clears storage space from allocation for a parameter block of an
- * AGESA software call entry.
- *
- * @param[in,out] InterfaceParams Pointer to structure containing the function call
- * whose parameter structure is to be deallocated.
- *
- * @retval AGESA_STATUS
- *
- *---------------------------------------------------------------------------------------
- **/
-AGESA_STATUS
-AmdReleaseStruct (
- IN OUT AMD_INTERFACE_PARAMS *InterfaceParams
- )
-{
- UINT8 i;
- UINT8 *BufferPtr;
- VOID *ServicePtr;
- AGESA_STATUS AgesaStatus;
- AGESA_STATUS TempStatus;
- LOCATE_HEAP_PTR LocHeap;
-
- AgesaStatus = AGESA_SUCCESS;
-
- switch (InterfaceParams->AgesaFunctionName) {
- case AMD_INIT_RESET:
- case AMD_INIT_EARLY:
- case AMD_INIT_RECOVERY:
- case AMD_INIT_RESUME:
- InterfaceParams->StdHeader.HeapStatus = HEAP_LOCAL_CACHE;
- break;
- case AMD_INIT_POST:
- InterfaceParams->StdHeader.HeapStatus = HEAP_TEMP_MEM;
- break;
- case AMD_INIT_ENV:
- case AMD_INIT_LATE:
- case AMD_INIT_MID:
- case AMD_S3_SAVE:
- case AMD_LATE_RUN_AP_TASK:
- InterfaceParams->StdHeader.HeapStatus = HEAP_SYSTEM_MEM;
- break;
- case AMD_S3LATE_RESTORE:
- InterfaceParams->StdHeader.HeapStatus = HEAP_S3_RESUME;
- break;
- default:
- ASSERT (FALSE);
- InterfaceParams->StdHeader.HeapStatus = HEAP_LOCAL_CACHE;
- break;
- }
-
- InterfaceParams->StdHeader.HeapBasePtr = HeapGetBaseAddress (&InterfaceParams->StdHeader);
-
-// Step 1
- for (i = 0; i < InitializerCount; i++) {
- if (FuncParamsInfo[i].AgesaFunctionName == InterfaceParams->AgesaFunctionName) {
- break;
- }
- }
- if (i >= InitializerCount) {
- return AGESA_BOUNDS_CHK;
- }
-
- // Step 2
- if (InterfaceParams->AllocationMethod < ByHost) {
- LocHeap.BufferHandle = FuncParamsInfo[i].BufferHandle;
- if (HeapLocateBuffer (&LocHeap, &(InterfaceParams->StdHeader)) == AGESA_SUCCESS) {
- BufferPtr = (UINT8 *) LocHeap.BufferPtr;
- ServicePtr = &BufferPtr[sizeof (AMD_CONFIG_PARAMS)];
- TempStatus = FuncParamsInfo[i].AgesaDestructor (&(InterfaceParams->StdHeader), ServicePtr);
- AgesaStatus = ((AgesaStatus > TempStatus) ? AgesaStatus : TempStatus);
- }
- }
-
- // Step 3
- if (InterfaceParams->AllocationMethod < ByHost) {
- TempStatus = HeapDeallocateBuffer (FuncParamsInfo[i].BufferHandle, &(InterfaceParams->StdHeader));
- AgesaStatus = ((AgesaStatus > TempStatus) ? AgesaStatus : TempStatus);
- } else {
- // Unless we define service specific destructors, nothing to do for ByHost.
- return AGESA_SUCCESS;
- }
- return AgesaStatus;
-}
diff --git a/src/vendorcode/amd/agesa/f12/Proc/Common/CreateStruct.h b/src/vendorcode/amd/agesa/f12/Proc/Common/CreateStruct.h
deleted file mode 100644
index 65a2040..0000000
--- a/src/vendorcode/amd/agesa/f12/Proc/Common/CreateStruct.h
+++ /dev/null
@@ -1,195 +0,0 @@
-/* $NoKeywords:$ */
-/**
- * @file
- *
- * AMD AGESA Input Structure Creation
- *
- * Contains AGESA input creation structures.
- *
- * @xrefitem bom "File Content Label" "Release Content"
- * @e project: AGESA
- * @e sub-project: Common
- * @e \$Revision: 44324 $ @e \$Date: 2010-12-22 17:16:51 +0800 (Wed, 22 Dec 2010) $
- *
- */
-/*
- ******************************************************************************
- *
- * Copyright (c) 2011, Advanced Micro Devices, Inc.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * * Neither the name of Advanced Micro Devices, Inc. nor the names of
- * its contributors may be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL ADVANCED MICRO DEVICES, INC. BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- ******************************************************************************
- */
-
-#ifndef _CREATE_STRUCT_H_
-#define _CREATE_STRUCT_H_
-
-/**
- * A constructor method.
- *
- * Sets inputs to valid, basic level, defaults for the specific service instance.
- * Constructors should avoid using the header, since these routines should not
- * do operations which may fail or require status back to the user. The constructor
- * should always SUCCEED.
- *
- * @param[in] StdHeader Opaque handle to standard config header
- * @param[in] ServiceInterface Service Interface structure to initialize.
- *
- * @retval AGESA_SUCCESS Constructors are not allowed to fail
-*/
-typedef AGESA_STATUS
-F_AGESA_FUNCTION (
- IN AMD_CONFIG_PARAMS *StdHeader,
- IN VOID *ServiceInterface
- );
-
-/// Reference to a Method.
-typedef F_AGESA_FUNCTION *PF_AGESA_FUNCTION;
-
-/**
- * A Destructor method.
- *
- * Sets inputs to valid, basic level, defaults for the specific service instance.
- * The constructor should always SUCCEED.
- *
- * @param[in] StdHeader Opaque handle to standard config header.
- * @param[in] ServiceInterface Service Interface structure to initialize.
- *
- * @retval AGESA_SUCCESS Constructors are not allowed to fail
-*/
-typedef AGESA_STATUS
-F_AGESA_DESTRUCTOR (
- IN AMD_CONFIG_PARAMS *StdHeader,
- IN VOID *ServiceInterface
- );
-
-/// Reference to a Method.
-typedef F_AGESA_DESTRUCTOR *PF_AGESA_DESTRUCTOR;
-
-/**
- * Provide the information needed to invoke each service constructor.
- */
-typedef struct {
- IN AGESA_STRUCT_NAME AgesaFunctionName; ///< Identifies the service
- IN UINT16 CreateStructSize; ///< The service's input struct size.
- /// Do NOT include a config params header!
- OUT PF_AGESA_FUNCTION AgesaFunction; ///< The constructor function
- OUT PF_AGESA_DESTRUCTOR AgesaDestructor; ///< The destructor function.
- IN AGESA_BUFFER_HANDLE BufferHandle; ///< The buffer handle id for the service.
-} FUNCTION_PARAMS_INFO;
-
-/**
- * All available services have their constructor info here.
- */
-AGESA_STATUS
-AmdInitResetConstructor (
- IN AMD_CONFIG_PARAMS *StdHeader,
- IN AMD_RESET_PARAMS *AmdResetParams
- );
-
-AGESA_STATUS
-AmdInitRecoveryInitializer (
- IN AMD_CONFIG_PARAMS *StdHeader,
- IN OUT AMD_RECOVERY_PARAMS *AmdRecoveryParamsPtr
- );
-
-AGESA_STATUS
-AmdInitEarlyInitializer (
- IN AMD_CONFIG_PARAMS *StdHeader,
- IN OUT AMD_EARLY_PARAMS *EarlyParams
- );
-
-AGESA_STATUS
-AmdInitPostInitializer (
- IN AMD_CONFIG_PARAMS *StdHeader,
- IN OUT AMD_POST_PARAMS *PostParamsPtr
- );
-
-AGESA_STATUS
-AmdInitPostDestructor (
- IN AMD_CONFIG_PARAMS *StdHeader,
- IN AMD_POST_PARAMS *PostParamsPtr
- );
-
-AGESA_STATUS
-AmdInitEnvInitializer (
- IN AMD_CONFIG_PARAMS *StdHeader,
- IN OUT AMD_ENV_PARAMS *EnvParamsPtr
- );
-
-AGESA_STATUS
-AmdInitMidInitializer (
- IN AMD_CONFIG_PARAMS *StdHeader,
- IN OUT AMD_MID_PARAMS *MidParamsPtr
- );
-
-AGESA_STATUS
-AmdInitLateInitializer (
- IN AMD_CONFIG_PARAMS *StdHeader,
- IN OUT AMD_LATE_PARAMS *LateParamsPtr
- );
-
-AGESA_STATUS
-AmdInitLateDestructor (
- IN AMD_CONFIG_PARAMS *StdHeader,
- IN AMD_LATE_PARAMS *LateParamsPtr
- );
-
-AGESA_STATUS
-AmdInitResumeInitializer (
- IN AMD_CONFIG_PARAMS *StdHeader,
- IN OUT AMD_RESUME_PARAMS *ResumeParams
- );
-
-AGESA_STATUS
-AmdInitResumeDestructor (
- IN AMD_CONFIG_PARAMS *StdHeader,
- IN OUT AMD_RESUME_PARAMS *ResumeParams
- );
-
-AGESA_STATUS
-AmdS3SaveInitializer (
- IN OUT AMD_CONFIG_PARAMS *StdHeader,
- IN OUT AMD_S3SAVE_PARAMS *S3SaveParams
- );
-
-AGESA_STATUS
-AmdS3SaveDestructor (
- IN AMD_CONFIG_PARAMS *StdHeader,
- IN OUT AMD_S3SAVE_PARAMS *S3SaveParams
- );
-
-AGESA_STATUS
-AmdS3LateRestoreInitializer (
- IN AMD_CONFIG_PARAMS *StdHeader,
- IN OUT AMD_S3LATE_PARAMS *S3LateParams
- );
-
-AGESA_STATUS
-AmdLateRunApTaskInitializer (
- IN AMD_CONFIG_PARAMS *StdHeader,
- IN OUT AP_EXE_PARAMS *AmdApExeParams
- );
-#endif // _CREATE_STRUCT_H_
-
diff --git a/src/vendorcode/amd/agesa/f14/Makefile.inc b/src/vendorcode/amd/agesa/f14/Makefile.inc
index d1c8911..8775a1b 100644
--- a/src/vendorcode/amd/agesa/f14/Makefile.inc
+++ b/src/vendorcode/amd/agesa/f14/Makefile.inc
@@ -36,6 +36,7 @@ AGESA_INC += -I$(AGESA_ROOT)/../common
AGESA_INC += -I$(AGESA_ROOT)/Include
AGESA_INC += -I$(AGESA_ROOT)/Lib
AGESA_INC += -I$(AGESA_ROOT)/Legacy
+AGESA_INC += -I$(AGESA_ROOT)/../common/Proc/Common
AGESA_INC += -I$(AGESA_ROOT)/Proc/Common
AGESA_INC += -I$(AGESA_ROOT)/Proc/CPU
AGESA_INC += -I$(AGESA_ROOT)/Proc/CPU/Family
@@ -228,13 +229,13 @@ libagesa-y += Proc/Mem/NB/mn.c
libagesa-y += Proc/GNB/Gfx/GfxInitAtEnvPost.c
libagesa-y += Proc/CPU/Feature/cpuHwC1e.c
libagesa-y += Proc/CPU/cpuLateInit.c
-libagesa-y += Proc/Common/CreateStruct.c
+libagesa-y += ../common/Proc/Common/CreateStruct.c
libagesa-y += Proc/CPU/Feature/cpuWhea.c
libagesa-y += Proc/Mem/Feat/CSINTLV/mfcsi.c
libagesa-y += Proc/Mem/Feat/ECC/mfecc.c
libagesa-y += Proc/Mem/Feat/DMI/mfDMI.c
libagesa-y += Proc/Mem/Ps/ON/mpson3.c
-libagesa-y += Proc/Common/AmdLateRunApTask.c
+libagesa-y += ../common/Proc/Common/AmdLateRunApTask.c
libagesa-y += Proc/CPU/cpuPowerMgmtMultiSocket.c
libagesa-y += Proc/Mem/Main/mmUmaAlloc.c
libagesa-y += Proc/CPU/Feature/cpuPstateTables.c
diff --git a/src/vendorcode/amd/agesa/f14/Proc/Common/AmdInitRecovery.c b/src/vendorcode/amd/agesa/f14/Proc/Common/AmdInitRecovery.c
deleted file mode 100644
index fccb5d9..0000000
--- a/src/vendorcode/amd/agesa/f14/Proc/Common/AmdInitRecovery.c
+++ /dev/null
@@ -1,171 +0,0 @@
-/* $NoKeywords:$ */
-/**
- * @file
- *
- * AMD AGESA Basic Level Public APIs
- *
- * Contains basic Level Initialization routines.
- *
- * @xrefitem bom "File Content Label" "Release Content"
- * @e project: AGESA
- * @e sub-project: Common
- * @e \$Revision: 35136 $ @e \$Date: 2010-07-16 11:29:48 +0800 (Fri, 16 Jul 2010) $
- *
- */
-/*
- *****************************************************************************
- *
- * Copyright (c) 2011, Advanced Micro Devices, Inc.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * * Neither the name of Advanced Micro Devices, Inc. nor the names of
- * its contributors may be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL ADVANCED MICRO DEVICES, INC. BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * ***************************************************************************
- *
- */
-
-
-/*----------------------------------------------------------------------------------------
- * M O D U L E S U S E D
- *----------------------------------------------------------------------------------------
- */
-#include "AGESA.h"
-#include "amdlib.h"
-#include "Ids.h"
-#include "AdvancedApi.h"
-#include "heapManager.h"
-#include "mm.h"
-#include "GnbInterface.h"
-#include "cpuRecovery.h"
-#include "cpuCacheInit.h"
-#include "Filecode.h"
-CODE_GROUP (G2_PEI)
-RDATA_GROUP (G2_PEI)
-
-#define FILECODE PROC_COMMON_AMDINITRECOVERY_FILECODE
-
-/*----------------------------------------------------------------------------------------
- * P R O T O T Y P E S O F L O C A L F U N C T I O N S
- *----------------------------------------------------------------------------------------
- */
-
-/*----------------------------------------------------------------------------------------
- * D E F I N I T I O N S A N D M A C R O S
- *----------------------------------------------------------------------------------------
- */
-
-/*---------------------------------------------------------------------------------------*/
-/**
- * Perform initialization services required at the Early Init POST time point.
- *
- * Execution Cache, HyperTransport, C1e, and AP Init advanced services are performed.
- *
- * @param[in, out] RecoveryParams The interface struct for Recovery services
- *
- * @return The most severe AGESA_STATUS returned by any called service.
- *
- */
-AGESA_STATUS
-AmdInitRecovery (
- IN OUT AMD_RECOVERY_PARAMS *RecoveryParams
- )
-{
- AGESA_STATUS AgesaStatus;
- AGESA_STATUS CalledAgesaStatus;
-
- AGESA_TESTPOINT (TpIfAmdInitRecoveryEntry, &RecoveryParams->StdHeader);
-
- ASSERT (RecoveryParams != NULL);
-
- AgesaStatus = AGESA_SUCCESS;
-
- // Setup ROM execution cache
- CalledAgesaStatus = AllocateExecutionCache (&RecoveryParams->StdHeader, &RecoveryParams->CacheRegion[0]);
- if (CalledAgesaStatus > AgesaStatus) {
- AgesaStatus = CalledAgesaStatus;
- }
-
- CalledAgesaStatus = AmdHtInitRecovery (&RecoveryParams->StdHeader);
- if (CalledAgesaStatus > AgesaStatus) {
- AgesaStatus = CalledAgesaStatus;
- }
-
- CalledAgesaStatus = AmdCpuRecovery ((AMD_CPU_RECOVERY_PARAMS *) &RecoveryParams->StdHeader);
- if (CalledAgesaStatus > AgesaStatus) {
- AgesaStatus = CalledAgesaStatus;
- }
-
- CalledAgesaStatus = AmdMemRecovery (RecoveryParams->MemConfig.MemData);
- if (CalledAgesaStatus > AgesaStatus) {
- AgesaStatus = CalledAgesaStatus;
- }
-
- CalledAgesaStatus = AmdGnbRecovery (&RecoveryParams->StdHeader);
- if (CalledAgesaStatus > AgesaStatus) {
- AgesaStatus = CalledAgesaStatus;
- }
-
- AGESA_TESTPOINT (TpIfAmdInitRecoveryExit, &RecoveryParams->StdHeader);
- return AgesaStatus;
-}
-
-/*---------------------------------------------------------------------------------------*/
-/**
- *
- * Initialize defaults and options for Amd Init Reset.
- *
- * @param[in] StdHeader AMD standard header config param.
- * @param[in] AmdRecoveryParamsPtr The Reset Init interface to initialize.
- *
- * @retval AGESA_SUCCESS Always Succeeds.
- */
-AGESA_STATUS
-AmdInitRecoveryInitializer (
- IN AMD_CONFIG_PARAMS *StdHeader,
- IN OUT AMD_RECOVERY_PARAMS *AmdRecoveryParamsPtr
- )
-{
- ALLOCATE_HEAP_PARAMS AllocHeapParams;
-
- ASSERT (StdHeader != NULL);
- ASSERT (AmdRecoveryParamsPtr != NULL);
-
- AmdRecoveryParamsPtr->StdHeader = *StdHeader;
-
- AllocHeapParams.RequestedBufferSize = sizeof (MEM_DATA_STRUCT);
- AllocHeapParams.BufferHandle = AMD_MEM_DATA_HANDLE;
- AllocHeapParams.Persist = HEAP_LOCAL_CACHE;
- if (HeapAllocateBuffer (&AllocHeapParams, &AmdRecoveryParamsPtr->StdHeader) == AGESA_SUCCESS) {
- AmdRecoveryParamsPtr->MemConfig.MemData = (MEM_DATA_STRUCT *) AllocHeapParams.BufferPtr;
- AmdRecoveryParamsPtr->MemConfig.MemData->ParameterListPtr = &(AmdRecoveryParamsPtr->MemConfig);
- LibAmdMemCopy ((VOID *) AmdRecoveryParamsPtr->MemConfig.MemData,
- (VOID *) AmdRecoveryParamsPtr,
- (UINTN) sizeof (AmdRecoveryParamsPtr->StdHeader),
- &AmdRecoveryParamsPtr->StdHeader
- );
- AmdMemInitDataStructDefRecovery (AmdRecoveryParamsPtr->MemConfig.MemData);
- return AGESA_SUCCESS;
- } else {
- return AGESA_ERROR;
- }
-}
diff --git a/src/vendorcode/amd/agesa/f14/Proc/Common/AmdLateRunApTask.c b/src/vendorcode/amd/agesa/f14/Proc/Common/AmdLateRunApTask.c
deleted file mode 100644
index 9a1c99e..0000000
--- a/src/vendorcode/amd/agesa/f14/Proc/Common/AmdLateRunApTask.c
+++ /dev/null
@@ -1,161 +0,0 @@
-/* $NoKeywords:$ */
-/**
- * @file
- *
- * AMD AGESA Basic Level Public APIs
- *
- * Contains basic Level Initialization routines.
- *
- * @xrefitem bom "File Content Label" "Release Content"
- * @e project: AGESA
- * @e sub-project: Interface
- * @e \$Revision: 35136 $ @e \$Date: 2010-07-16 11:29:48 +0800 (Fri, 16 Jul 2010) $
- *
- */
-/*
- *****************************************************************************
- *
- * Copyright (c) 2011, Advanced Micro Devices, Inc.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * * Neither the name of Advanced Micro Devices, Inc. nor the names of
- * its contributors may be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL ADVANCED MICRO DEVICES, INC. BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * ***************************************************************************
- *
- */
-
-
-/*----------------------------------------------------------------------------------------
- * M O D U L E S U S E D
- *----------------------------------------------------------------------------------------
- */
-#include "AGESA.h"
-#include "Ids.h"
-#include "Options.h"
-#include "CreateStruct.h"
-#include "Filecode.h"
-CODE_GROUP (G3_DXE)
-RDATA_GROUP (G3_DXE)
-
-#define FILECODE PROC_COMMON_AMDLATERUNAPTASK_FILECODE
-/*----------------------------------------------------------------------------------------
- * D E F I N I T I O N S A N D M A C R O S
- *----------------------------------------------------------------------------------------
- */
-
-
-/*----------------------------------------------------------------------------------------
- * T Y P E D E F S A N D S T R U C T U R E S
- *----------------------------------------------------------------------------------------
- */
-
-
-/*----------------------------------------------------------------------------------------
- * P R O T O T Y P E S O F L O C A L F U N C T I O N S
- *----------------------------------------------------------------------------------------
- */
-
-
-/*----------------------------------------------------------------------------------------
- * E X P O R T E D F U N C T I O N S
- *----------------------------------------------------------------------------------------
- */
-extern CONST DISPATCH_TABLE ApDispatchTable[];
-
-/*---------------------------------------------------------------------------------------*/
-/**
- * Application Processor perform a function as directed by the BSC.
- *
- * This is needed for an AP task that must run after AGESA has relinquished control
- * of the APs to the IBV.
- *
- * @param[in] AmdApExeParams The interface struct for any required routine.
- *
- * @return The most severe AGESA_STATUS returned by any called service. Note
- * that this will be the return value passed back to the BSC as the
- * return value for the call out.
- *
- */
-AGESA_STATUS
-AmdLateRunApTask (
- IN AP_EXE_PARAMS *AmdApExeParams
- )
-{
- AGESA_STATUS CalledAgesaStatus;
- AGESA_STATUS ApLateTaskStatus;
- DISPATCH_TABLE *Entry;
-
- AGESA_TESTPOINT (TpIfAmdLateRunApTaskEntry, &AmdApExeParams->StdHeader);
-
- ASSERT (AmdApExeParams != NULL);
- ApLateTaskStatus = AGESA_SUCCESS;
- CalledAgesaStatus = AGESA_UNSUPPORTED;
-
- // Dispatch, if valid
- Entry = (DISPATCH_TABLE *) ApDispatchTable;
- while (Entry->FunctionId != 0) {
- if (AmdApExeParams->FunctionNumber == Entry->FunctionId) {
- CalledAgesaStatus = Entry->EntryPoint (AmdApExeParams);
- break;
- }
- Entry++;
- }
-
- if (CalledAgesaStatus > ApLateTaskStatus) {
- ApLateTaskStatus = CalledAgesaStatus;
- }
-
- AGESA_TESTPOINT (TpIfAmdLateRunApTaskExit, &AmdApExeParams->StdHeader);
- return ApLateTaskStatus;
-}
-
-/*---------------------------------------------------------------------------------------*/
-/**
- * Constructor for the AMD_LATE_RUN_AP_TASK function.
- *
- * This routine is responsible for setting default values for the
- * input parameters needed by the AMD_S3_SAVE entry point.
- *
- * @param[in] StdHeader The standard header.
- * @param[in,out] AmdApExeParams Required input parameters for the AMD_LATE_RUN_AP_TASK
- * entry point.
- *
- * @retval AGESA_SUCCESS Always Succeeds.
- *
- */
-AGESA_STATUS
-AmdLateRunApTaskInitializer (
- IN AMD_CONFIG_PARAMS *StdHeader,
- IN OUT AP_EXE_PARAMS *AmdApExeParams
- )
-{
- ASSERT (StdHeader != NULL);
- ASSERT (AmdApExeParams != NULL);
-
- AmdApExeParams->StdHeader = *StdHeader;
- AmdApExeParams->FunctionNumber = 0;
- AmdApExeParams->RelatedDataBlock = NULL;
- AmdApExeParams->RelatedBlockLength = 0;
- return AGESA_SUCCESS;
-}
-
diff --git a/src/vendorcode/amd/agesa/f14/Proc/Common/CommonInits.h b/src/vendorcode/amd/agesa/f14/Proc/Common/CommonInits.h
deleted file mode 100644
index 34f3c93..0000000
--- a/src/vendorcode/amd/agesa/f14/Proc/Common/CommonInits.h
+++ /dev/null
@@ -1,66 +0,0 @@
-/* $NoKeywords:$ */
-/**
- * @file
- *
- * Common initialization routines.
- *
- * Contains common initialization routines across AGESA entries of phases.
- *
- * @xrefitem bom "File Content Label" "Release Content"
- * @e project: AGESA
- * @e sub-project: Common
- * @e \$Revision: 34897 $ @e \$Date: 2010-07-14 10:07:10 +0800 (Wed, 14 Jul 2010) $
- *
- */
-/*
- *****************************************************************************
- *
- * Copyright (c) 2011, Advanced Micro Devices, Inc.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * * Neither the name of Advanced Micro Devices, Inc. nor the names of
- * its contributors may be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL ADVANCED MICRO DEVICES, INC. BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * ***************************************************************************
- *
- */
-
-#ifndef _COMMON_INITS_H_
-#define _COMMON_INITS_H_
-
-/**
- * Common routine to initialize PLATFORM_CONFIGURATION.
- *
- * @param[in,out] PlatformConfig Platform profile/build option config structure
- * @param[in,out] StdHeader AMD standard header config param
- *
- * @retval AGESA_SUCCESS Always Succeeds.
- *
- */
-AGESA_STATUS
-CommonPlatformConfigInit (
- IN OUT PLATFORM_CONFIGURATION *PlatformConfig,
- IN OUT AMD_CONFIG_PARAMS *StdHeader
- );
-
-#endif // _COMMON_INITS_H_
-
diff --git a/src/vendorcode/amd/agesa/f14/Proc/Common/CommonPage.h b/src/vendorcode/amd/agesa/f14/Proc/Common/CommonPage.h
deleted file mode 100644
index 4e73e21..0000000
--- a/src/vendorcode/amd/agesa/f14/Proc/Common/CommonPage.h
+++ /dev/null
@@ -1,118 +0,0 @@
-/* $NoKeywords:$ */
-/**
- * @file
- *
- * Create outline and references for Processor Common Component mainpage documentation.
- *
- * Design guides, maintenance guides, and general documentation, are
- * collected using this file onto the documentation mainpage.
- * This file contains doxygen comment blocks, only.
- *
- * @xrefitem bom "File Content Label" "Release Content"
- * @e project: AGESA
- * @e sub-project: Documentation
- * @e \$Revision: 34897 $ @e \$Date: 2010-07-14 10:07:10 +0800 (Wed, 14 Jul 2010) $
- *
- */
-/*
- *****************************************************************************
- *
- * Copyright (c) 2011, Advanced Micro Devices, Inc.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * * Neither the name of Advanced Micro Devices, Inc. nor the names of
- * its contributors may be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL ADVANCED MICRO DEVICES, INC. BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * ***************************************************************************
- *
- */
-
-/**
- * @page commonmain Processor Common Component Documentation
- *
- * Additional documentation for the Common component consists of
- *
- * - Maintenance Guides:
- * - @subpage amdconfigparamname "Naming Guidelines for type AMD_CONFIG_PARAMS"
- * - Design Guides:
- * - add here >>>
- *
- */
-
-/**
- * @page amdconfigparamname Naming Guidelines for type AMD_CONFIG_PARAMS
- * @par
- * These are the guidelines for naming objects of type AMD_CONFIG_PARAMS and AMD_CONFIG_PARAMS * in AGESA code.
- * <ul>
- *
- * <li>
- * Formal parameter names of type AMD_CONFIG_PARAMS and AMD_CONFIG_PARAMS * will always be named
- * StdHeader. This covers all function prototypes, function definitions, and method typedefs (a
- * typedef of a function prototype) in AGESA code. Examples:
- * @n @code
- * VOID
- * LibAmdPciFindNextCap (
- * IN OUT PCI_ADDR *Address,
- * IN AMD_CONFIG_PARAMS *StdHeader
- * )
- *
- * typedef VOID F_DO_TABLE_ENTRY (
- * IN TABLE_ENTRY_DATA *CurrentEntry,
- * IN PLATFORM_CONFIGURATION *PlatformConfig,
- * IN AMD_CONFIG_PARAMS *StdHeader
- * );
- *
- * @endcode
- *
- * <li>
- * Structure members of type AMD_CONFIG_PARAMS or AMD_CONFIG_PARAMS * will always be named StdHeader. Examples:
- * @n @code
- /// Example of struct member naming.
- * typedef struct {
- * IN OUT AMD_CONFIG_PARAMS StdHeader; ///< Standard Header
- * IN PLATFORM_CONFIGURATION PlatformConfig; ///< platform operational characteristics.
- * } AMD_CPU_RECOVERY_PARAMS;
- *
- * @endcode
- *
- * <li>
- * Routines which define local variables of type AMD_CONFIG_PARAMS or AMD_CONFIG_PARAMS * should
- * name the local variable as closely as practical to StdHeader, but otherwise freedom is allowed. Example:
- * @n @code
- * AMD_CONFIG_PARAMS *NewStdHeader;
- * [...]
- * NewStdHeader = (AMD_CONFIG_PARAMS *)AllocHeapParams.BufferPtr;
- * @endcode
- *
- * <li>
- * Arguments to routines with AMD_CONFIG_PARAMS or AMD_CONFIG_PARAMS * formal parameters are not
- * checked. Freedom is allowed in order to conform to these guidelines in a practical, readable
- * way. This includes typecast arguments. Examples:
- * @n @code
- * Status = GetEventLog (&LogEvent, (AMD_CONFIG_PARAMS *)Event);
- *
- * MemS3ExitSelfRefRegDA (NBPtr, &MemPtr->StdHeader);
- * @endcode
- *
- * </ul>
- *
- */
diff --git a/src/vendorcode/amd/agesa/f14/Proc/Common/CreateStruct.c b/src/vendorcode/amd/agesa/f14/Proc/Common/CreateStruct.c
deleted file mode 100644
index d7041d2..0000000
--- a/src/vendorcode/amd/agesa/f14/Proc/Common/CreateStruct.c
+++ /dev/null
@@ -1,315 +0,0 @@
-/* $NoKeywords:$ */
-/**
- * @file
- *
- * AMD AGESA Input Structure Creation
- *
- * Contains AGESA input structure creation support.
- *
- * @xrefitem bom "File Content Label" "Release Content"
- * @e project: AGESA
- * @e sub-project: Common
- * @e \$Revision: 35136 $ @e \$Date: 2010-07-16 11:29:48 +0800 (Fri, 16 Jul 2010) $
- *
- */
-/*
- *****************************************************************************
- *
- * Copyright (c) 2011, Advanced Micro Devices, Inc.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * * Neither the name of Advanced Micro Devices, Inc. nor the names of
- * its contributors may be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL ADVANCED MICRO DEVICES, INC. BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * ***************************************************************************
- *
- */
-
-/*----------------------------------------------------------------------------------------
- * M O D U L E S U S E D
- *----------------------------------------------------------------------------------------
- */
-#include "AGESA.h"
-#include "amdlib.h"
-#include "Ids.h"
-#include "GeneralServices.h"
-#include "heapManager.h"
-#include "CreateStruct.h"
-#include "cpuFamilyTranslation.h"
-#include "Filecode.h"
-CODE_GROUP (G1_PEICC)
-RDATA_GROUP (G1_PEICC)
-
-#define FILECODE PROC_COMMON_CREATESTRUCT_FILECODE
-/*----------------------------------------------------------------------------------------
- * D E F I N I T I O N S A N D M A C R O S
- *----------------------------------------------------------------------------------------
- */
-extern CONST FUNCTION_PARAMS_INFO FuncParamsInfo[];
-extern CONST UINTN InitializerCount;
-
-/*----------------------------------------------------------------------------------------
- * T Y P E D E F S A N D S T R U C T U R E S
- *----------------------------------------------------------------------------------------
- */
-
-/*----------------------------------------------------------------------------------------
- * P R O T O T Y P E S O F L O C A L F U N C T I O N S
- *----------------------------------------------------------------------------------------
- */
-
-/*----------------------------------------------------------------------------------------
- * E X P O R T E D F U N C T I O N S
- *----------------------------------------------------------------------------------------
- */
-extern BUILD_OPT_CFG UserOptions;
-
-/*---------------------------------------------------------------------------------------*/
-/**
- * Allocate and initialize Config headers and Service Interface structures.
- *
- * This function will be called for each AGESA public APIs.
- * This function will do the following:
- * -# Locate the AGESA API structure parameters initializer function information.
- * -# Find the size of the structure that gets passed to each public APIs as
- * the entry parameter. Allocate heap space using the size for PreMemHeap, callout for
- * memory allocation for PostMemDram, and just set the config and service interface
- * pointers for ByHost.
- * -# If the allocation is not ByHost, copy the AmdConfigParams into the newly created AmdConfigParams.
- * For ByHost, we're using the caller's existing config params.
- * -# Call the initializer function, and pass a reference to the Config params and to
- * the Service Interface struct. On return the constructor will have filled the
- * remaining structure with default values.
- * -# Fill the remaining info in the newly created structure on heap in AMD_CONFIG_PARAMS
- * area (i.e. Fill *newStructPtr with the pointer to the newly created structure)
- * -# Set the appropriate AGESA function number in the StdHeader member of the input
- * parameter structure.
- *
- * @param[in,out] InterfaceParams Pointer to structure containing the function call
- * whose parameter structure is to be created, the
- * allocation method, and a pointer to the newly
- * created structure.
- *
- * @retval AGESA_SUCCESS The interface struct is allocated and initialized.
- * @retval AGESA_UNSUPPORTED The Service is not supported.
- *
- */
-AGESA_STATUS
-AmdCreateStruct (
- IN OUT AMD_INTERFACE_PARAMS *InterfaceParams
- )
-{
- UINTN ServiceIndex;
- ALLOCATE_HEAP_PARAMS AllocHeapParams;
- AMD_CONFIG_PARAMS *NewlyCreatedConfig;
- VOID *NewlyCreatedServiceInterface;
- AGESA_STATUS AgesaStatus;
- AGESA_STATUS TempStatus;
- AGESA_STATUS IgnoredSts;
- CPU_SPECIFIC_SERVICES *FamilySpecificServices;
-
- AgesaStatus = AGESA_SUCCESS;
-
- ASSERT (InterfaceParams != NULL);
-
- switch (InterfaceParams->AgesaFunctionName) {
- case AMD_INIT_RESET:
- if (!IsBsp (&InterfaceParams->StdHeader, &IgnoredSts)) {
- // APs must transfer their system core number from the mailbox to
- // a local register while it is still valid.
- GetCpuServicesOfCurrentCore ((const CPU_SPECIFIC_SERVICES **)&FamilySpecificServices, &InterfaceParams->StdHeader);
- FamilySpecificServices->TransferApCoreNumber (FamilySpecificServices, &InterfaceParams->StdHeader);
- }
- InterfaceParams->StdHeader.HeapStatus = HEAP_DO_NOT_EXIST_YET;
- break;
- case AMD_INIT_EARLY:
- case AMD_INIT_RECOVERY:
- case AMD_INIT_RESUME:
- case AMD_INIT_POST:
- InterfaceParams->StdHeader.HeapStatus = HEAP_LOCAL_CACHE;
- break;
- case AMD_INIT_ENV:
- InterfaceParams->StdHeader.HeapStatus = HEAP_TEMP_MEM;
- break;
- case AMD_INIT_LATE:
- case AMD_INIT_MID:
- case AMD_S3_SAVE:
- case AMD_LATE_RUN_AP_TASK:
- InterfaceParams->StdHeader.HeapStatus = HEAP_SYSTEM_MEM;
- break;
- case AMD_S3LATE_RESTORE:
- InterfaceParams->StdHeader.HeapStatus = HEAP_S3_RESUME;
- break;
- default:
- ASSERT (FALSE);
- InterfaceParams->StdHeader.HeapStatus = HEAP_LOCAL_CACHE;
- break;
- }
-
- InterfaceParams->StdHeader.HeapBasePtr = HeapGetBaseAddress (&InterfaceParams->StdHeader);
-
- if (InterfaceParams->AgesaFunctionName == AMD_INIT_RESET) {
- AgesaStatus = HeapManagerInit (&InterfaceParams->StdHeader);
- }
-
- // Step 1
- for (ServiceIndex = 0; ServiceIndex < InitializerCount; ServiceIndex++) {
- if (FuncParamsInfo[ServiceIndex].AgesaFunctionName == InterfaceParams->AgesaFunctionName) {
- break;
- }
- }
- if (ServiceIndex >= InitializerCount) {
- // A call was made to AGESA with an invalid function number. This wrapper error may be due to the build target
- // not containing the desired entry point.
- return AGESA_UNSUPPORTED;
- }
-
- // Step 2
- LibAmdMemFill (&AllocHeapParams, 0, (UINTN) (sizeof (ALLOCATE_HEAP_PARAMS)), &InterfaceParams->StdHeader);
-
- if (InterfaceParams->AllocationMethod < ByHost) {
- // Allocate one buffer to contain the config params and the service struct.
- // The service struct begins immediately after the config params.
- AllocHeapParams.RequestedBufferSize = FuncParamsInfo[ServiceIndex].CreateStructSize + sizeof (AMD_CONFIG_PARAMS);
- AllocHeapParams.BufferHandle = FuncParamsInfo[ServiceIndex].BufferHandle;
- AllocHeapParams.Persist = HEAP_SYSTEM_MEM;
- TempStatus = HeapAllocateBuffer (&AllocHeapParams, &(InterfaceParams->StdHeader));
- AgesaStatus = ((AgesaStatus > TempStatus) ? AgesaStatus : TempStatus);
- NewlyCreatedConfig = (AMD_CONFIG_PARAMS *)AllocHeapParams.BufferPtr;
- NewlyCreatedConfig++;
- NewlyCreatedServiceInterface = NewlyCreatedConfig;
- NewlyCreatedConfig = (AMD_CONFIG_PARAMS *)AllocHeapParams.BufferPtr;
- } else {
- // The caller (example, agesa basic interface implementation) already has a buffer to use.
- NewlyCreatedConfig = (AMD_CONFIG_PARAMS *)InterfaceParams;
- NewlyCreatedServiceInterface = InterfaceParams->NewStructPtr;
- ASSERT (InterfaceParams->NewStructSize >= FuncParamsInfo[ServiceIndex].CreateStructSize);
- }
- ASSERT (NewlyCreatedConfig != NULL);
- ASSERT (NewlyCreatedServiceInterface != NULL);
-
- // Step 3
- if (InterfaceParams->AllocationMethod != ByHost) {
- *NewlyCreatedConfig = InterfaceParams->StdHeader;
- }
-
- // Step 4
- TempStatus = FuncParamsInfo[ServiceIndex].AgesaFunction (NewlyCreatedConfig, NewlyCreatedServiceInterface);
- AgesaStatus = ((AgesaStatus > TempStatus) ? AgesaStatus : TempStatus);
-
- // Step 5
- if (InterfaceParams->AllocationMethod != ByHost) {
- InterfaceParams->NewStructPtr = (VOID *) NewlyCreatedServiceInterface;
- InterfaceParams->NewStructSize = FuncParamsInfo[ServiceIndex].CreateStructSize;
- }
-
- // Step 6
- ((AMD_CONFIG_PARAMS *) InterfaceParams->NewStructPtr)->Func = InterfaceParams->AgesaFunctionName;
- return AgesaStatus;
-}
-
-
-/*---------------------------------------------------------------------------------------*/
-/**
- * Clears storage space from allocation for a parameter block of an
- * AGESA software call entry.
- *
- * @param[in,out] InterfaceParams Pointer to structure containing the function call
- * whose parameter structure is to be deallocated.
- *
- * @retval AGESA_STATUS
- *
- *---------------------------------------------------------------------------------------
- **/
-AGESA_STATUS
-AmdReleaseStruct (
- IN OUT AMD_INTERFACE_PARAMS *InterfaceParams
- )
-{
- UINT8 i;
- UINT8 *BufferPtr;
- VOID *ServicePtr;
- AGESA_STATUS AgesaStatus;
- AGESA_STATUS TempStatus;
- LOCATE_HEAP_PTR LocHeap;
-
- AgesaStatus = AGESA_SUCCESS;
-
- switch (InterfaceParams->AgesaFunctionName) {
- case AMD_INIT_RESET:
- case AMD_INIT_EARLY:
- case AMD_INIT_RECOVERY:
- case AMD_INIT_RESUME:
- InterfaceParams->StdHeader.HeapStatus = HEAP_LOCAL_CACHE;
- break;
- case AMD_INIT_POST:
- InterfaceParams->StdHeader.HeapStatus = HEAP_TEMP_MEM;
- break;
- case AMD_INIT_ENV:
- case AMD_INIT_LATE:
- case AMD_INIT_MID:
- case AMD_S3_SAVE:
- case AMD_LATE_RUN_AP_TASK:
- InterfaceParams->StdHeader.HeapStatus = HEAP_SYSTEM_MEM;
- break;
- case AMD_S3LATE_RESTORE:
- InterfaceParams->StdHeader.HeapStatus = HEAP_S3_RESUME;
- break;
- default:
- ASSERT (FALSE);
- InterfaceParams->StdHeader.HeapStatus = HEAP_LOCAL_CACHE;
- break;
- }
-
- InterfaceParams->StdHeader.HeapBasePtr = HeapGetBaseAddress (&InterfaceParams->StdHeader);
-
-// Step 1
- for (i = 0; i < InitializerCount; i++) {
- if (FuncParamsInfo[i].AgesaFunctionName == InterfaceParams->AgesaFunctionName) {
- break;
- }
- }
- if (i >= InitializerCount) {
- return AGESA_BOUNDS_CHK;
- }
-
- // Step 2
- if (InterfaceParams->AllocationMethod < ByHost) {
- LocHeap.BufferHandle = FuncParamsInfo[i].BufferHandle;
- if (HeapLocateBuffer (&LocHeap, &(InterfaceParams->StdHeader)) == AGESA_SUCCESS) {
- BufferPtr = (UINT8 *) LocHeap.BufferPtr;
- ServicePtr = &BufferPtr[sizeof (AMD_CONFIG_PARAMS)];
- TempStatus = FuncParamsInfo[i].AgesaDestructor (&(InterfaceParams->StdHeader), ServicePtr);
- AgesaStatus = ((AgesaStatus > TempStatus) ? AgesaStatus : TempStatus);
- }
- }
-
- // Step 3
- if (InterfaceParams->AllocationMethod < ByHost) {
- TempStatus = HeapDeallocateBuffer (FuncParamsInfo[i].BufferHandle, &(InterfaceParams->StdHeader));
- AgesaStatus = ((AgesaStatus > TempStatus) ? AgesaStatus : TempStatus);
- } else {
- // Unless we define service specific destructors, nothing to do for ByHost.
- return AGESA_SUCCESS;
- }
- return AgesaStatus;
-}
diff --git a/src/vendorcode/amd/agesa/f14/Proc/Common/CreateStruct.h b/src/vendorcode/amd/agesa/f14/Proc/Common/CreateStruct.h
deleted file mode 100644
index ace0176..0000000
--- a/src/vendorcode/amd/agesa/f14/Proc/Common/CreateStruct.h
+++ /dev/null
@@ -1,197 +0,0 @@
-/* $NoKeywords:$ */
-/**
- * @file
- *
- * AMD AGESA Input Structure Creation
- *
- * Contains AGESA input creation structures.
- *
- * @xrefitem bom "File Content Label" "Release Content"
- * @e project: AGESA
- * @e sub-project: Common
- * @e \$Revision: 34897 $ @e \$Date: 2010-07-14 10:07:10 +0800 (Wed, 14 Jul 2010) $
- *
- */
-/*
- *****************************************************************************
- *
- * Copyright (c) 2011, Advanced Micro Devices, Inc.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * * Neither the name of Advanced Micro Devices, Inc. nor the names of
- * its contributors may be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL ADVANCED MICRO DEVICES, INC. BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * ***************************************************************************
- *
- */
-
-#ifndef _CREATE_STRUCT_H_
-#define _CREATE_STRUCT_H_
-
-/**
- * A constructor method.
- *
- * Sets inputs to valid, basic level, defaults for the specific service instance.
- * Constructors should avoid using the header, since these routines should not
- * do operations which may fail or require status back to the user. The constructor
- * should always SUCCEED.
- *
- * @param[in] StdHeader Opaque handle to standard config header
- * @param[in] ServiceInterface Service Interface structure to initialize.
- *
- * @retval AGESA_SUCCESS Constructors are not allowed to fail
-*/
-typedef AGESA_STATUS
-F_AGESA_FUNCTION (
- IN AMD_CONFIG_PARAMS *StdHeader,
- IN VOID *ServiceInterface
- );
-
-/// Reference to a Method.
-typedef F_AGESA_FUNCTION *PF_AGESA_FUNCTION;
-
-/**
- * A Destructor method.
- *
- * Sets inputs to valid, basic level, defaults for the specific service instance.
- * The constructor should always SUCCEED.
- *
- * @param[in] StdHeader Opaque handle to standard config header.
- * @param[in] ServiceInterface Service Interface structure to initialize.
- *
- * @retval AGESA_SUCCESS Constructors are not allowed to fail
-*/
-typedef AGESA_STATUS
-F_AGESA_DESTRUCTOR (
- IN AMD_CONFIG_PARAMS *StdHeader,
- IN VOID *ServiceInterface
- );
-
-/// Reference to a Method.
-typedef F_AGESA_DESTRUCTOR *PF_AGESA_DESTRUCTOR;
-
-/**
- * Provide the information needed to invoke each service constructor.
- */
-typedef struct {
- IN AGESA_STRUCT_NAME AgesaFunctionName; ///< Identifies the service
- IN UINT16 CreateStructSize; ///< The service's input struct size.
- /// Do NOT include a config params header!
- OUT PF_AGESA_FUNCTION AgesaFunction; ///< The constructor function
- OUT PF_AGESA_DESTRUCTOR AgesaDestructor; ///< The destructor function.
- IN UINT32 BufferHandle; ///< The buffer handle id for the service.
-} FUNCTION_PARAMS_INFO;
-
-/**
- * All available services have their constructor info here.
- */
-AGESA_STATUS
-AmdInitResetConstructor (
- IN AMD_CONFIG_PARAMS *StdHeader,
- IN AMD_RESET_PARAMS *AmdResetParams
- );
-
-AGESA_STATUS
-AmdInitRecoveryInitializer (
- IN AMD_CONFIG_PARAMS *StdHeader,
- IN OUT AMD_RECOVERY_PARAMS *AmdRecoveryParamsPtr
- );
-
-AGESA_STATUS
-AmdInitEarlyInitializer (
- IN AMD_CONFIG_PARAMS *StdHeader,
- IN OUT AMD_EARLY_PARAMS *EarlyParams
- );
-
-AGESA_STATUS
-AmdInitPostInitializer (
- IN AMD_CONFIG_PARAMS *StdHeader,
- IN OUT AMD_POST_PARAMS *PostParamsPtr
- );
-
-AGESA_STATUS
-AmdInitPostDestructor (
- IN AMD_CONFIG_PARAMS *StdHeader,
- IN AMD_POST_PARAMS *PostParamsPtr
- );
-
-AGESA_STATUS
-AmdInitEnvInitializer (
- IN AMD_CONFIG_PARAMS *StdHeader,
- IN OUT AMD_ENV_PARAMS *EnvParamsPtr
- );
-
-AGESA_STATUS
-AmdInitMidInitializer (
- IN AMD_CONFIG_PARAMS *StdHeader,
- IN OUT AMD_MID_PARAMS *MidParamsPtr
- );
-
-AGESA_STATUS
-AmdInitLateInitializer (
- IN AMD_CONFIG_PARAMS *StdHeader,
- IN OUT AMD_LATE_PARAMS *LateParamsPtr
- );
-
-AGESA_STATUS
-AmdInitLateDestructor (
- IN AMD_CONFIG_PARAMS *StdHeader,
- IN AMD_LATE_PARAMS *LateParamsPtr
- );
-
-AGESA_STATUS
-AmdInitResumeInitializer (
- IN AMD_CONFIG_PARAMS *StdHeader,
- IN OUT AMD_RESUME_PARAMS *ResumeParams
- );
-
-AGESA_STATUS
-AmdInitResumeDestructor (
- IN AMD_CONFIG_PARAMS *StdHeader,
- IN OUT AMD_RESUME_PARAMS *ResumeParams
- );
-
-AGESA_STATUS
-AmdS3SaveInitializer (
- IN OUT AMD_CONFIG_PARAMS *StdHeader,
- IN OUT AMD_S3SAVE_PARAMS *S3SaveParams
- );
-
-AGESA_STATUS
-AmdS3SaveDestructor (
- IN AMD_CONFIG_PARAMS *StdHeader,
- IN OUT AMD_S3SAVE_PARAMS *S3SaveParams
- );
-
-AGESA_STATUS
-AmdS3LateRestoreInitializer (
- IN AMD_CONFIG_PARAMS *StdHeader,
- IN OUT AMD_S3LATE_PARAMS *S3LateParams
- );
-
-AGESA_STATUS
-AmdLateRunApTaskInitializer (
- IN AMD_CONFIG_PARAMS *StdHeader,
- IN OUT AP_EXE_PARAMS *AmdApExeParams
- );
-#endif // _CREATE_STRUCT_H_
-
diff --git a/src/vendorcode/amd/agesa/f15/Makefile.inc b/src/vendorcode/amd/agesa/f15/Makefile.inc
index d709199..51260bf 100644
--- a/src/vendorcode/amd/agesa/f15/Makefile.inc
+++ b/src/vendorcode/amd/agesa/f15/Makefile.inc
@@ -35,6 +35,7 @@ AGESA_INC += -I$(AGESA_ROOT)/Proc/CPU/Family/0x10
AGESA_INC += -I$(AGESA_ROOT)/Proc/CPU/Family/0x15
AGESA_INC += -I$(AGESA_ROOT)/Proc/CPU/Family/0x15/OR
AGESA_INC += -I$(AGESA_ROOT)/Proc/CPU/Feature
+AGESA_INC += -I$(AGESA_ROOT)/../common/Proc/Common
AGESA_INC += -I$(AGESA_ROOT)/Proc/Common
AGESA_INC += -I$(AGESA_ROOT)/Proc/HT
AGESA_INC += -I$(AGESA_ROOT)/Proc/HT/Fam10
@@ -80,12 +81,12 @@ libagesa-y += Proc/Common/AmdInitMid.c
libagesa-y += Proc/Common/AmdInitPost.c
libagesa-y += Proc/Common/AmdInitReset.c
libagesa-y += Proc/Common/AmdInitResume.c
-libagesa-y += Proc/Common/AmdLateRunApTask.c
+libagesa-y += ../common/Proc/Common/AmdLateRunApTask.c
libagesa-y += Proc/Common/AmdS3LateRestore.c
libagesa-y += Proc/Common/AmdS3Save.c
libagesa-y += Proc/Common/CommonInits.c
libagesa-y += Proc/Common/CommonReturns.c
-libagesa-y += Proc/Common/CreateStruct.c
+libagesa-y += ../common/Proc/Common/CreateStruct.c
libagesa-y += Proc/Common/S3RestoreState.c
libagesa-y += Proc/Common/S3SaveState.c
libagesa-y += Proc/CPU/cahaltasm.S
diff --git a/src/vendorcode/amd/agesa/f15/Proc/Common/AmdFch.h b/src/vendorcode/amd/agesa/f15/Proc/Common/AmdFch.h
deleted file mode 100644
index afe565b..0000000
--- a/src/vendorcode/amd/agesa/f15/Proc/Common/AmdFch.h
+++ /dev/null
@@ -1,65 +0,0 @@
-/* $NoKeywords:$ */
-/**
- * @file
- *
- * AMD FCH Component
- *
- *
- *
- * @xrefitem bom "File Content Label" "Release Content"
- * @e project: AGESA
- * @e sub-project: FCH
- * @e \$Revision: 63425 $ @e \$Date: 2011-12-22 11:24:10 -0600 (Thu, 22 Dec 2011) $
- *
- */
-/*
-*****************************************************************************
-*
- * Copyright (c) 2008 - 2012, Advanced Micro Devices, Inc.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * * Neither the name of Advanced Micro Devices, Inc. nor the names of
- * its contributors may be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL ADVANCED MICRO DEVICES, INC. BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-* ***************************************************************************
-*
-*/
-
-#ifndef _AMD_FCH_H_
-#define _AMD_FCH_H_
-
-typedef AGESA_STATUS FCH_INIT (IN VOID *DataPtr);
-typedef VOID FCH_TASK_ENTRY (IN VOID *FchCfg);
-
-
-/// FCH API build options
-typedef struct {
- FCH_INIT *InitReset; ///< InitReset
- FCH_INIT *InitResetConstructor; ///< InitResetConstructor
- FCH_INIT *InitEnv; ///< InitEnv
- FCH_INIT *InitEnvConstructor; ///< InitEnvConstructor
- FCH_INIT *InitMid; ///< InitMid
- FCH_INIT *InitMidConstructor; ///< InitMidConstructor
- FCH_INIT *InitLate; ///< InitLate
- FCH_INIT *InitLateConstructor; ///< InitLateConstructor
-} BLDOPT_FCH_FUNCTION;
-
-#endif
diff --git a/src/vendorcode/amd/agesa/f15/Proc/Common/AmdInitRecovery.c b/src/vendorcode/amd/agesa/f15/Proc/Common/AmdInitRecovery.c
deleted file mode 100644
index ac4c08d..0000000
--- a/src/vendorcode/amd/agesa/f15/Proc/Common/AmdInitRecovery.c
+++ /dev/null
@@ -1,168 +0,0 @@
-/* $NoKeywords:$ */
-/**
- * @file
- *
- * AMD AGESA Basic Level Public APIs
- *
- * Contains basic Level Initialization routines.
- *
- * @xrefitem bom "File Content Label" "Release Content"
- * @e project: AGESA
- * @e sub-project: Common
- * @e \$Revision: 63425 $ @e \$Date: 2011-12-22 11:24:10 -0600 (Thu, 22 Dec 2011) $
- *
- */
-/*****************************************************************************
- *
- * Copyright (c) 2008 - 2012, Advanced Micro Devices, Inc.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * * Neither the name of Advanced Micro Devices, Inc. nor the names of
- * its contributors may be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL ADVANCED MICRO DEVICES, INC. BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- ******************************************************************************
- */
-
-
-/*----------------------------------------------------------------------------------------
- * M O D U L E S U S E D
- *----------------------------------------------------------------------------------------
- */
-#include "AGESA.h"
-#include "amdlib.h"
-#include "Ids.h"
-#include "AdvancedApi.h"
-#include "heapManager.h"
-#include "mm.h"
-#include "GnbInterface.h"
-#include "cpuRecovery.h"
-#include "cpuCacheInit.h"
-#include "Filecode.h"
-CODE_GROUP (G2_PEI)
-RDATA_GROUP (G2_PEI)
-
-#define FILECODE PROC_COMMON_AMDINITRECOVERY_FILECODE
-
-/*----------------------------------------------------------------------------------------
- * P R O T O T Y P E S O F L O C A L F U N C T I O N S
- *----------------------------------------------------------------------------------------
- */
-
-/*----------------------------------------------------------------------------------------
- * D E F I N I T I O N S A N D M A C R O S
- *----------------------------------------------------------------------------------------
- */
-
-/*---------------------------------------------------------------------------------------*/
-/**
- * Perform initialization services required at the Early Init POST time point.
- *
- * Execution Cache, HyperTransport, C1e, and AP Init advanced services are performed.
- *
- * @param[in, out] RecoveryParams The interface struct for Recovery services
- *
- * @return The most severe AGESA_STATUS returned by any called service.
- *
- */
-AGESA_STATUS
-AmdInitRecovery (
- IN OUT AMD_RECOVERY_PARAMS *RecoveryParams
- )
-{
- AGESA_STATUS AgesaStatus;
- AGESA_STATUS CalledAgesaStatus;
-
- AGESA_TESTPOINT (TpIfAmdInitRecoveryEntry, &RecoveryParams->StdHeader);
-
- ASSERT (RecoveryParams != NULL);
-
- AgesaStatus = AGESA_SUCCESS;
-
- // Setup ROM execution cache
- CalledAgesaStatus = AllocateExecutionCache (&RecoveryParams->StdHeader, &RecoveryParams->CacheRegion[0]);
- if (CalledAgesaStatus > AgesaStatus) {
- AgesaStatus = CalledAgesaStatus;
- }
-
- CalledAgesaStatus = AmdHtInitRecovery (&RecoveryParams->StdHeader);
- if (CalledAgesaStatus > AgesaStatus) {
- AgesaStatus = CalledAgesaStatus;
- }
-
- CalledAgesaStatus = AmdCpuRecovery ((AMD_CPU_RECOVERY_PARAMS *) &RecoveryParams->StdHeader);
- if (CalledAgesaStatus > AgesaStatus) {
- AgesaStatus = CalledAgesaStatus;
- }
-
- CalledAgesaStatus = AmdMemRecovery (RecoveryParams->MemConfig.MemData);
- if (CalledAgesaStatus > AgesaStatus) {
- AgesaStatus = CalledAgesaStatus;
- }
-
- CalledAgesaStatus = AmdGnbRecovery (&RecoveryParams->StdHeader);
- if (CalledAgesaStatus > AgesaStatus) {
- AgesaStatus = CalledAgesaStatus;
- }
-
- AGESA_TESTPOINT (TpIfAmdInitRecoveryExit, &RecoveryParams->StdHeader);
- return AgesaStatus;
-}
-
-/*---------------------------------------------------------------------------------------*/
-/**
- *
- * Initialize defaults and options for Amd Init Reset.
- *
- * @param[in] StdHeader AMD standard header config param.
- * @param[in] AmdRecoveryParamsPtr The Reset Init interface to initialize.
- *
- * @retval AGESA_SUCCESS Always Succeeds.
- */
-AGESA_STATUS
-AmdInitRecoveryInitializer (
- IN AMD_CONFIG_PARAMS *StdHeader,
- IN OUT AMD_RECOVERY_PARAMS *AmdRecoveryParamsPtr
- )
-{
- ALLOCATE_HEAP_PARAMS AllocHeapParams;
-
- ASSERT (StdHeader != NULL);
- ASSERT (AmdRecoveryParamsPtr != NULL);
-
- AmdRecoveryParamsPtr->StdHeader = *StdHeader;
-
- AllocHeapParams.RequestedBufferSize = sizeof (MEM_DATA_STRUCT);
- AllocHeapParams.BufferHandle = AMD_MEM_DATA_HANDLE;
- AllocHeapParams.Persist = HEAP_LOCAL_CACHE;
- if (HeapAllocateBuffer (&AllocHeapParams, &AmdRecoveryParamsPtr->StdHeader) == AGESA_SUCCESS) {
- AmdRecoveryParamsPtr->MemConfig.MemData = (MEM_DATA_STRUCT *) AllocHeapParams.BufferPtr;
- AmdRecoveryParamsPtr->MemConfig.MemData->ParameterListPtr = &(AmdRecoveryParamsPtr->MemConfig);
- LibAmdMemCopy ((VOID *) AmdRecoveryParamsPtr->MemConfig.MemData,
- (VOID *) AmdRecoveryParamsPtr,
- (UINTN) sizeof (AmdRecoveryParamsPtr->StdHeader),
- &AmdRecoveryParamsPtr->StdHeader
- );
- AmdMemInitDataStructDefRecovery (AmdRecoveryParamsPtr->MemConfig.MemData);
- return AGESA_SUCCESS;
- } else {
- return AGESA_ERROR;
- }
-}
diff --git a/src/vendorcode/amd/agesa/f15/Proc/Common/AmdLateRunApTask.c b/src/vendorcode/amd/agesa/f15/Proc/Common/AmdLateRunApTask.c
deleted file mode 100644
index b11fca2..0000000
--- a/src/vendorcode/amd/agesa/f15/Proc/Common/AmdLateRunApTask.c
+++ /dev/null
@@ -1,159 +0,0 @@
-/* $NoKeywords:$ */
-/**
- * @file
- *
- * AMD AGESA Basic Level Public APIs
- *
- * Contains basic Level Initialization routines.
- *
- * @xrefitem bom "File Content Label" "Release Content"
- * @e project: AGESA
- * @e sub-project: Interface
- * @e \$Revision: 63425 $ @e \$Date: 2011-12-22 11:24:10 -0600 (Thu, 22 Dec 2011) $
- *
- */
-/*****************************************************************************
- *
- * Copyright (c) 2008 - 2012, Advanced Micro Devices, Inc.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * * Neither the name of Advanced Micro Devices, Inc. nor the names of
- * its contributors may be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL ADVANCED MICRO DEVICES, INC. BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- ******************************************************************************
- */
-
-
-/*----------------------------------------------------------------------------------------
- * M O D U L E S U S E D
- *----------------------------------------------------------------------------------------
- */
-#include "AGESA.h"
-#include "Ids.h"
-#include "Options.h"
-#include "Filecode.h"
-#include "heapManager.h"
-#include "CreateStruct.h"
-CODE_GROUP (G3_DXE)
-RDATA_GROUP (G3_DXE)
-
-#define FILECODE PROC_COMMON_AMDLATERUNAPTASK_FILECODE
-/*----------------------------------------------------------------------------------------
- * D E F I N I T I O N S A N D M A C R O S
- *----------------------------------------------------------------------------------------
- */
-
-
-/*----------------------------------------------------------------------------------------
- * T Y P E D E F S A N D S T R U C T U R E S
- *----------------------------------------------------------------------------------------
- */
-
-
-/*----------------------------------------------------------------------------------------
- * P R O T O T Y P E S O F L O C A L F U N C T I O N S
- *----------------------------------------------------------------------------------------
- */
-
-
-/*----------------------------------------------------------------------------------------
- * E X P O R T E D F U N C T I O N S
- *----------------------------------------------------------------------------------------
- */
-extern CONST DISPATCH_TABLE ApDispatchTable[];
-
-/*---------------------------------------------------------------------------------------*/
-/**
- * Application Processor perform a function as directed by the BSC.
- *
- * This is needed for an AP task that must run after AGESA has relinquished control
- * of the APs to the IBV.
- *
- * @param[in] AmdApExeParams The interface struct for any required routine.
- *
- * @return The most severe AGESA_STATUS returned by any called service. Note
- * that this will be the return value passed back to the BSC as the
- * return value for the call out.
- *
- */
-AGESA_STATUS
-AmdLateRunApTask (
- IN AP_EXE_PARAMS *AmdApExeParams
- )
-{
- AGESA_STATUS CalledAgesaStatus;
- AGESA_STATUS ApLateTaskStatus;
- DISPATCH_TABLE *Entry;
-
- AGESA_TESTPOINT (TpIfAmdLateRunApTaskEntry, &AmdApExeParams->StdHeader);
-
- ASSERT (AmdApExeParams != NULL);
- ApLateTaskStatus = AGESA_SUCCESS;
- CalledAgesaStatus = AGESA_UNSUPPORTED;
-
- // Dispatch, if valid
- Entry = (DISPATCH_TABLE *) ApDispatchTable;
- while (Entry->FunctionId != 0) {
- if (AmdApExeParams->FunctionNumber == Entry->FunctionId) {
- CalledAgesaStatus = Entry->EntryPoint (AmdApExeParams);
- break;
- }
- Entry++;
- }
-
- if (CalledAgesaStatus > ApLateTaskStatus) {
- ApLateTaskStatus = CalledAgesaStatus;
- }
-
- AGESA_TESTPOINT (TpIfAmdLateRunApTaskExit, &AmdApExeParams->StdHeader);
- return ApLateTaskStatus;
-}
-
-/*---------------------------------------------------------------------------------------*/
-/**
- * Constructor for the AMD_LATE_RUN_AP_TASK function.
- *
- * This routine is responsible for setting default values for the
- * input parameters needed by the AMD_S3_SAVE entry point.
- *
- * @param[in] StdHeader The standard header.
- * @param[in,out] AmdApExeParams Required input parameters for the AMD_LATE_RUN_AP_TASK
- * entry point.
- *
- * @retval AGESA_SUCCESS Always Succeeds.
- *
- */
-AGESA_STATUS
-AmdLateRunApTaskInitializer (
- IN AMD_CONFIG_PARAMS *StdHeader,
- IN OUT AP_EXE_PARAMS *AmdApExeParams
- )
-{
- ASSERT (StdHeader != NULL);
- ASSERT (AmdApExeParams != NULL);
-
- AmdApExeParams->StdHeader = *StdHeader;
- AmdApExeParams->FunctionNumber = 0;
- AmdApExeParams->RelatedDataBlock = NULL;
- AmdApExeParams->RelatedBlockLength = 0;
- return AGESA_SUCCESS;
-}
-
diff --git a/src/vendorcode/amd/agesa/f15/Proc/Common/CommonInits.h b/src/vendorcode/amd/agesa/f15/Proc/Common/CommonInits.h
deleted file mode 100644
index 681bc4a..0000000
--- a/src/vendorcode/amd/agesa/f15/Proc/Common/CommonInits.h
+++ /dev/null
@@ -1,65 +0,0 @@
-/* $NoKeywords:$ */
-/**
- * @file
- *
- * Common initialization routines.
- *
- * Contains common initialization routines across AGESA entries of phases.
- *
- * @xrefitem bom "File Content Label" "Release Content"
- * @e project: AGESA
- * @e sub-project: Common
- * @e \$Revision: 63425 $ @e \$Date: 2011-12-22 11:24:10 -0600 (Thu, 22 Dec 2011) $
- *
- */
-/*
-*****************************************************************************
-*
- * Copyright (c) 2008 - 2012, Advanced Micro Devices, Inc.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * * Neither the name of Advanced Micro Devices, Inc. nor the names of
- * its contributors may be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL ADVANCED MICRO DEVICES, INC. BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-* ***************************************************************************
-*
-*/
-
-#ifndef _COMMON_INITS_H_
-#define _COMMON_INITS_H_
-
-/**
- * Common routine to initialize PLATFORM_CONFIGURATION.
- *
- * @param[in,out] PlatformConfig Platform profile/build option config structure
- * @param[in,out] StdHeader AMD standard header config param
- *
- * @retval AGESA_SUCCESS Always Succeeds.
- *
- */
-AGESA_STATUS
-CommonPlatformConfigInit (
- IN OUT PLATFORM_CONFIGURATION *PlatformConfig,
- IN OUT AMD_CONFIG_PARAMS *StdHeader
- );
-
-#endif // _COMMON_INITS_H_
-
diff --git a/src/vendorcode/amd/agesa/f15/Proc/Common/CommonPage.h b/src/vendorcode/amd/agesa/f15/Proc/Common/CommonPage.h
deleted file mode 100644
index 1dcc6da..0000000
--- a/src/vendorcode/amd/agesa/f15/Proc/Common/CommonPage.h
+++ /dev/null
@@ -1,116 +0,0 @@
-/* $NoKeywords:$ */
-/**
- * @file
- *
- * Create outline and references for Processor Common Component mainpage documentation.
- *
- * Design guides, maintenance guides, and general documentation, are
- * collected using this file onto the documentation mainpage.
- * This file contains doxygen comment blocks, only.
- *
- * @xrefitem bom "File Content Label" "Release Content"
- * @e project: AGESA
- * @e sub-project: Documentation
- * @e \$Revision: 63425 $ @e \$Date: 2011-12-22 11:24:10 -0600 (Thu, 22 Dec 2011) $
- *
- */
-/*
- ******************************************************************************
- *
- * Copyright (c) 2008 - 2012, Advanced Micro Devices, Inc.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * * Neither the name of Advanced Micro Devices, Inc. nor the names of
- * its contributors may be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL ADVANCED MICRO DEVICES, INC. BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- ******************************************************************************
- */
-
-/**
- * @page commonmain Processor Common Component Documentation
- *
- * Additional documentation for the Common component consists of
- *
- * - Maintenance Guides:
- * - @subpage amdconfigparamname "Naming Guidelines for type AMD_CONFIG_PARAMS"
- * - Design Guides:
- * - add here >>>
- *
- */
-
-/**
- * @page amdconfigparamname Naming Guidelines for type AMD_CONFIG_PARAMS
- * @par
- * These are the guidelines for naming objects of type AMD_CONFIG_PARAMS and AMD_CONFIG_PARAMS * in AGESA code.
- * <ul>
- *
- * <li>
- * Formal parameter names of type AMD_CONFIG_PARAMS and AMD_CONFIG_PARAMS * will always be named
- * StdHeader. This covers all function prototypes, function definitions, and method typedefs (a
- * typedef of a function prototype) in AGESA code. Examples:
- * @n @code
- * VOID
- * LibAmdPciFindNextCap (
- * IN OUT PCI_ADDR *Address,
- * IN AMD_CONFIG_PARAMS *StdHeader
- * )
- *
- * typedef VOID F_DO_TABLE_ENTRY (
- * IN TABLE_ENTRY_DATA *CurrentEntry,
- * IN PLATFORM_CONFIGURATION *PlatformConfig,
- * IN AMD_CONFIG_PARAMS *StdHeader
- * );
- *
- * @endcode
- *
- * <li>
- * Structure members of type AMD_CONFIG_PARAMS or AMD_CONFIG_PARAMS * will always be named StdHeader. Examples:
- * @n @code
- /// Example of struct member naming.
- * typedef struct {
- * IN OUT AMD_CONFIG_PARAMS StdHeader; ///< Standard Header
- * IN PLATFORM_CONFIGURATION PlatformConfig; ///< platform operational characteristics.
- * } AMD_CPU_RECOVERY_PARAMS;
- *
- * @endcode
- *
- * <li>
- * Routines which define local variables of type AMD_CONFIG_PARAMS or AMD_CONFIG_PARAMS * should
- * name the local variable as closely as practical to StdHeader, but otherwise freedom is allowed. Example:
- * @n @code
- * AMD_CONFIG_PARAMS *NewStdHeader;
- * [...]
- * NewStdHeader = (AMD_CONFIG_PARAMS *)AllocHeapParams.BufferPtr;
- * @endcode
- *
- * <li>
- * Arguments to routines with AMD_CONFIG_PARAMS or AMD_CONFIG_PARAMS * formal parameters are not
- * checked. Freedom is allowed in order to conform to these guidelines in a practical, readable
- * way. This includes typecast arguments. Examples:
- * @n @code
- * Status = GetEventLog (&LogEvent, (AMD_CONFIG_PARAMS *)Event);
- *
- * MemS3ExitSelfRefRegDA (NBPtr, &MemPtr->StdHeader);
- * @endcode
- *
- * </ul>
- *
- */
diff --git a/src/vendorcode/amd/agesa/f15/Proc/Common/CreateStruct.c b/src/vendorcode/amd/agesa/f15/Proc/Common/CreateStruct.c
deleted file mode 100644
index f99bd66..0000000
--- a/src/vendorcode/amd/agesa/f15/Proc/Common/CreateStruct.c
+++ /dev/null
@@ -1,313 +0,0 @@
-/* $NoKeywords:$ */
-/**
- * @file
- *
- * AMD AGESA Input Structure Creation
- *
- * Contains AGESA input structure creation support.
- *
- * @xrefitem bom "File Content Label" "Release Content"
- * @e project: AGESA
- * @e sub-project: Common
- * @e \$Revision: 63425 $ @e \$Date: 2011-12-22 11:24:10 -0600 (Thu, 22 Dec 2011) $
- *
- */
-/*
- ******************************************************************************
- *
- * Copyright (c) 2008 - 2012, Advanced Micro Devices, Inc.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * * Neither the name of Advanced Micro Devices, Inc. nor the names of
- * its contributors may be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL ADVANCED MICRO DEVICES, INC. BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- ******************************************************************************
- */
-
-/*----------------------------------------------------------------------------------------
- * M O D U L E S U S E D
- *----------------------------------------------------------------------------------------
- */
-#include "AGESA.h"
-#include "amdlib.h"
-#include "Ids.h"
-#include "GeneralServices.h"
-#include "heapManager.h"
-#include "CreateStruct.h"
-#include "cpuFamilyTranslation.h"
-#include "Filecode.h"
-CODE_GROUP (G1_PEICC)
-RDATA_GROUP (G1_PEICC)
-
-#define FILECODE PROC_COMMON_CREATESTRUCT_FILECODE
-/*----------------------------------------------------------------------------------------
- * D E F I N I T I O N S A N D M A C R O S
- *----------------------------------------------------------------------------------------
- */
-extern CONST FUNCTION_PARAMS_INFO FuncParamsInfo[];
-extern CONST UINTN InitializerCount;
-
-/*----------------------------------------------------------------------------------------
- * T Y P E D E F S A N D S T R U C T U R E S
- *----------------------------------------------------------------------------------------
- */
-
-/*----------------------------------------------------------------------------------------
- * P R O T O T Y P E S O F L O C A L F U N C T I O N S
- *----------------------------------------------------------------------------------------
- */
-
-/*----------------------------------------------------------------------------------------
- * E X P O R T E D F U N C T I O N S
- *----------------------------------------------------------------------------------------
- */
-extern BUILD_OPT_CFG UserOptions;
-
-/*---------------------------------------------------------------------------------------*/
-/**
- * Allocate and initialize Config headers and Service Interface structures.
- *
- * This function will be called for each AGESA public APIs.
- * This function will do the following:
- * -# Locate the AGESA API structure parameters initializer function information.
- * -# Find the size of the structure that gets passed to each public APIs as
- * the entry parameter. Allocate heap space using the size for PreMemHeap, callout for
- * memory allocation for PostMemDram, and just set the config and service interface
- * pointers for ByHost.
- * -# If the allocation is not ByHost, copy the AmdConfigParams into the newly created AmdConfigParams.
- * For ByHost, we're using the caller's existing config params.
- * -# Call the initializer function, and pass a reference to the Config params and to
- * the Service Interface struct. On return the constructor will have filled the
- * remaining structure with default values.
- * -# Fill the remaining info in the newly created structure on heap in AMD_CONFIG_PARAMS
- * area (i.e. Fill *newStructPtr with the pointer to the newly created structure)
- * -# Set the appropriate AGESA function number in the StdHeader member of the input
- * parameter structure.
- *
- * @param[in,out] InterfaceParams Pointer to structure containing the function call
- * whose parameter structure is to be created, the
- * allocation method, and a pointer to the newly
- * created structure.
- *
- * @retval AGESA_SUCCESS The interface struct is allocated and initialized.
- * @retval AGESA_UNSUPPORTED The Service is not supported.
- *
- */
-AGESA_STATUS
-AmdCreateStruct (
- IN OUT AMD_INTERFACE_PARAMS *InterfaceParams
- )
-{
- UINTN ServiceIndex;
- ALLOCATE_HEAP_PARAMS AllocHeapParams;
- AMD_CONFIG_PARAMS *NewlyCreatedConfig;
- VOID *NewlyCreatedServiceInterface;
- AGESA_STATUS AgesaStatus;
- AGESA_STATUS TempStatus;
- AGESA_STATUS IgnoredSts;
- CPU_SPECIFIC_SERVICES *FamilySpecificServices;
-
- AgesaStatus = AGESA_SUCCESS;
-
- ASSERT (InterfaceParams != NULL);
-
- switch (InterfaceParams->AgesaFunctionName) {
- case AMD_INIT_RESET:
- if (!IsBsp (&InterfaceParams->StdHeader, &IgnoredSts)) {
- // APs must transfer their system core number from the mailbox to
- // a local register while it is still valid.
- GetCpuServicesOfCurrentCore ((CONST CPU_SPECIFIC_SERVICES **)&FamilySpecificServices, &InterfaceParams->StdHeader);
- FamilySpecificServices->TransferApCoreNumber (FamilySpecificServices, &InterfaceParams->StdHeader);
- }
- InterfaceParams->StdHeader.HeapStatus = HEAP_DO_NOT_EXIST_YET;
- break;
- case AMD_INIT_EARLY:
- case AMD_INIT_RECOVERY:
- case AMD_INIT_RESUME:
- case AMD_INIT_POST:
- InterfaceParams->StdHeader.HeapStatus = HEAP_LOCAL_CACHE;
- break;
- case AMD_INIT_ENV:
- InterfaceParams->StdHeader.HeapStatus = HEAP_TEMP_MEM;
- break;
- case AMD_INIT_LATE:
- case AMD_INIT_MID:
- case AMD_S3_SAVE:
- case AMD_LATE_RUN_AP_TASK:
- InterfaceParams->StdHeader.HeapStatus = HEAP_SYSTEM_MEM;
- break;
- case AMD_S3LATE_RESTORE:
- InterfaceParams->StdHeader.HeapStatus = HEAP_S3_RESUME;
- break;
- default:
- ASSERT (FALSE);
- InterfaceParams->StdHeader.HeapStatus = HEAP_LOCAL_CACHE;
- break;
- }
-
- InterfaceParams->StdHeader.HeapBasePtr = HeapGetBaseAddress (&InterfaceParams->StdHeader);
-
- if (InterfaceParams->AgesaFunctionName == AMD_INIT_RESET) {
- AgesaStatus = HeapManagerInit (&InterfaceParams->StdHeader);
- }
-
- // Step 1
- for (ServiceIndex = 0; ServiceIndex < InitializerCount; ServiceIndex++) {
- if (FuncParamsInfo[ServiceIndex].AgesaFunctionName == InterfaceParams->AgesaFunctionName) {
- break;
- }
- }
- if (ServiceIndex >= InitializerCount) {
- // A call was made to AGESA with an invalid function number. This wrapper error may be due to the build target
- // not containing the desired entry point.
- return AGESA_UNSUPPORTED;
- }
-
- // Step 2
- LibAmdMemFill (&AllocHeapParams, 0, (UINTN) (sizeof (ALLOCATE_HEAP_PARAMS)), &InterfaceParams->StdHeader);
-
- if (InterfaceParams->AllocationMethod < ByHost) {
- // Allocate one buffer to contain the config params and the service struct.
- // The service struct begins immediately after the config params.
- AllocHeapParams.RequestedBufferSize = FuncParamsInfo[ServiceIndex].CreateStructSize + sizeof (AMD_CONFIG_PARAMS);
- AllocHeapParams.BufferHandle = FuncParamsInfo[ServiceIndex].BufferHandle;
- AllocHeapParams.Persist = HEAP_SYSTEM_MEM;
- TempStatus = HeapAllocateBuffer (&AllocHeapParams, &(InterfaceParams->StdHeader));
- AgesaStatus = ((AgesaStatus > TempStatus) ? AgesaStatus : TempStatus);
- NewlyCreatedConfig = (AMD_CONFIG_PARAMS *)AllocHeapParams.BufferPtr;
- NewlyCreatedConfig++;
- NewlyCreatedServiceInterface = NewlyCreatedConfig;
- NewlyCreatedConfig = (AMD_CONFIG_PARAMS *)AllocHeapParams.BufferPtr;
- } else {
- // The caller (example, agesa basic interface implementation) already has a buffer to use.
- NewlyCreatedConfig = (AMD_CONFIG_PARAMS *)InterfaceParams;
- NewlyCreatedServiceInterface = InterfaceParams->NewStructPtr;
- ASSERT (InterfaceParams->NewStructSize >= FuncParamsInfo[ServiceIndex].CreateStructSize);
- }
- ASSERT (NewlyCreatedConfig != NULL);
- ASSERT (NewlyCreatedServiceInterface != NULL);
-
- // Step 3
- if (InterfaceParams->AllocationMethod != ByHost) {
- *NewlyCreatedConfig = InterfaceParams->StdHeader;
- }
-
- // Step 4
- TempStatus = FuncParamsInfo[ServiceIndex].AgesaFunction (NewlyCreatedConfig, NewlyCreatedServiceInterface);
- AgesaStatus = ((AgesaStatus > TempStatus) ? AgesaStatus : TempStatus);
-
- // Step 5
- if (InterfaceParams->AllocationMethod != ByHost) {
- InterfaceParams->NewStructPtr = (VOID *) NewlyCreatedServiceInterface;
- InterfaceParams->NewStructSize = FuncParamsInfo[ServiceIndex].CreateStructSize;
- }
-
- // Step 6
- ((AMD_CONFIG_PARAMS *) InterfaceParams->NewStructPtr)->Func = InterfaceParams->AgesaFunctionName;
- return AgesaStatus;
-}
-
-
-/*---------------------------------------------------------------------------------------*/
-/**
- * Clears storage space from allocation for a parameter block of an
- * AGESA software call entry.
- *
- * @param[in,out] InterfaceParams Pointer to structure containing the function call
- * whose parameter structure is to be deallocated.
- *
- * @retval AGESA_STATUS
- *
- *---------------------------------------------------------------------------------------
- **/
-AGESA_STATUS
-AmdReleaseStruct (
- IN OUT AMD_INTERFACE_PARAMS *InterfaceParams
- )
-{
- UINT8 i;
- UINT8 *BufferPtr;
- VOID *ServicePtr;
- AGESA_STATUS AgesaStatus;
- AGESA_STATUS TempStatus;
- LOCATE_HEAP_PTR LocHeap;
-
- AgesaStatus = AGESA_SUCCESS;
-
- switch (InterfaceParams->AgesaFunctionName) {
- case AMD_INIT_RESET:
- case AMD_INIT_EARLY:
- case AMD_INIT_RECOVERY:
- case AMD_INIT_RESUME:
- InterfaceParams->StdHeader.HeapStatus = HEAP_LOCAL_CACHE;
- break;
- case AMD_INIT_POST:
- InterfaceParams->StdHeader.HeapStatus = HEAP_TEMP_MEM;
- break;
- case AMD_INIT_ENV:
- case AMD_INIT_LATE:
- case AMD_INIT_MID:
- case AMD_S3_SAVE:
- case AMD_LATE_RUN_AP_TASK:
- InterfaceParams->StdHeader.HeapStatus = HEAP_SYSTEM_MEM;
- break;
- case AMD_S3LATE_RESTORE:
- InterfaceParams->StdHeader.HeapStatus = HEAP_S3_RESUME;
- break;
- default:
- ASSERT (FALSE);
- InterfaceParams->StdHeader.HeapStatus = HEAP_LOCAL_CACHE;
- break;
- }
-
- InterfaceParams->StdHeader.HeapBasePtr = HeapGetBaseAddress (&InterfaceParams->StdHeader);
-
-// Step 1
- for (i = 0; i < InitializerCount; i++) {
- if (FuncParamsInfo[i].AgesaFunctionName == InterfaceParams->AgesaFunctionName) {
- break;
- }
- }
- if (i >= InitializerCount) {
- return AGESA_BOUNDS_CHK;
- }
-
- // Step 2
- if (InterfaceParams->AllocationMethod < ByHost) {
- LocHeap.BufferHandle = FuncParamsInfo[i].BufferHandle;
- if (HeapLocateBuffer (&LocHeap, &(InterfaceParams->StdHeader)) == AGESA_SUCCESS) {
- BufferPtr = (UINT8 *) LocHeap.BufferPtr;
- ServicePtr = &BufferPtr[sizeof (AMD_CONFIG_PARAMS)];
- TempStatus = FuncParamsInfo[i].AgesaDestructor (&(InterfaceParams->StdHeader), ServicePtr);
- AgesaStatus = ((AgesaStatus > TempStatus) ? AgesaStatus : TempStatus);
- }
- }
-
- // Step 3
- if (InterfaceParams->AllocationMethod < ByHost) {
- TempStatus = HeapDeallocateBuffer (FuncParamsInfo[i].BufferHandle, &(InterfaceParams->StdHeader));
- AgesaStatus = ((AgesaStatus > TempStatus) ? AgesaStatus : TempStatus);
- } else {
- // Unless we define service specific destructors, nothing to do for ByHost.
- return AGESA_SUCCESS;
- }
- return AgesaStatus;
-}
diff --git a/src/vendorcode/amd/agesa/f15/Proc/Common/CreateStruct.h b/src/vendorcode/amd/agesa/f15/Proc/Common/CreateStruct.h
deleted file mode 100644
index 66a7bbf..0000000
--- a/src/vendorcode/amd/agesa/f15/Proc/Common/CreateStruct.h
+++ /dev/null
@@ -1,195 +0,0 @@
-/* $NoKeywords:$ */
-/**
- * @file
- *
- * AMD AGESA Input Structure Creation
- *
- * Contains AGESA input creation structures.
- *
- * @xrefitem bom "File Content Label" "Release Content"
- * @e project: AGESA
- * @e sub-project: Common
- * @e \$Revision: 63425 $ @e \$Date: 2011-12-22 11:24:10 -0600 (Thu, 22 Dec 2011) $
- *
- */
-/*
- ******************************************************************************
- *
- * Copyright (c) 2008 - 2012, Advanced Micro Devices, Inc.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * * Neither the name of Advanced Micro Devices, Inc. nor the names of
- * its contributors may be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL ADVANCED MICRO DEVICES, INC. BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- ******************************************************************************
- */
-
-#ifndef _CREATE_STRUCT_H_
-#define _CREATE_STRUCT_H_
-
-/**
- * A constructor method.
- *
- * Sets inputs to valid, basic level, defaults for the specific service instance.
- * Constructors should avoid using the header, since these routines should not
- * do operations which may fail or require status back to the user. The constructor
- * should always SUCCEED.
- *
- * @param[in] StdHeader Opaque handle to standard config header
- * @param[in] ServiceInterface Service Interface structure to initialize.
- *
- * @retval AGESA_SUCCESS Constructors are not allowed to fail
-*/
-typedef AGESA_STATUS
-F_AGESA_FUNCTION (
- IN AMD_CONFIG_PARAMS *StdHeader,
- IN VOID *ServiceInterface
- );
-
-/// Reference to a Method.
-typedef F_AGESA_FUNCTION *PF_AGESA_FUNCTION;
-
-/**
- * A Destructor method.
- *
- * Sets inputs to valid, basic level, defaults for the specific service instance.
- * The constructor should always SUCCEED.
- *
- * @param[in] StdHeader Opaque handle to standard config header.
- * @param[in] ServiceInterface Service Interface structure to initialize.
- *
- * @retval AGESA_SUCCESS Constructors are not allowed to fail
-*/
-typedef AGESA_STATUS
-F_AGESA_DESTRUCTOR (
- IN AMD_CONFIG_PARAMS *StdHeader,
- IN VOID *ServiceInterface
- );
-
-/// Reference to a Method.
-typedef F_AGESA_DESTRUCTOR *PF_AGESA_DESTRUCTOR;
-
-/**
- * Provide the information needed to invoke each service constructor.
- */
-typedef struct {
- IN AGESA_STRUCT_NAME AgesaFunctionName; ///< Identifies the service
- IN UINT16 CreateStructSize; ///< The service's input struct size.
- /// Do NOT include a config params header!
- OUT PF_AGESA_FUNCTION AgesaFunction; ///< The constructor function
- OUT PF_AGESA_DESTRUCTOR AgesaDestructor; ///< The destructor function.
- IN AGESA_BUFFER_HANDLE BufferHandle; ///< The buffer handle id for the service.
-} FUNCTION_PARAMS_INFO;
-
-/**
- * All available services have their constructor info here.
- */
-AGESA_STATUS
-AmdInitResetConstructor (
- IN AMD_CONFIG_PARAMS *StdHeader,
- IN AMD_RESET_PARAMS *AmdResetParams
- );
-
-AGESA_STATUS
-AmdInitRecoveryInitializer (
- IN AMD_CONFIG_PARAMS *StdHeader,
- IN OUT AMD_RECOVERY_PARAMS *AmdRecoveryParamsPtr
- );
-
-AGESA_STATUS
-AmdInitEarlyInitializer (
- IN AMD_CONFIG_PARAMS *StdHeader,
- IN OUT AMD_EARLY_PARAMS *EarlyParams
- );
-
-AGESA_STATUS
-AmdInitPostInitializer (
- IN AMD_CONFIG_PARAMS *StdHeader,
- IN OUT AMD_POST_PARAMS *PostParamsPtr
- );
-
-AGESA_STATUS
-AmdInitPostDestructor (
- IN AMD_CONFIG_PARAMS *StdHeader,
- IN AMD_POST_PARAMS *PostParamsPtr
- );
-
-AGESA_STATUS
-AmdInitEnvInitializer (
- IN AMD_CONFIG_PARAMS *StdHeader,
- IN OUT AMD_ENV_PARAMS *EnvParamsPtr
- );
-
-AGESA_STATUS
-AmdInitMidInitializer (
- IN AMD_CONFIG_PARAMS *StdHeader,
- IN OUT AMD_MID_PARAMS *MidParamsPtr
- );
-
-AGESA_STATUS
-AmdInitLateInitializer (
- IN AMD_CONFIG_PARAMS *StdHeader,
- IN OUT AMD_LATE_PARAMS *LateParamsPtr
- );
-
-AGESA_STATUS
-AmdInitLateDestructor (
- IN AMD_CONFIG_PARAMS *StdHeader,
- IN AMD_LATE_PARAMS *LateParamsPtr
- );
-
-AGESA_STATUS
-AmdInitResumeInitializer (
- IN AMD_CONFIG_PARAMS *StdHeader,
- IN OUT AMD_RESUME_PARAMS *ResumeParams
- );
-
-AGESA_STATUS
-AmdInitResumeDestructor (
- IN AMD_CONFIG_PARAMS *StdHeader,
- IN OUT AMD_RESUME_PARAMS *ResumeParams
- );
-
-AGESA_STATUS
-AmdS3SaveInitializer (
- IN OUT AMD_CONFIG_PARAMS *StdHeader,
- IN OUT AMD_S3SAVE_PARAMS *S3SaveParams
- );
-
-AGESA_STATUS
-AmdS3SaveDestructor (
- IN AMD_CONFIG_PARAMS *StdHeader,
- IN OUT AMD_S3SAVE_PARAMS *S3SaveParams
- );
-
-AGESA_STATUS
-AmdS3LateRestoreInitializer (
- IN AMD_CONFIG_PARAMS *StdHeader,
- IN OUT AMD_S3LATE_PARAMS *S3LateParams
- );
-
-AGESA_STATUS
-AmdLateRunApTaskInitializer (
- IN AMD_CONFIG_PARAMS *StdHeader,
- IN OUT AP_EXE_PARAMS *AmdApExeParams
- );
-#endif // _CREATE_STRUCT_H_
-
diff --git a/src/vendorcode/amd/agesa/f15tn/Makefile.inc b/src/vendorcode/amd/agesa/f15tn/Makefile.inc
index 0de46b0..c4a7eeb 100644
--- a/src/vendorcode/amd/agesa/f15tn/Makefile.inc
+++ b/src/vendorcode/amd/agesa/f15tn/Makefile.inc
@@ -36,6 +36,7 @@ AGESA_INC += -I$(AGESA_ROOT)/../common
AGESA_INC += -I$(AGESA_ROOT)/Include
AGESA_INC += -I$(AGESA_ROOT)/Lib
AGESA_INC += -I$(AGESA_ROOT)/Legacy
+AGESA_INC += -I$(AGESA_ROOT)/../common/Proc/Common
AGESA_INC += -I$(AGESA_ROOT)/Proc/Common
AGESA_INC += -I$(AGESA_ROOT)/Proc/HT
AGESA_INC += -I$(AGESA_ROOT)/Proc/CPU
@@ -169,12 +170,12 @@ libagesa-y += Proc/Common/AmdInitMid.c
libagesa-y += Proc/Common/AmdInitPost.c
libagesa-y += Proc/Common/AmdInitReset.c
libagesa-y += Proc/Common/AmdInitResume.c
-libagesa-y += Proc/Common/AmdLateRunApTask.c
+libagesa-y += ../common/Proc/Common/AmdLateRunApTask.c
libagesa-y += Proc/Common/AmdS3LateRestore.c
libagesa-y += Proc/Common/AmdS3Save.c
libagesa-y += Proc/Common/CommonInits.c
libagesa-y += Proc/Common/CommonReturns.c
-libagesa-y += Proc/Common/CreateStruct.c
+libagesa-y += ../common/Proc/Common/CreateStruct.c
libagesa-y += Proc/Common/S3RestoreState.c
libagesa-y += Proc/Common/S3SaveState.c
libagesa-y += Proc/GNB/Common/GnbLibFeatures.c
diff --git a/src/vendorcode/amd/agesa/f15tn/Proc/Common/AmdFch.h b/src/vendorcode/amd/agesa/f15tn/Proc/Common/AmdFch.h
deleted file mode 100644
index afe565b..0000000
--- a/src/vendorcode/amd/agesa/f15tn/Proc/Common/AmdFch.h
+++ /dev/null
@@ -1,65 +0,0 @@
-/* $NoKeywords:$ */
-/**
- * @file
- *
- * AMD FCH Component
- *
- *
- *
- * @xrefitem bom "File Content Label" "Release Content"
- * @e project: AGESA
- * @e sub-project: FCH
- * @e \$Revision: 63425 $ @e \$Date: 2011-12-22 11:24:10 -0600 (Thu, 22 Dec 2011) $
- *
- */
-/*
-*****************************************************************************
-*
- * Copyright (c) 2008 - 2012, Advanced Micro Devices, Inc.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * * Neither the name of Advanced Micro Devices, Inc. nor the names of
- * its contributors may be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL ADVANCED MICRO DEVICES, INC. BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-* ***************************************************************************
-*
-*/
-
-#ifndef _AMD_FCH_H_
-#define _AMD_FCH_H_
-
-typedef AGESA_STATUS FCH_INIT (IN VOID *DataPtr);
-typedef VOID FCH_TASK_ENTRY (IN VOID *FchCfg);
-
-
-/// FCH API build options
-typedef struct {
- FCH_INIT *InitReset; ///< InitReset
- FCH_INIT *InitResetConstructor; ///< InitResetConstructor
- FCH_INIT *InitEnv; ///< InitEnv
- FCH_INIT *InitEnvConstructor; ///< InitEnvConstructor
- FCH_INIT *InitMid; ///< InitMid
- FCH_INIT *InitMidConstructor; ///< InitMidConstructor
- FCH_INIT *InitLate; ///< InitLate
- FCH_INIT *InitLateConstructor; ///< InitLateConstructor
-} BLDOPT_FCH_FUNCTION;
-
-#endif
diff --git a/src/vendorcode/amd/agesa/f15tn/Proc/Common/AmdInitRecovery.c b/src/vendorcode/amd/agesa/f15tn/Proc/Common/AmdInitRecovery.c
deleted file mode 100644
index ac4c08d..0000000
--- a/src/vendorcode/amd/agesa/f15tn/Proc/Common/AmdInitRecovery.c
+++ /dev/null
@@ -1,168 +0,0 @@
-/* $NoKeywords:$ */
-/**
- * @file
- *
- * AMD AGESA Basic Level Public APIs
- *
- * Contains basic Level Initialization routines.
- *
- * @xrefitem bom "File Content Label" "Release Content"
- * @e project: AGESA
- * @e sub-project: Common
- * @e \$Revision: 63425 $ @e \$Date: 2011-12-22 11:24:10 -0600 (Thu, 22 Dec 2011) $
- *
- */
-/*****************************************************************************
- *
- * Copyright (c) 2008 - 2012, Advanced Micro Devices, Inc.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * * Neither the name of Advanced Micro Devices, Inc. nor the names of
- * its contributors may be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL ADVANCED MICRO DEVICES, INC. BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- ******************************************************************************
- */
-
-
-/*----------------------------------------------------------------------------------------
- * M O D U L E S U S E D
- *----------------------------------------------------------------------------------------
- */
-#include "AGESA.h"
-#include "amdlib.h"
-#include "Ids.h"
-#include "AdvancedApi.h"
-#include "heapManager.h"
-#include "mm.h"
-#include "GnbInterface.h"
-#include "cpuRecovery.h"
-#include "cpuCacheInit.h"
-#include "Filecode.h"
-CODE_GROUP (G2_PEI)
-RDATA_GROUP (G2_PEI)
-
-#define FILECODE PROC_COMMON_AMDINITRECOVERY_FILECODE
-
-/*----------------------------------------------------------------------------------------
- * P R O T O T Y P E S O F L O C A L F U N C T I O N S
- *----------------------------------------------------------------------------------------
- */
-
-/*----------------------------------------------------------------------------------------
- * D E F I N I T I O N S A N D M A C R O S
- *----------------------------------------------------------------------------------------
- */
-
-/*---------------------------------------------------------------------------------------*/
-/**
- * Perform initialization services required at the Early Init POST time point.
- *
- * Execution Cache, HyperTransport, C1e, and AP Init advanced services are performed.
- *
- * @param[in, out] RecoveryParams The interface struct for Recovery services
- *
- * @return The most severe AGESA_STATUS returned by any called service.
- *
- */
-AGESA_STATUS
-AmdInitRecovery (
- IN OUT AMD_RECOVERY_PARAMS *RecoveryParams
- )
-{
- AGESA_STATUS AgesaStatus;
- AGESA_STATUS CalledAgesaStatus;
-
- AGESA_TESTPOINT (TpIfAmdInitRecoveryEntry, &RecoveryParams->StdHeader);
-
- ASSERT (RecoveryParams != NULL);
-
- AgesaStatus = AGESA_SUCCESS;
-
- // Setup ROM execution cache
- CalledAgesaStatus = AllocateExecutionCache (&RecoveryParams->StdHeader, &RecoveryParams->CacheRegion[0]);
- if (CalledAgesaStatus > AgesaStatus) {
- AgesaStatus = CalledAgesaStatus;
- }
-
- CalledAgesaStatus = AmdHtInitRecovery (&RecoveryParams->StdHeader);
- if (CalledAgesaStatus > AgesaStatus) {
- AgesaStatus = CalledAgesaStatus;
- }
-
- CalledAgesaStatus = AmdCpuRecovery ((AMD_CPU_RECOVERY_PARAMS *) &RecoveryParams->StdHeader);
- if (CalledAgesaStatus > AgesaStatus) {
- AgesaStatus = CalledAgesaStatus;
- }
-
- CalledAgesaStatus = AmdMemRecovery (RecoveryParams->MemConfig.MemData);
- if (CalledAgesaStatus > AgesaStatus) {
- AgesaStatus = CalledAgesaStatus;
- }
-
- CalledAgesaStatus = AmdGnbRecovery (&RecoveryParams->StdHeader);
- if (CalledAgesaStatus > AgesaStatus) {
- AgesaStatus = CalledAgesaStatus;
- }
-
- AGESA_TESTPOINT (TpIfAmdInitRecoveryExit, &RecoveryParams->StdHeader);
- return AgesaStatus;
-}
-
-/*---------------------------------------------------------------------------------------*/
-/**
- *
- * Initialize defaults and options for Amd Init Reset.
- *
- * @param[in] StdHeader AMD standard header config param.
- * @param[in] AmdRecoveryParamsPtr The Reset Init interface to initialize.
- *
- * @retval AGESA_SUCCESS Always Succeeds.
- */
-AGESA_STATUS
-AmdInitRecoveryInitializer (
- IN AMD_CONFIG_PARAMS *StdHeader,
- IN OUT AMD_RECOVERY_PARAMS *AmdRecoveryParamsPtr
- )
-{
- ALLOCATE_HEAP_PARAMS AllocHeapParams;
-
- ASSERT (StdHeader != NULL);
- ASSERT (AmdRecoveryParamsPtr != NULL);
-
- AmdRecoveryParamsPtr->StdHeader = *StdHeader;
-
- AllocHeapParams.RequestedBufferSize = sizeof (MEM_DATA_STRUCT);
- AllocHeapParams.BufferHandle = AMD_MEM_DATA_HANDLE;
- AllocHeapParams.Persist = HEAP_LOCAL_CACHE;
- if (HeapAllocateBuffer (&AllocHeapParams, &AmdRecoveryParamsPtr->StdHeader) == AGESA_SUCCESS) {
- AmdRecoveryParamsPtr->MemConfig.MemData = (MEM_DATA_STRUCT *) AllocHeapParams.BufferPtr;
- AmdRecoveryParamsPtr->MemConfig.MemData->ParameterListPtr = &(AmdRecoveryParamsPtr->MemConfig);
- LibAmdMemCopy ((VOID *) AmdRecoveryParamsPtr->MemConfig.MemData,
- (VOID *) AmdRecoveryParamsPtr,
- (UINTN) sizeof (AmdRecoveryParamsPtr->StdHeader),
- &AmdRecoveryParamsPtr->StdHeader
- );
- AmdMemInitDataStructDefRecovery (AmdRecoveryParamsPtr->MemConfig.MemData);
- return AGESA_SUCCESS;
- } else {
- return AGESA_ERROR;
- }
-}
diff --git a/src/vendorcode/amd/agesa/f15tn/Proc/Common/AmdLateRunApTask.c b/src/vendorcode/amd/agesa/f15tn/Proc/Common/AmdLateRunApTask.c
deleted file mode 100644
index b11fca2..0000000
--- a/src/vendorcode/amd/agesa/f15tn/Proc/Common/AmdLateRunApTask.c
+++ /dev/null
@@ -1,159 +0,0 @@
-/* $NoKeywords:$ */
-/**
- * @file
- *
- * AMD AGESA Basic Level Public APIs
- *
- * Contains basic Level Initialization routines.
- *
- * @xrefitem bom "File Content Label" "Release Content"
- * @e project: AGESA
- * @e sub-project: Interface
- * @e \$Revision: 63425 $ @e \$Date: 2011-12-22 11:24:10 -0600 (Thu, 22 Dec 2011) $
- *
- */
-/*****************************************************************************
- *
- * Copyright (c) 2008 - 2012, Advanced Micro Devices, Inc.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * * Neither the name of Advanced Micro Devices, Inc. nor the names of
- * its contributors may be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL ADVANCED MICRO DEVICES, INC. BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- ******************************************************************************
- */
-
-
-/*----------------------------------------------------------------------------------------
- * M O D U L E S U S E D
- *----------------------------------------------------------------------------------------
- */
-#include "AGESA.h"
-#include "Ids.h"
-#include "Options.h"
-#include "Filecode.h"
-#include "heapManager.h"
-#include "CreateStruct.h"
-CODE_GROUP (G3_DXE)
-RDATA_GROUP (G3_DXE)
-
-#define FILECODE PROC_COMMON_AMDLATERUNAPTASK_FILECODE
-/*----------------------------------------------------------------------------------------
- * D E F I N I T I O N S A N D M A C R O S
- *----------------------------------------------------------------------------------------
- */
-
-
-/*----------------------------------------------------------------------------------------
- * T Y P E D E F S A N D S T R U C T U R E S
- *----------------------------------------------------------------------------------------
- */
-
-
-/*----------------------------------------------------------------------------------------
- * P R O T O T Y P E S O F L O C A L F U N C T I O N S
- *----------------------------------------------------------------------------------------
- */
-
-
-/*----------------------------------------------------------------------------------------
- * E X P O R T E D F U N C T I O N S
- *----------------------------------------------------------------------------------------
- */
-extern CONST DISPATCH_TABLE ApDispatchTable[];
-
-/*---------------------------------------------------------------------------------------*/
-/**
- * Application Processor perform a function as directed by the BSC.
- *
- * This is needed for an AP task that must run after AGESA has relinquished control
- * of the APs to the IBV.
- *
- * @param[in] AmdApExeParams The interface struct for any required routine.
- *
- * @return The most severe AGESA_STATUS returned by any called service. Note
- * that this will be the return value passed back to the BSC as the
- * return value for the call out.
- *
- */
-AGESA_STATUS
-AmdLateRunApTask (
- IN AP_EXE_PARAMS *AmdApExeParams
- )
-{
- AGESA_STATUS CalledAgesaStatus;
- AGESA_STATUS ApLateTaskStatus;
- DISPATCH_TABLE *Entry;
-
- AGESA_TESTPOINT (TpIfAmdLateRunApTaskEntry, &AmdApExeParams->StdHeader);
-
- ASSERT (AmdApExeParams != NULL);
- ApLateTaskStatus = AGESA_SUCCESS;
- CalledAgesaStatus = AGESA_UNSUPPORTED;
-
- // Dispatch, if valid
- Entry = (DISPATCH_TABLE *) ApDispatchTable;
- while (Entry->FunctionId != 0) {
- if (AmdApExeParams->FunctionNumber == Entry->FunctionId) {
- CalledAgesaStatus = Entry->EntryPoint (AmdApExeParams);
- break;
- }
- Entry++;
- }
-
- if (CalledAgesaStatus > ApLateTaskStatus) {
- ApLateTaskStatus = CalledAgesaStatus;
- }
-
- AGESA_TESTPOINT (TpIfAmdLateRunApTaskExit, &AmdApExeParams->StdHeader);
- return ApLateTaskStatus;
-}
-
-/*---------------------------------------------------------------------------------------*/
-/**
- * Constructor for the AMD_LATE_RUN_AP_TASK function.
- *
- * This routine is responsible for setting default values for the
- * input parameters needed by the AMD_S3_SAVE entry point.
- *
- * @param[in] StdHeader The standard header.
- * @param[in,out] AmdApExeParams Required input parameters for the AMD_LATE_RUN_AP_TASK
- * entry point.
- *
- * @retval AGESA_SUCCESS Always Succeeds.
- *
- */
-AGESA_STATUS
-AmdLateRunApTaskInitializer (
- IN AMD_CONFIG_PARAMS *StdHeader,
- IN OUT AP_EXE_PARAMS *AmdApExeParams
- )
-{
- ASSERT (StdHeader != NULL);
- ASSERT (AmdApExeParams != NULL);
-
- AmdApExeParams->StdHeader = *StdHeader;
- AmdApExeParams->FunctionNumber = 0;
- AmdApExeParams->RelatedDataBlock = NULL;
- AmdApExeParams->RelatedBlockLength = 0;
- return AGESA_SUCCESS;
-}
-
diff --git a/src/vendorcode/amd/agesa/f15tn/Proc/Common/CommonInits.h b/src/vendorcode/amd/agesa/f15tn/Proc/Common/CommonInits.h
deleted file mode 100644
index 681bc4a..0000000
--- a/src/vendorcode/amd/agesa/f15tn/Proc/Common/CommonInits.h
+++ /dev/null
@@ -1,65 +0,0 @@
-/* $NoKeywords:$ */
-/**
- * @file
- *
- * Common initialization routines.
- *
- * Contains common initialization routines across AGESA entries of phases.
- *
- * @xrefitem bom "File Content Label" "Release Content"
- * @e project: AGESA
- * @e sub-project: Common
- * @e \$Revision: 63425 $ @e \$Date: 2011-12-22 11:24:10 -0600 (Thu, 22 Dec 2011) $
- *
- */
-/*
-*****************************************************************************
-*
- * Copyright (c) 2008 - 2012, Advanced Micro Devices, Inc.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * * Neither the name of Advanced Micro Devices, Inc. nor the names of
- * its contributors may be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL ADVANCED MICRO DEVICES, INC. BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-* ***************************************************************************
-*
-*/
-
-#ifndef _COMMON_INITS_H_
-#define _COMMON_INITS_H_
-
-/**
- * Common routine to initialize PLATFORM_CONFIGURATION.
- *
- * @param[in,out] PlatformConfig Platform profile/build option config structure
- * @param[in,out] StdHeader AMD standard header config param
- *
- * @retval AGESA_SUCCESS Always Succeeds.
- *
- */
-AGESA_STATUS
-CommonPlatformConfigInit (
- IN OUT PLATFORM_CONFIGURATION *PlatformConfig,
- IN OUT AMD_CONFIG_PARAMS *StdHeader
- );
-
-#endif // _COMMON_INITS_H_
-
diff --git a/src/vendorcode/amd/agesa/f15tn/Proc/Common/CommonPage.h b/src/vendorcode/amd/agesa/f15tn/Proc/Common/CommonPage.h
deleted file mode 100644
index 1dcc6da..0000000
--- a/src/vendorcode/amd/agesa/f15tn/Proc/Common/CommonPage.h
+++ /dev/null
@@ -1,116 +0,0 @@
-/* $NoKeywords:$ */
-/**
- * @file
- *
- * Create outline and references for Processor Common Component mainpage documentation.
- *
- * Design guides, maintenance guides, and general documentation, are
- * collected using this file onto the documentation mainpage.
- * This file contains doxygen comment blocks, only.
- *
- * @xrefitem bom "File Content Label" "Release Content"
- * @e project: AGESA
- * @e sub-project: Documentation
- * @e \$Revision: 63425 $ @e \$Date: 2011-12-22 11:24:10 -0600 (Thu, 22 Dec 2011) $
- *
- */
-/*
- ******************************************************************************
- *
- * Copyright (c) 2008 - 2012, Advanced Micro Devices, Inc.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * * Neither the name of Advanced Micro Devices, Inc. nor the names of
- * its contributors may be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL ADVANCED MICRO DEVICES, INC. BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- ******************************************************************************
- */
-
-/**
- * @page commonmain Processor Common Component Documentation
- *
- * Additional documentation for the Common component consists of
- *
- * - Maintenance Guides:
- * - @subpage amdconfigparamname "Naming Guidelines for type AMD_CONFIG_PARAMS"
- * - Design Guides:
- * - add here >>>
- *
- */
-
-/**
- * @page amdconfigparamname Naming Guidelines for type AMD_CONFIG_PARAMS
- * @par
- * These are the guidelines for naming objects of type AMD_CONFIG_PARAMS and AMD_CONFIG_PARAMS * in AGESA code.
- * <ul>
- *
- * <li>
- * Formal parameter names of type AMD_CONFIG_PARAMS and AMD_CONFIG_PARAMS * will always be named
- * StdHeader. This covers all function prototypes, function definitions, and method typedefs (a
- * typedef of a function prototype) in AGESA code. Examples:
- * @n @code
- * VOID
- * LibAmdPciFindNextCap (
- * IN OUT PCI_ADDR *Address,
- * IN AMD_CONFIG_PARAMS *StdHeader
- * )
- *
- * typedef VOID F_DO_TABLE_ENTRY (
- * IN TABLE_ENTRY_DATA *CurrentEntry,
- * IN PLATFORM_CONFIGURATION *PlatformConfig,
- * IN AMD_CONFIG_PARAMS *StdHeader
- * );
- *
- * @endcode
- *
- * <li>
- * Structure members of type AMD_CONFIG_PARAMS or AMD_CONFIG_PARAMS * will always be named StdHeader. Examples:
- * @n @code
- /// Example of struct member naming.
- * typedef struct {
- * IN OUT AMD_CONFIG_PARAMS StdHeader; ///< Standard Header
- * IN PLATFORM_CONFIGURATION PlatformConfig; ///< platform operational characteristics.
- * } AMD_CPU_RECOVERY_PARAMS;
- *
- * @endcode
- *
- * <li>
- * Routines which define local variables of type AMD_CONFIG_PARAMS or AMD_CONFIG_PARAMS * should
- * name the local variable as closely as practical to StdHeader, but otherwise freedom is allowed. Example:
- * @n @code
- * AMD_CONFIG_PARAMS *NewStdHeader;
- * [...]
- * NewStdHeader = (AMD_CONFIG_PARAMS *)AllocHeapParams.BufferPtr;
- * @endcode
- *
- * <li>
- * Arguments to routines with AMD_CONFIG_PARAMS or AMD_CONFIG_PARAMS * formal parameters are not
- * checked. Freedom is allowed in order to conform to these guidelines in a practical, readable
- * way. This includes typecast arguments. Examples:
- * @n @code
- * Status = GetEventLog (&LogEvent, (AMD_CONFIG_PARAMS *)Event);
- *
- * MemS3ExitSelfRefRegDA (NBPtr, &MemPtr->StdHeader);
- * @endcode
- *
- * </ul>
- *
- */
diff --git a/src/vendorcode/amd/agesa/f15tn/Proc/Common/CreateStruct.c b/src/vendorcode/amd/agesa/f15tn/Proc/Common/CreateStruct.c
deleted file mode 100644
index f99bd66..0000000
--- a/src/vendorcode/amd/agesa/f15tn/Proc/Common/CreateStruct.c
+++ /dev/null
@@ -1,313 +0,0 @@
-/* $NoKeywords:$ */
-/**
- * @file
- *
- * AMD AGESA Input Structure Creation
- *
- * Contains AGESA input structure creation support.
- *
- * @xrefitem bom "File Content Label" "Release Content"
- * @e project: AGESA
- * @e sub-project: Common
- * @e \$Revision: 63425 $ @e \$Date: 2011-12-22 11:24:10 -0600 (Thu, 22 Dec 2011) $
- *
- */
-/*
- ******************************************************************************
- *
- * Copyright (c) 2008 - 2012, Advanced Micro Devices, Inc.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * * Neither the name of Advanced Micro Devices, Inc. nor the names of
- * its contributors may be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL ADVANCED MICRO DEVICES, INC. BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- ******************************************************************************
- */
-
-/*----------------------------------------------------------------------------------------
- * M O D U L E S U S E D
- *----------------------------------------------------------------------------------------
- */
-#include "AGESA.h"
-#include "amdlib.h"
-#include "Ids.h"
-#include "GeneralServices.h"
-#include "heapManager.h"
-#include "CreateStruct.h"
-#include "cpuFamilyTranslation.h"
-#include "Filecode.h"
-CODE_GROUP (G1_PEICC)
-RDATA_GROUP (G1_PEICC)
-
-#define FILECODE PROC_COMMON_CREATESTRUCT_FILECODE
-/*----------------------------------------------------------------------------------------
- * D E F I N I T I O N S A N D M A C R O S
- *----------------------------------------------------------------------------------------
- */
-extern CONST FUNCTION_PARAMS_INFO FuncParamsInfo[];
-extern CONST UINTN InitializerCount;
-
-/*----------------------------------------------------------------------------------------
- * T Y P E D E F S A N D S T R U C T U R E S
- *----------------------------------------------------------------------------------------
- */
-
-/*----------------------------------------------------------------------------------------
- * P R O T O T Y P E S O F L O C A L F U N C T I O N S
- *----------------------------------------------------------------------------------------
- */
-
-/*----------------------------------------------------------------------------------------
- * E X P O R T E D F U N C T I O N S
- *----------------------------------------------------------------------------------------
- */
-extern BUILD_OPT_CFG UserOptions;
-
-/*---------------------------------------------------------------------------------------*/
-/**
- * Allocate and initialize Config headers and Service Interface structures.
- *
- * This function will be called for each AGESA public APIs.
- * This function will do the following:
- * -# Locate the AGESA API structure parameters initializer function information.
- * -# Find the size of the structure that gets passed to each public APIs as
- * the entry parameter. Allocate heap space using the size for PreMemHeap, callout for
- * memory allocation for PostMemDram, and just set the config and service interface
- * pointers for ByHost.
- * -# If the allocation is not ByHost, copy the AmdConfigParams into the newly created AmdConfigParams.
- * For ByHost, we're using the caller's existing config params.
- * -# Call the initializer function, and pass a reference to the Config params and to
- * the Service Interface struct. On return the constructor will have filled the
- * remaining structure with default values.
- * -# Fill the remaining info in the newly created structure on heap in AMD_CONFIG_PARAMS
- * area (i.e. Fill *newStructPtr with the pointer to the newly created structure)
- * -# Set the appropriate AGESA function number in the StdHeader member of the input
- * parameter structure.
- *
- * @param[in,out] InterfaceParams Pointer to structure containing the function call
- * whose parameter structure is to be created, the
- * allocation method, and a pointer to the newly
- * created structure.
- *
- * @retval AGESA_SUCCESS The interface struct is allocated and initialized.
- * @retval AGESA_UNSUPPORTED The Service is not supported.
- *
- */
-AGESA_STATUS
-AmdCreateStruct (
- IN OUT AMD_INTERFACE_PARAMS *InterfaceParams
- )
-{
- UINTN ServiceIndex;
- ALLOCATE_HEAP_PARAMS AllocHeapParams;
- AMD_CONFIG_PARAMS *NewlyCreatedConfig;
- VOID *NewlyCreatedServiceInterface;
- AGESA_STATUS AgesaStatus;
- AGESA_STATUS TempStatus;
- AGESA_STATUS IgnoredSts;
- CPU_SPECIFIC_SERVICES *FamilySpecificServices;
-
- AgesaStatus = AGESA_SUCCESS;
-
- ASSERT (InterfaceParams != NULL);
-
- switch (InterfaceParams->AgesaFunctionName) {
- case AMD_INIT_RESET:
- if (!IsBsp (&InterfaceParams->StdHeader, &IgnoredSts)) {
- // APs must transfer their system core number from the mailbox to
- // a local register while it is still valid.
- GetCpuServicesOfCurrentCore ((CONST CPU_SPECIFIC_SERVICES **)&FamilySpecificServices, &InterfaceParams->StdHeader);
- FamilySpecificServices->TransferApCoreNumber (FamilySpecificServices, &InterfaceParams->StdHeader);
- }
- InterfaceParams->StdHeader.HeapStatus = HEAP_DO_NOT_EXIST_YET;
- break;
- case AMD_INIT_EARLY:
- case AMD_INIT_RECOVERY:
- case AMD_INIT_RESUME:
- case AMD_INIT_POST:
- InterfaceParams->StdHeader.HeapStatus = HEAP_LOCAL_CACHE;
- break;
- case AMD_INIT_ENV:
- InterfaceParams->StdHeader.HeapStatus = HEAP_TEMP_MEM;
- break;
- case AMD_INIT_LATE:
- case AMD_INIT_MID:
- case AMD_S3_SAVE:
- case AMD_LATE_RUN_AP_TASK:
- InterfaceParams->StdHeader.HeapStatus = HEAP_SYSTEM_MEM;
- break;
- case AMD_S3LATE_RESTORE:
- InterfaceParams->StdHeader.HeapStatus = HEAP_S3_RESUME;
- break;
- default:
- ASSERT (FALSE);
- InterfaceParams->StdHeader.HeapStatus = HEAP_LOCAL_CACHE;
- break;
- }
-
- InterfaceParams->StdHeader.HeapBasePtr = HeapGetBaseAddress (&InterfaceParams->StdHeader);
-
- if (InterfaceParams->AgesaFunctionName == AMD_INIT_RESET) {
- AgesaStatus = HeapManagerInit (&InterfaceParams->StdHeader);
- }
-
- // Step 1
- for (ServiceIndex = 0; ServiceIndex < InitializerCount; ServiceIndex++) {
- if (FuncParamsInfo[ServiceIndex].AgesaFunctionName == InterfaceParams->AgesaFunctionName) {
- break;
- }
- }
- if (ServiceIndex >= InitializerCount) {
- // A call was made to AGESA with an invalid function number. This wrapper error may be due to the build target
- // not containing the desired entry point.
- return AGESA_UNSUPPORTED;
- }
-
- // Step 2
- LibAmdMemFill (&AllocHeapParams, 0, (UINTN) (sizeof (ALLOCATE_HEAP_PARAMS)), &InterfaceParams->StdHeader);
-
- if (InterfaceParams->AllocationMethod < ByHost) {
- // Allocate one buffer to contain the config params and the service struct.
- // The service struct begins immediately after the config params.
- AllocHeapParams.RequestedBufferSize = FuncParamsInfo[ServiceIndex].CreateStructSize + sizeof (AMD_CONFIG_PARAMS);
- AllocHeapParams.BufferHandle = FuncParamsInfo[ServiceIndex].BufferHandle;
- AllocHeapParams.Persist = HEAP_SYSTEM_MEM;
- TempStatus = HeapAllocateBuffer (&AllocHeapParams, &(InterfaceParams->StdHeader));
- AgesaStatus = ((AgesaStatus > TempStatus) ? AgesaStatus : TempStatus);
- NewlyCreatedConfig = (AMD_CONFIG_PARAMS *)AllocHeapParams.BufferPtr;
- NewlyCreatedConfig++;
- NewlyCreatedServiceInterface = NewlyCreatedConfig;
- NewlyCreatedConfig = (AMD_CONFIG_PARAMS *)AllocHeapParams.BufferPtr;
- } else {
- // The caller (example, agesa basic interface implementation) already has a buffer to use.
- NewlyCreatedConfig = (AMD_CONFIG_PARAMS *)InterfaceParams;
- NewlyCreatedServiceInterface = InterfaceParams->NewStructPtr;
- ASSERT (InterfaceParams->NewStructSize >= FuncParamsInfo[ServiceIndex].CreateStructSize);
- }
- ASSERT (NewlyCreatedConfig != NULL);
- ASSERT (NewlyCreatedServiceInterface != NULL);
-
- // Step 3
- if (InterfaceParams->AllocationMethod != ByHost) {
- *NewlyCreatedConfig = InterfaceParams->StdHeader;
- }
-
- // Step 4
- TempStatus = FuncParamsInfo[ServiceIndex].AgesaFunction (NewlyCreatedConfig, NewlyCreatedServiceInterface);
- AgesaStatus = ((AgesaStatus > TempStatus) ? AgesaStatus : TempStatus);
-
- // Step 5
- if (InterfaceParams->AllocationMethod != ByHost) {
- InterfaceParams->NewStructPtr = (VOID *) NewlyCreatedServiceInterface;
- InterfaceParams->NewStructSize = FuncParamsInfo[ServiceIndex].CreateStructSize;
- }
-
- // Step 6
- ((AMD_CONFIG_PARAMS *) InterfaceParams->NewStructPtr)->Func = InterfaceParams->AgesaFunctionName;
- return AgesaStatus;
-}
-
-
-/*---------------------------------------------------------------------------------------*/
-/**
- * Clears storage space from allocation for a parameter block of an
- * AGESA software call entry.
- *
- * @param[in,out] InterfaceParams Pointer to structure containing the function call
- * whose parameter structure is to be deallocated.
- *
- * @retval AGESA_STATUS
- *
- *---------------------------------------------------------------------------------------
- **/
-AGESA_STATUS
-AmdReleaseStruct (
- IN OUT AMD_INTERFACE_PARAMS *InterfaceParams
- )
-{
- UINT8 i;
- UINT8 *BufferPtr;
- VOID *ServicePtr;
- AGESA_STATUS AgesaStatus;
- AGESA_STATUS TempStatus;
- LOCATE_HEAP_PTR LocHeap;
-
- AgesaStatus = AGESA_SUCCESS;
-
- switch (InterfaceParams->AgesaFunctionName) {
- case AMD_INIT_RESET:
- case AMD_INIT_EARLY:
- case AMD_INIT_RECOVERY:
- case AMD_INIT_RESUME:
- InterfaceParams->StdHeader.HeapStatus = HEAP_LOCAL_CACHE;
- break;
- case AMD_INIT_POST:
- InterfaceParams->StdHeader.HeapStatus = HEAP_TEMP_MEM;
- break;
- case AMD_INIT_ENV:
- case AMD_INIT_LATE:
- case AMD_INIT_MID:
- case AMD_S3_SAVE:
- case AMD_LATE_RUN_AP_TASK:
- InterfaceParams->StdHeader.HeapStatus = HEAP_SYSTEM_MEM;
- break;
- case AMD_S3LATE_RESTORE:
- InterfaceParams->StdHeader.HeapStatus = HEAP_S3_RESUME;
- break;
- default:
- ASSERT (FALSE);
- InterfaceParams->StdHeader.HeapStatus = HEAP_LOCAL_CACHE;
- break;
- }
-
- InterfaceParams->StdHeader.HeapBasePtr = HeapGetBaseAddress (&InterfaceParams->StdHeader);
-
-// Step 1
- for (i = 0; i < InitializerCount; i++) {
- if (FuncParamsInfo[i].AgesaFunctionName == InterfaceParams->AgesaFunctionName) {
- break;
- }
- }
- if (i >= InitializerCount) {
- return AGESA_BOUNDS_CHK;
- }
-
- // Step 2
- if (InterfaceParams->AllocationMethod < ByHost) {
- LocHeap.BufferHandle = FuncParamsInfo[i].BufferHandle;
- if (HeapLocateBuffer (&LocHeap, &(InterfaceParams->StdHeader)) == AGESA_SUCCESS) {
- BufferPtr = (UINT8 *) LocHeap.BufferPtr;
- ServicePtr = &BufferPtr[sizeof (AMD_CONFIG_PARAMS)];
- TempStatus = FuncParamsInfo[i].AgesaDestructor (&(InterfaceParams->StdHeader), ServicePtr);
- AgesaStatus = ((AgesaStatus > TempStatus) ? AgesaStatus : TempStatus);
- }
- }
-
- // Step 3
- if (InterfaceParams->AllocationMethod < ByHost) {
- TempStatus = HeapDeallocateBuffer (FuncParamsInfo[i].BufferHandle, &(InterfaceParams->StdHeader));
- AgesaStatus = ((AgesaStatus > TempStatus) ? AgesaStatus : TempStatus);
- } else {
- // Unless we define service specific destructors, nothing to do for ByHost.
- return AGESA_SUCCESS;
- }
- return AgesaStatus;
-}
diff --git a/src/vendorcode/amd/agesa/f15tn/Proc/Common/CreateStruct.h b/src/vendorcode/amd/agesa/f15tn/Proc/Common/CreateStruct.h
deleted file mode 100644
index 66a7bbf..0000000
--- a/src/vendorcode/amd/agesa/f15tn/Proc/Common/CreateStruct.h
+++ /dev/null
@@ -1,195 +0,0 @@
-/* $NoKeywords:$ */
-/**
- * @file
- *
- * AMD AGESA Input Structure Creation
- *
- * Contains AGESA input creation structures.
- *
- * @xrefitem bom "File Content Label" "Release Content"
- * @e project: AGESA
- * @e sub-project: Common
- * @e \$Revision: 63425 $ @e \$Date: 2011-12-22 11:24:10 -0600 (Thu, 22 Dec 2011) $
- *
- */
-/*
- ******************************************************************************
- *
- * Copyright (c) 2008 - 2012, Advanced Micro Devices, Inc.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * * Neither the name of Advanced Micro Devices, Inc. nor the names of
- * its contributors may be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL ADVANCED MICRO DEVICES, INC. BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- ******************************************************************************
- */
-
-#ifndef _CREATE_STRUCT_H_
-#define _CREATE_STRUCT_H_
-
-/**
- * A constructor method.
- *
- * Sets inputs to valid, basic level, defaults for the specific service instance.
- * Constructors should avoid using the header, since these routines should not
- * do operations which may fail or require status back to the user. The constructor
- * should always SUCCEED.
- *
- * @param[in] StdHeader Opaque handle to standard config header
- * @param[in] ServiceInterface Service Interface structure to initialize.
- *
- * @retval AGESA_SUCCESS Constructors are not allowed to fail
-*/
-typedef AGESA_STATUS
-F_AGESA_FUNCTION (
- IN AMD_CONFIG_PARAMS *StdHeader,
- IN VOID *ServiceInterface
- );
-
-/// Reference to a Method.
-typedef F_AGESA_FUNCTION *PF_AGESA_FUNCTION;
-
-/**
- * A Destructor method.
- *
- * Sets inputs to valid, basic level, defaults for the specific service instance.
- * The constructor should always SUCCEED.
- *
- * @param[in] StdHeader Opaque handle to standard config header.
- * @param[in] ServiceInterface Service Interface structure to initialize.
- *
- * @retval AGESA_SUCCESS Constructors are not allowed to fail
-*/
-typedef AGESA_STATUS
-F_AGESA_DESTRUCTOR (
- IN AMD_CONFIG_PARAMS *StdHeader,
- IN VOID *ServiceInterface
- );
-
-/// Reference to a Method.
-typedef F_AGESA_DESTRUCTOR *PF_AGESA_DESTRUCTOR;
-
-/**
- * Provide the information needed to invoke each service constructor.
- */
-typedef struct {
- IN AGESA_STRUCT_NAME AgesaFunctionName; ///< Identifies the service
- IN UINT16 CreateStructSize; ///< The service's input struct size.
- /// Do NOT include a config params header!
- OUT PF_AGESA_FUNCTION AgesaFunction; ///< The constructor function
- OUT PF_AGESA_DESTRUCTOR AgesaDestructor; ///< The destructor function.
- IN AGESA_BUFFER_HANDLE BufferHandle; ///< The buffer handle id for the service.
-} FUNCTION_PARAMS_INFO;
-
-/**
- * All available services have their constructor info here.
- */
-AGESA_STATUS
-AmdInitResetConstructor (
- IN AMD_CONFIG_PARAMS *StdHeader,
- IN AMD_RESET_PARAMS *AmdResetParams
- );
-
-AGESA_STATUS
-AmdInitRecoveryInitializer (
- IN AMD_CONFIG_PARAMS *StdHeader,
- IN OUT AMD_RECOVERY_PARAMS *AmdRecoveryParamsPtr
- );
-
-AGESA_STATUS
-AmdInitEarlyInitializer (
- IN AMD_CONFIG_PARAMS *StdHeader,
- IN OUT AMD_EARLY_PARAMS *EarlyParams
- );
-
-AGESA_STATUS
-AmdInitPostInitializer (
- IN AMD_CONFIG_PARAMS *StdHeader,
- IN OUT AMD_POST_PARAMS *PostParamsPtr
- );
-
-AGESA_STATUS
-AmdInitPostDestructor (
- IN AMD_CONFIG_PARAMS *StdHeader,
- IN AMD_POST_PARAMS *PostParamsPtr
- );
-
-AGESA_STATUS
-AmdInitEnvInitializer (
- IN AMD_CONFIG_PARAMS *StdHeader,
- IN OUT AMD_ENV_PARAMS *EnvParamsPtr
- );
-
-AGESA_STATUS
-AmdInitMidInitializer (
- IN AMD_CONFIG_PARAMS *StdHeader,
- IN OUT AMD_MID_PARAMS *MidParamsPtr
- );
-
-AGESA_STATUS
-AmdInitLateInitializer (
- IN AMD_CONFIG_PARAMS *StdHeader,
- IN OUT AMD_LATE_PARAMS *LateParamsPtr
- );
-
-AGESA_STATUS
-AmdInitLateDestructor (
- IN AMD_CONFIG_PARAMS *StdHeader,
- IN AMD_LATE_PARAMS *LateParamsPtr
- );
-
-AGESA_STATUS
-AmdInitResumeInitializer (
- IN AMD_CONFIG_PARAMS *StdHeader,
- IN OUT AMD_RESUME_PARAMS *ResumeParams
- );
-
-AGESA_STATUS
-AmdInitResumeDestructor (
- IN AMD_CONFIG_PARAMS *StdHeader,
- IN OUT AMD_RESUME_PARAMS *ResumeParams
- );
-
-AGESA_STATUS
-AmdS3SaveInitializer (
- IN OUT AMD_CONFIG_PARAMS *StdHeader,
- IN OUT AMD_S3SAVE_PARAMS *S3SaveParams
- );
-
-AGESA_STATUS
-AmdS3SaveDestructor (
- IN AMD_CONFIG_PARAMS *StdHeader,
- IN OUT AMD_S3SAVE_PARAMS *S3SaveParams
- );
-
-AGESA_STATUS
-AmdS3LateRestoreInitializer (
- IN AMD_CONFIG_PARAMS *StdHeader,
- IN OUT AMD_S3LATE_PARAMS *S3LateParams
- );
-
-AGESA_STATUS
-AmdLateRunApTaskInitializer (
- IN AMD_CONFIG_PARAMS *StdHeader,
- IN OUT AP_EXE_PARAMS *AmdApExeParams
- );
-#endif // _CREATE_STRUCT_H_
-
diff --git a/src/vendorcode/amd/agesa/f16kb/Makefile.inc b/src/vendorcode/amd/agesa/f16kb/Makefile.inc
index 5ce7aee..ab82bcc 100644
--- a/src/vendorcode/amd/agesa/f16kb/Makefile.inc
+++ b/src/vendorcode/amd/agesa/f16kb/Makefile.inc
@@ -36,6 +36,7 @@ AGESA_INC += -I$(AGESA_ROOT)/../common
AGESA_INC += -I$(AGESA_ROOT)/Include
AGESA_INC += -I$(AGESA_ROOT)/Lib
AGESA_INC += -I$(AGESA_ROOT)/Legacy
+AGESA_INC += -I$(AGESA_ROOT)/../common/Proc/Common
AGESA_INC += -I$(AGESA_ROOT)/Proc/Common
AGESA_INC += -I$(AGESA_ROOT)/Proc/HT
AGESA_INC += -I$(AGESA_ROOT)/Proc/CPU
diff --git a/src/vendorcode/amd/agesa/f16kb/Proc/Common/AmdFch.h b/src/vendorcode/amd/agesa/f16kb/Proc/Common/AmdFch.h
deleted file mode 100644
index adef011..0000000
--- a/src/vendorcode/amd/agesa/f16kb/Proc/Common/AmdFch.h
+++ /dev/null
@@ -1,65 +0,0 @@
-/* $NoKeywords:$ */
-/**
- * @file
- *
- * AMD FCH Component
- *
- *
- *
- * @xrefitem bom "File Content Label" "Release Content"
- * @e project: AGESA
- * @e sub-project: FCH
- * @e \$Revision: 84150 $ @e \$Date: 2012-12-12 15:46:25 -0600 (Wed, 12 Dec 2012) $
- *
- */
-/*
-*****************************************************************************
-*
- * Copyright (c) 2008 - 2013, Advanced Micro Devices, Inc.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * * Neither the name of Advanced Micro Devices, Inc. nor the names of
- * its contributors may be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL ADVANCED MICRO DEVICES, INC. BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-* ***************************************************************************
-*
-*/
-
-#ifndef _AMD_FCH_H_
-#define _AMD_FCH_H_
-
-typedef AGESA_STATUS FCH_INIT (IN VOID *DataPtr);
-typedef VOID FCH_TASK_ENTRY (IN VOID *FchCfg);
-
-
-/// FCH API build options
-typedef struct {
- FCH_INIT *InitReset; ///< InitReset
- FCH_INIT *InitResetConstructor; ///< InitResetConstructor
- FCH_INIT *InitEnv; ///< InitEnv
- FCH_INIT *InitEnvConstructor; ///< InitEnvConstructor
- FCH_INIT *InitMid; ///< InitMid
- FCH_INIT *InitMidConstructor; ///< InitMidConstructor
- FCH_INIT *InitLate; ///< InitLate
- FCH_INIT *InitLateConstructor; ///< InitLateConstructor
-} BLDOPT_FCH_FUNCTION;
-
-#endif
diff --git a/src/vendorcode/amd/agesa/f16kb/Proc/Common/AmdLateRunApTask.c b/src/vendorcode/amd/agesa/f16kb/Proc/Common/AmdLateRunApTask.c
deleted file mode 100644
index b7e125e..0000000
--- a/src/vendorcode/amd/agesa/f16kb/Proc/Common/AmdLateRunApTask.c
+++ /dev/null
@@ -1,159 +0,0 @@
-/* $NoKeywords:$ */
-/**
- * @file
- *
- * AMD AGESA Basic Level Public APIs
- *
- * Contains basic Level Initialization routines.
- *
- * @xrefitem bom "File Content Label" "Release Content"
- * @e project: AGESA
- * @e sub-project: Interface
- * @e \$Revision: 84150 $ @e \$Date: 2012-12-12 15:46:25 -0600 (Wed, 12 Dec 2012) $
- *
- */
-/*****************************************************************************
- *
- * Copyright (c) 2008 - 2013, Advanced Micro Devices, Inc.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * * Neither the name of Advanced Micro Devices, Inc. nor the names of
- * its contributors may be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL ADVANCED MICRO DEVICES, INC. BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- ******************************************************************************
- */
-
-
-/*----------------------------------------------------------------------------------------
- * M O D U L E S U S E D
- *----------------------------------------------------------------------------------------
- */
-#include "AGESA.h"
-#include "Ids.h"
-#include "Options.h"
-#include "Filecode.h"
-#include "heapManager.h"
-#include "CreateStruct.h"
-CODE_GROUP (G3_DXE)
-RDATA_GROUP (G3_DXE)
-
-#define FILECODE PROC_COMMON_AMDLATERUNAPTASK_FILECODE
-/*----------------------------------------------------------------------------------------
- * D E F I N I T I O N S A N D M A C R O S
- *----------------------------------------------------------------------------------------
- */
-
-
-/*----------------------------------------------------------------------------------------
- * T Y P E D E F S A N D S T R U C T U R E S
- *----------------------------------------------------------------------------------------
- */
-
-
-/*----------------------------------------------------------------------------------------
- * P R O T O T Y P E S O F L O C A L F U N C T I O N S
- *----------------------------------------------------------------------------------------
- */
-
-
-/*----------------------------------------------------------------------------------------
- * E X P O R T E D F U N C T I O N S
- *----------------------------------------------------------------------------------------
- */
-extern CONST DISPATCH_TABLE ApDispatchTable[];
-
-/*---------------------------------------------------------------------------------------*/
-/**
- * Application Processor perform a function as directed by the BSC.
- *
- * This is needed for an AP task that must run after AGESA has relinquished control
- * of the APs to the IBV.
- *
- * @param[in] AmdApExeParams The interface struct for any required routine.
- *
- * @return The most severe AGESA_STATUS returned by any called service. Note
- * that this will be the return value passed back to the BSC as the
- * return value for the call out.
- *
- */
-AGESA_STATUS
-AmdLateRunApTask (
- IN AP_EXE_PARAMS *AmdApExeParams
- )
-{
- AGESA_STATUS CalledAgesaStatus;
- AGESA_STATUS ApLateTaskStatus;
- DISPATCH_TABLE *Entry;
-
- AGESA_TESTPOINT (TpIfAmdLateRunApTaskEntry, &AmdApExeParams->StdHeader);
-
- ASSERT (AmdApExeParams != NULL);
- ApLateTaskStatus = AGESA_SUCCESS;
- CalledAgesaStatus = AGESA_UNSUPPORTED;
-
- // Dispatch, if valid
- Entry = (DISPATCH_TABLE *) ApDispatchTable;
- while (Entry->FunctionId != 0) {
- if (AmdApExeParams->FunctionNumber == Entry->FunctionId) {
- CalledAgesaStatus = Entry->EntryPoint (AmdApExeParams);
- break;
- }
- Entry++;
- }
-
- if (CalledAgesaStatus > ApLateTaskStatus) {
- ApLateTaskStatus = CalledAgesaStatus;
- }
-
- AGESA_TESTPOINT (TpIfAmdLateRunApTaskExit, &AmdApExeParams->StdHeader);
- return ApLateTaskStatus;
-}
-
-/*---------------------------------------------------------------------------------------*/
-/**
- * Constructor for the AMD_LATE_RUN_AP_TASK function.
- *
- * This routine is responsible for setting default values for the
- * input parameters needed by the AMD_S3_SAVE entry point.
- *
- * @param[in] StdHeader The standard header.
- * @param[in,out] AmdApExeParams Required input parameters for the AMD_LATE_RUN_AP_TASK
- * entry point.
- *
- * @retval AGESA_SUCCESS Always Succeeds.
- *
- */
-AGESA_STATUS
-AmdLateRunApTaskInitializer (
- IN AMD_CONFIG_PARAMS *StdHeader,
- IN OUT AP_EXE_PARAMS *AmdApExeParams
- )
-{
- ASSERT (StdHeader != NULL);
- ASSERT (AmdApExeParams != NULL);
-
- AmdApExeParams->StdHeader = *StdHeader;
- AmdApExeParams->FunctionNumber = 0;
- AmdApExeParams->RelatedDataBlock = NULL;
- AmdApExeParams->RelatedBlockLength = 0;
- return AGESA_SUCCESS;
-}
-
diff --git a/src/vendorcode/amd/agesa/f16kb/Proc/Common/CommonInits.h b/src/vendorcode/amd/agesa/f16kb/Proc/Common/CommonInits.h
deleted file mode 100644
index d08cbf8..0000000
--- a/src/vendorcode/amd/agesa/f16kb/Proc/Common/CommonInits.h
+++ /dev/null
@@ -1,65 +0,0 @@
-/* $NoKeywords:$ */
-/**
- * @file
- *
- * Common initialization routines.
- *
- * Contains common initialization routines across AGESA entries of phases.
- *
- * @xrefitem bom "File Content Label" "Release Content"
- * @e project: AGESA
- * @e sub-project: Common
- * @e \$Revision: 84150 $ @e \$Date: 2012-12-12 15:46:25 -0600 (Wed, 12 Dec 2012) $
- *
- */
-/*
-*****************************************************************************
-*
- * Copyright (c) 2008 - 2013, Advanced Micro Devices, Inc.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * * Neither the name of Advanced Micro Devices, Inc. nor the names of
- * its contributors may be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL ADVANCED MICRO DEVICES, INC. BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-* ***************************************************************************
-*
-*/
-
-#ifndef _COMMON_INITS_H_
-#define _COMMON_INITS_H_
-
-/**
- * Common routine to initialize PLATFORM_CONFIGURATION.
- *
- * @param[in,out] PlatformConfig Platform profile/build option config structure
- * @param[in,out] StdHeader AMD standard header config param
- *
- * @retval AGESA_SUCCESS Always Succeeds.
- *
- */
-AGESA_STATUS
-CommonPlatformConfigInit (
- IN OUT PLATFORM_CONFIGURATION *PlatformConfig,
- IN OUT AMD_CONFIG_PARAMS *StdHeader
- );
-
-#endif // _COMMON_INITS_H_
-
diff --git a/src/vendorcode/amd/agesa/f16kb/Proc/Common/CreateStruct.c b/src/vendorcode/amd/agesa/f16kb/Proc/Common/CreateStruct.c
deleted file mode 100644
index 8468d3b..0000000
--- a/src/vendorcode/amd/agesa/f16kb/Proc/Common/CreateStruct.c
+++ /dev/null
@@ -1,313 +0,0 @@
-/* $NoKeywords:$ */
-/**
- * @file
- *
- * AMD AGESA Input Structure Creation
- *
- * Contains AGESA input structure creation support.
- *
- * @xrefitem bom "File Content Label" "Release Content"
- * @e project: AGESA
- * @e sub-project: Common
- * @e \$Revision: 84150 $ @e \$Date: 2012-12-12 15:46:25 -0600 (Wed, 12 Dec 2012) $
- *
- */
-/*
- ******************************************************************************
- *
- * Copyright (c) 2008 - 2013, Advanced Micro Devices, Inc.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * * Neither the name of Advanced Micro Devices, Inc. nor the names of
- * its contributors may be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL ADVANCED MICRO DEVICES, INC. BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- ******************************************************************************
- */
-
-/*----------------------------------------------------------------------------------------
- * M O D U L E S U S E D
- *----------------------------------------------------------------------------------------
- */
-#include "AGESA.h"
-#include "amdlib.h"
-#include "Ids.h"
-#include "GeneralServices.h"
-#include "heapManager.h"
-#include "CreateStruct.h"
-#include "cpuFamilyTranslation.h"
-#include "Filecode.h"
-CODE_GROUP (G1_PEICC)
-RDATA_GROUP (G1_PEICC)
-
-#define FILECODE PROC_COMMON_CREATESTRUCT_FILECODE
-/*----------------------------------------------------------------------------------------
- * D E F I N I T I O N S A N D M A C R O S
- *----------------------------------------------------------------------------------------
- */
-extern CONST FUNCTION_PARAMS_INFO FuncParamsInfo[];
-extern CONST UINTN InitializerCount;
-
-/*----------------------------------------------------------------------------------------
- * T Y P E D E F S A N D S T R U C T U R E S
- *----------------------------------------------------------------------------------------
- */
-
-/*----------------------------------------------------------------------------------------
- * P R O T O T Y P E S O F L O C A L F U N C T I O N S
- *----------------------------------------------------------------------------------------
- */
-
-/*----------------------------------------------------------------------------------------
- * E X P O R T E D F U N C T I O N S
- *----------------------------------------------------------------------------------------
- */
-extern BUILD_OPT_CFG UserOptions;
-
-/*---------------------------------------------------------------------------------------*/
-/**
- * Allocate and initialize Config headers and Service Interface structures.
- *
- * This function will be called for each AGESA public APIs.
- * This function will do the following:
- * -# Locate the AGESA API structure parameters initializer function information.
- * -# Find the size of the structure that gets passed to each public APIs as
- * the entry parameter. Allocate heap space using the size for PreMemHeap, callout for
- * memory allocation for PostMemDram, and just set the config and service interface
- * pointers for ByHost.
- * -# If the allocation is not ByHost, copy the AmdConfigParams into the newly created AmdConfigParams.
- * For ByHost, we're using the caller's existing config params.
- * -# Call the initializer function, and pass a reference to the Config params and to
- * the Service Interface struct. On return the constructor will have filled the
- * remaining structure with default values.
- * -# Fill the remaining info in the newly created structure on heap in AMD_CONFIG_PARAMS
- * area (i.e. Fill *newStructPtr with the pointer to the newly created structure)
- * -# Set the appropriate AGESA function number in the StdHeader member of the input
- * parameter structure.
- *
- * @param[in,out] InterfaceParams Pointer to structure containing the function call
- * whose parameter structure is to be created, the
- * allocation method, and a pointer to the newly
- * created structure.
- *
- * @retval AGESA_SUCCESS The interface struct is allocated and initialized.
- * @retval AGESA_UNSUPPORTED The Service is not supported.
- *
- */
-AGESA_STATUS
-AmdCreateStruct (
- IN OUT AMD_INTERFACE_PARAMS *InterfaceParams
- )
-{
- UINTN ServiceIndex;
- ALLOCATE_HEAP_PARAMS AllocHeapParams;
- AMD_CONFIG_PARAMS *NewlyCreatedConfig;
- VOID *NewlyCreatedServiceInterface;
- AGESA_STATUS AgesaStatus;
- AGESA_STATUS TempStatus;
- AGESA_STATUS IgnoredSts;
- CPU_SPECIFIC_SERVICES *FamilySpecificServices;
-
- AgesaStatus = AGESA_SUCCESS;
-
- ASSERT (InterfaceParams != NULL);
-
- switch (InterfaceParams->AgesaFunctionName) {
- case AMD_INIT_RESET:
- if (!IsBsp (&InterfaceParams->StdHeader, &IgnoredSts)) {
- // APs must transfer their system core number from the mailbox to
- // a local register while it is still valid.
- GetCpuServicesOfCurrentCore ((CONST CPU_SPECIFIC_SERVICES **)&FamilySpecificServices, &InterfaceParams->StdHeader);
- FamilySpecificServices->TransferApCoreNumber (FamilySpecificServices, &InterfaceParams->StdHeader);
- }
- InterfaceParams->StdHeader.HeapStatus = HEAP_DO_NOT_EXIST_YET;
- break;
- case AMD_INIT_EARLY:
- case AMD_INIT_RECOVERY:
- case AMD_INIT_RESUME:
- case AMD_INIT_POST:
- InterfaceParams->StdHeader.HeapStatus = HEAP_LOCAL_CACHE;
- break;
- case AMD_INIT_ENV:
- InterfaceParams->StdHeader.HeapStatus = HEAP_TEMP_MEM;
- break;
- case AMD_INIT_LATE:
- case AMD_INIT_MID:
- case AMD_S3_SAVE:
- case AMD_LATE_RUN_AP_TASK:
- InterfaceParams->StdHeader.HeapStatus = HEAP_SYSTEM_MEM;
- break;
- case AMD_S3LATE_RESTORE:
- InterfaceParams->StdHeader.HeapStatus = HEAP_S3_RESUME;
- break;
- default:
- ASSERT (FALSE);
- InterfaceParams->StdHeader.HeapStatus = HEAP_LOCAL_CACHE;
- break;
- }
-
- InterfaceParams->StdHeader.HeapBasePtr = HeapGetBaseAddress (&InterfaceParams->StdHeader);
-
- if (InterfaceParams->AgesaFunctionName == AMD_INIT_RESET) {
- AgesaStatus = HeapManagerInit (&InterfaceParams->StdHeader);
- }
-
- // Step 1
- for (ServiceIndex = 0; ServiceIndex < InitializerCount; ServiceIndex++) {
- if (FuncParamsInfo[ServiceIndex].AgesaFunctionName == InterfaceParams->AgesaFunctionName) {
- break;
- }
- }
- if (ServiceIndex >= InitializerCount) {
- // A call was made to AGESA with an invalid function number. This wrapper error may be due to the build target
- // not containing the desired entry point.
- return AGESA_UNSUPPORTED;
- }
-
- // Step 2
- LibAmdMemFill (&AllocHeapParams, 0, (UINTN) (sizeof (ALLOCATE_HEAP_PARAMS)), &InterfaceParams->StdHeader);
-
- if (InterfaceParams->AllocationMethod < ByHost) {
- // Allocate one buffer to contain the config params and the service struct.
- // The service struct begins immediately after the config params.
- AllocHeapParams.RequestedBufferSize = FuncParamsInfo[ServiceIndex].CreateStructSize + sizeof (AMD_CONFIG_PARAMS);
- AllocHeapParams.BufferHandle = FuncParamsInfo[ServiceIndex].BufferHandle;
- AllocHeapParams.Persist = HEAP_SYSTEM_MEM;
- TempStatus = HeapAllocateBuffer (&AllocHeapParams, &(InterfaceParams->StdHeader));
- AgesaStatus = ((AgesaStatus > TempStatus) ? AgesaStatus : TempStatus);
- NewlyCreatedConfig = (AMD_CONFIG_PARAMS *)AllocHeapParams.BufferPtr;
- NewlyCreatedConfig++;
- NewlyCreatedServiceInterface = NewlyCreatedConfig;
- NewlyCreatedConfig = (AMD_CONFIG_PARAMS *)AllocHeapParams.BufferPtr;
- } else {
- // The caller (example, agesa basic interface implementation) already has a buffer to use.
- NewlyCreatedConfig = (AMD_CONFIG_PARAMS *)InterfaceParams;
- NewlyCreatedServiceInterface = InterfaceParams->NewStructPtr;
- ASSERT (InterfaceParams->NewStructSize >= FuncParamsInfo[ServiceIndex].CreateStructSize);
- }
- ASSERT (NewlyCreatedConfig != NULL);
- ASSERT (NewlyCreatedServiceInterface != NULL);
-
- // Step 3
- if (InterfaceParams->AllocationMethod != ByHost) {
- *NewlyCreatedConfig = InterfaceParams->StdHeader;
- }
-
- // Step 4
- TempStatus = FuncParamsInfo[ServiceIndex].AgesaFunction (NewlyCreatedConfig, NewlyCreatedServiceInterface);
- AgesaStatus = ((AgesaStatus > TempStatus) ? AgesaStatus : TempStatus);
-
- // Step 5
- if (InterfaceParams->AllocationMethod != ByHost) {
- InterfaceParams->NewStructPtr = (VOID *) NewlyCreatedServiceInterface;
- InterfaceParams->NewStructSize = FuncParamsInfo[ServiceIndex].CreateStructSize;
- }
-
- // Step 6
- ((AMD_CONFIG_PARAMS *) InterfaceParams->NewStructPtr)->Func = InterfaceParams->AgesaFunctionName;
- return AgesaStatus;
-}
-
-
-/*---------------------------------------------------------------------------------------*/
-/**
- * Clears storage space from allocation for a parameter block of an
- * AGESA software call entry.
- *
- * @param[in,out] InterfaceParams Pointer to structure containing the function call
- * whose parameter structure is to be deallocated.
- *
- * @retval AGESA_STATUS
- *
- *---------------------------------------------------------------------------------------
- **/
-AGESA_STATUS
-AmdReleaseStruct (
- IN OUT AMD_INTERFACE_PARAMS *InterfaceParams
- )
-{
- UINT8 i;
- UINT8 *BufferPtr;
- VOID *ServicePtr;
- AGESA_STATUS AgesaStatus;
- AGESA_STATUS TempStatus;
- LOCATE_HEAP_PTR LocHeap;
-
- AgesaStatus = AGESA_SUCCESS;
-
- switch (InterfaceParams->AgesaFunctionName) {
- case AMD_INIT_RESET:
- case AMD_INIT_EARLY:
- case AMD_INIT_RECOVERY:
- case AMD_INIT_RESUME:
- InterfaceParams->StdHeader.HeapStatus = HEAP_LOCAL_CACHE;
- break;
- case AMD_INIT_POST:
- InterfaceParams->StdHeader.HeapStatus = HEAP_TEMP_MEM;
- break;
- case AMD_INIT_ENV:
- case AMD_INIT_LATE:
- case AMD_INIT_MID:
- case AMD_S3_SAVE:
- case AMD_LATE_RUN_AP_TASK:
- InterfaceParams->StdHeader.HeapStatus = HEAP_SYSTEM_MEM;
- break;
- case AMD_S3LATE_RESTORE:
- InterfaceParams->StdHeader.HeapStatus = HEAP_S3_RESUME;
- break;
- default:
- ASSERT (FALSE);
- InterfaceParams->StdHeader.HeapStatus = HEAP_LOCAL_CACHE;
- break;
- }
-
- InterfaceParams->StdHeader.HeapBasePtr = HeapGetBaseAddress (&InterfaceParams->StdHeader);
-
-// Step 1
- for (i = 0; i < InitializerCount; i++) {
- if (FuncParamsInfo[i].AgesaFunctionName == InterfaceParams->AgesaFunctionName) {
- break;
- }
- }
- if (i >= InitializerCount) {
- return AGESA_BOUNDS_CHK;
- }
-
- // Step 2
- if (InterfaceParams->AllocationMethod < ByHost) {
- LocHeap.BufferHandle = FuncParamsInfo[i].BufferHandle;
- if (HeapLocateBuffer (&LocHeap, &(InterfaceParams->StdHeader)) == AGESA_SUCCESS) {
- BufferPtr = (UINT8 *) LocHeap.BufferPtr;
- ServicePtr = &BufferPtr[sizeof (AMD_CONFIG_PARAMS)];
- TempStatus = FuncParamsInfo[i].AgesaDestructor (&(InterfaceParams->StdHeader), ServicePtr);
- AgesaStatus = ((AgesaStatus > TempStatus) ? AgesaStatus : TempStatus);
- }
- }
-
- // Step 3
- if (InterfaceParams->AllocationMethod < ByHost) {
- TempStatus = HeapDeallocateBuffer (FuncParamsInfo[i].BufferHandle, &(InterfaceParams->StdHeader));
- AgesaStatus = ((AgesaStatus > TempStatus) ? AgesaStatus : TempStatus);
- } else {
- // Unless we define service specific destructors, nothing to do for ByHost.
- return AGESA_SUCCESS;
- }
- return AgesaStatus;
-}
diff --git a/src/vendorcode/amd/agesa/f16kb/Proc/Common/CreateStruct.h b/src/vendorcode/amd/agesa/f16kb/Proc/Common/CreateStruct.h
deleted file mode 100644
index 6b67f5f..0000000
--- a/src/vendorcode/amd/agesa/f16kb/Proc/Common/CreateStruct.h
+++ /dev/null
@@ -1,195 +0,0 @@
-/* $NoKeywords:$ */
-/**
- * @file
- *
- * AMD AGESA Input Structure Creation
- *
- * Contains AGESA input creation structures.
- *
- * @xrefitem bom "File Content Label" "Release Content"
- * @e project: AGESA
- * @e sub-project: Common
- * @e \$Revision: 84150 $ @e \$Date: 2012-12-12 15:46:25 -0600 (Wed, 12 Dec 2012) $
- *
- */
-/*
- ******************************************************************************
- *
- * Copyright (c) 2008 - 2013, Advanced Micro Devices, Inc.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * * Neither the name of Advanced Micro Devices, Inc. nor the names of
- * its contributors may be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL ADVANCED MICRO DEVICES, INC. BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- ******************************************************************************
- */
-
-#ifndef _CREATE_STRUCT_H_
-#define _CREATE_STRUCT_H_
-
-/**
- * A constructor method.
- *
- * Sets inputs to valid, basic level, defaults for the specific service instance.
- * Constructors should avoid using the header, since these routines should not
- * do operations which may fail or require status back to the user. The constructor
- * should always SUCCEED.
- *
- * @param[in] StdHeader Opaque handle to standard config header
- * @param[in] ServiceInterface Service Interface structure to initialize.
- *
- * @retval AGESA_SUCCESS Constructors are not allowed to fail
-*/
-typedef AGESA_STATUS
-F_AGESA_FUNCTION (
- IN AMD_CONFIG_PARAMS *StdHeader,
- IN VOID *ServiceInterface
- );
-
-/// Reference to a Method.
-typedef F_AGESA_FUNCTION *PF_AGESA_FUNCTION;
-
-/**
- * A Destructor method.
- *
- * Sets inputs to valid, basic level, defaults for the specific service instance.
- * The constructor should always SUCCEED.
- *
- * @param[in] StdHeader Opaque handle to standard config header.
- * @param[in] ServiceInterface Service Interface structure to initialize.
- *
- * @retval AGESA_SUCCESS Constructors are not allowed to fail
-*/
-typedef AGESA_STATUS
-F_AGESA_DESTRUCTOR (
- IN AMD_CONFIG_PARAMS *StdHeader,
- IN VOID *ServiceInterface
- );
-
-/// Reference to a Method.
-typedef F_AGESA_DESTRUCTOR *PF_AGESA_DESTRUCTOR;
-
-/**
- * Provide the information needed to invoke each service constructor.
- */
-typedef struct {
- IN AGESA_STRUCT_NAME AgesaFunctionName; ///< Identifies the service
- IN UINT16 CreateStructSize; ///< The service's input struct size.
- /// Do NOT include a config params header!
- OUT PF_AGESA_FUNCTION AgesaFunction; ///< The constructor function
- OUT PF_AGESA_DESTRUCTOR AgesaDestructor; ///< The destructor function.
- IN AGESA_BUFFER_HANDLE BufferHandle; ///< The buffer handle id for the service.
-} FUNCTION_PARAMS_INFO;
-
-/**
- * All available services have their constructor info here.
- */
-AGESA_STATUS
-AmdInitResetConstructor (
- IN AMD_CONFIG_PARAMS *StdHeader,
- IN AMD_RESET_PARAMS *AmdResetParams
- );
-
-AGESA_STATUS
-AmdInitRecoveryInitializer (
- IN AMD_CONFIG_PARAMS *StdHeader,
- IN OUT AMD_RECOVERY_PARAMS *AmdRecoveryParamsPtr
- );
-
-AGESA_STATUS
-AmdInitEarlyInitializer (
- IN AMD_CONFIG_PARAMS *StdHeader,
- IN OUT AMD_EARLY_PARAMS *EarlyParams
- );
-
-AGESA_STATUS
-AmdInitPostInitializer (
- IN AMD_CONFIG_PARAMS *StdHeader,
- IN OUT AMD_POST_PARAMS *PostParamsPtr
- );
-
-AGESA_STATUS
-AmdInitPostDestructor (
- IN AMD_CONFIG_PARAMS *StdHeader,
- IN AMD_POST_PARAMS *PostParamsPtr
- );
-
-AGESA_STATUS
-AmdInitEnvInitializer (
- IN AMD_CONFIG_PARAMS *StdHeader,
- IN OUT AMD_ENV_PARAMS *EnvParamsPtr
- );
-
-AGESA_STATUS
-AmdInitMidInitializer (
- IN AMD_CONFIG_PARAMS *StdHeader,
- IN OUT AMD_MID_PARAMS *MidParamsPtr
- );
-
-AGESA_STATUS
-AmdInitLateInitializer (
- IN AMD_CONFIG_PARAMS *StdHeader,
- IN OUT AMD_LATE_PARAMS *LateParamsPtr
- );
-
-AGESA_STATUS
-AmdInitLateDestructor (
- IN AMD_CONFIG_PARAMS *StdHeader,
- IN AMD_LATE_PARAMS *LateParamsPtr
- );
-
-AGESA_STATUS
-AmdInitResumeInitializer (
- IN AMD_CONFIG_PARAMS *StdHeader,
- IN OUT AMD_RESUME_PARAMS *ResumeParams
- );
-
-AGESA_STATUS
-AmdInitResumeDestructor (
- IN AMD_CONFIG_PARAMS *StdHeader,
- IN OUT AMD_RESUME_PARAMS *ResumeParams
- );
-
-AGESA_STATUS
-AmdS3SaveInitializer (
- IN OUT AMD_CONFIG_PARAMS *StdHeader,
- IN OUT AMD_S3SAVE_PARAMS *S3SaveParams
- );
-
-AGESA_STATUS
-AmdS3SaveDestructor (
- IN AMD_CONFIG_PARAMS *StdHeader,
- IN OUT AMD_S3SAVE_PARAMS *S3SaveParams
- );
-
-AGESA_STATUS
-AmdS3LateRestoreInitializer (
- IN AMD_CONFIG_PARAMS *StdHeader,
- IN OUT AMD_S3LATE_PARAMS *S3LateParams
- );
-
-AGESA_STATUS
-AmdLateRunApTaskInitializer (
- IN AMD_CONFIG_PARAMS *StdHeader,
- IN OUT AP_EXE_PARAMS *AmdApExeParams
- );
-#endif // _CREATE_STRUCT_H_
-
More information about the coreboot-gerrit
mailing list