Commit Graph

18 Commits

Author SHA1 Message Date
Richard Tollerton b4df0059e2 tune-cortexa9.inc: add vfpv3 tunes
Define tunnings to enable 32 register VFPv3 for cortexa9 processor cores

More details: http://www.arm.com/products/processors/technologies/vector-floating-point.php

(From OE-Core rev: d9635cc96ad1ddeb944bba375b5b55149867966c)

Signed-off-by: Richard Tollerton <rich.tollerton@ni.com>
Signed-off-by: Ioan-Adrian Ratiu <adrian.ratiu@ni.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-02-28 11:32:57 +00:00
Martin Jansa f29d642c2b tune-*: use mcpu instead of mtune for ARM tunes
* since:
  commit cffda9a821a3b83a8529d643c567859e091c6846
  Author: Martin Jansa <Martin.Jansa@gmail.com>
  Date:   Tue Sep 11 17:05:45 2012 +0000

      arch-arm: define different ARMPKGARCH when different CCARGS are used
  we don't need to worry about e.g. cortexa7 device upgrading
  binary package from armv7a feed which would be built with
  -mcpu=cortexa15, so we can use -mcpu instead of -mtune, because
  we won't share the binary feed with MACHINEs built with different
  tune.

(From OE-Core rev: f7bb2d4cf18ca8d2a90b4b3b5c6c48dad106ca28)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-01-07 13:40:19 +00:00
Martin Jansa e9b2ffc0fe feature-arm-{neon,vfp}.inc: refactor and fix issues
* respect all 4 vfp options ('vfp', 'vfpv3d16', 'vfpv3', 'vfpv4') when
  setting -mfloat-abi and ARMPKGSFX_EABI, without this change it wasn't
  possible to use call-convention hard together with vfpv4
* move 'vfpv3d16', 'vfpv3', 'vfpv4' support from
  feature-arm-vfp.inc
  to
  feature-arm-neon.inc
  the main difference is that feature-arm-vfp.inc is included in
  arch-armv5.inc while feature-arm-neon.inc only in armv7*.inc, so
  these options should be added to TUNEVALID also only for armv7*
  MACHINEs.
* support vfpv4 with or without neon
  when both vfpv4 and neon are in TUNE_FEATURES we want to set only one
  -mfpu parameter and to neon-vfpv4
* prevent multiple appends to ARMPKGSFX_FPU, we don't want to include
  e.g. -vfp as well as -vfpv4 when both "vfp" and "vfpv4" are in
  TUNE_FEATURES
* add -mfpu=vfp for tunes with "vfp" in TUNE_FEATURES - before that we
  were only adding -vfp to ARMPKGSFX_FPU
* add TUNE_CCARGS_MFPU variable which is used to set -mfpu parameter as
  well as ARMPKGSFX_FPU suffix in TUNE_PKGARCH, all enabled values are
  appended to it based on TUNE_FEATURES and then the last one is used
  in the actual param and suffix
* this prevents multiple -mfpu options in TUNE_CCARGS

* !!!
  This means we need to change TUNE_PKGARCH and PACKAGE_EXTRA_ARCHS for
  vfpv4, vfpv3d16, vfpv3 tunes, because the -vfp* isn't prependend
  multiple times. If you're using one of these new DEFAULTTUNES (which
  were at least partially broken anyway) and depend on working binary
  package feed upgrade-path, then don't forget to migrate PR service
  database to new TUNE_PKGARCH.

(From OE-Core rev: 6661718158f8fdcdf63b0d48e8fe72d3ac4778f2)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-01-07 13:40:19 +00:00
Martin Jansa 860663a92f arm/arch-arm*, tune-cortexa*, tune-thunderx.inc, powerpac/arch-powerpc64.inc: Use normal assignment
* some tunes were using weak assignment for TUNE_FEATURES, unify
  all tunes to use normal assignment so it behaves consistently

(From OE-Core rev: 0a52bd3ed23e66200401d0836aad783095e7c7a0)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-01-07 13:40:18 +00:00
Martin Jansa 8c483a1994 arch-armv7a, tune-cortexa*: improve indentation
* indent the assignments, so that it's easier to see the algoritm how these
  values are modified and do less errors, see fixes in next commit

(From OE-Core rev: f774b44fa007a2a756ada892ede832b1251d940c)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-01-07 13:40:18 +00:00
Martin Jansa 7498b91d4d arch-armv7a, tune-cortexa*: improve comment VFP -> HF
* the section bellow the comment adds only HF variants, VFP is already
  mixed in the softfp sections above (unlike armv5, armv6 tune files
  where it really was above VFP/DSP section)

