[PATCH 02/17] ARM: set BE8 if LE in head code
Ben Dooks
ben.dooks at codethink.co.uk
Sat Feb 9 11:47:33 EST 2013
On 09/02/2013 03:33, Nicolas Pitre wrote:
> On Fri, 8 Feb 2013, Ben Dooks wrote:
>
>> If we are booting in LE and compiled for BE8, then change the
>> processor
>> state in the head code. Since the instruction stream is always LE,
>> we
>> do not need to do anything special.
>>
>> Also ensure that the secondary processors are started in the same
>> mode.
>>
>> Signed-off-by: Ben Dooks <ben.dooks at codethink.co.uk>
>> ---
>> arch/arm/boot/compressed/head.S | 3 +++
>> arch/arm/kernel/head.S | 3 +++
>> 2 files changed, 6 insertions(+)
>>
>> diff --git a/arch/arm/boot/compressed/head.S
>> b/arch/arm/boot/compressed/head.S
>> index fe4d9c3..39940a7 100644
>> --- a/arch/arm/boot/compressed/head.S
>> +++ b/arch/arm/boot/compressed/head.S
>> @@ -134,6 +134,9 @@ start:
>> .word _edata @ zImage end address
>> THUMB( .thumb )
>> 1:
>> +#ifdef CONFIG_CPU_BE8_BOOT_LE
>> + setend be @ go BE-8 if we booted LE / no-op if already BE-8
>> +#endif
>> mrs r9, cpsr
>> #ifdef CONFIG_ARM_VIRT_EXT
>> bl __hyp_stub_install @ get into SVC mode, reversibly
>> diff --git a/arch/arm/kernel/head.S b/arch/arm/kernel/head.S
>> index 486a15a..f1ab279 100644
>> --- a/arch/arm/kernel/head.S
>> +++ b/arch/arm/kernel/head.S
>> @@ -333,6 +333,9 @@ ENTRY(secondary_startup)
>> * the processor type - there is no need to check the machine type
>> * as it has already been validated by the primary processor.
>> */
>> +#ifdef CONFIG_CPU_BE8_BOOT_LE
>> + setend be @ if system starts LE, go to BE-8
>> +#endif
>> #ifdef CONFIG_ARM_VIRT_EXT
>> bl __hyp_stub_install_secondary
>> #endif
>
> For consistency, you should add a setend on the primary CPU entry
> path
> in kernel/head.S and not rely on the decompressor. Some people don't
> use the compressed image.
Thank you for spotting this, will sort it out for the next round.
--
Ben
More information about the linux-arm-kernel
mailing list