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

Alexander Graf agraf at suse.de
Wed Feb 20 16:13:03 UTC 2019


On 02/20/2019 04:24 PM, Matthias Brugger wrote:
>
> On 20/02/2019 15:19, 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.
>>
>> 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.
>>
>> Signed-off-by: Alexander Graf <agraf at suse.de>
>> ---
>>   arch/arm/cpu/armv8/Kconfig | 2 +-
>>   arch/arm/cpu/armv8/start.S | 6 +++---
>>   2 files changed, 4 insertions(+), 4 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..87bff9408b 100644
>> --- a/arch/arm/cpu/armv8/start.S
>> +++ b/arch/arm/cpu/armv8/start.S
>> @@ -88,11 +88,11 @@ 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
>> -	adr	x0, vectors
>> +	adr	x0, _start
> If there is any reason you want to set vbar_elX to _start instead the exception
> entry point, then please explain this in the commit message :)

Ugh, no, that was a stale change from a previous experiment. Thanks for 
catching it!


Alex

>
> other then that:
> Reviewed-by: Matthias Brugger <mbrugger at suse.com>
>
>>   #else
>>   .macro	set_vbar, 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