diff options
author | Dave Frodin <dave.frodin@se-eng.com> | 2015-05-20 10:33:51 -0600 |
---|---|---|
committer | Marc Jones <marc.jones@se-eng.com> | 2015-07-20 19:29:27 +0200 |
commit | 406effd59075cab212c5bf9c1a12759c8fad50a4 (patch) | |
tree | bb418f05dedd45db7193dc6647c957031e0d433e | |
parent | 4d1c5aa9f7f61fcc7969391f53a66026cb657a3f (diff) | |
download | coreboot-406effd59075cab212c5bf9c1a12759c8fad50a4.tar.xz |
northbridge/amd/pi: Add support for memory settings
This adds support for binarypi based boards that have
to make adjustments to the memory configuration settings.
A PlatformMemoryConfiguration[] table that describes
the memory configuration must be defined in the
mainboard folder.
Change-Id: I5e4b476a4adf3dd1f3b7843274a81ecb243d10ab
Signed-off-by: Dave Frodin <dave.frodin@se-eng.com>
Reviewed-on: http://review.coreboot.org/10672
Tested-by: build bot (Jenkins)
Reviewed-by: WANG Siyuan <wangsiyuanbuaa@gmail.com>
Reviewed-by: Marc Jones <marc.jones@se-eng.com>
-rw-r--r-- | src/northbridge/amd/pi/agesawrapper.c | 15 | ||||
-rw-r--r-- | src/northbridge/amd/pi/def_callouts.c | 3 |
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) { |