From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1946777AbcBRQMo (ORCPT ); Thu, 18 Feb 2016 11:12:44 -0500 Received: from mout.kundenserver.de ([212.227.126.187]:52657 "EHLO mout.kundenserver.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1946575AbcBRQMm (ORCPT ); Thu, 18 Feb 2016 11:12:42 -0500 From: Arnd Bergmann To: Nicolas Pitre Cc: Russell King , linux-arm-kernel@lists.infradead.org, Ard Biesheuvel , Jon Medhurst , Marc Zyngier , Linus Walleij , Maxime Coquelin stm32 , linux-kernel@vger.kernel.org Subject: Re: [PATCH 1/9] ARM: ARMv7-M uses BE-8, not BE-32 Date: Thu, 18 Feb 2016 17:12:13 +0100 Message-ID: <2702301.CTWUiSsjZR@wuerfel> User-Agent: KMail/4.11.5 (Linux/3.16.0-10-generic; KDE/4.11.5; x86_64; ; ) In-Reply-To: References: <1455804123-2526139-1-git-send-email-arnd@arndb.de> <1455804123-2526139-2-git-send-email-arnd@arndb.de> MIME-Version: 1.0 Content-Transfer-Encoding: 7Bit Content-Type: text/plain; charset="us-ascii" X-Provags-ID: V03:K0:xVjq1HzF4JcYMa7PnsVyybPfyfl2ns7XeyvZzFeNlN5xRU3A5Vp Gp0PigA5LUbeYWkF6aaEpHCGxxRGvQh0Da0J8o31j/zkhGLwcP7r8AndrKEBeYEFPnaciAM +vxzhWVDxHUeCANrzgg0YmIE3hAUw3fjQNAblho8N09ocYMrbklF3NT4GRzsXmOgeHWaH0m xOnYwcZsWbp3iyz7xnCIA== X-UI-Out-Filterresults: notjunk:1;V01:K0:S++mPx3QIq4=:WO19ktSxZDPBmFdw9CAjne Tib+BZggfUjY/KyRPd5gXZ0H/KIWfDJJSscyOb3U9o40hTglCMqp6wnv+zhQmYXp4rNsgh5i0 g7bbMBAQdSnRGCwtS/PN3+FSaflQL8sYYy+E/baofw0lIm6zJFT5QUfJe96k7rh01XOs6pWxC xEBVW0/ZsvqDlKfBDQAhhiwT1cKrfPaKpFRpw+0LJWwUBMLGhP4pm3CTOiV7j8Vno3XTkvS98 5vPb2+rr4eBgNIF4DWHDdxNyBOiT88hQ5SjIiTt7hAwZZ1Cb+mhqRvqCE7KVzRk1AoQHdbu0p gniVuExEU1haDzWO8zbA4fJRgWp375vPnnhn2M7atRnV0omrdBrqJiGoCI71bThR1PU6fr8OJ ut3ef8ROL4hBszRT4N9wqw25C6kzmUJHWJmF/nlDKjKRffvt792PPwjyJ/SO0qSbfZJj+ywRW 2m4aWEYOSFQGm+H89iTZrUrbIwmEDmEPlIzZTWQsyT2xHxpGJj+5883CFzUftxykCkA2doGmE DOhiNWy7c11ji60GHZK5NFJwokDW3/eIVWFC08w594dbbMnPJiecsA7v2GKneg3dr7TXbazDB LMVrzFE2a1WFFON2vuKsQwb3ZuCfqz47Sh85rPmrcshHVDYHn3yqvyAUYOBd/nDpkh1BnC/R7 yN+O1ueIG0/gvjPrxRAXdnaWWL1QcaNe4TPWePzL1tWmitx48A4GAMf0BbdLjUC857VLdwU3T myUG64yAA9H7V/pn Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Thursday 18 February 2016 11:06:08 Nicolas Pitre wrote: > On Thu, 18 Feb 2016, Arnd Bergmann wrote: > > > When configuring the kernel for big-endian, we set either BE-8 or BE-32 > > based on the CPU architecture level. Until linux-4.4, we did not have > > any ARMv7-M platform allowing big-endian builds, but now i.MX/Vybrid > > is in that category, adn we get a build error because of this: > > > > arch/arm/kernel/module-plts.c: In function 'get_module_plt': > > arch/arm/kernel/module-plts.c:60:46: error: implicit declaration of function '__opcode_to_mem_thumb32' [-Werror=implicit-function-declaration] > > > > This comes down to picking the wrong default, ARMv7-M uses BE8 > > like ARMv7-A does. Changing the default gets the kernel to compile > > and presumably works. > > Was it tested without BE8 when it was submitted upstream? I don't think > you can switch this freely on a given hardware platform and expect it to > still work. > > mach-imx contains a number of different SoCs, and one SoC was recently tested successfully after a number of endianess bugs got fixed. This was an i.mx6 using a Cortex-A9 core, but we are now also able to build vybrid vf610 big-endian based on that selection. This SoC supports Linux running either on its Cortex-A5 or its Cortex-M3 (or M4?) cores. I am rather sure nobody has ever run Linux in big-endian mode on the Cortex-M platform, specifically because it was always wrong and could not be enabled in Kconfig. Arnd