[PATCH 1/3] riscv: define function set_gd()
Sean Anderson
seanga2 at gmail.com
Thu Sep 10 13:04:37 CEST 2020
On 9/10/20 7:00 AM, Heinrich Schuchardt wrote:
> Function set_gd() is needed in the UEFI sub-system if the global data
> pointer is stored in a register.
>
> Signed-off-by: Heinrich Schuchardt <xypron.glpk at gmx.de>
> ---
> arch/riscv/include/asm/global_data.h | 9 +++++++++
> 1 file changed, 9 insertions(+)
>
> diff --git a/arch/riscv/include/asm/global_data.h b/arch/riscv/include/asm/global_data.h
> index 2eb14815bc..b711fcc44d 100644
> --- a/arch/riscv/include/asm/global_data.h
> +++ b/arch/riscv/include/asm/global_data.h
> @@ -39,4 +39,13 @@ struct arch_global_data {
>
> #define DECLARE_GLOBAL_DATA_PTR register gd_t *gd asm ("gp")
>
> +static inline void set_gd(volatile gd_t *gd_ptr)
> +{
> +#ifdef CONFIG_64BIT
> + asm volatile("ld gp, %0\n" : : "m"(gd_ptr));
> +#else
> + asm volatile("lw gp, %0\n" : : "m"(gd_ptr));
> +#endif
> +}
> +
> #endif /* __ASM_GBL_DATA_H */
> --
> 2.28.0
>
Can't we just use arch_setup_gd?
--Sean
More information about the U-Boot
mailing list