Re: [PATCH 4/5] armv8: remove no longer needed lowlevel_init.S

2022-01-27 Thread Simon Glass
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

2022-01-24 Thread Samuel Holland
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

2022-01-24 Thread Andre Przywara
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