summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRichard Purdie <richard.purdie@linuxfoundation.org>2011-07-25 19:03:24 +0100
committerRichard Purdie <richard.purdie@linuxfoundation.org>2011-07-27 15:45:48 +0100
commit6afd21bced6513986f27d8cbc7d83bb2d804b5b0 (patch)
tree69e2b6c2fde4c15d948f9a8f798a30926f858600
parent30ddd02277d4513e2649ed168a513205e244bcb1 (diff)
downloadpoky-6afd21bced6513986f27d8cbc7d83bb2d804b5b0.tar.gz
Add ARM tune file overhaul based largely on work from Mark Hatle
(From OE-Core rev: 789dcb8e68a2ab9784ac10ab36815010c61af2fc) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r--meta/conf/distro/defaultsetup.conf3
-rw-r--r--meta/conf/machine/include/arm/arch-arm.inc16
-rw-r--r--meta/conf/machine/include/arm/arch-armv4.inc24
-rw-r--r--meta/conf/machine/include/arm/arch-armv5-dsp.inc40
-rw-r--r--meta/conf/machine/include/arm/arch-armv5.inc51
-rw-r--r--meta/conf/machine/include/arm/arch-armv6.inc32
-rw-r--r--meta/conf/machine/include/arm/arch-armv7.inc55
-rw-r--r--meta/conf/machine/include/arm/arch-armv7a.inc54
-rw-r--r--meta/conf/machine/include/arm/feature-arm-neon.inc3
-rw-r--r--meta/conf/machine/include/arm/feature-arm-thumb.inc25
-rw-r--r--meta/conf/machine/include/arm/feature-arm-vfp.inc6
-rw-r--r--meta/conf/machine/include/tune-arm1136jf-s.inc14
-rw-r--r--meta/conf/machine/include/tune-arm920t.inc14
-rw-r--r--meta/conf/machine/include/tune-arm926ejs.inc18
-rw-r--r--meta/conf/machine/include/tune-arm9tdmi.inc14
-rw-r--r--meta/conf/machine/include/tune-armv7.inc8
-rw-r--r--meta/conf/machine/include/tune-cortexa8.inc21
-rw-r--r--meta/conf/machine/include/tune-cortexm1.inc13
-rw-r--r--meta/conf/machine/include/tune-cortexm3.inc18
-rw-r--r--meta/conf/machine/include/tune-cortexr4.inc18
-rw-r--r--meta/conf/machine/include/tune-ep9312.inc16
-rw-r--r--meta/conf/machine/include/tune-iwmmxt.inc18
-rw-r--r--meta/conf/machine/include/tune-strongarm1100.inc13
-rw-r--r--meta/conf/machine/include/tune-xscale.inc18
24 files changed, 435 insertions, 77 deletions
diff --git a/meta/conf/distro/defaultsetup.conf b/meta/conf/distro/defaultsetup.conf
index 072f03c902..919ed00d16 100644
--- a/meta/conf/distro/defaultsetup.conf
+++ b/meta/conf/distro/defaultsetup.conf
@@ -3,9 +3,6 @@ include conf/distro/include/default-versions.inc
3include conf/distro/include/default-distrovars.inc 3include conf/distro/include/default-distrovars.inc
4include conf/distro/include/world-broken.inc 4include conf/distro/include/world-broken.inc
5 5
6TARGET_FPU_arm ?= "soft"
7TARGET_FPU_armeb ?= "soft"
8
9TCMODE ?= "default" 6TCMODE ?= "default"
10require conf/distro/include/tcmode-${TCMODE}.inc 7require conf/distro/include/tcmode-${TCMODE}.inc
11 8
diff --git a/meta/conf/machine/include/arm/arch-arm.inc b/meta/conf/machine/include/arm/arch-arm.inc
index c517df6334..4ea8b2b2d1 100644
--- a/meta/conf/machine/include/arm/arch-arm.inc
+++ b/meta/conf/machine/include/arm/arch-arm.inc
@@ -1,3 +1,17 @@
1TUNE_ARCH = "arm" 1
2TUNEVALID[bigendian] = "Enable big-endian mode."
3
4ARMPKGARCH ??= "arm"
5ARMPKGSFX_ENDIAN = "${@bb.utils.contains("TUNE_FEATURES", "bigendian", "b", "", d)}"
6ARMPKGSFX_FPU ??= ""
7ARMPKGSFX_DSP ??= ""
8ARMPKGSFX_EABI ??= ""
9ARMPKGSFX_THUMB ??= ""
10
11TUNE_ARCH = "${@bb.utils.contains("TUNE_FEATURES", "bigendian", "armeb", "arm", d)}"
12TUNE_PKGARCH = "${@d.getVar('ARMPKGARCH', True)}${ARMPKGSFX_THUMB}${ARMPKGSFX_DSP}${ARMPKGSFX_EABI}${ARMPKGSFX_ENDIAN}${ARMPKGSFX_FPU}"
2 13
3ABIEXTENSION = "eabi" 14ABIEXTENSION = "eabi"
15
16TARGET_FPU = "${@d.getVar('ARMPKGSFX_FPU', True).strip('-') or 'soft'}"
17
diff --git a/meta/conf/machine/include/arm/arch-armv4.inc b/meta/conf/machine/include/arm/arch-armv4.inc
new file mode 100644
index 0000000000..c014d20eb6
--- /dev/null
+++ b/meta/conf/machine/include/arm/arch-armv4.inc
@@ -0,0 +1,24 @@
1DEFAULTTUNE ?= "armv4"
2
3ARMPKGARCH ?= "armv4"
4
5TUNEVALID[armv4] = "Enable instructions for ARMv4"
6TUNE_CCARGS += "${@bb.utils.contains("TUNE_FEATURES", "armv4", "-march=armv4${ARMPKGSFX_THUMB}", "", d)}"
7
8require conf/machine/include/arm/arch-arm.inc
9require conf/machine/include/arm/feature-arm-thumb.inc
10
11# Little Endian
12AVAILTUNES += "armv4 armv4t"
13TUNE_FEATURES_tune-armv4 ?= "armv4"
14TUNE_FEATURES_tune-armv4t ?= "armv4 thumb"
15PACKAGE_EXTRA_ARCHS_tune-armv4 = "arm armv4"
16PACKAGE_EXTRA_ARCHS_tune-armv4t = "${PACKAGE_EXTRA_ARCHS_tune-armv4} armv4t"
17
18# Big Endian
19AVAILTUNES += "armv4b armv4tb"
20TUNE_FEATURES_tune-armv4b ?= "${TUNE_FEATURES_tune-armv4} bigendian"
21TUNE_FEATURES_tune-armv4tb ?= "${TUNE_FEATURES_tune-armv4t} bigendian"
22PACKAGE_EXTRA_ARCHS_tune-armv4b = "armeb armv4b"
23PACKAGE_EXTRA_ARCHS_tune-armv4tb = "${PACKAGE_EXTRA_ARCHS_tune-armv4} armv4tb"
24
diff --git a/meta/conf/machine/include/arm/arch-armv5-dsp.inc b/meta/conf/machine/include/arm/arch-armv5-dsp.inc
new file mode 100644
index 0000000000..498a012442
--- /dev/null
+++ b/meta/conf/machine/include/arm/arch-armv5-dsp.inc
@@ -0,0 +1,40 @@
1ARMPKGSFX_DSP = "${@bb.utils.contains("TUNE_FEATURES", [ "armv5", "dsp" ], "e", "", d)}"
2
3require conf/machine/include/arm/arch-armv5.inc
4
5# Little Endian
6AVAILTUNES += "armv5e armv5te"
7TUNE_FEATURES_tune-armv5e ?= "armv5 dsp"
8TUNE_FEATURES_tune-armv5te ?= "armv5 dsp thumb"
9PACKAGE_EXTRA_ARCHS_tune-armv5e = "${PACKAGE_EXTRA_ARCHS_tune-armv5} armv5e"
10PACKAGE_EXTRA_ARCHS_tune-armv5te = "${PACKAGE_EXTRA_ARCHS_tune-armv5t} armv5e armv5te"
11
12# Little Endian + VFP/DSP
13AVAILTUNES += "armv5e-vfp armv5te-vfp armv5ehf-vfp armv5tehf-vfp"
14TUNE_FEATURES_tune-armv5e-vfp ?= "armv5 vfp dsp"
15TUNE_FEATURES_tune-armv5te-vfp ?= "armv5 vfp dsp thumb"
16TUNE_FEATURES_tune-armv5ehf-vfp ?= "${TUNE_FEATURES_tune-armv5e-vfp} callconvention-hard"
17TUNE_FEATURES_tune-armv5tehf-vfp ?= "${TUNE_FEATURES_tune-armv5te-vfp} callconvention-hard"
18PACKAGE_EXTRA_ARCHS_tune-armv5e-vfp = "${PACKAGE_EXTRA_ARCHS_tune-armv5-vfp} armv5e armv5e-vfp"
19PACKAGE_EXTRA_ARCHS_tune-armv5te-vfp = "${PACKAGE_EXTRA_ARCHS_tune-armv5t-vfp} armv5e armv5te armv5e-vfp armv5te-vfp"
20PACKAGE_EXTRA_ARCHS_tune-armv5ehf-vfp = "${PACKAGE_EXTRA_ARCHS_tune-armv5hf-vfp} armv5ehf-vfp"
21PACKAGE_EXTRA_ARCHS_tune-armv5tehf-vfp = "${PACKAGE_EXTRA_ARCHS_tune-armv5thf-vfp} armv5ehf-vfp armv5tehf-vfp"
22
23# Big Endian
24AVAILTUNES += "armv5eb armv5teb"
25TUNE_FEATURES_tune-armv5eb ?= "${TUNE_FEATURES_tune-armv5e} bigendian"
26TUNE_FEATURES_tune-armv5teb ?= "${TUNE_FEATURES_tune-armv5te} bigendian"
27PACKAGE_EXTRA_ARCHS_tune-armv5eb = "${PACKAGE_EXTRA_ARCHS_tune-armv5} armv5eb"
28PACKAGE_EXTRA_ARCHS_tune-armv5teb = "${PACKAGE_EXTRA_ARCHS_tune-armv5t} armv5eb armv5teb"
29
30# Big Endian + VFP/DSP
31AVAILTUNES += "armv5eb-vfp armv5teb-vfp armv5ehfb-vfp armv5tehfb-vfp"
32TUNE_FEATURES_tune-armv5eb-vfp ?= "${TUNE_FEATURES_tune-armv5e-vfp} bigendian"
33TUNE_FEATURES_tune-armv5teb-vfp ?= "${TUNE_FEATURES_tune-armv5te-vfp} bigendian"
34TUNE_FEATURES_tune-armv5ehfb-vfp ?= "${TUNE_FEATURES_tune-armv5eb-vfp} callconvention-hard"
35TUNE_FEATURES_tune-armv5tehfb-vfp ?= "${TUNE_FEATURES_tune-armv5teb-vfp} callconvention-hard"
36PACKAGE_EXTRA_ARCHS_tune-armv5eb-vfp = "${PACKAGE_EXTRA_ARCHS_tune-armv5-vfp} armv5eb armv5eb-vfp"
37PACKAGE_EXTRA_ARCHS_tune-armv5teb-vfp = "${PACKAGE_EXTRA_ARCHS_tune-armv5t-vfp} armv5eb armv5teb armv5eb-vfp armv5teb-vfp"
38PACKAGE_EXTRA_ARCHS_tune-armv5ehfb-vfp = "${PACKAGE_EXTRA_ARCHS_tune-armv5hfb-vfp} armv5ehfb-vfp"
39PACKAGE_EXTRA_ARCHS_tune-armv5tehfb-vfp = "${PACKAGE_EXTRA_ARCHS_tune-armv5thfb-vfp} armv5ehfb-vfp armv5tehfb-vfp"
40
diff --git a/meta/conf/machine/include/arm/arch-armv5.inc b/meta/conf/machine/include/arm/arch-armv5.inc
new file mode 100644
index 0000000000..55cbe03562
--- /dev/null
+++ b/meta/conf/machine/include/arm/arch-armv5.inc
@@ -0,0 +1,51 @@
1DEFAULTTUNE ?= "armv5"
2
3ARMPKGARCH ?= "armv5"
4
5TUNEVALID[armv5] = "Enable instructions for ARMv5"
6TUNE_CONFLICTS[armv5] = "armv4"
7TUNE_CCARGS += "${@bb.utils.contains("TUNE_FEATURES", "armv5", "-march=armv5${ARMPKGSFX_THUMB}${ARMPKGSFX_DSP}", "", d)}"
8
9ARMPKGSFX_DSP = "${@bb.utils.contains("TUNE_FEATURES", [ "armv5", "dsp" ], "e", "", d)}"
10
11require conf/machine/include/arm/arch-armv4.inc
12require conf/machine/include/arm/feature-arm-vfp.inc
13
14# Little Endian
15AVAILTUNES += "armv5 armv5t armv5e armv5te"
16TUNE_FEATURES_tune-armv5 ?= "armv5"
17TUNE_FEATURES_tune-armv5t ?= "armv5 thumb"
18PACKAGE_EXTRA_ARCHS_tune-armv5 = "${PACKAGE_EXTRA_ARCHS_tune-armv4} armv5"
19PACKAGE_EXTRA_ARCHS_tune-armv5t = "${PACKAGE_EXTRA_ARCHS_tune-armv4t} armv5 armv5t"
20
21# Little Endian + VFP/DSP
22AVAILTUNES += "armv5-vfp armv5t-vfp armv5hf-vfp armv5thf-vfp"
23TUNE_FEATURES_tune-armv5-vfp ?= "armv5 vfp"
24TUNE_FEATURES_tune-armv5t-vfp ?= "armv5 vfp"
25TUNE_FEATURES_tune-armv5hf-vfp ?= "${TUNE_FEATURES_tune-armv5-vfp} callconvention-hard"
26TUNE_FEATURES_tune-armv5thf-vfp ?= "${TUNE_FEATURES_tune-armv5t-vfp} callconvention-hard"
27PACKAGE_EXTRA_ARCHS_tune-armv5-vfp = "${PACKAGE_EXTRA_ARCHS_tune-armv5} armv5-vfp"
28PACKAGE_EXTRA_ARCHS_tune-armv5t-vfp = "${PACKAGE_EXTRA_ARCHS_tune-armv5t} armv5-vfp armv5t-vfp"
29PACKAGE_EXTRA_ARCHS_tune-armv5hf-vfp = "armv5hf-vfp"
30PACKAGE_EXTRA_ARCHS_tune-armv5thf-vfp = "armv5hf-vfp armv5thf-vfp"
31PACKAGE_EXTRA_ARCHS_tune-armv5tehf-vfp = "${PACKAGE_EXTRA_ARCHS_tune-armv5thf-vfp} armv5ehf-vfp armv5tehf-vfp"
32
33# Big Endian
34AVAILTUNES += "armv5b armv5tb"
35TUNE_FEATURES_tune-armv5b ?= "${TUNE_FEATURES_tune-armv5} bigendian"
36TUNE_FEATURES_tune-armv5tb ?= "${TUNE_FEATURES_tune-armv5t} bigendian"
37PACKAGE_EXTRA_ARCHS_tune-armv5b = "${PACKAGE_EXTRA_ARCHS_tune-armv4} armv5b"
38PACKAGE_EXTRA_ARCHS_tune-armv5tb = "${PACKAGE_EXTRA_ARCHS_tune-armv4t} armv5b armv5tb"
39
40# Big Endian + VFP/DSP
41AVAILTUNES += "armv5b-vfp armv5tb-vfp armv5hfb-vfp armv5thfb-vfp"
42TUNE_FEATURES_tune-armv5b-vfp ?= "${TUNE_FEATURES_tune-armv5-vfp} bigendian"
43TUNE_FEATURES_tune-armv5tb-vfp ?= "${TUNE_FEATURES_tune-armv5t-vfp} bigendian"
44TUNE_FEATURES_tune-armv5hfb-vfp ?= "${TUNE_FEATURES_tune-armv5b-vfp} callconvention-hard"
45TUNE_FEATURES_tune-armv5thfb-vfp ?= "${TUNE_FEATURES_tune-armv5tb-vfp} callconvention-hard"
46PACKAGE_EXTRA_ARCHS_tune-armv5b-vfp = "${PACKAGE_EXTRA_ARCHS_tune-armv5} armv5b-vfp"
47PACKAGE_EXTRA_ARCHS_tune-armv5tb-vfp = "${PACKAGE_EXTRA_ARCHS_tune-armv5t} armv5b-vfp armv5tb-vfp"
48PACKAGE_EXTRA_ARCHS_tune-armv5hfb-vfp = "armv5hfb-vfp"
49PACKAGE_EXTRA_ARCHS_tune-armv5thfb-vfp = "armv5hfb-vfp armv5thfb-vfp"
50
51
diff --git a/meta/conf/machine/include/arm/arch-armv6.inc b/meta/conf/machine/include/arm/arch-armv6.inc
new file mode 100644
index 0000000000..20924c92cb
--- /dev/null
+++ b/meta/conf/machine/include/arm/arch-armv6.inc
@@ -0,0 +1,32 @@
1DEFAULTTUNE ?= "armv6"
2
3ARMPKGARCH ?= "armv6"
4
5TUNEVALID[armv6] = "Enable instructions for ARMv6"
6TUNE_CONFLICTS[armv6] = "armv4 armv5"
7TUNE_CCARGS += "${@bb.utils.contains("TUNE_FEATURES", "armv6", "-march=armv6", "", d)}"
8
9require conf/machine/include/arm/arch-armv5-dsp.inc
10
11# Little Endian
12AVAILTUNES += "armv6 armv6t armv6hf armv6thf"
13TUNE_FEATURES_tune-armv6 ?= "armv6 vfp"
14TUNE_FEATURES_tune-armv6t ?= "armv6 vfp thumb"
15TUNE_FEATURES_tune-armv6hf ?= "${TUNE_FEATURES_tune-armv6} callconvention-hard"
16TUNE_FEATURES_tune-armv6thf ?= "${TUNE_FEATURES_tune-armv6t} callconvention-hard"
17PACKAGE_EXTRA_ARCHS_tune-armv6 = "${PACKAGE_EXTRA_ARCHS_tune-armv5e-vfp} armv6-vfp"
18PACKAGE_EXTRA_ARCHS_tune-armv6t = "${PACKAGE_EXTRA_ARCHS_tune-armv5te-vfp} armv6-vfp armv6t-vfp"
19PACKAGE_EXTRA_ARCHS_tune-armv6hf = "${PACKAGE_EXTRA_ARCHS_tune-armv5ehf-vfp} armv6hf-vfp"
20PACKAGE_EXTRA_ARCHS_tune-armv6thf = "${PACKAGE_EXTRA_ARCHS_tune-armv5tehf-vfp} armv6hf-vfp armv6thf-vfp"
21
22# Big Endian
23AVAILTUNES += "armv6b armv6tb armv6hfb armv6thfb"
24TUNE_FEATURES_tune-armv6b ?= "${TUNE_FEATURES_tune-armv6} bigendian"
25TUNE_FEATURES_tune-armv6tb ?= "${TUNE_FEATURES_tune-armv6t} bigendian"
26TUNE_FEATURES_tune-armv6hfb ?= "${TUNE_FEATURES_tune-armv6b} callconvention-hard"
27TUNE_FEATURES_tune-armv6thfb ?= "${TUNE_FEATURES_tune-armv6tb} callconvention-hard"
28PACKAGE_EXTRA_ARCHS_tune-armv6b = "${PACKAGE_EXTRA_ARCHS_tune-armv5e-vfp} armv6b-vfp"
29PACKAGE_EXTRA_ARCHS_tune-armv6tb = "${PACKAGE_EXTRA_ARCHS_tune-armv5te-vfp} armv6b-vfp armv6tb-vfp"
30PACKAGE_EXTRA_ARCHS_tune-armv6hfb = "${PACKAGE_EXTRA_ARCHS_tune-armv5ehfb-vfp} armv6hfb-vfp"
31PACKAGE_EXTRA_ARCHS_tune-armv6thfb = "${PACKAGE_EXTRA_ARCHS_tune-armv5tehfb-vfp} armv6hfb-vfp armv6thfb-vfp"
32
diff --git a/meta/conf/machine/include/arm/arch-armv7.inc b/meta/conf/machine/include/arm/arch-armv7.inc
new file mode 100644
index 0000000000..8bc8d1049b
--- /dev/null
+++ b/meta/conf/machine/include/arm/arch-armv7.inc
@@ -0,0 +1,55 @@
1DEFAULTTUNE ?= "armv7"
2
3ARMPKGARCH ?= "armv7"
4
5TUNEVALID[armv7] = "Enable instructions for ARMv7"
6TUNE_CONFLICTS[armv7] = "armv4 armv5 armv6"
7TUNE_CCARGS += "${@bb.utils.contains("TUNE_FEATURES", "armv7", "-march=armv7", "", d)}"
8
9require conf/machine/include/arm/arch-armv6.inc
10require conf/machine/include/arm/feature-arm-neon.inc
11
12# Little Endian base configs
13AVAILTUNES += "armv7 armv7t armv7-neon armv7t-neon"
14TUNE_FEATURES_tune-armv7 ?= "armv7 vfp"
15TUNE_FEATURES_tune-armv7t ?= "armv7 vfp thumb"
16TUNE_FEATURES_tune-armv7-neon ?= "armv7 vfp neon"
17TUNE_FEATURES_tune-armv7t-neon ?= "armv7 vfp neon thumb"
18PACKAGE_EXTRA_ARCHS_tune-armv7 = "${PACKAGE_EXTRA_ARCHS_tune-armv6} armv7-vfp"
19PACKAGE_EXTRA_ARCHS_tune-armv7t = "${PACKAGE_EXTRA_ARCHS_tune-armv6t} armv7-vfp armv7t2-vfp"
20PACKAGE_EXTRA_ARCHS_tune-armv7-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv7} armv7-vfp-neon"
21PACKAGE_EXTRA_ARCHS_tune-armv7t-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv7t} armv7-vfp-neon armv7at2-vfp-neon"
22
23# VFP Tunes
24AVAILTUNES += "armv7hf armv7thf armv7hf-neon armv7thf-neon
25TUNE_FEATURES_tune-armv7hf ?= "${TUNE_FEATURES_tune-armv7} callconvention-hard"
26TUNE_FEATURES_tune-armv7thf ?= "${TUNE_FEATURES_tune-armv7t} callconvention-hard"
27TUNE_FEATURES_tune-armv7hf-neon ?= "${TUNE_FEATURES_tune-armv7-neon} callconvention-hard"
28TUNE_FEATURES_tune-armv7thf-neon ?= "${TUNE_FEATURES_tune_armv7t-neon} callconvention-hard"
29PACKAGE_EXTRA_ARCHS_tune-armv7hf = "${PACKAGE_EXTRA_ARCHS_tune-armv6hf} armv7hf-vfp"
30PACKAGE_EXTRA_ARCHS_tune-armv7thf = "${PACKAGE_EXTRA_ARCHS_tune-armv6thf} armv7hf-vfp armv7t2hf-vfp"
31PACKAGE_EXTRA_ARCHS_tune-armv7hf-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv7hf} armv7hf-vfp-neon"
32PACKAGE_EXTRA_ARCHS_tune-armv7thf-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv7thf} armv7hf-vfp-neon armv7at2hf-vfp-neon"
33
34# Big Endian
35AVAILTUNES += "armv7b armv7tb armv7b-neon armv7tb-neon"
36TUNE_FEATURES_tune-armv7b ?= "${TUNE_FEATURES_tune-armv7} bigendian"
37TUNE_FEATURES_tune-armv7tb ?= "${TUNE_FEATURES_tune-armv7t} bigendian"
38TUNE_FEATURES_tune-armv7b-neon ?= "${TUNE_FEATURES_tune-armv7-neon} bigendian"
39TUNE_FEATURES_tune-armv7tb-neon ?= "${TUNE_FEATURES_tune-armv7t-neon} bigendian"
40PACKAGE_EXTRA_ARCHS_tune-armv7b = "${PACKAGE_EXTRA_ARCHS_tune-armv6} armv7b-vfp"
41PACKAGE_EXTRA_ARCHS_tune-armv7tb = "${PACKAGE_EXTRA_ARCHS_tune-armv6t} armv7b-vfp armv7t2b-vfp"
42PACKAGE_EXTRA_ARCHS_tune-armv7b-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv7} armv7b-vfp-neon"
43PACKAGE_EXTRA_ARCHS_tune-armv7tb-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv7t} armv7b-vfp-neon armv7at2b-vfp-neon"
44
45# Big Endian + VFP
46AVAILTUNES += "armv7hfb armv7thfb armv7hfb-neon armv7thfb-neon"
47TUNE_FEATURES_tune-armv7hfb ?= "${TUNE_FEATURES_tune-armv7b} callconvention-hard"
48TUNE_FEATURES_tune-armv7thfb ?= "${TUNE_FEATURES_tune-armv7tb} callconvention-hard"
49TUNE_FEATURES_tune-armv7hfb-neon ?= "${TUNE_FEATURES_tune-armv7b-neon} callconvention-hard"
50TUNE_FEATURES_tune-armv7thfb-neon ?= "${TUNE_FEATURES_tune_armv7tb-neon} callconvention-hard"
51PACKAGE_EXTRA_ARCHS_tune-armv7hfb = "${PACKAGE_EXTRA_ARCHS_tune-armv6hfb} armv7hfb-vfp"
52PACKAGE_EXTRA_ARCHS_tune-armv7thfb = "${PACKAGE_EXTRA_ARCHS_tune-armv6thfb} armv7hfb-vfp armv7t2hfb-vfp"
53PACKAGE_EXTRA_ARCHS_tune-armv7hfb-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv7hfb} armv7hfb-vfp-neon"
54PACKAGE_EXTRA_ARCHS_tune-armv7thfb-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv7thfb} armv7hfb-vfp-neon armv7at2hfb-vfp-neon"
55
diff --git a/meta/conf/machine/include/arm/arch-armv7a.inc b/meta/conf/machine/include/arm/arch-armv7a.inc
new file mode 100644
index 0000000000..ce9cee5047
--- /dev/null
+++ b/meta/conf/machine/include/arm/arch-armv7a.inc
@@ -0,0 +1,54 @@
1DEFAULTTUNE ?= "armv7a"
2
3ARMPKGARCH ?= "armv7a"
4
5TUNEVALID[armv7-a] = "Enable instructions for ARMv7-a"
6TUNE_CONFLICTS[armv7a] = "armv4 armv5 armv6 armv7"
7TUNE_CCARGS += "${@bb.utils.contains("TUNE_FEATURES", "armv7a", "-march=armv7-a -fno-tree-vectorize", "", d)}"
8
9require conf/machine/include/arm/arch-armv7.inc
10
11# Little Endian base configs
12AVAILTUNES += "armv7a armv7at armv7a-neon armv7at-neon"
13TUNE_FEATURES_tune-armv7a ?= "armv7a vfp"
14TUNE_FEATURES_tune-armv7at ?= "armv7a vfp thumb"
15TUNE_FEATURES_tune-armv7a-neon ?= "armv7a vfp neon"
16TUNE_FEATURES_tune-armv7at-neon ?= "armv7a vfp neon thumb"
17PACKAGE_EXTRA_ARCHS_tune-armv7a = "${PACKAGE_EXTRA_ARCHS_tune-armv7} armv7a-vfp"
18PACKAGE_EXTRA_ARCHS_tune-armv7a-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv7a} armv7a-vfp-neon"
19PACKAGE_EXTRA_ARCHS_tune-armv7at = "${PACKAGE_EXTRA_ARCHS_tune-armv7t} armv7a-vfp armv7at2-vfp"
20PACKAGE_EXTRA_ARCHS_tune-armv7at-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv7at} armv7a-vfp-neon armv7at2-vfp-neon"
21
22# VFP Tunes
23AVAILTUNES += "armv7hf armv7thf armv7hf-neon armv7thf-neon
24TUNE_FEATURES_tune-armv7ahf ?= "${TUNE_FEATURES_tune-armv7a} callconvention-hard"
25TUNE_FEATURES_tune-armv7athf ?= "${TUNE_FEATURES_tune-armv7at} callconvention-hard"
26TUNE_FEATURES_tune-armv7ahf-neon ?= "${TUNE_FEATURES_tune-armv7a-neon} callconvention-hard"
27TUNE_FEATURES_tune-armv7athf-neon ?= "${TUNE_FEATURES_tune_armv7at-neon} callconvention-hard"
28PACKAGE_EXTRA_ARCHS_tune-armv7ahf = "${PACKAGE_EXTRA_ARCHS_tune-armv7hf} armv7ahf-vfp"
29PACKAGE_EXTRA_ARCHS_tune-armv7athf = "${PACKAGE_EXTRA_ARCHS_tune-armv7thf} armv7ahf-vfp armv7at2hf-vfp"
30PACKAGE_EXTRA_ARCHS_tune-armv7ahf-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv7ahf} armv7ahf-vfp-neon"
31PACKAGE_EXTRA_ARCHS_tune-armv7athf-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv7athf} armv7ahf-vfp-neon armv7at2hf-vfp-neon"
32
33# Big Endian
34AVAILTUNES += "armv7ab armv7atb armv7ab-neon armv7atb-neon"
35TUNE_FEATURES_tune-armv7ab ?= "${TUNE_FEATURES_tune-armv7a} bigendian"
36TUNE_FEATURES_tune-armv7atb ?= "${TUNE_FEATURES_tune-armv7at} bigendian"
37TUNE_FEATURES_tune-armv7ab-neon ?= "${TUNE_FEATURES_tune-armv7a-neon} bigendian"
38TUNE_FEATURES_tune-armv7atb-neon ?= "${TUNE_FEATURES_tune-armv7at-neon} bigendian"
39PACKAGE_EXTRA_ARCHS_tune-armv7ab = "${PACKAGE_EXTRA_ARCHS_tune-armv7} armv7ab-vfp"
40PACKAGE_EXTRA_ARCHS_tune-armv7atb = "${PACKAGE_EXTRA_ARCHS_tune-armv7t} armv7ab-vfp armv7at2b-vfp"
41PACKAGE_EXTRA_ARCHS_tune-armv7ab-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv7a} armv7ab-vfp-neon"
42PACKAGE_EXTRA_ARCHS_tune-armv7atb-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv7at} armv7ab-vfp-neon armv7at2b-vfp-neon"
43
44# Big Endian + VFP
45AVAILTUNES += "armv7ahfb armv7athfb armv7ahfb-neon armv7athfb-neon"
46TUNE_FEATURES_tune-armv7ahfb ?= "${TUNE_FEATURES_tune-armv7ab} callconvention-hard"
47TUNE_FEATURES_tune-armv7athfb ?= "${TUNE_FEATURES_tune-armv7atb} callconvention-hard"
48TUNE_FEATURES_tune-armv7ahfb-neon ?= "${TUNE_FEATURES_tune-armv7ab-neon} callconvention-hard"
49TUNE_FEATURES_tune-armv7athfb-neon ?= "${TUNE_FEATURES_tune_armv7atb-neon} callconvention-hard"
50PACKAGE_EXTRA_ARCHS_tune-armv7ahfb = "${PACKAGE_EXTRA_ARCHS_tune-armv7hfb} armv7ahfb-vfp"
51PACKAGE_EXTRA_ARCHS_tune-armv7athfb = "${PACKAGE_EXTRA_ARCHS_tune-armv7thfb} armv7ahfb-vfp armv7at2hfb-vfp"
52PACKAGE_EXTRA_ARCHS_tune-armv7ahfb-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv7ahfb} armv7ahfb-vfp-neon"
53PACKAGE_EXTRA_ARCHS_tune-armv7athfb-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv7athfb} armv7ahfb-vfp-neon armv7at2hfb-vfp-neon"
54
diff --git a/meta/conf/machine/include/arm/feature-arm-neon.inc b/meta/conf/machine/include/arm/feature-arm-neon.inc
new file mode 100644
index 0000000000..a7dac03871
--- /dev/null
+++ b/meta/conf/machine/include/arm/feature-arm-neon.inc
@@ -0,0 +1,3 @@
1TUNEVALID[neon] = "Enable Neon SIMD accelerator unit."
2TUNE_CCARGS += "${@bb.utils.contains("TUNE_FEATURES", "neon", "-mfpu=neon", "" ,d)}"
3ARMPKGSFX_FPU .= "${@bb.utils.contains("TUNE_FEATURES", "neon", "-neon", "" ,d)}"
diff --git a/meta/conf/machine/include/arm/feature-arm-thumb.inc b/meta/conf/machine/include/arm/feature-arm-thumb.inc
new file mode 100644
index 0000000000..b5801687fa
--- /dev/null
+++ b/meta/conf/machine/include/arm/feature-arm-thumb.inc
@@ -0,0 +1,25 @@
1# The instruction set the compiler should use when generating application
2# code. The kernel is always compiled with arm code at present. arm code
3# is the original 32 bit ARM instruction set, thumb code is the 16 bit
4# encoded RISC sub-set. Thumb code is smaller (maybe 70% of the ARM size)
5# but requires more instructions (140% for 70% smaller code) so may be
6# slower.
7TUNEVALID[thumb] = "Use thumb instructions instead of ARM"
8TUNE_CCARGS += "${@bb.utils.contains("TUNE_FEATURES", "thumb", "-mthumb", "-mno-thumb", d)}"
9OVERRIDES .= "${@bb.utils.contains("TUNE_FEATURES", "thumb", ":thumb", "", d)}"
10
11# Note armv7 will hit on armv7a as well
12ARMPKGSFX_THUMB .= "${@bb.utils.contains("TUNE_FEATURES", [ "armv4", "thumb" ], "t", "", d)}"
13ARMPKGSFX_THUMB .= "${@bb.utils.contains("TUNE_FEATURES", [ "armv5", "thumb" ], "t", "", d)}"
14ARMPKGSFX_THUMB .= "${@bb.utils.contains("TUNE_FEATURES", [ "armv6", "thumb" ], "t", "", d)}"
15ARMPKGSFX_THUMB .= "${@bb.utils.contains("TUNE_FEATURES", [ "armv7", "thumb" ], "t2", "", d)}"
16
17# Whether to compile with code to allow interworking between the two
18# instruction sets. This allows thumb code to be executed on a primarily
19# arm system and vice versa. It is strongly recommended that DISTROs not
20# turn this off - the actual cost is very small.
21TUNEVALID[no-thumb-interwork] = "Disable mixing of thumb and ARM functions"
22TUNE_CCARGS += "${@bb.utils.contains("TUNE_FEATURES", "no-thumb-interwork", "-mno-thumb-interwork", "-mthumb-interwork", d)}"
23OVERRIDES .= "${@bb.utils.contains("TUNE_FEATURES", "no-thumb-interwork", ":thumb-interwork", "", d)}"
24
25TARGET_CC_KERNEL_ARCH += "-mno-thumb-interwork -mno-thumb"
diff --git a/meta/conf/machine/include/arm/feature-arm-vfp.inc b/meta/conf/machine/include/arm/feature-arm-vfp.inc
new file mode 100644
index 0000000000..29a925c3f0
--- /dev/null
+++ b/meta/conf/machine/include/arm/feature-arm-vfp.inc
@@ -0,0 +1,6 @@
1TUNEVALID[vfp] = "Enable Vector Floating Point (vfp) unit."
2ARMPKGSFX_FPU .= "${@bb.utils.contains("TUNE_FEATURES", "vfp", "-vfp", "" ,d)}"
3
4TUNEVALID[callconvention-hard] = "Enable EABI hard float call convention, requires VFP."
5TUNE_CCARGS += "${@bb.utils.contains("TUNE_FEATURES", "vfp", bb.utils.contains("TUNE_FEATURES", "callconvention-hard", "-mfloat-abi=hard", "-mfloat-abi=softfp", d), "" ,d)}"
6ARMPKGSFX_EABI .= "${@bb.utils.contains("TUNE_FEATURES", [ "callconvention-hard", "vfp" ], "hf", "", d)}"
diff --git a/meta/conf/machine/include/tune-arm1136jf-s.inc b/meta/conf/machine/include/tune-arm1136jf-s.inc
index 953f0dd966..4f4a2eba06 100644
--- a/meta/conf/machine/include/tune-arm1136jf-s.inc
+++ b/meta/conf/machine/include/tune-arm1136jf-s.inc
@@ -1,10 +1,10 @@
1require conf/machine/include/arm/arch-arm.inc 1DEFAULTTUNE ?= "arm1136jfs"
2 2
3TUNE_CCARGS = "-march=armv6j -mtune=arm1136jf-s" 3require conf/machine/include/arm/arch-armv6.inc
4TUNE_CCARGS += "${@['', '-mfloat-abi=softfp -mfpu=vfp'][(bb.data.getVar('TARGET_FPU', d, 1) == 'soft') and (bb.data.getVar('CPU_FEATURES', d, 1).find('vfp') != -1)]}"
5TUNE_PKGARCH = "armv6"
6 4
7ARM_INSTRUCTION_SET = "${@['thumb','arm'][bb.data.getVar('CPU_FEATURES', d, 1).find('thumb') == -1]}" 5TUNEVALID[arm1136jfs] = "Enable arm1136jfs specific processor optimizations"
8PACKAGE_EXTRA_ARCHS = "arm armv4 armv4t armv5te armv6" 6TUNE_CCARGS += "${@bb.utils.contains("TUNE_FEATURES", "arm1136jfs", "-mtune=arm1136jf-s", "", d)}"
9 7
10require conf/machine/include/tune-thumb.inc 8AVAILTUNES += "arm1136jfs"
9TUNE_FEATURES_tune-arm1136jfs = "${TUNE_FEATURES_tune-armv6} arm1136jfs"
10PACKAGE_EXTRA_ARCHS_tune-arm1136jfs = "${PACKAGE_EXTRA_ARCHS_tune-armv6}"
diff --git a/meta/conf/machine/include/tune-arm920t.inc b/meta/conf/machine/include/tune-arm920t.inc
index 6c8702657c..b7584ab2da 100644
--- a/meta/conf/machine/include/tune-arm920t.inc
+++ b/meta/conf/machine/include/tune-arm920t.inc
@@ -1,5 +1,11 @@
1require conf/machine/include/arm/arch-arm.inc 1DEFAULTTUNE ?= "arm920t"
2
3require conf/machine/include/arm/arch-armv4.inc
4
5TUNEVALID[arm920t] = "Enable arm920t specific processor optimizations"
6TUNE_CCARGS += "${@bb.utils.contains("TUNE_FEATURES", "arm920t", "-mtune=arm920t", "", d)}"
7
8AVAILTUNES += "arm920t"
9TUNE_FEATURES_tune-arm920t = "${TUNE_FEATURES_tune-armv4t} arm920t"
10PACKAGE_EXTRA_ARCHS_tune-arm920t = "${PACKAGE_EXTRA_ARCHS_tune-armv4t}"
2 11
3TUNE_PKGARCH = "armv4t"
4TUNE_CCARGS = "-march=armv4t -mtune=arm920t"
5PACKAGE_EXTRA_ARCHS = "arm armv4 armv4t"
diff --git a/meta/conf/machine/include/tune-arm926ejs.inc b/meta/conf/machine/include/tune-arm926ejs.inc
index 543ab62c70..7f2cc4e659 100644
--- a/meta/conf/machine/include/tune-arm926ejs.inc
+++ b/meta/conf/machine/include/tune-arm926ejs.inc
@@ -1,9 +1,11 @@
1require conf/machine/include/arm/arch-arm.inc 1DEFAULTTUNE ?= "arm926ejs"
2 2
3TUNE_PKGARCH = "armv5te" 3require conf/machine/include/arm/arch-armv5-dsp.inc
4PACKAGE_EXTRA_ARCHS = "arm armv4 armv4t armv5te" 4
5# For gcc 3.x you need: 5TUNEVALID[arm926ejs] = "Enable arm926ejs specific processor optimizations"
6#TUNE_CCARGS = "-march=armv5te -mtune=arm926ejs" 6TUNE_CCARGS += "${@bb.utils.contains("TUNE_FEATURES", "arm926ejs", "-mtune=arm926ej-s", "", d)}"
7# For gcc 4.x you need: 7
8TUNE_CCARGS = "-march=armv5te -mtune=arm926ej-s" 8AVAILTUNES += "arm926ejs"
9TUNE_FEATURES_tune-arm926ejs = "${TUNE_FEATURES_tune-armv5te} arm926ejs"
10PACKAGE_EXTRA_ARCHS_tune-arm926ejs = "${PACKAGE_EXTRA_ARCHS_tune-armv5te}"
9 11
diff --git a/meta/conf/machine/include/tune-arm9tdmi.inc b/meta/conf/machine/include/tune-arm9tdmi.inc
index f1001ac65d..0dc5c26129 100644
--- a/meta/conf/machine/include/tune-arm9tdmi.inc
+++ b/meta/conf/machine/include/tune-arm9tdmi.inc
@@ -1,5 +1,11 @@
1require conf/machine/include/arm/arch-arm.inc 1DEFAULTTUNE ?= "arm9tdmi"
2
3require conf/machine/include/arm/arch-armv4.inc
4
5TUNEVALID[arm9tdmi] = "Enable arm9tdmi specific processor optimizations"
6TUNE_CCARGS += "${@bb.utils.contains("TUNE_FEATURES", "arm9tdmi", "-mtune=arm9tdmi", "", d)}"
7
8AVAILTUNES += "arm9tdmi"
9TUNE_FEATURES_tune-arm9tdmi = "${TUNE_FEATURES_tune-armv4t} arm9tdmi"
10PACKAGE_EXTRA_ARCHS_tune-arm9tdmi = "${PACKAGE_EXTRA_ARCHS_tune-armv4t}"
2 11
3TUNE_PKGARCH = "armv4t"
4PACKAGE_EXTRA_ARCHS = "arm armv4 armv4t"
5TUNE_CCARGS = "-mcpu=arm9tdmi -mtune=arm9tdmi"
diff --git a/meta/conf/machine/include/tune-armv7.inc b/meta/conf/machine/include/tune-armv7.inc
index 8a68c0abe3..664c24bd7f 100644
--- a/meta/conf/machine/include/tune-armv7.inc
+++ b/meta/conf/machine/include/tune-armv7.inc
@@ -1,8 +1,2 @@
1require conf/machine/include/arm/arch-arm.inc 1require conf/machine/include/arm/arch-armv7.inc
2 2
3# valid options for -march: `armv7', `armv7-a', `armv7-r', `armv7-m'
4# valid option for -mtune: `cortex-a8', `cortex-r4', `cortex-m3', `cortex-m1'
5# This will NOT compile programs in 'ARM' mode, which is what you really want
6TUNE_CCARGS = "-march=armv7 -mfpu=vfp -mfloat-abi=softfp"
7TUNE_PKGARCH = "armv7"
8PACKAGE_EXTRA_ARCHS = "arm armv4 armv4t armv5te armv6 armv7"
diff --git a/meta/conf/machine/include/tune-cortexa8.inc b/meta/conf/machine/include/tune-cortexa8.inc
index ae5095486b..02b560cecf 100644
--- a/meta/conf/machine/include/tune-cortexa8.inc
+++ b/meta/conf/machine/include/tune-cortexa8.inc
@@ -1,15 +1,16 @@
1require conf/machine/include/arm/arch-arm.inc 1DEFAULTTUNE ?= "cortexa8-neon"
2 2
3require conf/machine/include/arm/arch-armv7a.inc
3 4
4# Instead of using -mfpu=vfp[2] we can use -mfpu=neon to make use of gcc intrinsics[1] and vectorize loops with -ftree-vectorize[3] 5TUNEVALID[cortexa8] = "Enable Cortex-A8 specific processor optimizations"
5# [1] http://gcc.gnu.org/onlinedocs/gcc/ARM-NEON-Intrinsics.html 6TUNE_CCARGS += "${@bb.utils.contains("TUNE_FEATURES", "cortexa8", "-mtune=cortex-a8", "", d)}"
6# [2] http://gcc.gnu.org/onlinedocs/gcc/ARM-Options.html
7# [3] https://support.codesourcery.com/GNUToolchain/kbentry29
8 7
9TUNE_CCARGS = "-march=armv7-a -mtune=cortex-a8 -mfpu=neon -mfloat-abi=softfp -fno-tree-vectorize" 8AVAILTUNES += "cortexa8 cortexa8t"
9TUNE_FEATURES_tune-cortexa8 = "${TUNE_FEATURES_tune-armv7a} cortexa8"
10TUNE_FEATURES_tune-cortexa8t = "${TUNE_FEATURES_tune-armv7at} cortexa8"
11TUNE_FEATURES_tune-cortexa8-neon = "${TUNE_FEATURES_tune-cortexa8} neon"
10 12
11# Other potentially useful options 13PACKAGE_EXTRA_ARCHS_tune-cortexa8 = "${PACKAGE_EXTRA_ARCHS_tune-armv7at}"
12#-ftree-vectorize -ffast-math -fno-omit-frame-pointer 14PACKAGE_EXTRA_ARCHS_tune-cortexa8t = "${PACKAGE_EXTRA_ARCHS_tune-armv7at}"
15PACKAGE_EXTRA_ARCHS_tune-cortexa8-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv7at-neon}"
13 16
14TUNE_PKGARCH = "armv7a"
15PACKAGE_EXTRA_ARCHS = "arm armv4 armv4t armv5te armv6 armv7 armv7a"
diff --git a/meta/conf/machine/include/tune-cortexm1.inc b/meta/conf/machine/include/tune-cortexm1.inc
index b944db4552..493025d01f 100644
--- a/meta/conf/machine/include/tune-cortexm1.inc
+++ b/meta/conf/machine/include/tune-cortexm1.inc
@@ -1,4 +1,11 @@
1require conf/machine/include/arm/arch-arm.inc 1DEFAULTTUNE ?= "cortexm1"
2
3require conf/machine/include/arm/arch-armv7a.inc
4
5TUNEVALID[cortexm1] = "Enable Cortex-M1 specific processor optimizations"
6TUNE_CCARGS += "${@bb.utils.contains("TUNE_FEATURES", "cortexm1", "-mtune=cortex-m1", "", d)}"
7
8AVAILTUNES += "cortexm1"
9TUNE_FEATURES_tune-cortexm1 = "${TUNE_FEATURES_tune-armv7a} coretexm1"
10PACKAGE_EXTRA_ARCHS_tune-cortexm1 = "${PACKAGE_EXTRA_ARCHS_tune-armv7at}"
2 11
3TUNE_CCARGS = "-march=armv7 -mtune=cortex-m1 -mfpu=vfp -mfloat-abi=softfp"
4TUNE_PKGARCH = "armv6"
diff --git a/meta/conf/machine/include/tune-cortexm3.inc b/meta/conf/machine/include/tune-cortexm3.inc
index a77cbddfcd..f774fa6f70 100644
--- a/meta/conf/machine/include/tune-cortexm3.inc
+++ b/meta/conf/machine/include/tune-cortexm3.inc
@@ -1,5 +1,15 @@
1require conf/machine/include/arm/arch-arm.inc 1DEFAULTTUNE ?= "cortexm3"
2ARMPKGARCH ?= "armv7m"
3
4require conf/machine/include/arm/arch-armv7a.inc
5
6TUNEVALID[cortexm3] = "Enable Cortex-M3 specific processor optimizations"
7TUNE_CCARGS += "${@bb.utils.contains("TUNE_FEATURES", "cortexm3", "-mtune=cortex-m3", "", d)}"
8
9TUNEVALID[armv7m] = "Enable Cortex-M3 specific processor optimizations"
10TUNE_CCARGS += "${@bb.utils.contains("TUNE_FEATURES", "armv7m", "-march=armv7-m", "", d)}"
11
12AVAILTUNES += "cortexm3"
13TUNE_FEATURES_tune-cortexm3 = "armv7m vfp coretexm3"
14PACKAGE_EXTRA_ARCHS_tune-cortexm3 = "${PACKAGE_EXTRA_ARCHS_tune-armv7at} armv7m"
2 15
3# valid options for -march: `armv7', `armv7-m'
4TUNE_CCARGS = "-march=armv7-m -mtune=cortex-m3 -mfpu=vfp -mfloat-abi=softfp"
5TUNE_PKGARCH = "armv7"
diff --git a/meta/conf/machine/include/tune-cortexr4.inc b/meta/conf/machine/include/tune-cortexr4.inc
index c9193ca8c3..738f5afdd8 100644
--- a/meta/conf/machine/include/tune-cortexr4.inc
+++ b/meta/conf/machine/include/tune-cortexr4.inc
@@ -1,5 +1,15 @@
1require conf/machine/include/arm/arch-arm.inc 1DEFAULTTUNE ?= "cortexr4"
2ARMPKGARCH ?= "armv7r"
3
4require conf/machine/include/arm/arch-armv7a.inc
5
6TUNEVALID[cortexr4] = "Enable Cortex-R4 specific processor optimizations"
7TUNE_CCARGS += "${@bb.utils.contains("TUNE_FEATURES", "cortexr4", "-mtune=cortex-r4", "", d)}"
8
9TUNEVALID[armv7r] = "Enable Cortex-R4 specific processor optimizations"
10TUNE_CCARGS += "${@bb.utils.contains("TUNE_FEATURES", "armv7r", "-march=armv7-m", "", d)}"
11
12AVAILTUNES += "cortexr4"
13TUNE_FEATURES_tune-cortexr4 = "armv7r vfp coretexr4"
14PACKAGE_EXTRA_ARCHS_tune-cortexr4 = "${PACKAGE_EXTRA_ARCHS_tune-armv7at} armv7r"
2 15
3# valid options for -march: `armv7', `armv7-r'
4TUNE_CCARGS = "-march=armv7-r -mtune=cortex-r4 -mfpu=vfp -mfloat-abi=softfp"
5TUNE_PKGARCH = "armv7"
diff --git a/meta/conf/machine/include/tune-ep9312.inc b/meta/conf/machine/include/tune-ep9312.inc
index e04a00a984..f10123f0dc 100644
--- a/meta/conf/machine/include/tune-ep9312.inc
+++ b/meta/conf/machine/include/tune-ep9312.inc
@@ -1,9 +1,13 @@
1require conf/machine/include/arm/arch-arm.inc 1DEFAULTTUNE ?= "ep9312"
2ARMPKGARCH ?= "ep9312"
2 3
3TUNE_CCARGS = "-march=ep9312 -mtune=ep9312 -mcpu=ep9312" 4require conf/machine/include/arm/arch-armv4.inc
4# add "-mfp=maverick" for newer gcc versions > 4.0 5
6TUNEVALID[ep9312] = "Enable Intel PXA27x specific processor optimizations"
7TUNE_CCARGS += "${@bb.utils.contains("TUNE_FEATURES", "ep9312", "-march=ep9312 -mtune=ep9312", "", d)}"
8
9AVAILTUNES += "ep9312"
10TUNE_FEATURES_tune-ep9312 = "thumb ep9312"
11PACKAGE_EXTRA_ARCHS_tune-ep9312 = "${PACKAGE_EXTRA_ARCHS_tune-armv4t} ep9312"
5 12
6#set arch to ep9312 for all generated packages
7PACKAGE_EXTRA_ARCHS = "arm armv4t ep9312"
8TUNE_PKGARCH = "ep9312"
9 13
diff --git a/meta/conf/machine/include/tune-iwmmxt.inc b/meta/conf/machine/include/tune-iwmmxt.inc
index 6bb76d5b32..14f59555a0 100644
--- a/meta/conf/machine/include/tune-iwmmxt.inc
+++ b/meta/conf/machine/include/tune-iwmmxt.inc
@@ -1,8 +1,16 @@
1require conf/machine/include/arm/arch-arm.inc
2
3# Configurations for the Intel PXA27x Appications Processor Family. 1# Configurations for the Intel PXA27x Appications Processor Family.
4# Please use tune-xscale for PXA255/PXA26x based processors. 2# Please use tune-xscale for PXA255/PXA26x based processors.
5TUNE_CCARGS = "-march=iwmmxt -mcpu=iwmmxt -mtune=iwmmxt" 3
6PACKAGE_EXTRA_ARCHS = "arm armv4 armv4t armv5te iwmmxt" 4DEFAULTTUNE ?= "iwmmxt"
7TUNE_PKGARCH = "iwmmxt" 5ARMPKGARCH ?= "iwmmxt"
6
7require conf/machine/include/arm/arch-armv5-dsp.inc
8
9TUNEVALID[iwmmxt] = "Enable Intel PXA27x specific processor optimizations"
10TUNE_CCARGS += "${@bb.utils.contains("TUNE_FEATURES", "iwmmxt", "-march=iwmmxt -mtune=iwmmxt", "", d)}"
11
12AVAILTUNES += "iwmmxt"
13TUNE_FEATURES_tune-iwmmxt = "thumb iwmmxt"
14PACKAGE_EXTRA_ARCHS_tune-iwmmxt = "${PACKAGE_EXTRA_ARCHS_tune-armv5te} iwmmxt"
15
8 16
diff --git a/meta/conf/machine/include/tune-strongarm1100.inc b/meta/conf/machine/include/tune-strongarm1100.inc
index 2b76069208..66bab8e495 100644
--- a/meta/conf/machine/include/tune-strongarm1100.inc
+++ b/meta/conf/machine/include/tune-strongarm1100.inc
@@ -1,9 +1,12 @@
1require conf/machine/include/arm/arch-arm.inc 1DEFAULTTUNE ?= "strongarm"
2 2
3TUNE_PKGARCH = "arm" 3require conf/machine/include/arm/arch-armv4.inc
4 4
5# This machine lists common configuration options for Strongarm 1100 devices 5TUNEVALID[strongarm] = "Enable Strongarm 1100 series processor optimizations"
6# NOTE: The Zaurus Collie also has a Strongarm processor, but uses the 1110 type 6TUNE_CCARGS += "${@bb.utils.contains("TUNE_FEATURES", "strongarm", "-mtune=strongarm1100", "", d)}"
7
8AVAILTUNES += "strongarm"
9TUNE_FEATURES_tune-strongarm = "${TUNE_FEATURES_tune-armv4} strongarm"
10PACKAGE_EXTRA_ARCHS_tune-strongarm = "${PACKAGE_EXTRA_ARCHS_tune-armv4}"
7 11
8TUNE_CCARGS = "-march=armv4 -mtune=strongarm1100"
9 12
diff --git a/meta/conf/machine/include/tune-xscale.inc b/meta/conf/machine/include/tune-xscale.inc
index 7fabb4618e..9fe968526c 100644
--- a/meta/conf/machine/include/tune-xscale.inc
+++ b/meta/conf/machine/include/tune-xscale.inc
@@ -1,11 +1,17 @@
1require conf/machine/include/arm/arch-arm.inc 1DEFAULTTUNE ?= "xscale"
2 2
3INHERIT += "siteinfo" 3require conf/machine/include/arm/arch-armv5-dsp.inc
4 4
5TUNE_CCARGS = "-march=armv5te -mtune=xscale" 5TUNEVALID[xscale] = "Enable PXA255/PXA26x Xscale specific processor optimizations"
6TARGET_CC_KERNEL_ARCH = "-march=armv5te -mtune=xscale" 6TUNE_CCARGS += "${@bb.utils.contains("TUNE_FEATURES", "xscale", "-mtune=xscale", "", d)}"
7TUNE_PKGARCH = "${@['armv5teb', 'armv5te'][bb.data.getVar('SITEINFO_ENDIANNESS', d, 1) == 'le']}" 7
8PACKAGE_EXTRA_ARCHS = "${@['armeb armv4b armv4tb armv5teb', 'arm armv4 armv4t armv5te'][bb.data.getVar('SITEINFO_ENDIANNESS', d, 1) == 'le']}" 8AVAILTUNES += "xscale"
9TUNE_FEATURES_tune-xscale = "${TUNE_FEATURES_tune-armv5te} xscale"
10PACKAGE_EXTRA_ARCHS_tune-xscale = "${PACKAGE_EXTRA_ARCHS_tune-armv5te}"
11
12AVAILTUNES += "xscale-be"
13TUNE_FEATURES_tune-xscale = "${TUNE_FEATURES_tune-armv5teb} xscale"
14PACKAGE_EXTRA_ARCHS_tune-xscale-be = "${PACKAGE_EXTRA_ARCHS_tune-armv5teb}"
9 15
10# webkit-gtk has alignment issues with double instructions on armv5 so 16# webkit-gtk has alignment issues with double instructions on armv5 so
11# disable them here 17# disable them here