From patchwork Thu Apr 10 16:27:12 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Taras Kondratiuk X-Patchwork-Id: 28228 Return-Path: X-Original-To: linaro@patches.linaro.org Delivered-To: linaro@patches.linaro.org Received: from mail-qc0-f200.google.com (mail-qc0-f200.google.com [209.85.216.200]) by ip-10-151-82-157.ec2.internal (Postfix) with ESMTPS id 85A9220671 for ; Thu, 10 Apr 2014 16:27:36 +0000 (UTC) Received: by mail-qc0-f200.google.com with SMTP id i17sf11715180qcy.3 for ; Thu, 10 Apr 2014 09:27:36 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:delivered-to:from:to:cc:subject :date:message-id:sender:precedence:list-id:x-original-sender :x-original-authentication-results:mailing-list:list-post:list-help :list-archive:list-unsubscribe; bh=TJVu+GG0z8vNHH3V/lDjzv4ybi8SOQPmgQCeYDHRWEM=; b=QpSoQYz3Kst3xxbWWoulr8oEF4xJXMBFr7srpcbjfJDe7tdFFfNPa2j3ySy1stq7/G DJCHLhYyuM8y5E8QA4T/LyPUsKy/xMug36ddaI+XINr8OseOersjCsMMhAuTFigBgI0I i3rdblZChOibUXh20Mq5vPheVValek9AexYWZpngT7zqmVswbszfWrWtBB1uIJMidaIJ 8yyoX6+KyPDucCsOuGxD+JN3SqRMrNjYIrnNdyOjDXbAlFTiSib2rkOMPmy25cZW1aZi bkPN556mBTKk+v4q91gu0VugQVG4XAYYJ0jldgsHBJlFA4b+MJSpG02Vy+osqs1kED+s dtaA== X-Gm-Message-State: ALoCoQl4nkLaplq8VswyXyzx8hN/TZYJOx6oN61h3T44VTqQDFAxWIv93PO68Fpl4sA4NrupqQei X-Received: by 10.236.197.39 with SMTP id s27mr7904826yhn.36.1397147256177; Thu, 10 Apr 2014 09:27:36 -0700 (PDT) MIME-Version: 1.0 X-BeenThere: patchwork-forward@linaro.org Received: by 10.140.108.197 with SMTP id j63ls1205871qgf.89.gmail; Thu, 10 Apr 2014 09:27:36 -0700 (PDT) X-Received: by 10.221.28.202 with SMTP id rv10mr15214013vcb.10.1397147256031; Thu, 10 Apr 2014 09:27:36 -0700 (PDT) Received: from mail-ve0-f174.google.com (mail-ve0-f174.google.com [209.85.128.174]) by mx.google.com with ESMTPS id xo2si781846vec.62.2014.04.10.09.27.36 for (version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Thu, 10 Apr 2014 09:27:36 -0700 (PDT) Received-SPF: neutral (google.com: 209.85.128.174 is neither permitted nor denied by best guess record for domain of patch+caf_=patchwork-forward=linaro.org@linaro.org) client-ip=209.85.128.174; Received: by mail-ve0-f174.google.com with SMTP id oz11so3663783veb.33 for ; Thu, 10 Apr 2014 09:27:36 -0700 (PDT) X-Received: by 10.58.1.97 with SMTP id 1mr2159530vel.23.1397147255847; Thu, 10 Apr 2014 09:27:35 -0700 (PDT) X-Forwarded-To: patchwork-forward@linaro.org X-Forwarded-For: patch@linaro.org patchwork-forward@linaro.org Delivered-To: patch@linaro.org Received: by 10.220.221.72 with SMTP id ib8csp73194vcb; Thu, 10 Apr 2014 09:27:35 -0700 (PDT) X-Received: by 10.69.17.230 with SMTP id gh6mr21126099pbd.0.1397147255030; Thu, 10 Apr 2014 09:27:35 -0700 (PDT) Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id wh4si2481356pbc.477.2014.04.10.09.27.34; Thu, 10 Apr 2014 09:27:34 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S964868AbaDJQ10 (ORCPT + 27 others); Thu, 10 Apr 2014 12:27:26 -0400 Received: from mail-ee0-f52.google.com ([74.125.83.52]:43996 "EHLO mail-ee0-f52.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1758514AbaDJQ1X (ORCPT ); Thu, 10 Apr 2014 12:27:23 -0400 Received: by mail-ee0-f52.google.com with SMTP id e49so3209578eek.39 for ; Thu, 10 Apr 2014 09:27:22 -0700 (PDT) X-Received: by 10.15.93.201 with SMTP id w49mr4440580eez.69.1397147241984; Thu, 10 Apr 2014 09:27:21 -0700 (PDT) Received: from uglx0153363.synapse.com ([195.238.92.128]) by mx.google.com with ESMTPSA id z48sm10994433eel.27.2014.04.10.09.27.20 for (version=TLSv1.1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Thu, 10 Apr 2014 09:27:21 -0700 (PDT) From: Taras Kondratiuk To: Russell King , Nico Pitre , Victor Kamensky Cc: linaro-networking@linaro.org, Ben Dooks , Taras Kondratiuk , linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Subject: [PATCH] ARM: zImage: ensure header in LE format for BE8 kernels Date: Thu, 10 Apr 2014 19:27:12 +0300 Message-Id: <1397147232-28516-1-git-send-email-taras.kondratiuk@linaro.org> X-Mailer: git-send-email 1.7.9.5 Sender: linux-kernel-owner@vger.kernel.org Precedence: list List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Removed-Original-Auth: Dkim didn't pass. X-Original-Sender: taras.kondratiuk@linaro.org X-Original-Authentication-Results: mx.google.com; spf=neutral (google.com: 209.85.128.174 is neither permitted nor denied by best guess record for domain of patch+caf_=patchwork-forward=linaro.org@linaro.org) smtp.mail=patch+caf_=patchwork-forward=linaro.org@linaro.org Mailing-list: list patchwork-forward@linaro.org; contact patchwork-forward+owners@linaro.org X-Google-Group-Id: 836684582541 List-Post: , List-Help: , List-Archive: List-Unsubscribe: , From: Nico Pitre All known BE8-capable systems have LE bootloaders, so we need to ensure that the magic number and image start/end values are in little endian format. [ben.dooks@codethink.co.uk: from nico's original email on this subject] Signed-off-by: Ben Dooks [taras.kondratiuk@linaro.org: removed lds.S->lds rule, added target to extra-y] Signed-off-by: Taras Kondratiuk Acked-by: Nicolas Pitre --- Nico, should I add your Signed-off-by? Discussion about the patch: http://www.spinics.net/lists/arm-kernel/msg320670.html Based on v3.14+ master commit 39de65aa2c3eee901db020a4f1396998e09602a3 arch/arm/boot/compressed/.gitignore | 1 + arch/arm/boot/compressed/Makefile | 4 ++-- arch/arm/boot/compressed/head.S | 7 ++++--- arch/arm/boot/compressed/vmlinux.lds.in | 14 ++++++++++++++ 4 files changed, 21 insertions(+), 5 deletions(-) diff --git a/arch/arm/boot/compressed/.gitignore b/arch/arm/boot/compressed/.gitignore index 0714e03..6a26e7b 100644 --- a/arch/arm/boot/compressed/.gitignore +++ b/arch/arm/boot/compressed/.gitignore @@ -10,6 +10,7 @@ piggy.xzkern piggy.lz4 vmlinux vmlinux.lds +vmlinux.lds.S # borrowed libfdt files fdt.c diff --git a/arch/arm/boot/compressed/Makefile b/arch/arm/boot/compressed/Makefile index 68c9183..8a80906 100644 --- a/arch/arm/boot/compressed/Makefile +++ b/arch/arm/boot/compressed/Makefile @@ -114,7 +114,7 @@ targets := vmlinux vmlinux.lds \ # Make sure files are removed during clean extra-y += piggy.gzip piggy.lzo piggy.lzma piggy.xzkern piggy.lz4 \ lib1funcs.S ashldi3.S bswapsdi2.S $(libfdt) $(libfdt_hdrs) \ - hyp-stub.S + hyp-stub.S vmlinux.lds.S ifeq ($(CONFIG_FUNCTION_TRACER),y) ORIG_CFLAGS := $(KBUILD_CFLAGS) @@ -199,7 +199,7 @@ CFLAGS_font.o := -Dstatic= $(obj)/font.c: $(FONTC) $(call cmd,shipped) -$(obj)/vmlinux.lds: $(obj)/vmlinux.lds.in arch/arm/boot/Makefile $(KCONFIG_CONFIG) +$(obj)/vmlinux.lds.S: $(obj)/vmlinux.lds.in arch/arm/boot/Makefile $(KCONFIG_CONFIG) @sed "$(SEDFLAGS)" < $< > $@ $(obj)/hyp-stub.S: $(srctree)/arch/$(SRCARCH)/kernel/hyp-stub.S diff --git a/arch/arm/boot/compressed/head.S b/arch/arm/boot/compressed/head.S index 066b034..8ea1773 100644 --- a/arch/arm/boot/compressed/head.S +++ b/arch/arm/boot/compressed/head.S @@ -130,9 +130,10 @@ start: THUMB( adr r12, BSYM(1f) ) THUMB( bx r12 ) - .word 0x016f2818 @ Magic numbers to help the loader - .word start @ absolute load/run zImage address - .word _edata @ zImage end address + .word _magic_sig @ Magic numbers to help the loader + .word _magic_start @ absolute load/run zImage address + .word _magic_end @ zImage end address + THUMB( .thumb ) 1: ARM_BE8( setend be ) @ go BE8 if compiled for BE8 diff --git a/arch/arm/boot/compressed/vmlinux.lds.in b/arch/arm/boot/compressed/vmlinux.lds.in index 4919f2a..6016223 100644 --- a/arch/arm/boot/compressed/vmlinux.lds.in +++ b/arch/arm/boot/compressed/vmlinux.lds.in @@ -7,6 +7,16 @@ * it under the terms of the GNU General Public License version 2 as * published by the Free Software Foundation. */ + +#ifdef CONFIG_CPU_ENDIAN_BE8 +#define ZIMAGE_MAGIC(x) ( (((x) >> 24) & 0x000000ff) | \ + (((x) >> 8) & 0x0000ff00) | \ + (((x) << 8) & 0x00ff0000) | \ + (((x) << 24) & 0xff000000) ) +#else +#define ZIMAGE_MAGIC(x) (x) +#endif + OUTPUT_ARCH(arm) ENTRY(_start) SECTIONS @@ -57,6 +67,10 @@ SECTIONS .pad : { BYTE(0); . = ALIGN(8); } _edata = .; + _magic_sig = ZIMAGE_MAGIC(0x016f2818); + _magic_start = ZIMAGE_MAGIC(_start); + _magic_end = ZIMAGE_MAGIC(_edata); + . = BSS_START; __bss_start = .; .bss : { *(.bss) }