summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/northbridge/amd/pi/agesawrapper.c15
-rw-r--r--src/northbridge/amd/pi/def_callouts.c3
2 files changed, 18 insertions, 0 deletions
diff --git a/src/northbridge/amd/pi/agesawrapper.c b/src/northbridge/amd/pi/agesawrapper.c
index 255b31d4c8..e716f9bc88 100644
--- a/src/northbridge/amd/pi/agesawrapper.c
+++ b/src/northbridge/amd/pi/agesawrapper.c
@@ -26,6 +26,9 @@
#include <heapManager.h>
#include <northbridge/amd/pi/agesawrapper.h>
#include <northbridge/amd/pi/BiosCallOuts.h>
+#include <PlatformMemoryConfiguration.h>
+
+extern const PSO_ENTRY PlatformMemoryConfiguration[];
VOID FchInitS3LateRestore (IN FCH_DATA_BLOCK *FchDataPtr);
VOID FchInitS3EarlyRestore (IN FCH_DATA_BLOCK *FchDataPtr);
@@ -136,6 +139,18 @@ AGESA_STATUS agesawrapper_amdinitpost(void)
AmdCreateStruct (&AmdParamStruct);
PostParams = (AMD_POST_PARAMS *)AmdParamStruct.NewStructPtr;
+ /*
+ * A PlatformMemoryConfiguration[] table must be added in the
+ * mainboard folder to any boards that need the memory configuation
+ * settings altered from the standard settings. Examples of boards
+ * requiring this change might be boards with soldered down memory,
+ * or boards that use a non-standard memory clock routing scheme
+ * There are PlatformMemoryConfiguration[] tables in many existing
+ * mainboards that can be used as an example.
+ */
+ if (PlatformMemoryConfiguration[0] != PSO_END)
+ PostParams->MemConfig.PlatformMemoryConfiguration = (PSO_ENTRY *)PlatformMemoryConfiguration;
+
// Do not use IS_ENABLED here. CONFIG_GFXUMA should always have a value. Allow
// the compiler to flag the error if CONFIG_GFXUMA is not set.
PostParams->MemConfig.UmaMode = CONFIG_GFXUMA ? UMA_AUTO : UMA_NONE;
diff --git a/src/northbridge/amd/pi/def_callouts.c b/src/northbridge/amd/pi/def_callouts.c
index 8a4472ccc4..389742cb09 100644
--- a/src/northbridge/amd/pi/def_callouts.c
+++ b/src/northbridge/amd/pi/def_callouts.c
@@ -27,6 +27,9 @@
#include "agesawrapper.h"
#include "BiosCallOuts.h"
#include "dimmSpd.h"
+#include <PlatformMemoryConfiguration.h>
+
+const PSO_ENTRY __attribute__((weak)) PlatformMemoryConfiguration[] = { PSO_END };
AGESA_STATUS GetBiosCallout (UINT32 Func, UINT32 Data, VOID *ConfigPtr)
{