From 879c9fc4210fa508fdc7e23e6a53709d5751d513 Mon Sep 17 00:00:00 2001 From: Arthur Heymans Date: Fri, 1 Nov 2019 21:42:33 +0100 Subject: [PATCH] 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 Reviewed-on: https://review.coreboot.org/c/coreboot/+/36557 Reviewed-by: Patrick Georgi Tested-by: build bot (Jenkins) --- src/arch/arm64/Kconfig | 2 +- src/soc/nvidia/tegra210/ramstage.c | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/src/arch/arm64/Kconfig b/src/arch/arm64/Kconfig index 0438ded429..c7eafe649a 100644 --- a/src/arch/arm64/Kconfig +++ b/src/arch/arm64/Kconfig @@ -17,7 +17,7 @@ config ARCH_ROMSTAGE_ARM64 config ARCH_RAMSTAGE_ARM64 bool select ARCH_ARM64 - select RAMSTAGE_CBMEM_TOP_ARG if !SOC_NVIDIA_TEGRA210 + select RAMSTAGE_CBMEM_TOP_ARG source src/arch/arm64/armv8/Kconfig diff --git a/src/soc/nvidia/tegra210/ramstage.c b/src/soc/nvidia/tegra210/ramstage.c index 13fa1c6a02..2e01523060 100644 --- a/src/soc/nvidia/tegra210/ramstage.c +++ b/src/soc/nvidia/tegra210/ramstage.c @@ -15,6 +15,7 @@ #include #include +#include #include #include #include @@ -72,6 +73,11 @@ void ramstage_entry(void) if (tegra210_run_mtc() != 0) 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. */ main(); }