linux-ti33x-psp 3.2: for beaglebone set default Asm architecture to armv7-a
authorDenys Dmytriyenko <denys@ti.com>
Thu, 3 May 2012 21:20:32 +0000 (17:20 -0400)
committerDenys Dmytriyenko <denys@ti.com>
Fri, 11 May 2012 01:00:29 +0000 (21:00 -0400)
Beaglebone kernel needs to be built in Thumb2 mode to achieve fast boot
times. Unfortunately, that build is broken under newer binutils-2.22 with
the below Assembler error. The fix is to pass the specific -march=armv7-a
flag to the Assembler to make it work.

| arch/arm/boot/compressed/head.S: Assembler messages:
| arch/arm/boot/compressed/head.S:127: Error: selected processor does not support requested special purpose register -- `mrs r2,cpsr'
| arch/arm/boot/compressed/head.S:134: Error: selected processor does not support requested special purpose register -- `mrs r2,cpsr'
| arch/arm/boot/compressed/head.S:136: Error: selected processor does not support requested special purpose register -- `msr cpsr_c,r2'
| make[2]: *** [arch/arm/boot/compressed/head.o] Error 1
| make[1]: *** [arch/arm/boot/compressed/vmlinux] Error 2

Signed-off-by: Denys Dmytriyenko <denys@ti.com>
Acked-by: Koen Kooi <koen@circuitco.com>
recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0001-arm-boot-compressed-default-asm-arch-to-armv7-a.patch [new file with mode: 0644]
recipes-kernel/linux/linux-ti33x-psp_3.2.bb

diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0001-arm-boot-compressed-default-asm-arch-to-armv7-a.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0001-arm-boot-compressed-default-asm-arch-to-armv7-a.patch
new file mode 100644 (file)
index 0000000..5037880
--- /dev/null
@@ -0,0 +1,36 @@
+From 6b87752bd00d12ac7c8db994480c077857e23bf0 Mon Sep 17 00:00:00 2001
+From: Denys Dmytriyenko <denys@ti.com>
+Date: Thu, 3 May 2012 16:04:16 -0400
+Subject: [PATCH] arch/arm/boot/compressed: set default Asm architecture to armv7-a
+
+This enables building compressed kernel with newer binutils-2.22 when kernel is
+built in Thumb2 mode. Otherwise it fails with the following Assembler error:
+
+| arch/arm/boot/compressed/head.S: Assembler messages:
+| arch/arm/boot/compressed/head.S:127: Error: selected processor does not support requested special purpose register -- `mrs r2,cpsr'
+| arch/arm/boot/compressed/head.S:134: Error: selected processor does not support requested special purpose register -- `mrs r2,cpsr'
+| arch/arm/boot/compressed/head.S:136: Error: selected processor does not support requested special purpose register -- `msr cpsr_c,r2'
+| make[2]: *** [arch/arm/boot/compressed/head.o] Error 1
+| make[1]: *** [arch/arm/boot/compressed/vmlinux] Error 2
+
+Signed-off-by: Denys Dmytriyenko <denys@ti.com>
+---
+ arch/arm/boot/compressed/Makefile |    2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+diff --git a/arch/arm/boot/compressed/Makefile b/arch/arm/boot/compressed/Makefile
+index 21f56ff..e01d370 100644
+--- a/arch/arm/boot/compressed/Makefile
++++ b/arch/arm/boot/compressed/Makefile
+@@ -123,7 +123,7 @@ KBUILD_CFLAGS = $(subst -pg, , $(ORIG_CFLAGS))
+ endif
+ ccflags-y := -fpic -fno-builtin -I$(obj)
+-asflags-y := -Wa,-march=all
++asflags-y := -Wa,-march=armv7-a
+ # Supply kernel BSS size to the decompressor via a linker symbol.
+ KBSS_SZ = $(shell size $(obj)/../../../../vmlinux | awk 'END{print $$3}')
+-- 
+1.7.8.5
+
index 63c0532da3d59710264c210cd6f520060687e432..d1dfaaf1600a7e553be04aede48ded63397d2e2e 100644 (file)
@@ -958,4 +958,5 @@ PATCHES_OVER_PSP = " \
        file://beaglebone/0031-beaglebone-fix-3.5-cape-support.patch \
        file://beaglebone/0032-beaglebone-connect-batterycape-GPIO-to-gpio-charger.patch \
        file://beaglebone/0033-beaglebone-add-support-for-CAN-and-RS232-cape.patch \
        file://beaglebone/0031-beaglebone-fix-3.5-cape-support.patch \
        file://beaglebone/0032-beaglebone-connect-batterycape-GPIO-to-gpio-charger.patch \
        file://beaglebone/0033-beaglebone-add-support-for-CAN-and-RS232-cape.patch \
+       file://beaglebone/0001-arm-boot-compressed-default-asm-arch-to-armv7-a.patch \
 "
 "