Re: [PATCH 4/5] armv8: remove no longer needed lowlevel_init.S
On Mon, 24 Jan 2022 at 18:15, 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. > > Signed-off-by: Andre Przywara > --- > 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 Reviewed-by: Simon Glass Tested on: orangepi_pc2, orangepi_pc, A20-OLinuXino_MICRO Tested-by: Simon Glass
Re: [PATCH 4/5] armv8: remove no longer needed lowlevel_init.S
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 Reviewed-by: Samuel Holland > --- > 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..000 > --- 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 > -#include > -#include > - > -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) >
[PATCH 4/5] armv8: remove no longer needed lowlevel_init.S
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. Signed-off-by: Andre Przywara --- 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..000 --- 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 -#include -#include - -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) -- 2.17.6