From mboxrd@z Thu Jan 1 00:00:00 1970 From: robherring2@gmail.com (Rob Herring) Date: Sat, 09 Feb 2013 15:38:37 -0600 Subject: [PATCH 02/17] ARM: set BE8 if LE in head code In-Reply-To: <1360365467-25056-3-git-send-email-ben.dooks@codethink.co.uk> References: <1360365467-25056-1-git-send-email-ben.dooks@codethink.co.uk> <1360365467-25056-3-git-send-email-ben.dooks@codethink.co.uk> Message-ID: <5116C1DD.1070906@gmail.com> To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org On 02/08/2013 05:17 PM, 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 > --- > 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 Can't you use CONFIG_CPU_BIG_ENDIAN here rather than a new config option? > + 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 >