[PATCH v2 05/21] arm: socfpga: Override 'lowlevel_init' to support ATF

Ang, Chee Hong chee.hong.ang at intel.com
Thu Feb 20 03:27:08 CET 2020


> On 2/19/20 1:25 PM, chee.hong.ang at intel.com wrote:
> [...]
> > diff --git a/arch/arm/mach-socfpga/lowlevel_init.S
> > b/arch/arm/mach-socfpga/lowlevel_init.S
> > new file mode 100644
> > index 0000000..68053a0
> > --- /dev/null
> > +++ b/arch/arm/mach-socfpga/lowlevel_init.S
> 
> This should be some lowlevel_init_64.S to make it clear it's only for
> arm64 platforms.
OK. It makes sense. Thanks.
> 
> > @@ -0,0 +1,85 @@
> > +/* SPDX-License-Identifier: GPL-2.0 */
> > +/*
> > + * Copyright (C) 2019, Intel Corporation  */
> > +
> > +#include <asm-offsets.h>
> > +#include <config.h>
> > +#include <linux/linkage.h>
> > +#include <asm/macro.h>
> > +
> > +ENTRY(lowlevel_init)
> > +	mov	x29, lr			/* Save LR */
> > +
> > +#if defined(CONFIG_GICV2) || defined(CONFIG_GICV3) #ifdef
> > +CONFIG_SPL_ATF
> > +	branch_if_slave x0, 2f
> > +#else
> > +	branch_if_slave x0, 1f
> > +#endif
> > +
> > +	ldr	x0, =GICD_BASE
> > +	bl	gic_init_secure
> > +#ifdef CONFIG_SPL_BUILD
> > +	b	2f
> > +#else
> > +	b	3f
> > +#endif
> 
> Can't this be done in C code ? Can we reduce the ifdeffery ?
This lowlevel_init function is shared by SPL and U-Boot and they
run in slightly different flow.
I don't think this can be done in C code but let me see what I can
do to further optimize the flow to reduce the ifdeffery.


More information about the U-Boot mailing list