>>>>> Hello, I'm working with the BeagleBone and gcc-4.5.4 on Gentoo. If I >>>>> try to compile the 3.6 kernel with CONFIG_THUMB2_KERNEL, I get: >>>>> >>>>> 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' >>>>> >>>>> This post indicates that mainline gcc does not currently support thumb2: >>>>> >>>>> https://groups.google.com/d/msg/beagleboard/P52fgMDzp8A/vupzuh71vdYJ >>>>> >>>>> However, this indicates that thumb2 has been supported since 4.3: >>>>> >>>>> http://gcc.gnu.org/gcc-4.3/changes.html >>>>> >>>>> Can anyone clear this up? >>>> >>>> The errors are coming from an assembler file that is not part of the >>>> GCC sources. Are those instructions valid for Thumb2? I don't know. >>>> If they are valid, then the issue is with the assembler, which is not >>>> part of GCC; check the version of the GNU binutils that you have >>>> installed. If those instructions are not valid, then you need to >>>> change your source. >>> >>> Thanks Ian. I'm using binutils-2.22-r1. Do you happen to know which >>> version of binutils should support thumb2? >> >> Hi Grant. I'm pretty sure this was fixed by: >> >> commit c0d796cf810a84f10703c0390f7b1c5887b837c9 >> Author: Nick Clifton <ni...@redhat.com> >> Date: Wed Jun 13 14:18:59 2012 +0000 >> >> PR gas/12698 >> * config/tc-arm.c (do_t_mrs): Do not require an m-profile >> architecure when assembling for all archiectures. >> (do_t_msr): Likewise. >> >> which will be in the upcoming binutils 2.23. Debian/Ubuntu carry this >> as a patch on top of their 2.22. >> >> -- Michael > > Thanks a lot Michael. I'm having trouble compiling 2.23 on Gentoo but > I'm working on it. > > - Grant
I can compile binutils-2.23.51.0.1 on the Beaglebone, but not 2.23.51.0.2 or 2.23.51.0.3. I can compile the 3.6 kernel with thumb2 support with 2.23.51.0.1. Thanks, Grant