From 0fc50a86c1faeb8ffd42d6c1a121243595fb9143 Mon Sep 17 00:00:00 2001 From: Masahiro Yamada Date: Thu, 1 Feb 2018 18:42:24 +0900 Subject: [PATCH] plat/common: move arch-agnostic fallback functions to C file When we add a new callback, we need to duplicate fallbacks among plat/common/{aarch32,aarch64}/platform_helpers.S This is tedious. I created a new C file, then moved 3 functions: plat_error_handler bl2_plat_preload_setup plat_try_next_boot_source They are called from C, so I do not see a good reason to implement them in assembly. Signed-off-by: Masahiro Yamada --- Makefile | 1 + plat/common/aarch32/platform_helpers.S | 35 +------------------------- plat/common/aarch64/platform_helpers.S | 34 +------------------------ plat/common/platform_helpers_default.c | 31 +++++++++++++++++++++++ 4 files changed, 34 insertions(+), 67 deletions(-) create mode 100644 plat/common/platform_helpers_default.c diff --git a/Makefile b/Makefile index e32ba193..fab310bb 100644 --- a/Makefile +++ b/Makefile @@ -193,6 +193,7 @@ BL_COMMON_SOURCES += common/bl_common.c \ lib/${ARCH}/cache_helpers.S \ lib/${ARCH}/misc_helpers.S \ plat/common/plat_log_common.c \ + plat/common/platform_helpers_default.c \ plat/common/${ARCH}/plat_common.c \ plat/common/${ARCH}/platform_helpers.S \ ${COMPILER_RT_SRCS} \ diff --git a/plat/common/aarch32/platform_helpers.S b/plat/common/aarch32/platform_helpers.S index 0a0e9271..d6185394 100644 --- a/plat/common/aarch32/platform_helpers.S +++ b/plat/common/aarch32/platform_helpers.S @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2017, ARM Limited and Contributors. All rights reserved. + * Copyright (c) 2016-2018, ARM Limited and Contributors. All rights reserved. * * SPDX-License-Identifier: BSD-3-Clause */ @@ -15,10 +15,7 @@ .weak plat_disable_acp .weak bl1_plat_prepare_exit .weak platform_mem_init - .weak plat_error_handler .weak plat_panic_handler - .weak bl2_plat_preload_setup - .weak plat_try_next_boot_source /* ----------------------------------------------------- * Placeholder function which should be redefined by @@ -94,16 +91,6 @@ func bl1_plat_prepare_exit bx lr endfunc bl1_plat_prepare_exit - /* ----------------------------------------------------- - * void plat_error_handler(int err) __dead2; - * Endless loop by default. - * ----------------------------------------------------- - */ -func plat_error_handler - wfi - b plat_error_handler -endfunc plat_error_handler - /* ----------------------------------------------------- * void plat_panic_handler(void) __dead2; * Endless loop by default. @@ -112,23 +99,3 @@ endfunc plat_error_handler func plat_panic_handler b plat_panic_handler endfunc plat_panic_handler - - - /* ----------------------------------------------------- - * Placeholder function which should be redefined by - * each platfrom. - * ----------------------------------------------------- - */ -func bl2_plat_preload_setup - bx lr -endfunc bl2_plat_preload_setup - - /* ----------------------------------------------------- - * Placeholder function which should be redefined by - * each platfrom. - * ----------------------------------------------------- - */ -func plat_try_next_boot_source - mov r0, #0 - bx lr -endfunc plat_try_next_boot_source diff --git a/plat/common/aarch64/platform_helpers.S b/plat/common/aarch64/platform_helpers.S index 85267527..033a12f8 100644 --- a/plat/common/aarch64/platform_helpers.S +++ b/plat/common/aarch64/platform_helpers.S @@ -1,5 +1,5 @@ /* - * Copyright (c) 2013-2017, ARM Limited and Contributors. All rights reserved. + * Copyright (c) 2013-2018, ARM Limited and Contributors. All rights reserved. * * SPDX-License-Identifier: BSD-3-Clause */ @@ -16,10 +16,7 @@ .weak plat_reset_handler .weak plat_disable_acp .weak bl1_plat_prepare_exit - .weak plat_error_handler .weak plat_panic_handler - .weak bl2_plat_preload_setup - .weak plat_try_next_boot_source #if !ENABLE_PLAT_COMPAT .globl platform_get_core_pos @@ -158,16 +155,6 @@ func bl1_plat_prepare_exit ret endfunc bl1_plat_prepare_exit - /* ----------------------------------------------------- - * void plat_error_handler(int err) __dead2; - * Endless loop by default. - * ----------------------------------------------------- - */ -func plat_error_handler - wfi - b plat_error_handler -endfunc plat_error_handler - /* ----------------------------------------------------- * void plat_panic_handler(void) __dead2; * Endless loop by default. @@ -177,22 +164,3 @@ func plat_panic_handler wfi b plat_panic_handler endfunc plat_panic_handler - - /* ----------------------------------------------------- - * Placeholder function which should be redefined by - * each platfrom. - * ----------------------------------------------------- - */ -func bl2_plat_preload_setup - ret -endfunc bl2_plat_preload_setup - - /* ----------------------------------------------------- - * Placeholder function which should be redefined by - * each platfrom. - * ----------------------------------------------------- - */ -func plat_try_next_boot_source - mov x0, #0 - ret -endfunc plat_try_next_boot_source diff --git a/plat/common/platform_helpers_default.c b/plat/common/platform_helpers_default.c new file mode 100644 index 00000000..75c5199d --- /dev/null +++ b/plat/common/platform_helpers_default.c @@ -0,0 +1,31 @@ +/* + * Copyright (c) 2013-2018, ARM Limited and Contributors. All rights reserved. + * + * SPDX-License-Identifier: BSD-3-Clause + */ + +#include +#include + +/* + * Placeholder functions which can be redefined by each platfrom. + */ + +#pragma weak plat_error_handler +#pragma weak bl2_plat_preload_setup +#pragma weak plat_try_next_boot_source + +void __dead2 plat_error_handler(int err) +{ + while (1) + wfi(); +} + +void bl2_plat_preload_setup(void) +{ +} + +int plat_try_next_boot_source(void) +{ + return 0; +} -- 2.30.2