From patchwork Fri Feb 8 23:17:32 2013 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ben Dooks X-Patchwork-Id: 2118951 Return-Path: X-Original-To: patchwork-linux-arm@patchwork.kernel.org Delivered-To: patchwork-process-083081@patchwork2.kernel.org Received: from merlin.infradead.org (merlin.infradead.org [205.233.59.134]) by patchwork2.kernel.org (Postfix) with ESMTP id AC7ABDFE75 for ; Fri, 8 Feb 2013 23:22:09 +0000 (UTC) Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.76 #1 (Red Hat Linux)) id 1U3xEZ-00022U-OO; Fri, 08 Feb 2013 23:19:55 +0000 Received: from ducie-dc1.codethink.co.uk ([37.128.190.40]) by merlin.infradead.org with esmtps (Exim 4.76 #1 (Red Hat Linux)) id 1U3xCm-00019w-E1 for linux-arm-kernel@lists.infradead.org; Fri, 08 Feb 2013 23:18:10 +0000 Received: by ducie-dc1.codethink.co.uk (Postfix, from userid 1002) id 0BD2C46C6E4; Fri, 8 Feb 2013 23:18:01 +0000 (GMT) X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on ducie-dc1.codethink.co.uk X-Spam-Level: X-Spam-Status: No, score=-2.9 required=6.0 tests=ALL_TRUSTED,BAYES_00 autolearn=unavailable version=3.3.2 Received: from rainbowdash.ducie.codethink.co.uk (rainbowdash.dyn.ducie.codethink.co.uk [192.168.24.216]) by ducie-dc1.codethink.co.uk (Postfix) with ESMTPS id 66F1846C4C3; Fri, 8 Feb 2013 23:17:59 +0000 (GMT) Received: from ben by rainbowdash.ducie.codethink.co.uk with local (Exim 4.80) (envelope-from ) id 1U3xCi-0006X9-Cy; Fri, 08 Feb 2013 23:18:00 +0000 From: Ben Dooks To: linux-arm-kernel@lists.infradead.org Subject: [PATCH 02/17] ARM: set BE8 if LE in head code Date: Fri, 8 Feb 2013 23:17:32 +0000 Message-Id: <1360365467-25056-3-git-send-email-ben.dooks@codethink.co.uk> X-Mailer: git-send-email 1.7.10.4 In-Reply-To: <1360365467-25056-1-git-send-email-ben.dooks@codethink.co.uk> References: <1360365467-25056-1-git-send-email-ben.dooks@codethink.co.uk> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20130208_181804_588608_FAF27BEC X-CRM114-Status: GOOD ( 14.06 ) X-Spam-Score: -2.6 (--) X-Spam-Report: SpamAssassin version 3.3.2 on merlin.infradead.org summary: Content analysis details: (-2.6 points) pts rule name description ---- ---------------------- -------------------------------------------------- -0.0 SPF_PASS SPF: sender matches SPF record -0.7 RP_MATCHES_RCVD Envelope sender domain matches handover relay domain -1.9 BAYES_00 BODY: Bayes spam probability is 0 to 1% [score: 0.0000] Cc: Ben Dooks X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Sender: linux-arm-kernel-bounces@lists.infradead.org Errors-To: linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org 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 + 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