[U-Boot] [PATCH v2] armv8: Disable exception vectors in SPL by default

André Przywara andre.przywara at arm.com
Wed Feb 20 20:21:13 UTC 2019


On 20/02/2019 16:14, Alexander Graf wrote:
> Commit 1416e2d2253 ("armv8: make SPL exception vectors optional") had a
> typo in it which effectively disabled exception handling in SPL code always.

Thanks for uncovering this embarrassing bug!

> Since nobody complained, I guess we may as well disable exception handling
> in SPL always by default.
> 
> So fix the bug to make the config option effective, but disable exception
> handling in SPL by default. This gets us to the same functionality as before
> by default, but with much less code included in the binary.

It feels a bit like cheating to just just disable that, but you have a
point with nobody complaining so far. And since it helps me tremendously
with the H6 and new SPL features:

> Signed-off-by: Alexander Graf <agraf at suse.de>

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

Cheers,
Andre.

> ---
> 
> v1 -> v2:
> 
>   - remove incorrect stale change
> ---
>  arch/arm/cpu/armv8/Kconfig | 2 +-
>  arch/arm/cpu/armv8/start.S | 4 ++--
>  2 files changed, 3 insertions(+), 3 deletions(-)
> 
> diff --git a/arch/arm/cpu/armv8/Kconfig b/arch/arm/cpu/armv8/Kconfig
> index 1c12bbde75..fb061c8d73 100644
> --- a/arch/arm/cpu/armv8/Kconfig
> +++ b/arch/arm/cpu/armv8/Kconfig
> @@ -3,7 +3,7 @@ if ARM64
>  config ARMV8_SPL_EXCEPTION_VECTORS
>  	bool "Install crash dump exception vectors"
>  	depends on SPL
> -	default y
> +	default n
>  	help
>  	  The default exception vector table is only used for the crash
>  	  dump, but still takes quite a lot of space in the image size.
> diff --git a/arch/arm/cpu/armv8/start.S b/arch/arm/cpu/armv8/start.S
> index 12a78ee38b..fe52166e28 100644
> --- a/arch/arm/cpu/armv8/start.S
> +++ b/arch/arm/cpu/armv8/start.S
> @@ -88,7 +88,7 @@ pie_fixup_done:
>  	bl reset_sctrl
>  #endif
>  
> -#if defined(CONFIG_ARMV8__SPL_EXCEPTION_VECTORS) || !defined(CONFIG_SPL_BUILD)
> +#if defined(CONFIG_ARMV8_SPL_EXCEPTION_VECTORS) || !defined(CONFIG_SPL_BUILD)
>  .macro	set_vbar, regname, reg
>  	msr	\regname, \reg
>  .endm
> @@ -354,7 +354,7 @@ ENDPROC(smp_kick_all_cpus)
>  /*-----------------------------------------------------------------------*/
>  
>  ENTRY(c_runtime_cpu_setup)
> -#if defined(CONFIG_ARMV8__SPL_EXCEPTION_VECTORS) || !defined(CONFIG_SPL_BUILD)
> +#if defined(CONFIG_ARMV8_SPL_EXCEPTION_VECTORS) || !defined(CONFIG_SPL_BUILD)
>  	/* Relocate vBAR */
>  	adr	x0, vectors
>  	switch_el x1, 3f, 2f, 1f
> 



More information about the U-Boot mailing list