summaryrefslogtreecommitdiff
path: root/src/mainboard/cavium
diff options
context:
space:
mode:
authorJulius Werner <jwerner@chromium.org>2018-08-10 16:13:26 -0700
committerJulius Werner <jwerner@chromium.org>2018-08-17 21:29:46 +0000
commit5d6593a43c728a9d526a3cb0026048bf335830d4 (patch)
tree973e093b9daf4edd1c6b6a13b70ba97cce6483d3 /src/mainboard/cavium
parent2d22cda32c5b9f21ab0c7271bc88a2472fc0fda2 (diff)
arm64: Factor out common parts of romstage execution flow
The romstage main() entry point on arm64 boards is usually in mainboard code, but there are a handful of lines that are always needed in there and not really mainboard specific (or chipset specific). We keep arguing every once in a while that this isn't ideal, so rather than arguing any longer let's just fix it. This patch moves the main() function into arch code with callbacks that the platform can hook into. (This approach can probably be expanded onto other architectures, so when that happens this file should move into src/lib.) Tested on Cheza and Kevin. I think the approach is straight-forward enough that we can take this without testing every board. (Note that in a few cases, this delays some platform-specific calls until after console_init() and exception_init()... since these functions don't really take that long, especially if there is no serial console configured, I don't expect this to cause any issues.) Change-Id: I7503acafebabed00dfeedb00b1354a26c536f0fe Signed-off-by: Julius Werner <jwerner@chromium.org> Reviewed-on: https://review.coreboot.org/28199 Reviewed-by: Aaron Durbin <adurbin@chromium.org> Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Diffstat (limited to 'src/mainboard/cavium')
-rw-r--r--src/mainboard/cavium/cn8100_sff_evb/romstage.c14
1 files changed, 2 insertions, 12 deletions
diff --git a/src/mainboard/cavium/cn8100_sff_evb/romstage.c b/src/mainboard/cavium/cn8100_sff_evb/romstage.c
index e8e5cd6f90..7bb53e3de3 100644
--- a/src/mainboard/cavium/cn8100_sff_evb/romstage.c
+++ b/src/mainboard/cavium/cn8100_sff_evb/romstage.c
@@ -14,34 +14,24 @@
*
*/
-#include <arch/exception.h>
-#include <cbmem.h>
-#include <romstage_handoff.h>
+#include <arch/stages.h>
#include <soc/sdram.h>
#include <soc/timer.h>
#include <soc/mmu.h>
#include <stdlib.h>
-#include <console/console.h>
-#include <program_loading.h>
#include <libbdk-hal/bdk-config.h>
#include <string.h>
extern const struct bdk_devicetree_key_value devtree[];
-void main(void)
+void platform_romstage_main(void)
{
watchdog_poke(0);
- console_init();
- exception_init();
-
bdk_config_set_fdt(devtree);
sdram_init();
soc_mmu_init();
watchdog_poke(0);
-
- cbmem_initialize_empty();
- run_ramstage();
}