summaryrefslogtreecommitdiffstats
path: root/c/src/lib/libbsp/arm/shared/include/start.h
diff options
context:
space:
mode:
Diffstat (limited to 'c/src/lib/libbsp/arm/shared/include/start.h')
-rw-r--r--c/src/lib/libbsp/arm/shared/include/start.h13
1 files changed, 11 insertions, 2 deletions
diff --git a/c/src/lib/libbsp/arm/shared/include/start.h b/c/src/lib/libbsp/arm/shared/include/start.h
index 9df6df4f3f..d5e69c318c 100644
--- a/c/src/lib/libbsp/arm/shared/include/start.h
+++ b/c/src/lib/libbsp/arm/shared/include/start.h
@@ -45,6 +45,15 @@ extern "C" {
#define BSP_START_DATA_SECTION __attribute__((section(".bsp_start_data")))
+/*
+* Many ARM boot loaders pass arguments to loaded OS kernel
+*/
+#ifdef BSP_START_HOOKS_WITH_LOADER_ARGS
+#define BSP_START_HOOKS_LOADER_ARGS int saved_psr, int saved_machid, int saved_dtb_adr
+#else
+#define BSP_START_HOOKS_LOADER_ARGS void
+#endif
+
/**
* @brief System start entry.
*/
@@ -57,7 +66,7 @@ void _start(void);
* stack pointers are initialized but before the copying of the exception
* vectors.
*/
-void bsp_start_hook_0(void);
+void bsp_start_hook_0(BSP_START_HOOKS_LOADER_ARGS);
/**
* @brief Start entry hook 1.
@@ -65,7 +74,7 @@ void bsp_start_hook_0(void);
* This hook will be called from the start entry code after copying of the
* exception vectors but before the call to boot_card().
*/
-void bsp_start_hook_1(void);
+void bsp_start_hook_1(BSP_START_HOOKS_LOADER_ARGS);
/**
* @brief Similar to standard memcpy().