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>
This commit is contained in:
parent
4d1c5aa9f7
commit
406effd590
|
@ -26,6 +26,9 @@
|
||||||
#include <heapManager.h>
|
#include <heapManager.h>
|
||||||
#include <northbridge/amd/pi/agesawrapper.h>
|
#include <northbridge/amd/pi/agesawrapper.h>
|
||||||
#include <northbridge/amd/pi/BiosCallOuts.h>
|
#include <northbridge/amd/pi/BiosCallOuts.h>
|
||||||
|
#include <PlatformMemoryConfiguration.h>
|
||||||
|
|
||||||
|
extern const PSO_ENTRY PlatformMemoryConfiguration[];
|
||||||
|
|
||||||
VOID FchInitS3LateRestore (IN FCH_DATA_BLOCK *FchDataPtr);
|
VOID FchInitS3LateRestore (IN FCH_DATA_BLOCK *FchDataPtr);
|
||||||
VOID FchInitS3EarlyRestore (IN FCH_DATA_BLOCK *FchDataPtr);
|
VOID FchInitS3EarlyRestore (IN FCH_DATA_BLOCK *FchDataPtr);
|
||||||
|
@ -136,6 +139,18 @@ AGESA_STATUS agesawrapper_amdinitpost(void)
|
||||||
AmdCreateStruct (&AmdParamStruct);
|
AmdCreateStruct (&AmdParamStruct);
|
||||||
PostParams = (AMD_POST_PARAMS *)AmdParamStruct.NewStructPtr;
|
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
|
// 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.
|
// the compiler to flag the error if CONFIG_GFXUMA is not set.
|
||||||
PostParams->MemConfig.UmaMode = CONFIG_GFXUMA ? UMA_AUTO : UMA_NONE;
|
PostParams->MemConfig.UmaMode = CONFIG_GFXUMA ? UMA_AUTO : UMA_NONE;
|
||||||
|
|
|
@ -27,6 +27,9 @@
|
||||||
#include "agesawrapper.h"
|
#include "agesawrapper.h"
|
||||||
#include "BiosCallOuts.h"
|
#include "BiosCallOuts.h"
|
||||||
#include "dimmSpd.h"
|
#include "dimmSpd.h"
|
||||||
|
#include <PlatformMemoryConfiguration.h>
|
||||||
|
|
||||||
|
const PSO_ENTRY __attribute__((weak)) PlatformMemoryConfiguration[] = { PSO_END };
|
||||||
|
|
||||||
AGESA_STATUS GetBiosCallout (UINT32 Func, UINT32 Data, VOID *ConfigPtr)
|
AGESA_STATUS GetBiosCallout (UINT32 Func, UINT32 Data, VOID *ConfigPtr)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue