soc/nvidia/tegra210: Populate _cbmem_top_ptr

On this platform the ramstage is run on a different core so passing
cbmem_top via calling arguments is not an option. To work around this
populate _cbmem_top_ptr with cbmem_top_chipset which is also used in
romstage.

Change-Id: I8799c12705e944162c05fb7225ae21d32a2a882b
Signed-off-by: Arthur Heymans <arthur@aheymans.xyz>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/36557
Reviewed-by: Patrick Georgi <pgeorgi@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
This commit is contained in:
Arthur Heymans 2019-11-01 21:42:33 +01:00 committed by Patrick Georgi
parent a09d33ec88
commit 879c9fc421
2 changed files with 7 additions and 1 deletions

View File

@ -17,7 +17,7 @@ config ARCH_ROMSTAGE_ARM64
config ARCH_RAMSTAGE_ARM64 config ARCH_RAMSTAGE_ARM64
bool bool
select ARCH_ARM64 select ARCH_ARM64
select RAMSTAGE_CBMEM_TOP_ARG if !SOC_NVIDIA_TEGRA210 select RAMSTAGE_CBMEM_TOP_ARG
source src/arch/arm64/armv8/Kconfig source src/arch/arm64/armv8/Kconfig

View File

@ -15,6 +15,7 @@
#include <arch/lib_helpers.h> #include <arch/lib_helpers.h>
#include <arch/stages.h> #include <arch/stages.h>
#include <cbmem.h>
#include <console/console.h> #include <console/console.h>
#include <device/mmio.h> #include <device/mmio.h>
#include <gic.h> #include <gic.h>
@ -72,6 +73,11 @@ void ramstage_entry(void)
if (tegra210_run_mtc() != 0) if (tegra210_run_mtc() != 0)
printk(BIOS_ERR, "MTC: No training data.\n"); printk(BIOS_ERR, "MTC: No training data.\n");
/* Ramstage is run on a different core, so passing cbmem_top
via calling arguments is not an option, but it is not a problem
to call cbmem_top_chipset() again here to populate _cbmem_top_ptr. */
_cbmem_top_ptr = (uintptr_t)cbmem_top_chipset();
/* Jump to boot state machine in common code. */ /* Jump to boot state machine in common code. */
main(); main();
} }