[PATCH v2 1/1] arm: cpu: armv7m: add ENTRY/ENDPROC macros
Johannes Krottmayer
johannes at krotti42.com
Thu May 8 21:09:33 CEST 2025
Hi Tom!
I have tested the patch on real hardware and it works. But have
must add an additional board which is currently not in the U-Boot
tree from STMicroelectronis. Maybe I will release a patch series
too.
On 5/8/25 21:00, Johannes Krottmayer wrote:
> Since GNU binutils version 2.44, assembly functions must include
> the assembler directive .type name, %function. If not a call to
> these functions fails with the error message 'Unknown destination
> type (ARM/Thumb)' and the error message 'dangerous relocation:
> unsupported relocation' at linking.
>
> The macros ENTRY/ENDPROC includes this directive and should be
> used for all assembly functions.
>
> Signed-off-by: Johannes Krottmayer <johannes at krotti42.com>
> Cc: Tom Rini <trini at konsulko.com>
> ---
> arch/arm/cpu/armv7m/start.S | 20 +++++++++++++-------
> 1 file changed, 13 insertions(+), 7 deletions(-)
>
> diff --git a/arch/arm/cpu/armv7m/start.S b/arch/arm/cpu/armv7m/start.S
> index 0c07f2140c7..3355167b3b0 100644
> --- a/arch/arm/cpu/armv7m/start.S
> +++ b/arch/arm/cpu/armv7m/start.S
> @@ -4,13 +4,19 @@
> * Kamil Lulko, <kamil.lulko at gmail.com>
> */
>
> +#include <linux/linkage.h>
> #include <asm/assembler.h>
>
> -.globl reset
> -.type reset, %function
> -reset:
> - W(b) _main
> +/*
> + * Startup code (reset vector)
> + */
> +ENTRY(reset)
> + W(b) _main @ Jump to _main (C runtime crt0.S)
> +ENDPROC(reset)
>
> -.globl c_runtime_cpu_setup
> -c_runtime_cpu_setup:
> - mov pc, lr
> +/*
> + * Setup CPU for C runtime
> + */
> +ENTRY(c_runtime_cpu_setup)
> + mov pc, lr @ Jump back to caller
> +ENDPROC(c_runtime_cpu_setup)
Kind regards,
Johannes
More information about the U-Boot
mailing list