On 1/24/22 7:15 PM, Andre Przywara wrote: > When we added Allwinner SoC support to ARMv8, we needed to pull in an > implementation of lowlevel_init, as sunxi required it at this time. > > The last few patches got rid of this bogus requirement, and as sunxi was > still the only user, we can now remove lowlevel_init from ARMv8 > altogether.
Well, we are removing lowlevel_init.S anyway. There is still a weak definition of lowlevel_init in arch/arm/cpu/armv8/start.S, which we are now picking up. > Signed-off-by: Andre Przywara <andre.przyw...@arm.com> Reviewed-by: Samuel Holland <sam...@sholland.org> > --- > arch/arm/cpu/armv8/Makefile | 1 - > arch/arm/cpu/armv8/lowlevel_init.S | 43 ------------------------------ > arch/arm/mach-sunxi/board.c | 4 --- > 3 files changed, 48 deletions(-) > delete mode 100644 arch/arm/cpu/armv8/lowlevel_init.S > > diff --git a/arch/arm/cpu/armv8/Makefile b/arch/arm/cpu/armv8/Makefile > index d85ddde430a..85fe0475c86 100644 > --- a/arch/arm/cpu/armv8/Makefile > +++ b/arch/arm/cpu/armv8/Makefile > @@ -42,6 +42,5 @@ obj-$(CONFIG_FSL_LAYERSCAPE) += fsl-layerscape/ > obj-$(CONFIG_S32V234) += s32v234/ > obj-$(CONFIG_TARGET_HIKEY) += hisilicon/ > obj-$(CONFIG_ARMV8_PSCI) += psci.o > -obj-$(CONFIG_ARCH_SUNXI) += lowlevel_init.o > obj-$(CONFIG_TARGET_BCMNS3) += bcmns3/ > obj-$(CONFIG_XEN) += xen/ > diff --git a/arch/arm/cpu/armv8/lowlevel_init.S > b/arch/arm/cpu/armv8/lowlevel_init.S > deleted file mode 100644 > index f4f0cdce9b3..00000000000 > --- a/arch/arm/cpu/armv8/lowlevel_init.S > +++ /dev/null > @@ -1,43 +0,0 @@ > -/* SPDX-License-Identifier: GPL-2.0+ */ > -/* > - * A lowlevel_init function that sets up the stack to call a C function to > - * perform further init. > - */ > - > -#include <asm-offsets.h> > -#include <config.h> > -#include <linux/linkage.h> > - > -ENTRY(lowlevel_init) > - /* > - * Setup a temporary stack. Global data is not available yet. > - */ > -#if defined(CONFIG_SPL_BUILD) && defined(CONFIG_SPL_STACK) > - ldr w0, =CONFIG_SPL_STACK > -#else > - ldr w0, =CONFIG_SYS_INIT_SP_ADDR > -#endif > - bic sp, x0, #0xf /* 16-byte alignment for ABI compliance */ > - > - /* > - * Save the old LR(passed in x29) and the current LR to stack > - */ > - stp x29, x30, [sp, #-16]! > - > - /* > - * Call the very early init function. This should do only the > - * absolute bare minimum to get started. It should not: > - * > - * - set up DRAM > - * - use global_data > - * - clear BSS > - * - try to start a console > - * > - * For boards with SPL this should be empty since SPL can do all of > - * this init in the SPL board_init_f() function which is called > - * immediately after this. > - */ > - bl s_init > - ldp x29, x30, [sp] > - ret > -ENDPROC(lowlevel_init) > diff --git a/arch/arm/mach-sunxi/board.c b/arch/arm/mach-sunxi/board.c > index 42ec02d96e3..a60dc6b299c 100644 > --- a/arch/arm/mach-sunxi/board.c > +++ b/arch/arm/mach-sunxi/board.c > @@ -184,10 +184,6 @@ static int spl_board_load_image(struct spl_image_info > *spl_image, > SPL_LOAD_IMAGE_METHOD("FEL", 0, BOOT_DEVICE_BOARD, spl_board_load_image); > #endif > > -void s_init(void) > -{ > -} > - > #define SUNXI_INVALID_BOOT_SOURCE -1 > > static int sunxi_get_boot_source(void) >