From a09d33ec88bc5a43e78a23d5ccc8fb7a87fda362 Mon Sep 17 00:00:00 2001 From: Arthur Heymans Date: Wed, 23 Oct 2019 18:58:06 +0200 Subject: arch/ppc64: Pass cbmem_top to ramstage via calling argument This avoids the need for a platform specific implementation of cbmem_top. HOW TO TEST? There is no serial console for the qemu target... Change-Id: I68aa09a46786eba37c009c5f08642445805b08eb Signed-off-by: Arthur Heymans Reviewed-on: https://review.coreboot.org/c/coreboot/+/36276 Tested-by: build bot (Jenkins) Reviewed-by: Marty E. Plummer Reviewed-by: Nico Huber Reviewed-by: Angel Pons --- src/arch/ppc64/Kconfig | 1 + src/arch/ppc64/include/arch/stages.h | 2 +- src/arch/ppc64/stages.c | 5 ++++- 3 files changed, 6 insertions(+), 2 deletions(-) (limited to 'src/arch') diff --git a/src/arch/ppc64/Kconfig b/src/arch/ppc64/Kconfig index 0699e910ce..da9c155917 100644 --- a/src/arch/ppc64/Kconfig +++ b/src/arch/ppc64/Kconfig @@ -1,5 +1,6 @@ config ARCH_PPC64 bool + select RAMSTAGE_CBMEM_TOP_ARG config ARCH_BOOTBLOCK_PPC64 bool diff --git a/src/arch/ppc64/include/arch/stages.h b/src/arch/ppc64/include/arch/stages.h index a4939b1758..37e9f85c8c 100644 --- a/src/arch/ppc64/include/arch/stages.h +++ b/src/arch/ppc64/include/arch/stages.h @@ -16,6 +16,6 @@ #include -void stage_entry(void) __attribute__((section(".text.stage_entry"))); +void stage_entry(uintptr_t stage_arg) __attribute__((section(".text.stage_entry"))); #endif diff --git a/src/arch/ppc64/stages.c b/src/arch/ppc64/stages.c index 3cc9371ffe..aacf45f88f 100644 --- a/src/arch/ppc64/stages.c +++ b/src/arch/ppc64/stages.c @@ -22,9 +22,12 @@ * linker script. */ +#include #include -void stage_entry(void) +void stage_entry(uintptr_t stage_arg) { + if (!ENV_ROMSTAGE_OR_BEFORE) + _cbmem_top_ptr = stage_arg; main(); } -- cgit v1.2.3