(From OE-Core rev: 0c60d744f6ec3b77f044ac7d66e30c00d00fea81)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-01-07 13:40:18 +00:00
Martin Jansa 06859de21b meta/conf/machine: use ' inside quoted values
(From OE-Core rev: 924ccf202a6d89de32fc34a140bf9e35e8e43b4e)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2015-12-01 21:32:05 +00:00
Andy Voltz 13bd8ad021 tune-cortexa*.inc: fix tunings for cortex a5, a7, a8, a9, a15 machines.
Using CORTEX_ID variable reference in the tuning overrides did not work.
This reverts those changes, and adds a tuning file for the cortex-a5.

Revert "tune-cortexa5.inc: Add tune file for cortex-a5"
Revert "tune-cortexa.inc: create a common include for cortex-a armv7a tuning"

(From OE-Core rev: 74158c2e99c6d8631800ae80025d1cc9f19336d2)

Signed-off-by: Andy Voltz <andy.voltz@timesys.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-06-12 17:54:47 +01:00
Andy Voltz cb21024adf tune-cortexa.inc: create a common include for cortex-a armv7a tuning
The tuning files for the cortex-a* processors are mostly identical for
the A7,A8,A9,A15 processors. Rework these files to use a CORTEX_ID
variable to setup the tuning for each specific processor.

(From OE-Core rev: 3e4f4a1cf07ff7cf4c71566492385f8fbf581789)

