diff options
author | Arthur Heymans <arthur@aheymans.xyz> | 2019-10-20 01:00:57 +0200 |
---|---|---|
committer | Arthur Heymans <arthur@aheymans.xyz> | 2019-11-03 11:19:04 +0000 |
commit | 2f389f151a0db244def706bc90fd17fe091d8537 (patch) | |
tree | 4269a24bc3f25749c85eb39357d68135964e35ef /src/arch/arm/stages.c | |
parent | 7c9a0e8a9cfa90f8f413f3b485f8103bca80fac6 (diff) | |
download | coreboot-2f389f151a0db244def706bc90fd17fe091d8537.tar.xz |
arch/arm: Pass cbmem_top to ramstage via calling argument
This solution is very generic and can in principle be implemented on
all arch/soc.
Instead trying to figure out which files can be removed from stages
and which cbmem_top implementations need with preprocessor, rename all
cbmem_top implementation to cbmem_top_romstage.
Mechanisms set in place to pass on information from rom- to ram-stage
will be placed in a followup commit.
Change-Id: If31f0f1de17ffc92c9397f32b26db25aff4b7cab
Signed-off-by: Arthur Heymans <arthur@aheymans.xyz>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/36145
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Aaron Durbin <adurbin@chromium.org>
Reviewed-by: Julius Werner <jwerner@chromium.org>
Diffstat (limited to 'src/arch/arm/stages.c')
-rw-r--r-- | src/arch/arm/stages.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/src/arch/arm/stages.c b/src/arch/arm/stages.c index c9f5744f75..fc2ebdb2fc 100644 --- a/src/arch/arm/stages.c +++ b/src/arch/arm/stages.c @@ -22,13 +22,16 @@ * .text.stage_entry section created by -ffunction-sections). */ +#include <cbmem.h> #include <arch/stages.h> #include <arch/cache.h> /** * generic stage entry point. override this if board specific code is needed. */ -__weak void stage_entry(void) +__weak void stage_entry(uintptr_t stage_arg) { + if (!ENV_ROMSTAGE_OR_BEFORE) + _cbmem_top_ptr = stage_arg; main(); } |