CBMEM: Clarify CBMEM_TOP_BACKUP function usage

The deprecated LATE_CBMEM_INIT function is renamed:
  set_top_of_ram -> set_late_cbmem_top

Obscure term top_of_ram is replaced:
  backup_top_of_ram -> backup_top_of_low_cacheable
  get_top_of_ram -> restore_top_of_low_cacheable

New function that always resolves to CBMEM top boundary, with
or without SMM, is named restore_cbmem_top().

Change-Id: I61d20f94840ad61e9fd55976e5aa8c27040b8fb7
Signed-off-by: Kyösti Mälkki <kyosti.malkki@gmail.com>
Reviewed-on: https://review.coreboot.org/19377
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Aaron Durbin <adurbin@chromium.org>
Reviewed-by: Philippe Mathieu-Daudé <philippe.mathieu.daude@gmail.com>
This commit is contained in:
Kyösti Mälkki
2017-04-19 19:57:01 +03:00
parent ef8bb9136e
commit 70d92b9465
34 changed files with 78 additions and 76 deletions

View File

@@ -18,13 +18,13 @@
#if IS_ENABLED(CONFIG_LATE_CBMEM_INIT)
void __attribute__((weak)) backup_top_of_ram(uint64_t ramtop)
void __attribute__((weak)) backup_top_of_low_cacheable(uintptr_t ramtop)
{
/* Do nothing. Chipset may have implementation to save ramtop in NVRAM.
*/
}
unsigned long __attribute__((weak)) get_top_of_ram(void)
uintptr_t __attribute__((weak)) restore_top_of_low_cacheable(void)
{
return 0;
}
@@ -33,29 +33,34 @@ unsigned long __attribute__((weak)) get_top_of_ram(void)
#if IS_ENABLED(CONFIG_CBMEM_TOP_BACKUP)
static void *ramtop_pointer;
static void *cbmem_top_backup;
void set_top_of_ram(uint64_t ramtop)
void set_late_cbmem_top(uintptr_t ramtop)
{
backup_top_of_ram(ramtop);
backup_top_of_low_cacheable(ramtop);
if (ENV_RAMSTAGE)
ramtop_pointer = (void *)(uintptr_t)ramtop;
cbmem_top_backup = (void *)ramtop;
}
/* Top of CBMEM is at highest usable DRAM address below 4GiB. */
uintptr_t __attribute__((weak)) restore_cbmem_top(void)
{
return restore_top_of_low_cacheable();
}
void *cbmem_top(void)
{
/* Top of cbmem is at lowest usable DRAM address below 4GiB. */
uintptr_t ramtop;
uintptr_t top_backup;
if (ENV_RAMSTAGE && ramtop_pointer != NULL)
return ramtop_pointer;
if (ENV_RAMSTAGE && cbmem_top_backup != NULL)
return cbmem_top_backup;
ramtop = get_top_of_ram();
top_backup = restore_cbmem_top();
if (ENV_RAMSTAGE)
ramtop_pointer = (void *)ramtop;
cbmem_top_backup = (void *)top_backup;
return (void *)ramtop;
return (void *)top_backup;
}
#endif /* CBMEM_TOP_BACKUP */