soc/amd/common: Save the UMA settings from AGESA
Save the UMA base and size settings returned by AGESA in amdinitpost(); Change-Id: Id96cc65582118ad41d397b1a600cab1615676a55 Signed-off-by: Marc Jones <marcj303@gmail.com> Reviewed-on: https://review.coreboot.org/23818 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Aaron Durbin <adurbin@chromium.org> Reviewed-by: Martin Roth <martinroth@google.com>
This commit is contained in:
parent
ab2618d488
commit
932b5bdb6d
|
@ -26,6 +26,7 @@
|
||||||
#include <amdblocks/s3_resume.h>
|
#include <amdblocks/s3_resume.h>
|
||||||
#include <amdblocks/agesawrapper.h>
|
#include <amdblocks/agesawrapper.h>
|
||||||
#include <amdblocks/BiosCallOuts.h>
|
#include <amdblocks/BiosCallOuts.h>
|
||||||
|
#include <soc/southbridge.h>
|
||||||
|
|
||||||
void __attribute__((weak)) SetMemParams(AMD_POST_PARAMS *PostParams) {}
|
void __attribute__((weak)) SetMemParams(AMD_POST_PARAMS *PostParams) {}
|
||||||
void __attribute__((weak)) OemPostParams(AMD_POST_PARAMS *PostParams) {}
|
void __attribute__((weak)) OemPostParams(AMD_POST_PARAMS *PostParams) {}
|
||||||
|
@ -202,17 +203,24 @@ AGESA_STATUS agesawrapper_amdinitpost(void)
|
||||||
timestamp_add_now(TS_AGESA_INIT_POST_DONE);
|
timestamp_add_now(TS_AGESA_INIT_POST_DONE);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* If UMA is enabled we currently have it below TOP_MEM as well.
|
* AGESA passes back the base and size of UMA. This is the only
|
||||||
* UMA may or may not be cacheable, so Sub4GCacheTop could be
|
* opportunity to get and save these settings to be used in resource
|
||||||
* higher than UmaBase. With UMA_NONE we see UmaBase==0.
|
* allocation. We also need to allocate the top of low memory.
|
||||||
|
* If UMA is below 4GiB, UMA base is the top of low memory, otherwise
|
||||||
|
* Sub4GCachetop is the top of low memory.
|
||||||
|
* With UMA_NONE we see UmaBase==0.
|
||||||
*/
|
*/
|
||||||
uintptr_t top;
|
uintptr_t top;
|
||||||
if (PostParams->MemConfig.UmaBase)
|
if (PostParams->MemConfig.UmaBase &&
|
||||||
|
(PostParams->MemConfig.UmaBase < ((4ull * GiB) >> 16)))
|
||||||
top = PostParams->MemConfig.UmaBase << 16;
|
top = PostParams->MemConfig.UmaBase << 16;
|
||||||
else
|
else
|
||||||
top = PostParams->MemConfig.Sub4GCacheTop;
|
top = PostParams->MemConfig.Sub4GCacheTop;
|
||||||
backup_top_of_low_cacheable(top);
|
backup_top_of_low_cacheable(top);
|
||||||
|
|
||||||
|
save_uma_size(PostParams->MemConfig.UmaSize * 64 * KiB);
|
||||||
|
save_uma_base((u64)PostParams->MemConfig.UmaBase * 64 * KiB);
|
||||||
|
|
||||||
print_init_post_settings(PostParams);
|
print_init_post_settings(PostParams);
|
||||||
|
|
||||||
if (status != AGESA_SUCCESS)
|
if (status != AGESA_SUCCESS)
|
||||||
|
|
Loading…
Reference in New Issue