On 2/20/20 3:27 AM, Ang, Chee Hong wrote: >> On 2/19/20 1:25 PM, chee.hong....@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.
What does this 'different flow' mean ? > 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. That would be nice, thanks.