Patchwork [3/4] conf: machine: includes: add armv6-novfp support

login
register
mail settings
Submitter Martin Jansa
Date Oct. 12, 2011, 7:45 a.m.
Message ID <9e0189cadfc1211c918dac076619f71ec3e4d19a.1318405370.git.Martin.Jansa@gmail.com>
Download mbox | patch
Permalink /patch/13041/
State New, archived
Headers show

Comments

Martin Jansa - Oct. 12, 2011, 7:45 a.m.
From: GNUtoo <GNUtoo@no-log.org>

Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@no-log.org>
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
---
 meta/conf/machine/include/arm/arch-armv6.inc  |   45 ++++++++++++++++---------
 meta/conf/machine/include/tune-arm1136j-s.inc |   10 +++++
 2 files changed, 39 insertions(+), 16 deletions(-)
 create mode 100644 meta/conf/machine/include/tune-arm1136j-s.inc
Phil Blundell - Oct. 12, 2011, 9:26 p.m.
On Wed, 2011-10-12 at 09:45 +0200, Martin Jansa wrote:
>-TUNE_FEATURES_tune-armv6 ?= "armv6 vfp"
<-TUNE_FEATURES_tune-armv6t ?= "armv6 vfp thumb"
> +AVAILTUNES += "armv6 armv6t"
> +TUNE_FEATURES_tune-armv6 ?= "armv6"
> +TUNE_FEATURES_tune-armv6t ?= "armv6 thumb"
> +PACKAGE_EXTRA_ARCHS_tune-armv6 = "${PACKAGE_EXTRA_ARCHS_tune-armv5} armv6"
> +PACKAGE_EXTRA_ARCHS_tune-armv6t = "${PACKAGE_EXTRA_ARCHS_tune-armv5t} armv6 armv6t"
> +
> +# Little Endian +  VFP
> +AVAILTUNES += "armv6-vfp armv6t-vfp armv6hf-vfp armv6thf-vfp"
> +TUNE_FEATURES_tune-armv6-vfp ?= "armv6 vfp"

This patch doesn't seem to do what it says in the subject line.  It
doesn't add an "armv6-novfp" tune, instead it removes vfp from the
existing armv6 and armv6t tunes.

p.
Denis Carikli - Oct. 13, 2011, 10:49 a.m.
>This patch doesn't seem to do what it says in the subject line.  It
>doesn't add an "armv6-novfp" tune, instead it removes vfp from the
>existing armv6 and armv6t tunes.
yes that's what it does,but it also adds an armv6-vfp.
The commit message is wrong, sorry.

by the way is the content ok? or should I re-do the content too(if so I would 
need some indications of what the right way is)?

Denis.
Phil Blundell - Oct. 13, 2011, 7:42 p.m.
On Thu, 2011-10-13 at 12:49 +0200, Denis 'GNUtoo' Carikli wrote:
> >This patch doesn't seem to do what it says in the subject line.  It
> >doesn't add an "armv6-novfp" tune, instead it removes vfp from the
> >existing armv6 and armv6t tunes.
> yes that's what it does,but it also adds an armv6-vfp.
> The commit message is wrong, sorry.
> 
> by the way is the content ok? or should I re-do the content too(if so I would 
> need some indications of what the right way is)?

Well, if it were up to me, I would prefer to leave armv6 and armv6t
alone and (as the subject line implied this patch was going to) add new
tunes for the non-vfp variants of them.  Otherwise everybody who is
currently using armv6 is liable to get a nasty surprise when the meaning
suddenly changes underneath them.

p.

Patch

diff --git a/meta/conf/machine/include/arm/arch-armv6.inc b/meta/conf/machine/include/arm/arch-armv6.inc
index 9f2e9ac..3dd6566 100644
--- a/meta/conf/machine/include/arm/arch-armv6.inc
+++ b/meta/conf/machine/include/arm/arch-armv6.inc
@@ -9,24 +9,37 @@  TUNE_CCARGS += "${@bb.utils.contains("TUNE_FEATURES", "armv6", "-march=armv6", "
 require conf/machine/include/arm/arch-armv5-dsp.inc
 
 # Little Endian
