AGESA boards: Fix regressions with LATE_CBMEM_INIT
Some configurations of AGESA boards fail to boot after commit
61be360
AGESA: Fix UMA calculations
Implementation of cbmem_find() for ENV_ROMSTAGE expects
that CBMEM has already been initialized. In the case of
LATE_CBMEM_INIT boards, this is not the case and cbmem_top()
returned NULL prior to the offending commmit.
By definition LATE_CBMEM_INIT does not have known cbmem_top()
in ENV_ROMSTAGE except for possible ACPI S3 resume path.
Change-Id: Icb8f44661d479e5ad43b123600305dcbc3ce11e1
Signed-off-by: Kyösti Mälkki <kyosti.malkki@gmail.com>
Reviewed-on: https://review.coreboot.org/20590
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Paul Menzel <paulepanter@users.sourceforge.net>
Reviewed-by: Martin Roth <martinroth@google.com>
Reviewed-by: Aaron Durbin <adurbin@chromium.org>
This commit is contained in:
parent
0755ab98a5
commit
b6a0fe59fc
|
@ -45,6 +45,10 @@ void set_late_cbmem_top(uintptr_t ramtop)
|
|||
/* Top of CBMEM is at highest usable DRAM address below 4GiB. */
|
||||
uintptr_t __attribute__((weak)) restore_cbmem_top(void)
|
||||
{
|
||||
if (IS_ENABLED(CONFIG_LATE_CBMEM_INIT) && ENV_ROMSTAGE)
|
||||
if (!acpi_is_wakeup_s3())
|
||||
return 0;
|
||||
|
||||
return restore_top_of_low_cacheable();
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue