[BOOT-WRAPPER v2 01/10] aarch64: Remove redundant EL1 entry logic

Andre Przywara andre.przywara at arm.com
Mon Aug 12 10:37:38 PDT 2024


On Mon, 12 Aug 2024 11:15:46 +0100
Mark Rutland <mark.rutland at arm.com> wrote:

Hi,

> For historical reasons the boot-wrapper has code to handle being entered
> at Non-secure EL1, but currently this is unsupported and cannot be used
> to boot a kernel as jump_kernel() unconditionally writes to SCTLR_EL2,
> which will UNDEF.
> 
> Remove the logic for handling Non-secure EL1.

Indeed it hangs late when entered in EL1 atm, so we are not losing any
functionality. It would be nice to support this, but it seems this could be
added much easier after this series, iff people really need that.

Reviewed-by: Andre Przywara <andre.przywara at arm.com>

> Signed-off-by: Mark Rutland <mark.rutland at arm.com>
> Acked-by: Marc Zyngier <maz at kernel.org>
> Cc: Akos Denke <akos.denke at arm.com>
> Cc: Andre Przywara <andre.przywara at arm.com>
> Cc: Luca Fancellu <luca.fancellu at arm.com>
> ---
>  arch/aarch64/boot.S | 17 +----------------
>  1 file changed, 1 insertion(+), 16 deletions(-)
> 
> diff --git a/arch/aarch64/boot.S b/arch/aarch64/boot.S
> index da5fa65..73ddcd0 100644
> --- a/arch/aarch64/boot.S
> +++ b/arch/aarch64/boot.S
> @@ -31,10 +31,8 @@ ASM_FUNC(_start)
>  	b.eq	reset_at_el3
>  	cmp	x0, #CURRENTEL_EL2
>  	b.eq	reset_at_el2
> -	cmp	x0, #CURRENTEL_EL1
> -	b.eq	reset_at_el1
>  
> -	/* Booting at EL0 is not supported */
> +	/* Booting at EL1 or EL0 is not supported */
>  	b	.
>  
>  	/*
> @@ -72,19 +70,6 @@ reset_at_el2:
>  	msr	sctlr_el2, x0
>  	isb
>  
> -	b	reset_no_el3
> -
> -	/*
> -	 * EL1 initialization
> -	 */
> -reset_at_el1:
> -	mov_64	x0, SCTLR_EL1_RESET
> -	msr	sctlr_el1, x0
> -	isb
> -
> -	b	reset_no_el3
> -
> -reset_no_el3:
>  	cpuid	x0, x1
>  	bl	find_logical_id
>  	cmp	x0, #MPIDR_INVALID




More information about the linux-arm-kernel mailing list