summaryrefslogtreecommitdiffstats
path: root/arch/Config.in.arm
AgeCommit message (Collapse)Author
2013-07-18arch/arm: add support for thumb(1) modeGustavo Zacarias
[Peter: also adjust BR2_GCC_TARGET_MODE] Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar> Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2013-07-18arch/arm: update VFPv2 comment to mention ARMv5Thomas Petazzoni
Commit 6b3a0417c4 ('arch/arm: arm926 may have VFP') forgot to update the help text of the VFPv2 option to mention ARMv5. This commit fixes that. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Acked-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2013-07-17arch/arm: arm926 may have VFPGustavo Zacarias
The VFP9-S FPU (VFPv2) is optional for ARM926EJ-S, see: http://www.arm.com/products/processors/classic/arm9/arm926.php?tab=Specifications+ Real silicon: http://www.nxp.com/documents/data_sheet/LPC3180.pdf Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar> Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2013-07-16arch/arm: add support for Thumb2Thomas Petazzoni
Until now, we were using the default ARM instruction set, as used by the toolchain: the 32 bits ARM instruction set for the internal backend, and for external toolchain, whatever default was chosen when the toolchain was generated. This commit adds support for the Thumb2 instruction set. To do so, it: * provides a menuconfig choice between ARM and Thumb2. The choice is only shown when Thumb2 is supported, i.e on ARMv7-A CPUs. * passes the --with-mode={arm,thumb} option when building gcc in the internal backend. This tells the compiler which type of instructions it should generate. * passes the m{arm,thumb} option in the external toolchain wrapper. ARM and Thumb2 code can freely be mixed together, so the fact that the C library has been built either ARM or Thumb2 and that the rest of the code is built Thumb2 or ARM is not a problem. [Peter: fix empty BR2_GCC_TARGET_MODE check] Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2013-07-16arch: improve ARM floating point support and add support for EABIhfThomas Petazzoni
This commit introduces the support for the EABIhf ABI, next to the existing support we have for EABI and OABI (even though OABI support is deprecated). EABIhf allows to improve performance of floating point workload by using floating point registers to transfer floating point arguments when calling functions, instead of using integer registers to do, as is done in the 'softfp' floating point model of EABI. In addition to this, this commit introduces a list of options for the floating point support: * Software floating point * VFP * VFPv3 * VFPv3-D16 * VFPv4 * VFPv4-D16 and it introduces some logic to make sure the options are only visible when it makes sense, depending on the ARM core being selected. This is however made complicated by the fact that certain VFP capabilities are mandatory on some cores, but optional on some other cores. The kconfig logic tries to achieve the following goals: * Hide options that are definitely not possible. * Use safe default values (i.e for Cortex-A5 and A7, the presence of the VFPv4 unit is optional, so we default on software floating point on these cores).. * Show the available possibilities, even if some of them are not necessarily working on a particular core (again, for the Cortex-A5 and A7 cores, there is no way of knowing whether the particular variant used by the user has VFPv4 or not, so we select software floating point by default, but still show VFP/VFPv3/VFPv4 options). It is worth noting that this commit doesn't add support for all possible -mfpu= values on ARM. We haven't added support for fpa, fpe2, fpe3, maverick (those four are only used on very old ARM cores), for vfpv3-fp16, vfpv3-d16-fp16, vfpv3xd, vfpv3xd-fp16, neon-fp16, vfpv4-sp-d16. They can be added quite easily if needed thanks to the new organization of the Config.in options. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2013-07-16arch: Refactor BR2_SOFT_FLOAT into per-architecture optionsThomas Petazzoni
As we are going to introduced a more advanced support of floating point options for the ARM architecture, we need to adjust how the soft-float option is handled. We replace the current hidden option BR2_PREFER_SOFT_FLOAT option and the visible BR2_SOFT_FLOAT option by: * A global hidden BR2_SOFT_FLOAT option, defined in arch/Config.in, that tells whether the architecture-specific code is using software emulated floating point. This hidden option can be used throughout Buildroot to determine whether soft float is used or not. * Per-architecture visible BR2_<arch>_SOFT_FLOAT options, for the architecture for which it makes sense, which allows users to select soft float emulation when needed. This change will allow each architecture to have a different way of presenting its floating point capabilities. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2013-07-14arch/arm: remove setting gcc's apcs-gnu ABI (aka OABI)Yann E. MORIN
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2013-07-14arch/arm: remove OABI optionYann E. MORIN
OABI is more than legacy, it's dead. New developments should go with EABI, since it so much better. >From the Debian EABI page [0] : - floating point performance, with or without an FPU is very much faster - mixing soft and hardfloat code is possible - structure packing is not as painful as it used to be - a more efficient syscall convention - more compatibility with various tools [0] http://wiki.debian.org/ArmEabiPort [Thomas: keep the ABI choice, as we are going to introduce EABIhf later]. Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2013-06-16arm: update processor typesKelvin Cheung
Update arm architecture variant: add the cortex A7. Signed-off-by: Kelvin Cheung <keguang.zhang@gmail.com> Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2013-04-29toolchain/arm: add support for Marvell PJ4Gustavo Zacarias
Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar> Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2013-04-11toolchain/arm: drop generic and old, add fa526/626, unify strongarmGustavo Zacarias
* Add Faraday FA526/626 as suggested on bug #1291 Note however that these cores are v4 and NOT v4t. * Make the sa110 & sa1110 cores -> strongarm since they're the same. * Drop all of the ARM variants lower than v4 including generic, there's no point in supporting obsolete targets. * Fix uClibc USE_BX logic, it was always on, this would break the new FA526/626 support and broke StrongARM since it's a v4 core. Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar> Acked-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2013-02-07arch/arm: fix-up the ARM Kconfig warningYann E. MORIN
Kconfig does not accepts that a symbol that is part of a choice be affected a default value. Fix this by introducing a dummy EABI symbol, and make the real EABI symbol a prompt-less option that depends on !OABI. [Peter: drop arm dependency, rename to EABI_CHOICE] Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Cc: Peter Korsgaard <jacmet@uclibc.org> Cc: Arnout Vandecappelle <arnout@mind.be> Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2013-02-07arm: deprecate OABIArnout Vandecappelle (Essensium/Mind)
The BR2_ARM_EABI config symbol is still kept in order to minimize the impact. Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be> Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2013-02-02arch/Config.in.arm: Use armv6k for arm1136jf-s rev1Benoît Thébaudeau
According to the ARM1136JF-S and ARM1136J-S Revision r1p5 Technical Reference Manual, from release rev1 (r1pn), the ARM1136JF-S processor implements the ARMv6 instruction set with the ARMv6k additions. This patch differentiates the ARM1136JF-S revisions 0 and 1 in order to use either ARMv6j (e.g. on Freescale i.MX31) or ARMv6k (e.g. on Freescale i.MX35). Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau@advansee.com> Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2012-12-13arch/Config.in.arm: Add BR2_ARM_CPU_HAS_NEON similar to how mmx/sse is ↵Peter Korsgaard
handled on x86 NEON support is optional on A5/A9, so let the user choose if SoC has it / wants to use it. Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2012-12-09arm: update processor typesGustavo Zacarias
Update the arm processor types: add the cortex A5 & A15 variants. Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar> Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2012-11-15arch: Config.in string configuration options must be quotedThomas Petazzoni
Suggested by Yann E. Morin. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Reported-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Acked-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2012-11-15arch: improve definition of gcc mtune, mcpu, etc.Thomas Petazzoni
As suggested by Yann E. Morin, there is a better way than our current big Config.in.common to define the gcc mtune, mcpu, march, etc. values. We can split the setting of those values in each architecture file, which makes a lot more sense. Therefore, the Config.in file now creates empty kconfig variables BR2_ARCH, BR2_ENDIAN, BR2_GCC_TARGET_TUNE, BR2_GCC_TARGET_ARCH, BR2_GCC_TARGET_ABI and BR2_GCC_TARGET_CPU. The values of those variables are set by the individual Config.in.<arch> files. This is possible because such files are now only conditionally included depending on the top-level architecture that has been selected. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Acked-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2012-11-04Split target/Config.in.arch into multiple Config.in.* in arch/Thomas Petazzoni
target/Config.in.arch had become too long, and we want to remove the target/ directory. So let's move it to arch/ and split it this way: * An initial Config.in that lists the top-level architecture, and sources the arch-specific Config.in.<arch> files, as well as Config.in.common (see below) * One Config.in.<arch> per architecture, listing the CPU families, ABI choices, etc. * One Config.in.common that defines the gcc mtune, march, mcpu values and other hidden options. [Peter: space->tab fix, mipsel64 little endian, mips3 as noted by Arnout] Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>