Hi Marek,

On Tue, Mar 5, 2019 at 4:41 AM Marek Vasut <marek.va...@gmail.com> wrote:
[..]
> +.align 8
> +.globl rcar_atf_boot_args
> +rcar_atf_boot_args:
> +       .dword 0
> +       .dword 0
> +       .dword 0
> +       .dword 0
> +
> +ENTRY(save_boot_params)
> +       adr     x8, rcar_atf_boot_args
> +       stp     x0, x1, [x8], #16
> +       stp     x2, x3, [x8], #16
> +       b       save_boot_params_ret
> +ENDPROC(save_boot_params)

What about relocating the function to C like in [1] and passing the 4
arguments to it from ASM like in [2]?
This would allow to:
 - reduce asm operations to minimum (mov and bl) and make code transparent.
 - avoid custom globals and store the ATF information in some C-defined struct.

[1] 
https://github.com/ARM-software/arm-trusted-firmware/blob/c48d02bade88b07fa7f43aa44e5217f68e5d047f/bl1/bl1_main.c#L263
[2] 
https://github.com/ARM-software/arm-trusted-firmware/blob/c48d02bade88b07fa7f43aa44e5217f68e5d047f/bl1/aarch32/bl1_exceptions.S#L133

Best regards,
Eugeniu.
_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
https://lists.denx.de/listinfo/u-boot

Reply via email to