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)
> 

Reply via email to