-AVAILTUNES += "armv6 armv6t armv6hf armv6thf"
-TUNE_FEATURES_tune-armv6 ?= "armv6 vfp"
-TUNE_FEATURES_tune-armv6t ?= "armv6 vfp thumb"
-TUNE_FEATURES_tune-armv6hf ?= "${TUNE_FEATURES_tune-armv6} callconvention-hard"
-TUNE_FEATURES_tune-armv6thf ?= "${TUNE_FEATURES_tune-armv6t} callconvention-hard"
-PACKAGE_EXTRA_ARCHS_tune-armv6 = "${PACKAGE_EXTRA_ARCHS_tune-armv5e-vfp} armv6-vfp"
-PACKAGE_EXTRA_ARCHS_tune-armv6t = "${PACKAGE_EXTRA_ARCHS_tune-armv5te-vfp} armv6-vfp armv6t-vfp"
-PACKAGE_EXTRA_ARCHS_tune-armv6hf = "${PACKAGE_EXTRA_ARCHS_tune-armv5ehf-vfp} armv6hf-vfp"
-PACKAGE_EXTRA_ARCHS_tune-armv6thf = "${PACKAGE_EXTRA_ARCHS_tune-armv5tehf-vfp} armv6hf-vfp armv6thf-vfp"
+AVAILTUNES += "armv6 armv6t"
+TUNE_FEATURES_tune-armv6 ?= "armv6"
+TUNE_FEATURES_tune-armv6t ?= "armv6 thumb"
+PACKAGE_EXTRA_ARCHS_tune-armv6 = "${PACKAGE_EXTRA_ARCHS_tune-armv5} armv6"
+PACKAGE_EXTRA_ARCHS_tune-armv6t = "${PACKAGE_EXTRA_ARCHS_tune-armv5t} armv6 armv6t"
+
+# Little Endian +  VFP
+AVAILTUNES += "armv6-vfp armv6t-vfp armv6hf-vfp armv6thf-vfp"
+TUNE_FEATURES_tune-armv6-vfp ?= "armv6 vfp"
+TUNE_FEATURES_tune-armv6t-vfp ?= "armv6 vfp thumb"
+TUNE_FEATURES_tune-armv6hf-vfp ?= "${TUNE_FEATURES_tune-armv6-vfp} callconvention-hard"
+TUNE_FEATURES_tune-armv6thf-vfp ?= "${TUNE_FEATURES_tune-armv6t-vfp} callconvention-hard"
+PACKAGE_EXTRA_ARCHS_tune-armv6-vfp = "${PACKAGE_EXTRA_ARCHS_tune-armv5-vfp} armv6-vfp"
+PACKAGE_EXTRA_ARCHS_tune-armv6t-vfp = "${PACKAGE_EXTRA_ARCHS_tune-armv5t-vfp} armv6-vfp armv6t-vfp"
+PACKAGE_EXTRA_ARCHS_tune-armv6hf-vfp = "${PACKAGE_EXTRA_ARCHS_tune-armv5hf-vfp} armv6hf-vfp"
+PACKAGE_EXTRA_ARCHS_tune-armv6thf-vfp = "${PACKAGE_EXTRA_ARCHS_tune-armv5thf-vfp} armv6hf-vfp armv6thf-vfp"
 
 # Big Endian
-AVAILTUNES += "armv6b armv6tb armv6hfb armv6thfb"
+AVAILTUNES += "armv6b armv6tb"
 TUNE_FEATURES_tune-armv6b ?= "${TUNE_FEATURES_tune-armv6} bigendian"
 TUNE_FEATURES_tune-armv6tb ?= "${TUNE_FEATURES_tune-armv6t} bigendian"
