diff options
Diffstat (limited to 'c/src/lib/libbsp/arm/shared/include')
-rw-r--r-- | c/src/lib/libbsp/arm/shared/include/linker-symbols.h | 4 | ||||
-rw-r--r-- | c/src/lib/libbsp/arm/shared/include/start.h | 13 |
2 files changed, 15 insertions, 2 deletions
diff --git a/c/src/lib/libbsp/arm/shared/include/linker-symbols.h b/c/src/lib/libbsp/arm/shared/include/linker-symbols.h index 8bfa5d172d..4fe70de8fa 100644 --- a/c/src/lib/libbsp/arm/shared/include/linker-symbols.h +++ b/c/src/lib/libbsp/arm/shared/include/linker-symbols.h @@ -59,6 +59,10 @@ LINKER_SYMBOL(bsp_stack_und_begin) LINKER_SYMBOL(bsp_stack_und_end) LINKER_SYMBOL(bsp_stack_und_size) +LINKER_SYMBOL(bsp_stack_hyp_begin) +LINKER_SYMBOL(bsp_stack_hyp_end) +LINKER_SYMBOL(bsp_stack_hyp_size) + LINKER_SYMBOL(bsp_stack_svc_begin) LINKER_SYMBOL(bsp_stack_svc_end) LINKER_SYMBOL(bsp_stack_svc_size) 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(). |