summaryrefslogtreecommitdiff
path: root/arch
AgeCommit message (Collapse)Author
2014-08-18arch/sparc: always has atomic opsYann E. MORIN
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Cc: Anton Kolesov <Anton.Kolesov@synopsys.com> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2014-08-18arch/sh: always has atomic opsYann E. MORIN
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Cc: Anton Kolesov <Anton.Kolesov@synopsys.com> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2014-08-18arch/powerpc: always has atomic opsYann E. MORIN
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Cc: Anton Kolesov <Anton.Kolesov@synopsys.com> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2014-08-18arch/nios2: always has atomic opsYann E. MORIN
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Cc: Anton Kolesov <Anton.Kolesov@synopsys.com> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2014-08-18arch/mips: always has atomic opsYann E. MORIN
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Cc: Anton Kolesov <Anton.Kolesov@synopsys.com> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2014-08-18arch/microblaze: always has atomic opsYann E. MORIN
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Cc: Anton Kolesov <Anton.Kolesov@synopsys.com> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2014-08-18arch/m68k: always has atomic opsYann E. MORIN
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Cc: Anton Kolesov <Anton.Kolesov@synopsys.com> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2014-08-18arch/bfin: always has atomic opsYann E. MORIN
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Cc: Anton Kolesov <Anton.Kolesov@synopsys.com> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2014-08-18arch/avr32: always has atomic opsYann E. MORIN
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Cc: Anton Kolesov <Anton.Kolesov@synopsys.com> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2014-08-18arch/arm: always has atomic opsYann E. MORIN
armv6 and above all have one sort of atomic ops or another. For armv5 and below, they are emulated, either as a kernel trap, a kernel VDSO, or compiler intrinsics. Aarch64 is just armv8, so make it a single commit. ;-) Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Cc: Anton Kolesov <Anton.Kolesov@synopsys.com> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2014-08-18toolchain: drop the now-unused old BR2_TOOLCHAIN_HAS_ATOMIC_INTRINSICSYann E. MORIN
It's now been replaced with BR2_ARCH_HAS_ATOMICS, annd all packages have been changed to use that instead. Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Cc: Anton Kolesov <Anton.Kolesov@synopsys.com> Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2014-08-18arch: add an option to specify if the arch has atomic opsYann E. MORIN
The fact that atomic operations are available is not really a specificity of the toolchain, but rather of the architecture. So, add a new option that architectures that have atomic operations can select. This in turn selects the current toolchain atomic option, until all packages have been converted, at which point the old toolchain option can be removed. Reported-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Cc: Anton Kolesov <Anton.Kolesov@synopsys.com> Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2014-08-03toolchain: Add config option for atomic intrinsicsAnton Kolesov
GCC has several builtin functions that implement atomic operations. Those functions are architecture specific and may not be implemented by the specific toolchain. In case of GCC for ARC those functions rely on LLOCK/SCOND instructions which are optional in ARC CPU's. If ARC CPU doesn't support those instructions but software tries to use them, then application will be aborted with Illegal instruction exception. To avoid confusion user should first specify that their CPU supports atomic extension, which will allow selection of packages that use builtin atomic functions. Signed-off-by: Anton Kolesov <Anton.Kolesov@synopsys.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2014-07-10arch: avr32 should only get removed for the 2015.02 releasePeter Korsgaard
As discussed on the list. Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2014-07-10arch: deprecate the AVR32 architectureThomas Petazzoni
The AVR32 architecture from Atmel is obsolete since a long time, not supported upstream in most of the toolchain components (requires a special version of gcc, an old version of uClibc, etc.). Until February, Simon Dawson was making an excellent job at maintaining AVR32 in Buildroot, and fixing all the issues caused by this architecture. However, Simon focus has changed, and despite his call for a new maintainer for AVR32 in Buildroot, nobody stepped up. The issue of maintaining AVR32 is becoming worse and worse, so this patch proposes to deprecate it for 2014.08, but keeping the support around, to remove it for sure in 2014.11. Cc: Simon Dawson <spdawson@gmail.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Acked-by: Gustavo Zacarias <gustavo@zacarias.com.ar> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2014-05-26powerpc: add powerpc64 and powerpc64le supportCody P Schafer
This enables powerpc64 and powerpc64le. Currently, le needs at least glibc 2.19 and gcc 4.9.0. For gdb, 7.7.1 works (added in an earlier patch). [Peter: also disallow gcc 4.8 for ppc64le] Signed-off-by: Cody P Schafer <cody@linux.vnet.ibm.com> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2014-05-26powerpc: remove unneeded dependenciesCody P Schafer
Signed-off-by: Cody P Schafer <cody@linux.vnet.ibm.com> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2014-05-26powerpc: add power{4,5,6,7,8} cpusCody P Schafer
Signed-off-by: Cody P Schafer <cody@linux.vnet.ibm.com> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2014-05-26powerpc: mark 32-bit only powerpc cpus to prep for adding powerpc64 supportCody P Schafer
Signed-off-by: Cody P Schafer <cody@linux.vnet.ibm.com> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2014-05-26powerpc: add BR2_POWERPC_CPU_HAS_ALTIVEC to replace adhoc deps/checksCody P Schafer
Signed-off-by: Cody P Schafer <cody@linux.vnet.ibm.com> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2014-05-26powerpc: add BR2_POWERPC_CPU_HAS_SPE to replace adhoc deps/checksCody P Schafer
Signed-off-by: Cody P Schafer <cody@linux.vnet.ibm.com> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2014-05-25Add support for powerpc64leJeff Bailey
This patch adds support for powerpc64le-linux-gnu. This includes needed patches to fakeroot and gmp. gmp patch is from upstream HG tree. fakeroot patch is from Ubuntu written by Adam Conrad. Signed-off-by: Jeff Bailey <jeffbailey@google.com> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2014-05-08arch/arm: drop ARM(7TDMI/720T/740T) supportGustavo Zacarias
The toolchain currently doesn't build for nommu ARM and is in need of serious work. Problem is there are no emulation targets and real ARM(7TDMI/720T/740T) hardware that's capable of running linux (enough memory, having a memory controller...) is VERY rare and uses very old versions to make it usable. The ARM nommu focus should go into Cortex M series processors that are obtainable at reasonable cost on modern hardware that has external memory controllers. Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2014-05-03arch: add support for "corei7" Intel CPU optimisationsBernd Kuhls
gcc support was added in version 4.6: http://gcc.gnu.org/gcc-4.6/changes.html Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2014-04-24arm: update processor typesGustavo Zacarias
Update the arm processor types: add the cortex A12 variant supported by gcc 4.9.x Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2014-03-28Disable o32 ABI for MIPS64 architecturesVicente Olivert Riera
Building o32 ELF files for MIPS64 is an exotic configuration that nobody should be using. If o32 is required, then is better if it's built for MIPS 32-bit cores so only 32-bit instructions will be used leading to a more efficient o32 usage. Signed-off-by: Vicente Olivert Riera <Vincent.Riera@imgtec.com> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2014-03-20Fix microblize little endian toolchainJan Drazil
Buildroot toolchain creates big endian binaries instead of little endian ones for microblaze architecture. The reason is wrong BR2_ARCH string. KERNEL_ARCH must contain microblaze in both cases. Signed-off-by: Jan Drazil <xdrazi00@stud.fit.vutbr.cz> Signed-off-by: Jan Viktorin <xvikto03@stud.fit.vutbr.cz> Acked-by: Gustavo Zacarias <gustavo@zacarias.com.ar> Tested-by: Gustavo Zacarias <gustavo@zacarias.com.ar> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2014-02-05arch: remove sh2, sh3 and sh3eb supportThomas Petazzoni
This patch removes the sh2, sh3 and sh3eb support, because the user base is inexistent, and the Linux support for these architectures is poor. The sh2a support is preserved, because at least one user expressed interest in this architecture, and is actually using it: http://lists.busybox.net/pipermail/buildroot/2013-April/070399.html Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2014-02-04arch: remove incorrect condition for endian definition on SuperHThomas Petazzoni
Probably due to some copy/paste mistake, Config.in.sh was defining BR2_ENDIAN to "LITTLE" when the architecture is BR2_x86_64. Due to the fact that Config.in.sh is never included when we are building for x86_64, this is a no-op, but is certainly good to clean up. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2014-01-20arch: use BR2_X86_CPU_HAS_SSE4, SSE42 with jaguarAdrien Béraud
This follow-up commit adds support for SSE 4 and SSE 4.2 to the jaguar architecture. Signed-off-by: Adrien Béraud <adrien.beraud@savoirfairelinux.com> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2014-01-15arch: add support for "jaguar" AMD CPU optimisationsAdrien Béraud
AMD Jaguar ( https://en.wikipedia.org/wiki/Jaguar_%28microarchitecture%29 ) is suddenly a popular architecture since it is used in the PS4 and the XBox One. Many embedded systems are also likely to use it in the next years. This patch adds support for GCC architecture-specific optimisations and tuning for these CPUs. These optimizations are available with GCC 4.8+. Signed-off-by: Adrien Beraud <adrien.beraud@savoirfairelinux.com> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2014-01-13ffmpeg: Add sse4 related options BR2_X86_CPU_HAS_SSE4 / BR2_X86_CPU_HAS_SSE4Bernd Kuhls
Signed-off-by: Bernd Kuhls <berndkuhls@hotmail.com> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2014-01-10deprecated handling: introduce BR2_DEPRECATED_SINCE_xxxx_xxThomas De Schampheleire
In order to keep better track of when a feature got deprecated, and hence when it can be removed, a new set of symbols BR2_DEPRECATED_SINCE_xxxx_xx is introduced. These symbols are automatically selected when BR2_DEPRECATED is selected, and thus are transparent to the user. A deprecated feature will no longer depend on BR2_DEPRECATED directly, but rather on the appropriate BR2_DEPRECATED_SINCE_xxxx_xx. If that symbol does not yet exist, it has to be created in Config.in. When removing a deprecated feature, one should also check whether this was the last feature using the BR2_DEPRECATED_SINCE_xxxx_xx symbol, in which case the latter can be removed from Config.in. A followup patch will make sure the overview is added to the list of deprecated features in the manual, so that a buildroot core developer can easily determine which features to remove in a given development cycle. Signed-off-by: Thomas De Schampheleire <thomas.de.schampheleire@gmail.com> Acked-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2014-01-03Disable MIPS64 ISAs for MIPS32 targetsVicente Olivert Riera
Currently you can select MIPS64 ISAs, like mips64 and mips64r2, for MIPS32 targets. This is incorrect, so we disable the possibility to do that. Reviewed-by: Markos Chandras <markos.chandras@imgtec.com> Signed-off-by: Vicente Olivert Riera <vincent.riera@imgtec.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2013-12-26arch: pass cpu option instead of tune option on ARMThomas Petazzoni
Currently, the ARM Config.in logic specifies values for --with-arch/-march and --with-tune/-mtune, but not for --with-cpu/-mcpu. However, this causes problems on ARMv4, because specifying --with-arch=armv4t isn't enough to make gcc generate ARMv4 code: one should also pass --with-cpu=<some ARMv4 CPU>. Moreover, since Buildroot is generally designed to generate code specifically for the configured target, it makes sense to give our own --with-cpu/-mcpu value instead of relying on the default value used by gcc, and only do small optimizations with -mtune. Reported-by: Adam Hussein <kryme76@yahoo.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Acked-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
2013-12-06Revert "arc: Add option for ARC-specific download site"Mischa Jonker
All packages use github now. This reverts commit 1445b7fd2e46db5d39ad5e2f5cc262574399f5f3. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2013-12-01Merge branch 'next'Peter Korsgaard
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2013-11-28arch/sparc: drop unused variantsGustavo Zacarias
Drop stale v9/ultrasparc/niagara variants. Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2013-11-20Mark MIPS I, II, III and IV as deprecatedVicente Olivert Riera
Deprecate old MIPS ISAs since they are rarely used anymore and they cause multiple build problems for new packages Signed-off-by: Vicente Olivert Riera <Vincent.Riera@imgtec.com> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2013-11-06avr32: pass target arch to gccSimon Dawson
As suggested by Alexander Lukichev and Thomas Petazzoni on the mailing list, only one of the two avr32 microarchitectures is relevant for Buildroot: avr32 Linux implies the avr32b microarchitecure, as used in the ap7000. Signed-off-by: Simon Dawson <spdawson@gmail.com> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2013-10-30arch/Config.in: introduce BR2_KERNEL_64_USERLAND_32 symbolGustavo Zacarias
On some architectures one can be running a 64-bit kernel with a 32-bit userland. Such is the case for sparc64 (unsupported) for example and mips64 with n32 ABI. Some tools that interface directly with the kernel need to be built specially for this, so introduce this symbol to tweak their build in one central kludge to be future-proof. Example: bug #6602. Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2013-10-30arch/mips: Set BR2_GCC_TARGET_ARCH for MIPSMarkos Chandras
Set --with-arch instead of --with-tune for MIPS so that the generated code will be optimal for the given MIPS ISA. Signed-off-by: Markos Chandras <markos.chandras@imgtec.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2013-09-05targets: move target options to their own sub-menuYann E. MORIN
Currently, all target options lie in the top-level menu. This looks a bit clumsy, since all other options are neatly folded into their own sematic sub-menus each. Move the target option into their own sub-menu too. Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Acked-by: Thomas De Schampheleire <thomas.de.schampheleire@gmail.com> Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2013-09-02nios2: Add new architectureEzequiel Garcia
This commit adds very basic support to build for the Nios II architecture. Toolchain support is still missing and instead we need to use an external custom toolchain. Notice that this architecture had been previously removed in Buildroot 2010.05-rc1 release (as explained in the CHANGES file) and this commit adds it back. Acked-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Signed-off-by: Ezequiel Garcia <ezequiel@vanguardiasur.com.ar> Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
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: use tabs instead of spaces in Config.in filesThomas Petazzoni
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> 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>