Signed-off-by: Andy Voltz <andy.voltz@timesys.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-06-07 16:48:29 +01:00
Martin Jansa 60589dd60c conf/machine: use .= instead of += in TUNE_CCARGS
* number of TUNE_CCARGS conditionals is important if we add
  extra space with each one in "else" branch

  I'm building for 2 MACHINEs one is cortexa9, second is cortexa8

  few months ago we added TUNE_CCARGS[vardepvalue] in bitbake.conf
  http://git.openembedded.org/openembedded-core/commit/?id=03f1e34ea3ce80931e9c3cd2ab22824f28a7233b

  which fixed some cases (like mentioned tune-xscale and tune-arm926ejs)
  where both had unused TUNE_CCARGS when common DEFAULTTUNE was used.

  with cortexa[89] it's different, because cortexa9 has one extra TUNE_CCARGS
  TUNE_CCARGS += "${@bb.utils.contains("TUNE_FEATURES", "cortexa9", "-mtune=cortex-a9", "", d)}"
  which adds extra *space* even when not used because of '+=' and as result:

  $ bitbake-diffsigs tmp-eglibc/sstate-diff/1366797730/*/armv7*/adapterbase/*do_configure*
  basehash changed from f986789fb8fb3579ed6a3492cc8a8d10 to c851b5f838d945ee13072e9ad6725dca
  Variable TUNE_CCARGS value changed from
  ' -march=armv7-a     -mthumb-interwork -mfloat-abi=softfp -mfpu=neon '
  to
  ' -march=armv7-a     -mthumb-interwork -mfloat-abi=softfp -mfpu=neon  '
  Hash for dependent task gcc-runtime_4.7.bb.do_populate_sysroot changed from bdeabf7a86958b9110b566344b7916de to 2be5618e6bc8c57ec9db5659bf217915
  Hash for dependent task eglibc_2.17.bb.do_populate_sysroot changed from b4f40fc62dde684acd0a574532a55360 to 97fcb426603d4a1c1099c0504d2ebf7d
  Hash for dependent task glib-2.0_2.34.3.bb.do_populate_sysroot changed from fd2f90b83098c34e88d649d70f6ea4f5 to ebd740bb94ea3eb0a914efda6fc82c4a

(From OE-Core rev: b7430ff83760ac29079d20dc7c62f498a0a9d55d)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-04-29 14:45:06 +01:00
Martin Jansa 9b4e10acc5 tune-cortexa*: Fix TUNE_FEATURES and PACKAGE_EXTRA_ARCHS for thf-neon
* all cortexa*thf-neon except cortexa8 were missing thumb feature from
  TUNE_FEATURES_tune-armv7athf-neon
* all cortexa*thf-neon except cortexa8 included cortexa9t2-vfp instead
  of cortexa9t2hf-vfp
* PACKAGE_EXTRA_ARCHS_tune-cortexa8thf-neon was including from armv7a
  -PACKAGE_EXTRA_ARCHS_tune-armv7ahf-neon
  +PACKAGE_EXTRA_ARCHS_tune-armv7athf-neon
* please do more testing for this, I'm sending this commit mostly
  because I've noticed that new a7 and a15 differ from a8 more then I've
  expected and I don't have any a7/a15 MACHINEs, feel free to extend
  http://git.openembedded.org/openembedded-core-contrib/log/?h=jansa/tune2-test
  to add and test fake a7/a15 configs

(From OE-Core rev: a207ce735b602b751467eb43e09b958e664a8e81)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-03-10 04:36:52 +00:00
Martin Jansa 63de425730 tune-cortexa*: add another TUNE which allows to enable cortexa* together with thumb and neon
* like we have with tune-armv7at-neon

(From OE-Core rev: 3337b695ca3af5b894d9c61436c61a1d1750f089)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-12-03 14:47:58 +00:00
Martin Jansa 6741748aea tune-*: add PACKAGE_EXTRA_ARCHS entries starting with specific ARMPKGARCH
* e.g. arm926ejs DEFAULT tune is compatible with all PACKAGE_EXTRA_ARCHS_tune-armv5te, but needs to list arm926ejs with all possible suffixes too

(From OE-Core rev: ee3e85e3bdd382aca4ad8e2eece44064ee89dcff)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-12-03 14:47:57 +00:00
Martin Jansa f06a11b55f tune-cortexa*, tune-xscale: fix ARMPKGARCH
* hf/t/neon/b suffix is added by other ARMPKGSFX* variables, should not be
  part of ARMPKGARCH, otherwise resulting TUNE_PKGARCH have that suffix twice,
  e.g. cortexa8hf-neonhf-neon

(From OE-Core rev: 007a0dec82a33b01541c7f6fcad5d28c47a318ba)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-12-03 14:47:57 +00:00
Martin Jansa 54ee29e563 tune-*: define more generic DEFAULTTUNE to share feed between machines
* this is mostly for backwards compatibility and to share binary feed
  like it was before, but now without missing different -mtune in it
* if you want to build some package with -mtune add something like this
  to your distro config
  DEFAULTTUNE_qemuarm_pn-openssl = "arm926ejs"
  DEFAULTTUNE_qemuarmx_pn-openssl = "xscale"
  be aware that if you do this you should do it also for all packages
  which depends on openssl because if you dont and you build e.g. dhcp,
  then dhcp build for arm926ejs (even with DEFAULTTUNE armv5te) will
  depend on openssl with arm926ejs, so dhcp in armv5te feed will be
  rebuild after each MACHINE switch.
* cortexm3, cortexr4, iwmmx and ep9312 are using own DEFAULTTUNE because
  they define also different -march
* shared feeds are
  armv4t: arm920t, arm9tdmi
  armv5te: arm926ejs, xscale
  armv7a-neon: cortexa8, cortexa9

(From OE-Core rev: a11bdc36a1be18cc5aa14682b2a2c9ee83141f51)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-11-26 10:01:22 +00:00
Martin Jansa 2c300bccbd arch-arm: define different ARMPKGARCH when different CCARGS are used
* without this tune-xscale and tune-arm926ejs were both creating
  packages in armv5te feed, but each with different -mtune, with
  OEBasicHash enabled it was causing each package to rebuild with new
  -mtune after MACHINE switch, but that doesn't make sense with output
  stored in the same armv5te feed

* this makes different feed for each -mtune, but more generic one to be
  selected with DEFAULTTUNE

* tune-iwmmxt and tune-ep9312 were already using this, just move it
  bellow AVAILTUNES and use ARMPKGARCH_tune-foo syntax

* tune-cortexr4 and tune-cortexm3 are using armv7r/armv7m as ARMPKGARCH
  because there isn't another tune to use the same -march

(From OE-Core rev: cffda9a821a3b83a8529d643c567859e091c6846)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-11-26 10:01:22 +00:00
Denys Dmytriyenko e008fc154f tune-cortexa8/9: fix PACKAGE tunes being all armv7at even for non-Thumb ones
All PACKAGE_EXTRA_ARCHS for cortexa8, cortexa8t and cortexa8-neon have typo in
referencing tune-armv7at even for non-Thumb modes. Probably a copy/paste error.
That's not the case for recently-added hard-fp tunes.

Same for cortexa9.

(From OE-Core rev: 4e91c00bb3a171bebdb716451b901f5f099a04bc)

Signed-off-by: Denys Dmytriyenko <denys@ti.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-03-31 17:59:10 +01:00
Henning Heinold 47b1ea7b6f tune-cortexa9.inc: add tunefile for cortexa9 socs
(From OE-Core rev: 05a46d74ca1a1d9256d454d6ba022a76f287e21c)

Signed-off-by: Henning Heinold <heinold@inf.fu-berlin.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2011-09-28 21:41:43 +01:00