From: Chanho Park Date: Fri, 8 Sep 2023 08:08:56 +0000 (+0900) Subject: spl: add __noreturn attribute to spl_invoke_atf function X-Git-Url: http://git.dujemihanovic.xyz/?a=commitdiff_plain;h=a60d9686f21fdf2549858ca0e728bcef545d73d2;p=u-boot.git spl: add __noreturn attribute to spl_invoke_atf function spl_invoke_atf function will not be returned to SPL. Thus, we need to set __noreturn function attribute to the function. Signed-off-by: Chanho Park --- diff --git a/common/spl/spl_atf.c b/common/spl/spl_atf.c index 2c10252834..3bdd013a35 100644 --- a/common/spl/spl_atf.c +++ b/common/spl/spl_atf.c @@ -187,10 +187,10 @@ static inline void raw_write_daif(unsigned int daif) __asm__ __volatile__("msr DAIF, %x0\n\t" : : "r" (daif) : "memory"); } -typedef void (*atf_entry_t)(struct bl31_params *params, void *plat_params); +typedef void __noreturn (*atf_entry_t)(struct bl31_params *params, void *plat_params); -static void bl31_entry(uintptr_t bl31_entry, uintptr_t bl32_entry, - uintptr_t bl33_entry, uintptr_t fdt_addr) +static void __noreturn bl31_entry(uintptr_t bl31_entry, uintptr_t bl32_entry, + uintptr_t bl33_entry, uintptr_t fdt_addr) { atf_entry_t atf_entry = (atf_entry_t)bl31_entry; void *bl31_params; @@ -251,7 +251,7 @@ uintptr_t spl_fit_images_get_entry(void *blob, int node) return val; } -void spl_invoke_atf(struct spl_image_info *spl_image) +void __noreturn spl_invoke_atf(struct spl_image_info *spl_image) { uintptr_t bl32_entry = 0; uintptr_t bl33_entry = CONFIG_TEXT_BASE; diff --git a/include/spl.h b/include/spl.h index f713363f8c..7d30fb57da 100644 --- a/include/spl.h +++ b/include/spl.h @@ -793,7 +793,7 @@ int spl_ymodem_load_image(struct spl_image_info *spl_image, /** * spl_invoke_atf - boot using an ARM trusted firmware image */ -void spl_invoke_atf(struct spl_image_info *spl_image); +void __noreturn spl_invoke_atf(struct spl_image_info *spl_image); /** * bl2_plat_get_bl31_params() - return params for bl31.