-TUNE_FEATURES_tune-armv6hfb ?= "${TUNE_FEATURES_tune-armv6b} callconvention-hard"
-TUNE_FEATURES_tune-armv6thfb ?= "${TUNE_FEATURES_tune-armv6tb} callconvention-hard"
-PACKAGE_EXTRA_ARCHS_tune-armv6b = "${PACKAGE_EXTRA_ARCHS_tune-armv5eb-vfp} armv6b-vfp"
-PACKAGE_EXTRA_ARCHS_tune-armv6tb = "${PACKAGE_EXTRA_ARCHS_tune-armv5teb-vfp} armv6b-vfp armv6tb-vfp"
-PACKAGE_EXTRA_ARCHS_tune-armv6hfb = "${PACKAGE_EXTRA_ARCHS_tune-armv5ehfb-vfp} armv6hfb-vfp"
-PACKAGE_EXTRA_ARCHS_tune-armv6thfb = "${PACKAGE_EXTRA_ARCHS_tune-armv5tehfb-vfp} armv6hfb-vfp armv6thfb-vfp"
+PACKAGE_EXTRA_ARCHS_tune-armv6b = "${PACKAGE_EXTRA_ARCHS_tune-armv5} armv6b"
+PACKAGE_EXTRA_ARCHS_tune-armv6tb = "${PACKAGE_EXTRA_ARCHS_tune-armv5t} armv6b armv6tb"
 
+# Big Endian + VFP
+AVAILTUNES += "armv6b-vfp armv6tb-vfp armv6hfb-vfp armv6thfb-vfp"
+TUNE_FEATURES_tune-armv6b-vfp ?= "${TUNE_FEATURES_tune-armv6-vfp} bigendian"
+TUNE_FEATURES_tune-armv6tb-vfp ?= "${TUNE_FEATURES_tune-armv6t-vfp} bigendian"
+TUNE_FEATURES_tune-armv6hfb-vfp ?= "${TUNE_FEATURES_tune-armv6b-vfp} callconvention-hard"
+TUNE_FEATURES_tune-armv6thfb-vfp ?= "${TUNE_FEATURES_tune-armv6tb-vfp} callconvention-hard"
+PACKAGE_EXTRA_ARCHS_tune-armv6b-vfp = "${PACKAGE_EXTRA_ARCHS_tune-armv6b} armv6b-vfp"
+PACKAGE_EXTRA_ARCHS_tune-armv6tb-vfp = "${PACKAGE_EXTRA_ARCHS_tune-armv6t} armv6b-vfp armv6tb-vfp"
+PACKAGE_EXTRA_ARCHS_tune-armv6hfb-vfp = "armv6hfb-vfp"
+PACKAGE_EXTRA_ARCHS_tune-armv6thfb-vfp = "armv6hfb-vfp armv6thfb-vfp"
diff --git a/meta/conf/machine/include/tune-arm1136j-s.inc b/meta/conf/machine/include/tune-arm1136j-s.inc
new file mode 100644
index 0000000..ce9ae7c
--- /dev/null
+++ b/meta/conf/machine/include/tune-arm1136j-s.inc
@@ -0,0 +1,10 @@ 
+DEFAULTTUNE ?= "arm1136js"
+
+require conf/machine/include/arm/arch-armv6.inc
+
+TUNEVALID[arm1136js] = "Enable arm1136js specific processor optimizations"
+TUNE_CCARGS += "${@bb.utils.contains("TUNE_FEATURES", "arm1136js", "-mtune=arm1136j-s", "", d)}"
+
+AVAILTUNES += "arm1136js"
+TUNE_FEATURES_tune-arm1136js = "${TUNE_FEATURES_tune-armv6t} arm1136js"
+PACKAGE_EXTRA_ARCHS_tune-arm1136js = "${PACKAGE_EXTRA_ARCHS_tune-armv6t}"