summaryrefslogtreecommitdiffstats
path: root/meta/conf/machine/include
diff options
context:
space:
mode:
Diffstat (limited to 'meta/conf/machine/include')
-rw-r--r--meta/conf/machine/include/README100
-rw-r--r--meta/conf/machine/include/arm/README40
-rw-r--r--meta/conf/machine/include/arm/arch-arm.inc17
-rw-r--r--meta/conf/machine/include/arm/arch-armv4.inc33
-rw-r--r--meta/conf/machine/include/arm/arch-armv5-dsp.inc52
-rw-r--r--meta/conf/machine/include/arm/arch-armv5.inc60
-rw-r--r--meta/conf/machine/include/arm/arch-armv6.inc50
-rw-r--r--meta/conf/machine/include/arm/arch-armv7a.inc75
-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.inc9
-rw-r--r--meta/conf/machine/include/mips/README36
-rw-r--r--meta/conf/machine/include/mips/arch-mips.inc102
-rw-r--r--meta/conf/machine/include/powerpc/README17
-rw-r--r--meta/conf/machine/include/powerpc/arch-powerpc.inc34
-rw-r--r--meta/conf/machine/include/powerpc/arch-powerpc64.inc14
-rw-r--r--meta/conf/machine/include/qemu.inc29
-rw-r--r--meta/conf/machine/include/sh/README11
-rw-r--r--meta/conf/machine/include/sh/arch-sh.inc9
-rw-r--r--meta/conf/machine/include/soc-family.inc2
-rw-r--r--meta/conf/machine/include/tune-arm1136jf-s.inc11
-rw-r--r--meta/conf/machine/include/tune-arm920t.inc11
-rw-r--r--meta/conf/machine/include/tune-arm926ejs.inc11
-rw-r--r--meta/conf/machine/include/tune-arm9tdmi.inc11
-rw-r--r--meta/conf/machine/include/tune-atom.inc2
-rw-r--r--meta/conf/machine/include/tune-c3.inc12
-rw-r--r--meta/conf/machine/include/tune-core2.inc35
-rw-r--r--meta/conf/machine/include/tune-corei7.inc35
-rw-r--r--meta/conf/machine/include/tune-cortexa15.inc36
-rw-r--r--meta/conf/machine/include/tune-cortexa5.inc36
-rw-r--r--meta/conf/machine/include/tune-cortexa7.inc42
-rw-r--r--meta/conf/machine/include/tune-cortexa8.inc36
-rw-r--r--meta/conf/machine/include/tune-cortexa9.inc36
-rw-r--r--meta/conf/machine/include/tune-cortexm1.inc11
-rw-r--r--meta/conf/machine/include/tune-cortexm3.inc14
-rw-r--r--meta/conf/machine/include/tune-cortexr4.inc14
-rw-r--r--meta/conf/machine/include/tune-ep9312.inc12
-rw-r--r--meta/conf/machine/include/tune-i586.inc14
-rw-r--r--meta/conf/machine/include/tune-iwmmxt.inc14
-rw-r--r--meta/conf/machine/include/tune-mips32.inc25
-rw-r--r--meta/conf/machine/include/tune-mips64.inc3
-rw-r--r--meta/conf/machine/include/tune-ppc476.inc14
-rw-r--r--meta/conf/machine/include/tune-ppc603e.inc14
-rw-r--r--meta/conf/machine/include/tune-ppc7400.inc14
-rw-r--r--meta/conf/machine/include/tune-ppce300c2.inc11
-rw-r--r--meta/conf/machine/include/tune-ppce300c3.inc23
-rw-r--r--meta/conf/machine/include/tune-ppce500.inc20
-rw-r--r--meta/conf/machine/include/tune-ppce500mc.inc14
-rw-r--r--meta/conf/machine/include/tune-ppce500v2.inc20
-rw-r--r--meta/conf/machine/include/tune-ppce5500.inc20
-rw-r--r--meta/conf/machine/include/tune-ppce6500.inc21
-rw-r--r--meta/conf/machine/include/tune-sh3.inc17
-rw-r--r--meta/conf/machine/include/tune-sh4.inc34
-rw-r--r--meta/conf/machine/include/tune-strongarm1100.inc11
-rw-r--r--meta/conf/machine/include/tune-supersparc.inc4
-rw-r--r--meta/conf/machine/include/tune-xscale.inc16
-rw-r--r--meta/conf/machine/include/x86-base.inc52
-rw-r--r--meta/conf/machine/include/x86/README24
-rw-r--r--meta/conf/machine/include/x86/arch-x86.inc51
59 files changed, 1519 insertions, 0 deletions
diff --git a/meta/conf/machine/include/README b/meta/conf/machine/include/README
new file mode 100644
index 0000000000..d66130acbc
--- /dev/null
+++ b/meta/conf/machine/include/README
@@ -0,0 +1,100 @@
12012/03/30 - Mark Hatle <mark.hatle@windriver.com>
2 - Initial Revision
3
4
5Introduction
6============
7The individual CPU, and ABI tunings are contained in this directory. A
8number of local and global variables are used to control the way the
9tunings are setup and how they work together to specify an optimized
10configuration.
11
12The following is brief summary of the generic components that are used
13in these tunings.
14
15AVAILTUNES - This is a list of all of the tuning definitions currently
16available in the system. Not all tunes in this list may be compatible
17with the machine configuration, or each other in a multilib
18configuration. Each tuning file can add to this list using "+=", but
19should never replace the list using "=".
20
21DEFAULTTUNE - This specifies the tune to use for a particular build.
22Each tune should specify a reasonable default, which can be overriden by
23a machine or multilib configuration. The specified tune must be listed
24in the AVAILTUNES.
25
26TUNEVALID[feature] - The <feature> is defined with a human readable
27explanation for what it does. All architectural, cpu, abi, etc tuning
28features must be defined using TUNEVALID.
29
30TUNECONFLICTS[feature] - A list of features which conflict with <feature>.
31New sanity checks will try to reject combinations in which a single
32tuning ends up with features which conflict with each other.
33
34TUNE_FEATURES - This is automatically defined as TUNE_FEATURES_tune-<tune>.
35See TUNE_FEATURES_tune-<tune> for more information.
36
37TUNE_FEATURES_tune-<tune> - Specify the features used to describe a
38specific tune. This is a list of features that a tune support, each
39feature must be in the TUNEVALID list. Note: the tune and a given
40feature name may be the same, but they have different purposes. Only
41features may be used to change behavior, while tunes are used to
42describe an overall set of features.
43
44ABIEXTENSION - An ABI extension may be specified by a specific feature
45or other tuning setting, such as TARGET_FPU. Any ABI extensions either
46need to be defined in the architectures base arch file, i.e.
47ABIEXTENSION = "eabi" in the arm case, or appended to in specific tune
48files with a ".=". Spaces are not allowed in this variable.
49
50TUNE_CCARGS - Setup the cflags based on the TUNE_FEATURES settings.
51These should be additive when defined using "+=". All items in this
52list should be dynamic! i.e.
53${@bb.utils.contains("TUNE_FEATURES", "feature", "cflag", "!cflag", d)}
54
55TUNE_ARCH - The GNU canonical arch for a specific architecture. i.e.
56arm, armeb, mips, mips64, etc. This value is used by bitbake to setup
57configure. TUNE_ARCH definitions are specific to a given architecture.
58They may be a single static definition, or may be dynamically adjusted.
59See each architecture's README for details for that CPU family.
60
61TUNE_PKGARCH - The package architecture used by the packaging systems to
62define the architecture, abi and tuning of a particular package.
63Similarly to TUNE_ARCH, the definition of TUNE_PKGARCH is specific to
64each architecture. See each architectures README for details for that
65CPU family.
66
67PACKAGE_EXTRA_ARCHS - Lists all runtime compatible package
68architectures. By default this is equal to
69PACKAGE_EXTRA_ARCHS_tune-<tune>. If an architecture deviates from the
70default it will be listed in the architecture README.
71
72PACKAGE_EXTRA_ARCHS_tune-<tune> - List all of the package architectures
73that are compatible with this specific tune. The package arch of this
74tune must be in the list.
75
76TARGET_FPU - The FPU setting for a given tune, hard (generate floating
77point instructions), soft (generate internal gcc calls), "other"
78architecture specific floating point. This is synchronized with the
79compiler and other toolchain items. This should be dynamically
80configured in the same way that TUNE_CCARGS is.
81
82BASE_LIB_tune-<tune> - The "/lib" location for a specific ABI. This is
83used in a multilib configuration to place the libraries in the correct,
84non-conflicting locations.
85
86
87Best Practice
88=============
89The tune infrastructure is designed to be hierarchical. When writing a
90new tune file for a "fast-forward" CPU architecture (one that supports
91everything from a previous generation), it is recommended to require the
92previous generation tune file and specify PACKAGE_EXTRA_ARCHS using the
93previous generation's override and appending the new tune. Note that
94only one previous tune file should be included to avoid mutiple includes
95of the base arch which could lead to a broken configuration due to
96multiple prepend and append assignments.
97
98For example, for x86, there is a common x86/arch-x86.inc which is
99included in the base i586 tune file. The core2 tune builds
100on that, and corei7 builds on core2.
diff --git a/meta/conf/machine/include/arm/README b/meta/conf/machine/include/arm/README
new file mode 100644
index 0000000000..a1beb75fdf
--- /dev/null
+++ b/meta/conf/machine/include/arm/README
@@ -0,0 +1,40 @@
12012/03/30 - Mark Hatle <mark.hatle@windriver.com>
2 - Initial Revision
3
4The ARM architecture definitions are split among a number of files.
5The primary definitions for the variables are handled by the core
6arch-arm.inc file.
7
8TUNE_ARCH is set to either "arm" or "armeb" depending on the value
9of the existence of the "bigendian" feature in a given tune.
10
11A small set of ARM specific variables have been defined to allow
12TUNE_PKGARCH to be automatically defined. Optimized tunings must NOT
13change the definiton of TUNE_PKGARCH. TUNE_PKGACH_tune-<tune> will be
14ignored. The format of the package arch is enforced by the TUNE_PKGARCH
15default. The format must be of the form:
16<armversion>[t][e][hf][b][-vfp][-neon]
17
18TUNE_PKGARCH is defined as:
19${ARMPKGARCH}${ARMPKGSFX_THUMB}${ARMPKGSFX_DSP}${ARMPKGSFX_EABI}${ARMPKGSFX_ENDIAN}${ARMPKGSFX_FPU}
20
21ARMPKGARCH - This is the core package arch component specified by each
22tuning. This is the primary identifier of a tuning. Usual values are:
23arm, armv4, armv5, armv6, armv7a, etc.
24
25ARMPKGSFX_THUMB - This is the thumb specific suffix. Curently it is
26defined in feature-arm-thumb.inc.
27
28ARMPKGSFX_DSP - This is the DSP specific suffix. Currently this is set
29to 'e' when on armv5 and the dsp feature is enabled.
30
31ARMPKGSFX_EABI - This is the eabi specific suffix. There are currently
32two defined ABIs specificed, standard EABI and Hard Float (VFP) EABI.
33When the callconvention-hard is enabled, "hf" is specified, otherwise it
34is blank.
35
36ARMPKGSFX_ENDIAN - This is the endian specific suffix. It is defined in
37the core arch-arm.inc file.
38
39ARMPKGSFX_FPU - This is the FPU specific suffix. The suffix indicates
40specific FPU optimizations. 'vfp' and 'neon' are both defined.
diff --git a/meta/conf/machine/include/arm/arch-arm.inc b/meta/conf/machine/include/arm/arch-arm.inc
new file mode 100644
index 0000000000..90b80c4c36
--- /dev/null
+++ b/meta/conf/machine/include/arm/arch-arm.inc
@@ -0,0 +1,17 @@
1
2TUNEVALID[bigendian] = "Enable big-endian mode."
3
4ARMPKGARCH = "${ARMPKGARCH_tune-${DEFAULTTUNE}}"
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 = "${ARMPKGARCH}${ARMPKGSFX_THUMB}${ARMPKGSFX_DSP}${ARMPKGSFX_EABI}${ARMPKGSFX_ENDIAN}${ARMPKGSFX_FPU}"
13
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..c33c81690c
--- /dev/null
+++ b/meta/conf/machine/include/arm/arch-armv4.inc
@@ -0,0 +1,33 @@
1DEFAULTTUNE ?= "armv4"
2
3TUNEVALID[armv4] = "Enable instructions for ARMv4"
4TUNE_CCARGS .= "${@bb.utils.contains("TUNE_FEATURES", "armv4", " -march=armv4${ARMPKGSFX_THUMB}", "", d)}"
5# enable --fix-v4bx when we have armv4 in TUNE_FEATURES, but then disable it when we have also armv5 or thumb
6# maybe we should extend bb.utils.contains to support check for any checkvalues in value, now it does
7# checkvalues.issubset(val) which cannot be used for negative test of foo neither bar in value
8FIX_V4BX_ARMV4 = "${@bb.utils.contains("TUNE_FEATURES", "armv4", "--fix-v4bx", "", d)}"
9FIX_V4BX_ARMV5 = "${@bb.utils.contains("TUNE_FEATURES", "armv5", "", "${FIX_V4BX_ARMV4}", d)}"
10FIX_V4BX = "${@bb.utils.contains("TUNE_FEATURES", "thumb", "", "${FIX_V4BX_ARMV5}", d)}"
11TARGET_LD_KERNEL_ARCH += "${FIX_V4BX}"
12MACHINEOVERRIDES =. "${@bb.utils.contains("TUNE_FEATURES", "armv4", "armv4:", "" ,d)}"
13
14require conf/machine/include/arm/arch-arm.inc
15require conf/machine/include/arm/feature-arm-thumb.inc
16
17# Little Endian
18AVAILTUNES += "armv4 armv4t"
19ARMPKGARCH_tune-armv4 ?= "armv4"
20ARMPKGARCH_tune-armv4t ?= "armv4"
21TUNE_FEATURES_tune-armv4 ?= "armv4"
22TUNE_FEATURES_tune-armv4t ?= "${TUNE_FEATURES_tune-armv4} thumb"
23PACKAGE_EXTRA_ARCHS_tune-armv4 = "arm armv4"
24PACKAGE_EXTRA_ARCHS_tune-armv4t = "${PACKAGE_EXTRA_ARCHS_tune-armv4} armv4t"
25
26# Big Endian
27AVAILTUNES += "armv4b armv4tb"
28ARMPKGARCH_tune-armv4b ?= "armv4"
29ARMPKGARCH_tune-armv4tb ?= "armv4"
30TUNE_FEATURES_tune-armv4b ?= "${TUNE_FEATURES_tune-armv4} bigendian"
31TUNE_FEATURES_tune-armv4tb ?= "${TUNE_FEATURES_tune-armv4t} bigendian"
32PACKAGE_EXTRA_ARCHS_tune-armv4b = "armeb armv4b"
33PACKAGE_EXTRA_ARCHS_tune-armv4tb = "${PACKAGE_EXTRA_ARCHS_tune-armv4b} armv4tb"
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..524a62aec9
--- /dev/null
+++ b/meta/conf/machine/include/arm/arch-armv5-dsp.inc
@@ -0,0 +1,52 @@
1ARMPKGSFX_DSP = "${@bb.utils.contains("TUNE_FEATURES", [ "armv5", "dsp" ], "e", "", d)}"
2TUNEVALID[dsp] = "ARM DSP functionality"
3
4require conf/machine/include/arm/arch-armv5.inc
5
6# Little Endian
7AVAILTUNES += "armv5e armv5te"
8ARMPKGARCH_tune-armv5e ?= "armv5"
9ARMPKGARCH_tune-armv5te ?= "armv5"
10TUNE_FEATURES_tune-armv5e ?= "${TUNE_FEATURES_tune-armv5} dsp"
11TUNE_FEATURES_tune-armv5te ?= "${TUNE_FEATURES_tune-armv5t} dsp"
12PACKAGE_EXTRA_ARCHS_tune-armv5e = "${PACKAGE_EXTRA_ARCHS_tune-armv5} armv5e"
13PACKAGE_EXTRA_ARCHS_tune-armv5te = "${PACKAGE_EXTRA_ARCHS_tune-armv5t} armv5e armv5te"
14
15# Little Endian + VFP/DSP
16AVAILTUNES += "armv5e-vfp armv5te-vfp armv5ehf-vfp armv5tehf-vfp"
17ARMPKGARCH_tune-armv5e-vfp ?= "armv5"
18ARMPKGARCH_tune-armv5te-vfp ?= "armv5"
19ARMPKGARCH_tune-armv5ehf-vfp ?= "armv5"
20ARMPKGARCH_tune-armv5tehf-vfp ?= "armv5"
21TUNE_FEATURES_tune-armv5e-vfp ?= "${TUNE_FEATURES_tune-armv5e} vfp"
22TUNE_FEATURES_tune-armv5te-vfp ?= "${TUNE_FEATURES_tune-armv5te} vfp"
23TUNE_FEATURES_tune-armv5ehf-vfp ?= "${TUNE_FEATURES_tune-armv5e-vfp} callconvention-hard"
24TUNE_FEATURES_tune-armv5tehf-vfp ?= "${TUNE_FEATURES_tune-armv5te-vfp} callconvention-hard"
25PACKAGE_EXTRA_ARCHS_tune-armv5e-vfp = "${PACKAGE_EXTRA_ARCHS_tune-armv5-vfp} armv5e armv5e-vfp"
26PACKAGE_EXTRA_ARCHS_tune-armv5te-vfp = "${PACKAGE_EXTRA_ARCHS_tune-armv5t-vfp} armv5e armv5te armv5e-vfp armv5te-vfp"
27PACKAGE_EXTRA_ARCHS_tune-armv5ehf-vfp = "${PACKAGE_EXTRA_ARCHS_tune-armv5hf-vfp} armv5ehf-vfp"
28PACKAGE_EXTRA_ARCHS_tune-armv5tehf-vfp = "${PACKAGE_EXTRA_ARCHS_tune-armv5thf-vfp} armv5ehf-vfp armv5tehf-vfp"
29
30# Big Endian
31AVAILTUNES += "armv5eb armv5teb"
32ARMPKGARCH_tune-armv5eb ?= "armv5"
33ARMPKGARCH_tune-armv5teb ?= "armv5"
34TUNE_FEATURES_tune-armv5eb ?= "${TUNE_FEATURES_tune-armv5e} bigendian"
35TUNE_FEATURES_tune-armv5teb ?= "${TUNE_FEATURES_tune-armv5te} bigendian"
36PACKAGE_EXTRA_ARCHS_tune-armv5eb = "${PACKAGE_EXTRA_ARCHS_tune-armv5b} armv5eb"
37PACKAGE_EXTRA_ARCHS_tune-armv5teb = "${PACKAGE_EXTRA_ARCHS_tune-armv5tb} armv5eb armv5teb"
38
39# Big Endian + VFP/DSP
40AVAILTUNES += "armv5eb-vfp armv5teb-vfp armv5ehfb-vfp armv5tehfb-vfp"
41ARMPKGARCH_tune-armv5eb-vfp ?= "armv5"
42ARMPKGARCH_tune-armv5teb-vfp ?= "armv5"
43ARMPKGARCH_tune-armv5ehfb-vfp ?= "armv5"
44ARMPKGARCH_tune-armv5tehfb-vfp ?= "armv5"
45TUNE_FEATURES_tune-armv5eb-vfp ?= "${TUNE_FEATURES_tune-armv5e-vfp} bigendian"
46TUNE_FEATURES_tune-armv5teb-vfp ?= "${TUNE_FEATURES_tune-armv5te-vfp} bigendian"
47TUNE_FEATURES_tune-armv5ehfb-vfp ?= "${TUNE_FEATURES_tune-armv5ehf-vfp} bigendian"
48TUNE_FEATURES_tune-armv5tehfb-vfp ?= "${TUNE_FEATURES_tune-armv5tehf-vfp} bigendian"
49PACKAGE_EXTRA_ARCHS_tune-armv5eb-vfp = "${PACKAGE_EXTRA_ARCHS_tune-armv5b-vfp} armv5eb armv5eb-vfp"
50PACKAGE_EXTRA_ARCHS_tune-armv5teb-vfp = "${PACKAGE_EXTRA_ARCHS_tune-armv5tb-vfp} armv5eb armv5teb armv5eb-vfp armv5teb-vfp"
51PACKAGE_EXTRA_ARCHS_tune-armv5ehfb-vfp = "${PACKAGE_EXTRA_ARCHS_tune-armv5hfb-vfp} armv5ehfb-vfp"
52PACKAGE_EXTRA_ARCHS_tune-armv5tehfb-vfp = "${PACKAGE_EXTRA_ARCHS_tune-armv5thfb-vfp} armv5ehfb-vfp armv5tehfb-vfp"
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..9e8d1fa0a5
--- /dev/null
+++ b/meta/conf/machine/include/arm/arch-armv5.inc
@@ -0,0 +1,60 @@
1DEFAULTTUNE ?= "armv5"
2
3TUNEVALID[armv5] = "Enable instructions for ARMv5"
4TUNECONFLICTS[armv5] = "armv4"
5TUNE_CCARGS .= "${@bb.utils.contains("TUNE_FEATURES", "armv5", " -march=armv5${ARMPKGSFX_THUMB}${ARMPKGSFX_DSP}", "", d)}"
6MACHINEOVERRIDES =. "${@bb.utils.contains("TUNE_FEATURES", "armv5", "armv5:", "" ,d)}"
7
8ARMPKGSFX_DSP = "${@bb.utils.contains("TUNE_FEATURES", [ "armv5", "dsp" ], "e", "", d)}"
9
10require conf/machine/include/arm/arch-armv4.inc
11require conf/machine/include/arm/feature-arm-vfp.inc
12
13# Little Endian
14AVAILTUNES += "armv5 armv5t"
15ARMPKGARCH_tune-armv5 ?= "armv5"
16ARMPKGARCH_tune-armv5t ?= "armv5"
17TUNE_FEATURES_tune-armv5 ?= "armv5"
18TUNE_FEATURES_tune-armv5t ?= "${TUNE_FEATURES_tune-armv5} thumb"
19PACKAGE_EXTRA_ARCHS_tune-armv5 = "${PACKAGE_EXTRA_ARCHS_tune-armv4} armv5"
20PACKAGE_EXTRA_ARCHS_tune-armv5t = "${PACKAGE_EXTRA_ARCHS_tune-armv4t} armv5 armv5t"
21
22# Little Endian + VFP/DSP
23AVAILTUNES += "armv5-vfp armv5t-vfp armv5hf-vfp armv5thf-vfp"
24ARMPKGARCH_tune-armv5-vfp ?= "armv5"
25ARMPKGARCH_tune-armv5t-vfp ?= "armv5"
26ARMPKGARCH_tune-armv5hf-vfp ?= "armv5"
27ARMPKGARCH_tune-armv5thf-vfp ?= "armv5"
28TUNE_FEATURES_tune-armv5-vfp ?= "${TUNE_FEATURES_tune-armv5} vfp"
29TUNE_FEATURES_tune-armv5t-vfp ?= "${TUNE_FEATURES_tune-armv5t} vfp"
30TUNE_FEATURES_tune-armv5hf-vfp ?= "${TUNE_FEATURES_tune-armv5-vfp} callconvention-hard"
31TUNE_FEATURES_tune-armv5thf-vfp ?= "${TUNE_FEATURES_tune-armv5t-vfp} callconvention-hard"
32PACKAGE_EXTRA_ARCHS_tune-armv5-vfp = "${PACKAGE_EXTRA_ARCHS_tune-armv5} armv5-vfp"
33PACKAGE_EXTRA_ARCHS_tune-armv5t-vfp = "${PACKAGE_EXTRA_ARCHS_tune-armv5t} armv5-vfp armv5t-vfp"
34PACKAGE_EXTRA_ARCHS_tune-armv5hf-vfp = "armv5hf-vfp"
35PACKAGE_EXTRA_ARCHS_tune-armv5thf-vfp = "armv5hf-vfp armv5thf-vfp"
36PACKAGE_EXTRA_ARCHS_tune-armv5tehf-vfp = "${PACKAGE_EXTRA_ARCHS_tune-armv5thf-vfp} armv5ehf-vfp armv5tehf-vfp"
37
38# Big Endian
39AVAILTUNES += "armv5b armv5tb"
40ARMPKGARCH_tune-armv5b ?= "armv5"
41ARMPKGARCH_tune-armv5tb ?= "armv5"
42TUNE_FEATURES_tune-armv5b ?= "${TUNE_FEATURES_tune-armv5} bigendian"
43TUNE_FEATURES_tune-armv5tb ?= "${TUNE_FEATURES_tune-armv5t} bigendian"
44PACKAGE_EXTRA_ARCHS_tune-armv5b = "${PACKAGE_EXTRA_ARCHS_tune-armv4b} armv5b"
45PACKAGE_EXTRA_ARCHS_tune-armv5tb = "${PACKAGE_EXTRA_ARCHS_tune-armv4tb} armv5b armv5tb"
46
47# Big Endian + VFP/DSP
48AVAILTUNES += "armv5b-vfp armv5tb-vfp armv5hfb-vfp armv5thfb-vfp"
49ARMPKGARCH_tune-armv5b-vfp ?= "armv5"
50ARMPKGARCH_tune-armv5tb-vfp ?= "armv5"
51ARMPKGARCH_tune-armv5hfb-vfp ?= "armv5"
52ARMPKGARCH_tune-armv5thfb-vfp ?= "armv5"
53TUNE_FEATURES_tune-armv5b-vfp ?= "${TUNE_FEATURES_tune-armv5-vfp} bigendian"
54TUNE_FEATURES_tune-armv5tb-vfp ?= "${TUNE_FEATURES_tune-armv5t-vfp} bigendian"
55TUNE_FEATURES_tune-armv5hfb-vfp ?= "${TUNE_FEATURES_tune-armv5hf-vfp} bigendian"
56TUNE_FEATURES_tune-armv5thfb-vfp ?= "${TUNE_FEATURES_tune-armv5thf-vfp} bigendian"
57PACKAGE_EXTRA_ARCHS_tune-armv5b-vfp = "${PACKAGE_EXTRA_ARCHS_tune-armv5b} armv5b-vfp"
58PACKAGE_EXTRA_ARCHS_tune-armv5tb-vfp = "${PACKAGE_EXTRA_ARCHS_tune-armv5tb} armv5b-vfp armv5tb-vfp"
59PACKAGE_EXTRA_ARCHS_tune-armv5hfb-vfp = "armv5hfb-vfp"
60PACKAGE_EXTRA_ARCHS_tune-armv5thfb-vfp = "armv5hfb-vfp armv5thfb-vfp"
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..0adf73fae2
--- /dev/null
+++ b/meta/conf/machine/include/arm/arch-armv6.inc
@@ -0,0 +1,50 @@
1DEFAULTTUNE ?= "armv6"
2
3TUNEVALID[armv6] = "Enable instructions for ARMv6"
4TUNECONFLICTS[armv6] = "armv4 armv5"
5TUNE_CCARGS .= "${@bb.utils.contains("TUNE_FEATURES", "armv6", " -march=armv6", "", d)}"
6MACHINEOVERRIDES =. "${@bb.utils.contains("TUNE_FEATURES", "armv6", "armv6:", "" ,d)}"
7
8require conf/machine/include/arm/arch-armv5-dsp.inc
9
10# Little Endian
11AVAILTUNES += "armv6-novfp armv6t-novfp armv6 armv6t armv6hf armv6thf"
12ARMPKGARCH_tune-armv6-novfp ?= "armv6"
13ARMPKGARCH_tune-armv6t-novfp ?= "armv6"
14ARMPKGARCH_tune-armv6 ?= "armv6"
15ARMPKGARCH_tune-armv6t ?= "armv6"
16ARMPKGARCH_tune-armv6hf ?= "armv6"
17ARMPKGARCH_tune-armv6thf ?= "armv6"
18TUNE_FEATURES_tune-armv6-novfp ?= "armv6"
19TUNE_FEATURES_tune-armv6t-novfp ?= "${TUNE_FEATURES_tune-armv6-novfp} thumb"
20TUNE_FEATURES_tune-armv6 ?= "${TUNE_FEATURES_tune-armv6-novfp} vfp"
21TUNE_FEATURES_tune-armv6t ?= "${TUNE_FEATURES_tune-armv6t-novfp} vfp"
22TUNE_FEATURES_tune-armv6hf ?= "${TUNE_FEATURES_tune-armv6} callconvention-hard"
23TUNE_FEATURES_tune-armv6thf ?= "${TUNE_FEATURES_tune-armv6t} callconvention-hard"
24PACKAGE_EXTRA_ARCHS_tune-armv6-novfp = "${PACKAGE_EXTRA_ARCHS_tune-armv5e} armv6"
25PACKAGE_EXTRA_ARCHS_tune-armv6t-novfp = "${PACKAGE_EXTRA_ARCHS_tune-armv5te} armv6 armv6t"
26PACKAGE_EXTRA_ARCHS_tune-armv6 = "${PACKAGE_EXTRA_ARCHS_tune-armv5e-vfp} armv6 armv6-vfp"
27PACKAGE_EXTRA_ARCHS_tune-armv6t = "${PACKAGE_EXTRA_ARCHS_tune-armv5te-vfp} armv6 armv6t armv6-vfp armv6t-vfp"
28PACKAGE_EXTRA_ARCHS_tune-armv6hf = "${PACKAGE_EXTRA_ARCHS_tune-armv5ehf-vfp} armv6hf-vfp"
29PACKAGE_EXTRA_ARCHS_tune-armv6thf = "${PACKAGE_EXTRA_ARCHS_tune-armv5tehf-vfp} armv6hf-vfp armv6thf-vfp"
30
31# Big Endian
32AVAILTUNES += "armv6b-novfp armv6tb-novfp armv6b armv6tb armv6hfb armv6thfb"
33ARMPKGARCH_tune-armv6b-novfp ?= "armv6"
34ARMPKGARCH_tune-armv6tb-novfp ?= "armv6"
35ARMPKGARCH_tune-armv6b ?= "armv6"
36ARMPKGARCH_tune-armv6tb ?= "armv6"
37ARMPKGARCH_tune-armv6hfb ?= "armv6"
38ARMPKGARCH_tune-armv6thfb ?= "armv6"
39TUNE_FEATURES_tune-armv6b-novfp ?= "${TUNE_FEATURES_tune-armv6-novfp} bigendian"
40TUNE_FEATURES_tune-armv6tb-novfp ?= "${TUNE_FEATURES_tune-armv6t-novfp} bigendian"
41TUNE_FEATURES_tune-armv6b ?= "${TUNE_FEATURES_tune-armv6} bigendian"
42TUNE_FEATURES_tune-armv6tb ?= "${TUNE_FEATURES_tune-armv6t} bigendian"
43TUNE_FEATURES_tune-armv6hfb ?= "${TUNE_FEATURES_tune-armv6hf} bigendian"
44TUNE_FEATURES_tune-armv6thfb ?= "${TUNE_FEATURES_tune-armv6thf} bigendian"
45PACKAGE_EXTRA_ARCHS_tune-armv6b-novfp = "${PACKAGE_EXTRA_ARCHS_tune-armv5eb} armv6b"
46PACKAGE_EXTRA_ARCHS_tune-armv6tb-novfp = "${PACKAGE_EXTRA_ARCHS_tune-armv5teb} armv6b armv6tb"
47PACKAGE_EXTRA_ARCHS_tune-armv6b = "${PACKAGE_EXTRA_ARCHS_tune-armv5eb-vfp} armv6b armv6b-vfp"
48PACKAGE_EXTRA_ARCHS_tune-armv6tb = "${PACKAGE_EXTRA_ARCHS_tune-armv5teb-vfp} armv6b armv6tb armv6b-vfp armv6tb-vfp"
49PACKAGE_EXTRA_ARCHS_tune-armv6hfb = "${PACKAGE_EXTRA_ARCHS_tune-armv5ehfb-vfp} armv6hfb-vfp"
50PACKAGE_EXTRA_ARCHS_tune-armv6thfb = "${PACKAGE_EXTRA_ARCHS_tune-armv5tehfb-vfp} armv6hfb-vfp armv6thfb-vfp"
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..bb36c39739
--- /dev/null
+++ b/meta/conf/machine/include/arm/arch-armv7a.inc
@@ -0,0 +1,75 @@
1DEFAULTTUNE ?= "armv7a"
2
3TUNEVALID[armv7a] = "Enable instructions for ARMv7-a"
4TUNECONFLICTS[armv7a] = "armv4 armv5 armv6 armv7"
5TUNE_CCARGS .= "${@bb.utils.contains("TUNE_FEATURES", "armv7a", " -march=armv7-a", "", d)}"
6MACHINEOVERRIDES =. "${@bb.utils.contains("TUNE_FEATURES", "armv7a", "armv7a:", "" ,d)}"
7
8require conf/machine/include/arm/arch-armv6.inc
9require conf/machine/include/arm/feature-arm-neon.inc
10
11# Little Endian base configs
12AVAILTUNES += "armv7a armv7at armv7a-neon armv7at-neon"
13ARMPKGARCH_tune-armv7a ?= "armv7a"
14ARMPKGARCH_tune-armv7at ?= "armv7a"
15ARMPKGARCH_tune-armv7a-neon?= "armv7a"
16ARMPKGARCH_tune-armv7at-neon ?= "armv7a"
17TUNE_FEATURES_tune-armv7a ?= "armv7a vfp"
18TUNE_FEATURES_tune-armv7at ?= "${TUNE_FEATURES_tune-armv7a} thumb"
19TUNE_FEATURES_tune-armv7a-neon ?= "${TUNE_FEATURES_tune-armv7a} neon"
20TUNE_FEATURES_tune-armv7at-neon ?= "${TUNE_FEATURES_tune-armv7at} neon"
21PACKAGE_EXTRA_ARCHS_tune-armv7a = "${PACKAGE_EXTRA_ARCHS_tune-armv6} armv7a armv7a-vfp"
22PACKAGE_EXTRA_ARCHS_tune-armv7a-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv7a} armv7a-vfp-neon"
23PACKAGE_EXTRA_ARCHS_tune-armv7at = "${PACKAGE_EXTRA_ARCHS_tune-armv6t} armv7a armv7a-vfp armv7at2-vfp"
24PACKAGE_EXTRA_ARCHS_tune-armv7at-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv7at} armv7a-vfp-neon armv7at2-vfp-neon"
25
26# VFP Tunes
27AVAILTUNES += "armv7ahf armv7athf armv7ahf-neon armv7athf-neon armv7ahf-neon-vfpv4 armv7athf-neon-vfpv4"
28ARMPKGARCH_tune-armv7ahf ?= "armv7a"
29ARMPKGARCH_tune-armv7athf ?= "armv7a"
30ARMPKGARCH_tune-armv7ahf-neon?= "armv7a"
31ARMPKGARCH_tune-armv7athf-neon ?= "armv7a"
32ARMPKGARCH_tune-armv7ahf-neon-vfpv4 ?= "armv7a"
33ARMPKGARCH_tune-armv7athf-neon-vfpv4 ?= "armv7a"
34TUNE_FEATURES_tune-armv7ahf ?= "${TUNE_FEATURES_tune-armv7a} callconvention-hard"
35TUNE_FEATURES_tune-armv7athf ?= "${TUNE_FEATURES_tune-armv7at} callconvention-hard"
36TUNE_FEATURES_tune-armv7ahf-neon ?= "${TUNE_FEATURES_tune-armv7a-neon} callconvention-hard"
37TUNE_FEATURES_tune-armv7athf-neon ?= "${TUNE_FEATURES_tune-armv7at-neon} callconvention-hard"
38TUNE_FEATURES_tune-armv7ahf-neon-vfpv4 ?= "${TUNE_FEATURES_tune-armv7ahf-neon} vfpv4"
39TUNE_FEATURES_tune-armv7athf-neon-vfpv4 ?= "${TUNE_FEATURES_tune-armv7athf-neon} vfpv4"
40PACKAGE_EXTRA_ARCHS_tune-armv7ahf = "${PACKAGE_EXTRA_ARCHS_tune-armv6hf} armv7ahf-vfp"
41PACKAGE_EXTRA_ARCHS_tune-armv7athf = "${PACKAGE_EXTRA_ARCHS_tune-armv6thf} armv7ahf-vfp armv7at2hf-vfp"
42PACKAGE_EXTRA_ARCHS_tune-armv7ahf-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv7ahf} armv7ahf-vfp-neon"
43PACKAGE_EXTRA_ARCHS_tune-armv7athf-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv7athf} armv7ahf-vfp-neon armv7at2hf-vfp-neon"
44PACKAGE_EXTRA_ARCHS_tune-armv7ahf-neon-vfpv4 = "${PACKAGE_EXTRA_ARCHS_tune-armv7ahf-neon} armv7ahf-vfp-neon-vfpv4"
45PACKAGE_EXTRA_ARCHS_tune-armv7athf-neon-vfpv4 = "${PACKAGE_EXTRA_ARCHS_tune-armv7athf-neon} armv7athf-vfp-neon-vfpv4"
46
47# Big Endian
48AVAILTUNES += "armv7ab armv7atb armv7ab-neon armv7atb-neon"
49ARMPKGARCH_tune-armv7ab ?= "armv7a"
50ARMPKGARCH_tune-armv7atb ?= "armv7a"
51ARMPKGARCH_tune-armv7ab-neon?= "armv7a"
52ARMPKGARCH_tune-armv7atb-neon ?= "armv7a"
53TUNE_FEATURES_tune-armv7ab ?= "${TUNE_FEATURES_tune-armv7a} bigendian"
54TUNE_FEATURES_tune-armv7atb ?= "${TUNE_FEATURES_tune-armv7at} bigendian"
55TUNE_FEATURES_tune-armv7ab-neon ?= "${TUNE_FEATURES_tune-armv7a-neon} bigendian"
56TUNE_FEATURES_tune-armv7atb-neon ?= "${TUNE_FEATURES_tune-armv7at-neon} bigendian"
57PACKAGE_EXTRA_ARCHS_tune-armv7ab = "${PACKAGE_EXTRA_ARCHS_tune-armv6b} armv7ab-vfp"
58PACKAGE_EXTRA_ARCHS_tune-armv7atb = "${PACKAGE_EXTRA_ARCHS_tune-armv6tb} armv7ab-vfp armv7at2b-vfp"
59PACKAGE_EXTRA_ARCHS_tune-armv7ab-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv7ab} armv7ab-vfp-neon"
60PACKAGE_EXTRA_ARCHS_tune-armv7atb-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv7atb} armv7ab-vfp-neon armv7at2b-vfp-neon"
61
62# Big Endian + VFP
63AVAILTUNES += "armv7ahfb armv7athfb armv7ahfb-neon armv7athfb-neon"
64ARMPKGARCH_tune-armv7ahfb ?= "armv7a"
65ARMPKGARCH_tune-armv7athfb ?= "armv7a"
66ARMPKGARCH_tune-armv7ahfb-neon?= "armv7a"
67ARMPKGARCH_tune-armv7athfb-neon ?= "armv7a"
68TUNE_FEATURES_tune-armv7ahfb ?= "${TUNE_FEATURES_tune-armv7ahf} bigendian"
69TUNE_FEATURES_tune-armv7athfb ?= "${TUNE_FEATURES_tune-armv7athf} bigendian"
70TUNE_FEATURES_tune-armv7ahfb-neon ?= "${TUNE_FEATURES_tune-armv7ahf-neon} bigendian"
71TUNE_FEATURES_tune-armv7athfb-neon ?= "${TUNE_FEATURES_tune-armv7athf-neon} bigendian"
72PACKAGE_EXTRA_ARCHS_tune-armv7ahfb = "${PACKAGE_EXTRA_ARCHS_tune-armv6hfb} armv7ahfb-vfp"
73PACKAGE_EXTRA_ARCHS_tune-armv7athfb = "${PACKAGE_EXTRA_ARCHS_tune-armv6thfb} armv7ahfb-vfp armv7at2hfb-vfp"
74PACKAGE_EXTRA_ARCHS_tune-armv7ahfb-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv7ahfb} armv7ahfb-vfp-neon"
75PACKAGE_EXTRA_ARCHS_tune-armv7athfb-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv7athfb} armv7ahfb-vfp-neon armv7at2hfb-vfp-neon"
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..e8b2b85d5a
--- /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", bb.utils.contains("TUNE_FEATURES", "vfpv4", " -mfpu=neon-vfpv4", " -mfpu=neon", d), "" , 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..fa3a4e5c1f
--- /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"
8ARM_THUMB_M_OPT = "${@['-marm', '-mthumb'][d.getVar('ARM_INSTRUCTION_SET', True) == 'thumb']}"
9TUNE_CCARGS .= "${@bb.utils.contains("TUNE_FEATURES", "thumb", " ${ARM_THUMB_M_OPT}", "", d)}"
10OVERRIDES .= "${@bb.utils.contains("TUNE_FEATURES", "thumb", ":thumb", "", d)}"
11
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", [ "armv7a", "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 -marm"
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..13927ffc12
--- /dev/null
+++ b/meta/conf/machine/include/arm/feature-arm-vfp.inc
@@ -0,0 +1,9 @@
1TUNEVALID[vfp] = "Enable Vector Floating Point (vfp) unit."
2ARMPKGSFX_FPU .= "${@bb.utils.contains("TUNE_FEATURES", "vfp", "-vfp", "" ,d)}"
3
4TUNEVALID[vfpv4] = "Enable Vector Floating Point Version 4 (vfpv4) unit."
5ARMPKGSFX_FPU .= "${@bb.utils.contains("TUNE_FEATURES", "vfpv4", "-vfpv4", "" ,d)}"
6
7TUNEVALID[callconvention-hard] = "Enable EABI hard float call convention, requires VFP."
8TUNE_CCARGS .= "${@bb.utils.contains("TUNE_FEATURES", "vfp", bb.utils.contains("TUNE_FEATURES", "callconvention-hard", " -mfloat-abi=hard", " -mfloat-abi=softfp", d), "" ,d)}"
9ARMPKGSFX_EABI .= "${@bb.utils.contains("TUNE_FEATURES", [ "callconvention-hard", "vfp" ], "hf", "", d)}"
diff --git a/meta/conf/machine/include/mips/README b/meta/conf/machine/include/mips/README
new file mode 100644
index 0000000000..c375f316df
--- /dev/null
+++ b/meta/conf/machine/include/mips/README
@@ -0,0 +1,36 @@
12012/03/30 - Mark Hatle <mark.hatle@windriver.com>
2 - Initial Version
3
4MIPS currently defines 12 ABIs. Combinations of:
5 *) Big/Little Endian
6 *) Hardware/Software Floating Point
7 *) o32, n32, n64 ABI
8
9TUNE_ARCH, the GNU canonical arch, is defined as:
10
11mips${MIPSPKGSFX_BYTE}${MIPSPKGSFX_ENDIAN}
12
13The package arch is defined in such a way to generated a standard naming
14scheme. The scheme is: <mips variant>[-nf][-n32]
15
16TUNE_PKGARCH is defined as:
17
18${MIPSPKGSFX_VARIANT_tune-${DEFAULTTUNE}}${MIPSPKGSFX_FPU}${MIPSPKGSFX_ABI}
19
20The following is a list of MIPS specific variables:
21
22MIPSPKGSFX_BYTE - This is defined as either blank and "64" for MIPS64 CPUs.
23
24MIPSPKGSFX_ENDIAN - For bigendian hardware this is blank, otherwise it's
25defined as "el".
26
27MIPSPKGSFX_VARIANT_tune-<tune> - In the default tunings it is set to the
28same value as TUNE_ARCH. In custom, optimized tunings, the value should
29be modified to more precisely describe the tuning.
30
31MIPSPKGSFX_FPU - The value is set to "" or "-nf", where "-nf" indicates
32that the tune is using a non-floating point ABI.
33
34MIPSPKGSFX_ABI - This is used to specify an alternative ABI when the previous
35values are not enough to distringuish the package. "-n32" is added when
36building for N32 ABI.
diff --git a/meta/conf/machine/include/mips/arch-mips.inc b/meta/conf/machine/include/mips/arch-mips.inc
new file mode 100644
index 0000000000..02626d300e
--- /dev/null
+++ b/meta/conf/machine/include/mips/arch-mips.inc
@@ -0,0 +1,102 @@
1# MIPS Architecture definition
2# 12 defined ABIs, all combinations of:
3# *) Big/Little Endian
4# *) Hardware/Software Floating Point
5# *) o32, n32, n64 ABI
6
7DEFAULTTUNE ?= "mips"
8
9# Endianess
10TUNEVALID[bigendian] = "Enable big-endian mode"
11TUNE_CCARGS .= "${@bb.utils.contains("TUNE_FEATURES", "bigendian", " -meb", " -mel", d)}"
12
13# ABI flags
14TUNEVALID[o32] = "MIPS o32 ABI"
15TUNECONFLICTS[o32] = "n32 n64"
16TUNE_CCARGS .= "${@bb.utils.contains("TUNE_FEATURES", "o32", " -mabi=32", "", d)}"
17
18TUNEVALID[n32] = "MIPS64 n32 ABI"
19TUNECONFLICTS[n32] = "o32 n64"
20ABIEXTENSION .= "${@bb.utils.contains("TUNE_FEATURES", "n32", "n32", "" ,d)}"
21TUNE_CCARGS .= "${@bb.utils.contains("TUNE_FEATURES", "n32", " -mabi=n32", "", d)}"
22
23TUNEVALID[n64] = "MIPS64 n64 ABI"
24TUNECONFLICTS[n64] = "o32 n32"
25TUNE_CCARGS .= "${@bb.utils.contains("TUNE_FEATURES", "n64", " -mabi=64", "", d)}"
26
27# Floating point
28TUNEVALID[fpu-hard] = "Use hardware FPU"
29TUNE_CCARGS .= "${@bb.utils.contains("TUNE_FEATURES", "fpu-hard", " -mhard-float", " -msoft-float", d)}"
30TARGET_FPU = "${@bb.utils.contains("TUNE_FEATURES", "fpu-hard", "", "soft", d)}"
31
32# Package naming
33MIPSPKGSFX_ENDIAN = "${@bb.utils.contains("TUNE_FEATURES", "bigendian", "", "el", d)}"
34MIPSPKGSFX_BYTE = "${@bb.utils.contains("TUNE_FEATURES", "n64" , "64", "", d)}"
35MIPSPKGSFX_BYTE .= "${@bb.utils.contains("TUNE_FEATURES", "n32" , "64", "", d)}"
36MIPSPKGSFX_FPU = "${@bb.utils.contains("TUNE_FEATURES", "fpu-hard" , "", "-nf", d)}"
37MIPSPKGSFX_ABI = "${@bb.utils.contains("TUNE_FEATURES", "n32", "-n32", "", d)}"
38
39TUNE_ARCH = "mips${MIPSPKGSFX_BYTE}${MIPSPKGSFX_ENDIAN}"
40TUNE_PKGARCH = "${MIPSPKGSFX_VARIANT_tune-${DEFAULTTUNE}}${MIPSPKGSFX_FPU}${MIPSPKGSFX_ABI}"
41
42# Base tunes
43AVAILTUNES += "mips mips64-n32 mips64 mipsel mips64el-n32 mips64el mips-nf mips64-nf-n32 mips64-nf mipsel-nf mips64el-nf-n32 mips64el-nf"
44TUNE_FEATURES_tune-mips = "o32 bigendian fpu-hard"
45BASE_LIB_tune-mips = "lib"
46MIPSPKGSFX_VARIANT_tune-mips = "${TUNE_ARCH}"
47PACKAGE_EXTRA_ARCHS_tune-mips = "mips"
48
49TUNE_FEATURES_tune-mips64-n32 = "n32 bigendian fpu-hard"
50BASE_LIB_tune-mips64-n32 = "lib32"
51MIPSPKGSFX_VARIANT_tune-mips64-n32 = "${TUNE_ARCH}"
52PACKAGE_EXTRA_ARCHS_tune-mips64-n32 = "mips64-n32"
53
54TUNE_FEATURES_tune-mips64 = "n64 bigendian fpu-hard"
55BASE_LIB_tune-mips64 = "lib64"
56MIPSPKGSFX_VARIANT_tune-mips64 = "${TUNE_ARCH}"
57PACKAGE_EXTRA_ARCHS_tune-mips64 = "mips64"
58
59TUNE_FEATURES_tune-mipsel = "o32 fpu-hard"
60BASE_LIB_tune-mipsel = "lib"
61MIPSPKGSFX_VARIANT_tune-mipsel = "${TUNE_ARCH}"
62PACKAGE_EXTRA_ARCHS_tune-mipsel = "mipsel"
63
64TUNE_FEATURES_tune-mips64el-n32 = "n32 fpu-hard"
65BASE_LIB_tune-mips64el-n32 = "lib32"
66MIPSPKGSFX_VARIANT_tune-mips64el-n32 = "${TUNE_ARCH}"
67PACKAGE_EXTRA_ARCHS_tune-mips64el-n32 = "mips64el-n32"
68
69TUNE_FEATURES_tune-mips64el = "n64 fpu-hard"
70BASE_LIB_tune-mips64el = "lib64"
71MIPSPKGSFX_VARIANT_tune-mips64el = "${TUNE_ARCH}"
72PACKAGE_EXTRA_ARCHS_tune-mips64el = "mips64el"
73
74TUNE_FEATURES_tune-mips-nf = "o32 bigendian"
75BASE_LIB_tune-mips-nf = "lib"
76MIPSPKGSFX_VARIANT_tune-mips-nf = "${TUNE_ARCH}"
77PACKAGE_EXTRA_ARCHS_tune-mips-nf = "mips-nf"
78
79TUNE_FEATURES_tune-mips64-nf-n32 = "n32 bigendian"
80BASE_LIB_tune-mips64-nf-n32 = "lib32"
81MIPSPKGSFX_VARIANT_tune-mips64-nf-n32 = "${TUNE_ARCH}"
82PACKAGE_EXTRA_ARCHS_tune-mips64-nf-n32 = "mips64-nf-n32"
83
84TUNE_FEATURES_tune-mips64-nf = "n64 bigendian"
85BASE_LIB_tune-mips64-nf = "lib64"
86MIPSPKGSFX_VARIANT_tune-mips64-nf = "${TUNE_ARCH}"
87PACKAGE_EXTRA_ARCHS_tune-mips64-nf = "mips64-nf"
88
89TUNE_FEATURES_tune-mipsel-nf = "o32"
90BASE_LIB_tune-mipsel-nf = "lib"
91MIPSPKGSFX_VARIANT_tune-mipsel-nf = "${TUNE_ARCH}"
92PACKAGE_EXTRA_ARCHS_tune-mipsel-nf = "mipsel-nf"
93
94TUNE_FEATURES_tune-mips64el-nf-n32 = "n32"
95BASE_LIB_tune-mips64el-nf-n32 = "lib32"
96MIPSPKGSFX_VARIANT_tune-mips64el-nf-n32 = "${TUNE_ARCH}"
97PACKAGE_EXTRA_ARCHS_tune-mips64el-nf-n32 = "mips64el-nf-n32"
98
99TUNE_FEATURES_tune-mips64el-nf = "n64"
100BASE_LIB_tune-mips64el-nf = "lib64"
101MIPSPKGSFX_VARIANT_tune-mips64el-nf = "${TUNE_ARCH}"
102PACKAGE_EXTRA_ARCHS_tune-mips64el-nf = "mips64el-nf"
diff --git a/meta/conf/machine/include/powerpc/README b/meta/conf/machine/include/powerpc/README
new file mode 100644
index 0000000000..e87fb5082c
--- /dev/null
+++ b/meta/conf/machine/include/powerpc/README
@@ -0,0 +1,17 @@
12012/03/30 - Mark Hatle <mark.hatle@windriver.com>
2 - Initial revision
3
4There are 4 primary PowerPC ABIs.
5# *) Hard/Soft Floating Point
6# *) 32-bit/64-bit
7
8TUNE_ARCH is defined as either "powerpc" or "powerpc64" based on the m32
9or m64 feature.
10
11May of the PowerPC package archictures are based on legacy Linux names.
12However, a general naming scheme should be similar to: ppc[64][<family>][-nf].
13(Note: the default package architectures are "powerpc" and "powerpc64".)
14
15TUNE_PKGARCH is defined as TUNE_PKGARCH_tune-${DEFAULTTUNE}. All
16PowerPC tunings are required to define TUNE_PKGARCH_tune-<tune>.
17
diff --git a/meta/conf/machine/include/powerpc/arch-powerpc.inc b/meta/conf/machine/include/powerpc/arch-powerpc.inc
new file mode 100644
index 0000000000..036ca3c974
--- /dev/null
+++ b/meta/conf/machine/include/powerpc/arch-powerpc.inc
@@ -0,0 +1,34 @@
1# Power Architecture definition
2# Four defined ABIs, all combinations of:
3# *) Hard/Soft Floating Point
4# *) 32-bit/64-bit
5
6DEFAULTTUNE ?= "powerpc"
7
8TUNE_PKGARCH = "${TUNE_PKGARCH_tune-${DEFAULTTUNE}}"
9ABIEXTENSION ?= ""
10
11TUNEVALID[m32] = "Power ELF32 standard ABI"
12TUNE_CCARGS .= "${@bb.utils.contains("TUNE_FEATURES", "m32", " -m32", "", d)}"
13TUNE_ARCH .= "${@bb.utils.contains("TUNE_FEATURES", "m32", "powerpc", "", d)}"
14
15TUNEVALID[fpu-hard] = "Use hardware FPU."
16TUNE_CCARGS .= "${@bb.utils.contains("TUNE_FEATURES", "fpu-hard", " -mhard-float", "", d)}"
17
18TUNEVALID[fpu-soft] = "Use software FPU."
19TUNE_CCARGS .= "${@bb.utils.contains("TUNE_FEATURES", "fpu-soft", " -msoft-float", "", d)}"
20TARGET_FPU .= "${@bb.utils.contains("TUNE_FEATURES", "fpu-soft", "soft", "", d)}"
21
22TUNEVALID[altivec] = "Altivec"
23
24# Basic tune definitions
25AVAILTUNES += "powerpc powerpc-nf"
26TUNE_FEATURES_tune-powerpc-nf = "m32 fpu-soft"
27BASE_LIB_tune-powerpc-nf = "lib"
28TUNE_PKGARCH_tune-powerpc-nf = "powerpc-nf"
29PACKAGE_EXTRA_ARCHS_tune-powerpc-nf = "powerpc-nf"
30
31TUNE_FEATURES_tune-powerpc = "m32 fpu-hard"
32BASE_LIB_tune-powerpc = "lib"
33TUNE_PKGARCH_tune-powerpc = "powerpc"
34PACKAGE_EXTRA_ARCHS_tune-powerpc = "powerpc"
diff --git a/meta/conf/machine/include/powerpc/arch-powerpc64.inc b/meta/conf/machine/include/powerpc/arch-powerpc64.inc
new file mode 100644
index 0000000000..8476dec8a0
--- /dev/null
+++ b/meta/conf/machine/include/powerpc/arch-powerpc64.inc
@@ -0,0 +1,14 @@
1DEFAULTTUNE ?= "powerpc64"
2
3require conf/machine/include/powerpc/arch-powerpc.inc
4
5TUNEVALID[m64] = "Power ELF64 standard ABI"
6TUNECONFLICTS[m64] = "m32 nf"
7TUNE_CCARGS .= "${@bb.utils.contains("TUNE_FEATURES", "m64", " -m64", "", d)}"
8TUNE_ARCH .= "${@bb.utils.contains("TUNE_FEATURES", [ "m64" ], "powerpc64", "", d)}"
9
10AVAILTUNES += "powerpc64"
11TUNE_FEATURES_tune-powerpc64 ?= "m64 fpu-hard"
12BASE_LIB_tune-powerpc64 = "lib64"
13TUNE_PKGARCH_tune-powerpc64 = "powerpc64"
14PACKAGE_EXTRA_ARCHS_tune-powerpc64 = "powerpc64"
diff --git a/meta/conf/machine/include/qemu.inc b/meta/conf/machine/include/qemu.inc
new file mode 100644
index 0000000000..591f6b4a62
--- /dev/null
+++ b/meta/conf/machine/include/qemu.inc
@@ -0,0 +1,29 @@
1PREFERRED_PROVIDER_virtual/xserver ?= "xserver-xorg"
2PREFERRED_PROVIDER_virtual/egl ?= "mesa"
3PREFERRED_PROVIDER_virtual/libgl ?= "mesa"
4PREFERRED_PROVIDER_virtual/libgles1 ?= "mesa"
5PREFERRED_PROVIDER_virtual/libgles2 ?= "mesa"
6
7XSERVER ?= "xserver-xorg \
8 ${@base_contains('DISTRO_FEATURES', 'opengl', 'mesa-driver-swrast', '', d)} \
9 xf86-input-evdev \
10 xf86-input-mouse \
11 xf86-video-fbdev \
12 xf86-input-keyboard"
13
14MACHINE_FEATURES = "alsa bluetooth usbgadget screen"
15
16MACHINEOVERRIDES =. "qemuall:"
17
18IMAGE_FSTYPES += "tar.bz2 ext3"
19
20# Don't include kernels in standard images
21RDEPENDS_kernel-base = ""
22
23# Use a common kernel recipe for all QEMU machines
24PREFERRED_PROVIDER_virtual/kernel ?= "linux-yocto"
25
26EXTRA_IMAGEDEPENDS += "qemu-native qemu-helper-native"
27
28# Provide the nfs server kernel module for all qemu images
29KERNEL_FEATURES_append_pn-linux-yocto = " features/nfsd/nfsd-enable.scc"
diff --git a/meta/conf/machine/include/sh/README b/meta/conf/machine/include/sh/README
new file mode 100644
index 0000000000..b351acdd28
--- /dev/null
+++ b/meta/conf/machine/include/sh/README
@@ -0,0 +1,11 @@
12012/03/30 - Mark Hatle <mark.hatle@windriver.com>
2 - Initial Revision
3
4Both big endian and little endian are defined for SH.
5
6Experimental -- SH tunings have not been validated.
7
8The TUNE_ARCH is defined as ${TUNE_ARCH_tune-${DEFAULTTUNE}}.
9
10The TUNE_PKGARCH is defind as ${TUNE_PKGARCH_tune-${DEFAULTTUNE}}.
11
diff --git a/meta/conf/machine/include/sh/arch-sh.inc b/meta/conf/machine/include/sh/arch-sh.inc
new file mode 100644
index 0000000000..64d4cac829
--- /dev/null
+++ b/meta/conf/machine/include/sh/arch-sh.inc
@@ -0,0 +1,9 @@
1# SH Architecture definition
2
3DEFAULTTUNE ?= "sh"
4
5TUNE_ARCH = "${TUNE_ARCH_tune-${DEFAULTTUNE}}"
6TUNE_PKGARCH = "${TUNE_PKGARCH_tune-${DEFAULTTUNE}}"
7
8TUNEVALID[bigendian] = "Enabled big-endian mode."
9TUNE_CCARGS .= "${@bb.utils.contains("TUNE_FEATURES", "bigendian", " -mb", " -ml", d)}"
diff --git a/meta/conf/machine/include/soc-family.inc b/meta/conf/machine/include/soc-family.inc
new file mode 100644
index 0000000000..0251da079c
--- /dev/null
+++ b/meta/conf/machine/include/soc-family.inc
@@ -0,0 +1,2 @@
1# Add SOC_FAMILY to machine overrides so we get access to e.g. 'omap3' and 'ti335x'
2MACHINEOVERRIDES =. "${@['', '${SOC_FAMILY}:']['${SOC_FAMILY}' != '']}"
diff --git a/meta/conf/machine/include/tune-arm1136jf-s.inc b/meta/conf/machine/include/tune-arm1136jf-s.inc
new file mode 100644
index 0000000000..4a131b64c3
--- /dev/null
+++ b/meta/conf/machine/include/tune-arm1136jf-s.inc
@@ -0,0 +1,11 @@
1DEFAULTTUNE ?= "armv6"
2
3require conf/machine/include/arm/arch-armv6.inc
4
5TUNEVALID[arm1136jfs] = "Enable arm1136jfs specific processor optimizations"
6TUNE_CCARGS .= "${@bb.utils.contains("TUNE_FEATURES", "arm1136jfs", " -mtune=arm1136jf-s", "", d)}"
7
8AVAILTUNES += "arm1136jfs"
9ARMPKGARCH_tune-arm1136jfs = "arm1136jfs"
10TUNE_FEATURES_tune-arm1136jfs = "${TUNE_FEATURES_tune-armv6} arm1136jfs"
11PACKAGE_EXTRA_ARCHS_tune-arm1136jfs = "${PACKAGE_EXTRA_ARCHS_tune-armv6} arm1136jfs-vfp"
diff --git a/meta/conf/machine/include/tune-arm920t.inc b/meta/conf/machine/include/tune-arm920t.inc
new file mode 100644
index 0000000000..5cadcc7dc3
--- /dev/null
+++ b/meta/conf/machine/include/tune-arm920t.inc
@@ -0,0 +1,11 @@
1DEFAULTTUNE ?= "armv4t"
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"
9ARMPKGARCH_tune-arm920t = "arm920t"
10TUNE_FEATURES_tune-arm920t = "${TUNE_FEATURES_tune-armv4t} arm920t"
11PACKAGE_EXTRA_ARCHS_tune-arm920t = "${PACKAGE_EXTRA_ARCHS_tune-armv4t} arm920tt"
diff --git a/meta/conf/machine/include/tune-arm926ejs.inc b/meta/conf/machine/include/tune-arm926ejs.inc
new file mode 100644
index 0000000000..335e4e020d
--- /dev/null
+++ b/meta/conf/machine/include/tune-arm926ejs.inc
@@ -0,0 +1,11 @@
1DEFAULTTUNE ?= "armv5te"
2
3require conf/machine/include/arm/arch-armv5-dsp.inc
4
5TUNEVALID[arm926ejs] = "Enable arm926ejs specific processor optimizations"
6TUNE_CCARGS .= "${@bb.utils.contains("TUNE_FEATURES", "arm926ejs", " -mtune=arm926ej-s", "", d)}"
7
8AVAILTUNES += "arm926ejs"
9ARMPKGARCH_tune-arm926ejs = "arm926ejs"
10TUNE_FEATURES_tune-arm926ejs = "${TUNE_FEATURES_tune-armv5te} arm926ejs"
11PACKAGE_EXTRA_ARCHS_tune-arm926ejs = "${PACKAGE_EXTRA_ARCHS_tune-armv5te} arm926ejste"
diff --git a/meta/conf/machine/include/tune-arm9tdmi.inc b/meta/conf/machine/include/tune-arm9tdmi.inc
new file mode 100644
index 0000000000..dee57c9858
--- /dev/null
+++ b/meta/conf/machine/include/tune-arm9tdmi.inc
@@ -0,0 +1,11 @@
1DEFAULTTUNE ?= "armv4t"
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"
9ARMPKGARCH_tune-arm9tdmi = "arm9tdmi"
10TUNE_FEATURES_tune-arm9tdmi = "${TUNE_FEATURES_tune-armv4t} arm9tdmi"
11PACKAGE_EXTRA_ARCHS_tune-arm9tdmi = "${PACKAGE_EXTRA_ARCHS_tune-armv4t} arm9tdmit"
diff --git a/meta/conf/machine/include/tune-atom.inc b/meta/conf/machine/include/tune-atom.inc
new file mode 100644
index 0000000000..5e1bb74c6c
--- /dev/null
+++ b/meta/conf/machine/include/tune-atom.inc
@@ -0,0 +1,2 @@
1# Atom tunings are the same as core2 for now...
2require conf/machine/include/tune-core2.inc
diff --git a/meta/conf/machine/include/tune-c3.inc b/meta/conf/machine/include/tune-c3.inc
new file mode 100644
index 0000000000..fafc28ada0
--- /dev/null
+++ b/meta/conf/machine/include/tune-c3.inc
@@ -0,0 +1,12 @@
1require conf/machine/include/x86/arch-x86.inc
2
3TUNEVALID[c3] = "VIA Cyrix III or VIA C3 specific optimizations"
4TUNECONFLICTS[c3] = "m64 mx32"
5TUNE_CCARGS .= "${@bb.utils.contains("TUNE_FEATURES", "c3", " -march=c3 -mtune=c3", "", d)}"
6
7AVAILTUNES += "c3"
8TUNE_FEATURES_tune-c3 = "${TUNE_FEATURES_tune-x86} c3"
9BASE_LIBS_tune-c3 = "${BASE_LIB_tune-x86}"
10# The following should likely be something other then i586...
11TUNE_PKGARCH_tune-c3 = "i586"
12PACKAGE_EXTRA_ARCHS_tune-c3 = "${PACKAGE_EXTRA_ARCHS_tune-x86} i386 i486 i586"
diff --git a/meta/conf/machine/include/tune-core2.inc b/meta/conf/machine/include/tune-core2.inc
new file mode 100644
index 0000000000..078e22d192
--- /dev/null
+++ b/meta/conf/machine/include/tune-core2.inc
@@ -0,0 +1,35 @@
1# Settings for the GCC(1) cpu-type "core2":
2#
3# Intel Core2 CPU with 64-bit extensions, MMX, SSE, SSE2, SSE3 and SSSE3
4# instruction set support.
5#
6# This tune is recommended for the Intel Core 2 CPU family, including Conroe,
7# Merom and beyond, as well as the first Atom CPUs, Diamondville, and beyond.
8#
9DEFAULTTUNE ?= "core2-32"
10
11# Include the previous tune to pull in PACKAGE_EXTRA_ARCHS
12require conf/machine/include/tune-i586.inc
13
14# Extra tune features
15TUNEVALID[core2] = "Enable core2 specific processor optimizations"
16TUNE_CCARGS .= "${@bb.utils.contains("TUNE_FEATURES", "core2", " -march=core2 -mtune=core2 -msse3 -mfpmath=sse", "", d)}"
17
18# Extra tune selections
19AVAILTUNES += "core2-32"
20TUNE_FEATURES_tune-core2-32 = "${TUNE_FEATURES_tune-x86} core2"
21BASE_LIB_tune-core2-32 = "lib"
22TUNE_PKGARCH_tune-core2-32 = "core2-32"
23PACKAGE_EXTRA_ARCHS_tune-core2-32 = "${PACKAGE_EXTRA_ARCHS_tune-i586} core2-32"
24
25AVAILTUNES += "core2-64"
26TUNE_FEATURES_tune-core2-64 = "${TUNE_FEATURES_tune-x86-64} core2"
27BASE_LIB_tune-core2-64 = "lib64"
28TUNE_PKGARCH_tune-core2-64 = "core2-64"
29PACKAGE_EXTRA_ARCHS_tune-core2-64 = "${PACKAGE_EXTRA_ARCHS_tune-x86-64} core2-64"
30
31AVAILTUNES += "core2-64-x32"
32TUNE_FEATURES_tune-core2-64-x32 = "${TUNE_FEATURES_tune-x86-64-x32} core2"
33BASE_LIB_tune-core2-64-x32 = "libx32"
34TUNE_PKGARCH_tune-core2-64-x32 = "core2-64-x32"
35PACKAGE_EXTRA_ARCHS_tune-core2-64-x32 = "${PACKAGE_EXTRA_ARCHS_tune-x86-64-x32} core2-64-x32"
diff --git a/meta/conf/machine/include/tune-corei7.inc b/meta/conf/machine/include/tune-corei7.inc
new file mode 100644
index 0000000000..42cf93261c
--- /dev/null
+++ b/meta/conf/machine/include/tune-corei7.inc
@@ -0,0 +1,35 @@
1# Settings for the GCC(1) cpu-type "corei7":
2#
3# Intel Core i7 CPU with 64-bit extensions, MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1
4# and SSE4.2 instruction set support.
5#
6# This tune is recommended for Intel Nehalem and Silvermont (e.g. Bay Trail) CPUs
7# (and beyond).
8#
9DEFAULTTUNE ?= "corei7-64"
10
11# Pull in the previous tune in to pull in PACKAGE_EXTRA_ARCHS
12require conf/machine/include/tune-core2.inc
13
14# Extra tune features
15TUNEVALID[corei7] = "Enable corei7 specific processor optimizations"
16TUNE_CCARGS .= "${@bb.utils.contains("TUNE_FEATURES", "corei7", " -march=corei7 -mtune=corei7 -mfpmath=sse -msse4.2", "", d)}"
17
18# Extra tune selections
19AVAILTUNES += "corei7-32"
20TUNE_FEATURES_tune-corei7-32 = "${TUNE_FEATURES_tune-x86} corei7"
21BASE_LIB_tune-corei7-32 = "lib"
22TUNE_PKGARCH_tune-corei7-32 = "corei7-32"
23PACKAGE_EXTRA_ARCHS_tune-corei7-32 = "${PACKAGE_EXTRA_ARCHS_tune-core2} corei7-32"
24
25AVAILTUNES += "corei7-64"
26TUNE_FEATURES_tune-corei7-64 = "${TUNE_FEATURES_tune-x86-64} corei7"
27BASE_LIB_tune-corei7-64 = "lib64"
28TUNE_PKGARCH_tune-corei7-64 = "corei7-64"
29PACKAGE_EXTRA_ARCHS_tune-corei7-64 = "${PACKAGE_EXTRA_ARCHS_tune-core2-64} corei7-64"
30
31AVAILTUNES += "corei7-64-x32"
32TUNE_FEATURES_tune-corei7-64-x32 = "${TUNE_FEATURES_tune-x86-64-x32} corei7"
33BASE_LIB_tune-corei7-64-x32 = "libx32"
34TUNE_PKGARCH_tune-corei7-64-x32 = "corei7-64-x32"
35PACKAGE_EXTRA_ARCHS_tune-corei7-64-x32 = "${PACKAGE_EXTRA_ARCHS_tune-core2-64-x32} corei7-64-x32"
diff --git a/meta/conf/machine/include/tune-cortexa15.inc b/meta/conf/machine/include/tune-cortexa15.inc
new file mode 100644
index 0000000000..552977722f
--- /dev/null
+++ b/meta/conf/machine/include/tune-cortexa15.inc
@@ -0,0 +1,36 @@
1DEFAULTTUNE ?= "armv7a-neon"
2
3require conf/machine/include/arm/arch-armv7a.inc
4
5TUNEVALID[cortexa15] = "Enable Cortex-A15 specific processor optimizations"
6TUNE_CCARGS .= "${@bb.utils.contains("TUNE_FEATURES", "cortexa15", " -mtune=cortex-a15", "", d)}"
7
8# Little Endian base configs
9AVAILTUNES += "cortexa15 cortexa15t cortexa15-neon cortexa15t-neon"
10ARMPKGARCH_tune-cortexa15 = "cortexa15"
11ARMPKGARCH_tune-cortexa15t = "cortexa15"
12ARMPKGARCH_tune-cortexa15-neon = "cortexa15"
13ARMPKGARCH_tune-cortexa15t-neon = "cortexa15"
14TUNE_FEATURES_tune-cortexa15 = "${TUNE_FEATURES_tune-armv7a} cortexa15"
15TUNE_FEATURES_tune-cortexa15t = "${TUNE_FEATURES_tune-armv7at} cortexa15"
16TUNE_FEATURES_tune-cortexa15-neon = "${TUNE_FEATURES_tune-armv7a-neon} cortexa15"
17TUNE_FEATURES_tune-cortexa15t-neon = "${TUNE_FEATURES_tune-armv7at-neon} cortexa15"
18PACKAGE_EXTRA_ARCHS_tune-cortexa15 = "${PACKAGE_EXTRA_ARCHS_tune-armv7a} cortexa15-vfp"
19PACKAGE_EXTRA_ARCHS_tune-cortexa15t = "${PACKAGE_EXTRA_ARCHS_tune-armv7at} cortexa15-vfp cortexa15t2-vfp"
20PACKAGE_EXTRA_ARCHS_tune-cortexa15-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv7a-neon} cortexa15-vfp cortexa15-vfp-neon"
21PACKAGE_EXTRA_ARCHS_tune-cortexa15t-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv7at-neon} cortexa15-vfp cortexa15-vfp-neon cortexa15t2-vfp cortexa15t2-vfp-neon"
22
23# VFP Tunes
24AVAILTUNES += "cortexa15hf cortexa15thf cortexa15hf-neon cortexa15thf-neon"
25ARMPKGARCH_tune-cortexa15hf = "cortexa15"
26ARMPKGARCH_tune-cortexa15thf = "cortexa15"
27ARMPKGARCH_tune-cortexa15hf-neon = "cortexa15"
28ARMPKGARCH_tune-cortexa15thf-neon = "cortexa15"
29TUNE_FEATURES_tune-cortexa15hf ?= "${TUNE_FEATURES_tune-armv7ahf} cortexa15"
30TUNE_FEATURES_tune-cortexa15thf ?= "${TUNE_FEATURES_tune-armv7athf} cortexa15"
31TUNE_FEATURES_tune-cortexa15hf-neon ?= "${TUNE_FEATURES_tune-armv7ahf-neon} cortexa15"
32TUNE_FEATURES_tune-cortexa15thf-neon ?= "${TUNE_FEATURES_tune-armv7athf-neon} cortexa15"
33PACKAGE_EXTRA_ARCHS_tune-cortexa15hf = "${PACKAGE_EXTRA_ARCHS_tune-armv7ahf} cortexa15hf-vfp"
34PACKAGE_EXTRA_ARCHS_tune-cortexa15thf = "${PACKAGE_EXTRA_ARCHS_tune-armv7athf} cortexa15hf-vfp cortexa15t2hf-vfp"
35PACKAGE_EXTRA_ARCHS_tune-cortexa15hf-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv7ahf-neon} cortexa15hf-vfp cortexa15hf-vfp-neon"
36PACKAGE_EXTRA_ARCHS_tune-cortexa15thf-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv7athf-neon} cortexa15hf-vfp cortexa15hf-vfp-neon cortexa15t2hf-vfp cortexa15t2hf-vfp-neon"
diff --git a/meta/conf/machine/include/tune-cortexa5.inc b/meta/conf/machine/include/tune-cortexa5.inc
new file mode 100644
index 0000000000..139e65c828
--- /dev/null
+++ b/meta/conf/machine/include/tune-cortexa5.inc
@@ -0,0 +1,36 @@
1DEFAULTTUNE ?= "armv7a-neon"
2
3require conf/machine/include/arm/arch-armv7a.inc
4
5TUNEVALID[cortexa5] = "Enable Cortex-A5 specific processor optimizations"
6TUNE_CCARGS .= "${@bb.utils.contains("TUNE_FEATURES", "cortexa5", " -mtune=cortex-a5", "", d)}"
7
8# Little Endian base configs
9AVAILTUNES += "cortexa5 cortexa5t cortexa5-neon cortexa5t-neon"
10ARMPKGARCH_tune-cortexa5 = "cortexa5"
11ARMPKGARCH_tune-cortexa5t = "cortexa5"
12ARMPKGARCH_tune-cortexa5-neon = "cortexa5"
13ARMPKGARCH_tune-cortexa5t-neon = "cortexa5"
14TUNE_FEATURES_tune-cortexa5 = "${TUNE_FEATURES_tune-armv7a} cortexa5"
15TUNE_FEATURES_tune-cortexa5t = "${TUNE_FEATURES_tune-armv7at} cortexa5"
16TUNE_FEATURES_tune-cortexa5-neon = "${TUNE_FEATURES_tune-armv7a-neon} cortexa5"
17TUNE_FEATURES_tune-cortexa5t-neon = "${TUNE_FEATURES_tune-armv7at-neon} cortexa5"
18PACKAGE_EXTRA_ARCHS_tune-cortexa5 = "${PACKAGE_EXTRA_ARCHS_tune-armv7a} cortexa5-vfp"
19PACKAGE_EXTRA_ARCHS_tune-cortexa5t = "${PACKAGE_EXTRA_ARCHS_tune-armv7at} cortexa5-vfp cortexa5t2-vfp"
20PACKAGE_EXTRA_ARCHS_tune-cortexa5-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv7a-neon} cortexa5-vfp cortexa5-vfp-neon"
21PACKAGE_EXTRA_ARCHS_tune-cortexa5t-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv7at-neon} cortexa5-vfp cortexa5-vfp-neon cortexa5t2-vfp cortexa5t2-vfp-neon"
22
23# VFP Tunes
24AVAILTUNES += "cortexa5hf cortexa5thf cortexa5hf-neon cortexa5thf-neon"
25ARMPKGARCH_tune-cortexa5hf = "cortexa5"
26ARMPKGARCH_tune-cortexa5thf = "cortexa5"
27ARMPKGARCH_tune-cortexa5hf-neon = "cortexa5"
28ARMPKGARCH_tune-cortexa5thf-neon = "cortexa5"
29TUNE_FEATURES_tune-cortexa5hf ?= "${TUNE_FEATURES_tune-armv7ahf} cortexa5"
30TUNE_FEATURES_tune-cortexa5thf ?= "${TUNE_FEATURES_tune-armv7athf} cortexa5"
31TUNE_FEATURES_tune-cortexa5hf-neon ?= "${TUNE_FEATURES_tune-armv7ahf-neon} cortexa5"
32TUNE_FEATURES_tune-cortexa5thf-neon ?= "${TUNE_FEATURES_tune-armv7athf-neon} cortexa5"
33PACKAGE_EXTRA_ARCHS_tune-cortexa5hf = "${PACKAGE_EXTRA_ARCHS_tune-armv7ahf} cortexa5hf-vfp"
34PACKAGE_EXTRA_ARCHS_tune-cortexa5thf = "${PACKAGE_EXTRA_ARCHS_tune-armv7athf} cortexa5hf-vfp cortexa5t2hf-vfp"
35PACKAGE_EXTRA_ARCHS_tune-cortexa5hf-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv7ahf-neon} cortexa5hf-vfp cortexa5hf-vfp-neon"
36PACKAGE_EXTRA_ARCHS_tune-cortexa5thf-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv7athf-neon} cortexa5hf-vfp cortexa5hf-vfp-neon cortexa5t2hf-vfp cortexa5t2hf-vfp-neon"
diff --git a/meta/conf/machine/include/tune-cortexa7.inc b/meta/conf/machine/include/tune-cortexa7.inc
new file mode 100644
index 0000000000..9d069100f0
--- /dev/null
+++ b/meta/conf/machine/include/tune-cortexa7.inc
@@ -0,0 +1,42 @@
1DEFAULTTUNE ?= "armv7a-neon"
2
3require conf/machine/include/arm/arch-armv7a.inc
4
5TUNEVALID[cortexa7] = "Enable Cortex-A7 specific processor optimizations"
6TUNE_CCARGS .= "${@bb.utils.contains("TUNE_FEATURES", "cortexa7", " -mtune=cortex-a7", "", d)}"
7
8# Little Endian base configs
9AVAILTUNES += "cortexa7 cortexa7t cortexa7-neon cortexa7t-neon"
10ARMPKGARCH_tune-cortexa7 = "cortexa7"
11ARMPKGARCH_tune-cortexa7t = "cortexa7"
12ARMPKGARCH_tune-cortexa7-neon = "cortexa7"
13ARMPKGARCH_tune-cortexa7t-neon = "cortexa7"
14TUNE_FEATURES_tune-cortexa7 = "${TUNE_FEATURES_tune-armv7a} cortexa7"
15TUNE_FEATURES_tune-cortexa7t = "${TUNE_FEATURES_tune-armv7at} cortexa7"
16TUNE_FEATURES_tune-cortexa7-neon = "${TUNE_FEATURES_tune-armv7a-neon} cortexa7"
17TUNE_FEATURES_tune-cortexa7t-neon = "${TUNE_FEATURES_tune-armv7at-neon} cortexa7"
18PACKAGE_EXTRA_ARCHS_tune-cortexa7 = "${PACKAGE_EXTRA_ARCHS_tune-armv7a} cortexa7-vfp"
19PACKAGE_EXTRA_ARCHS_tune-cortexa7t = "${PACKAGE_EXTRA_ARCHS_tune-armv7at} cortexa7-vfp cortexa7t2-vfp"
20PACKAGE_EXTRA_ARCHS_tune-cortexa7-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv7a-neon} cortexa7-vfp cortexa7-vfp-neon"
21PACKAGE_EXTRA_ARCHS_tune-cortexa7t-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv7at-neon} cortexa7-vfp cortexa7-vfp-neon cortexa7t2-vfp cortexa7t2-vfp-neon"
22
23# VFP Tunes
24AVAILTUNES += "cortexa7hf cortexa7thf cortexa7hf-neon cortexa7thf-neon cortexa7hf-neon-vfpv4 cortexa7thf-neon-vfpv4"
25ARMPKGARCH_tune-cortexa7hf = "cortexa7"
26ARMPKGARCH_tune-cortexa7thf = "cortexa7"
27ARMPKGARCH_tune-cortexa7hf-neon = "cortexa7"
28ARMPKGARCH_tune-cortexa7thf-neon = "cortexa7"
29ARMPKGARCH_tune-cortexa7hf-neon-vfpv4 = "cortexa7"
30ARMPKGARCH_tune-cortexa7thf-neon-vfpv4 = "cortexa7"
31TUNE_FEATURES_tune-cortexa7hf ?= "${TUNE_FEATURES_tune-armv7ahf} cortexa7"
32TUNE_FEATURES_tune-cortexa7thf ?= "${TUNE_FEATURES_tune-armv7athf} cortexa7"
33TUNE_FEATURES_tune-cortexa7hf-neon ?= "${TUNE_FEATURES_tune-armv7ahf-neon} cortexa7"
34TUNE_FEATURES_tune-cortexa7thf-neon ?= "${TUNE_FEATURES_tune-armv7athf-neon} cortexa7"
35TUNE_FEATURES_tune-cortexa7hf-neon-vfpv4 ?= "${TUNE_FEATURES_tune-armv7ahf-neon-vfpv4} cortexa7"
36TUNE_FEATURES_tune-cortexa7thf-neon-vfpv4 ?= "${TUNE_FEATURES_tune-armv7athf-neon-vfpv4} cortexa7"
37PACKAGE_EXTRA_ARCHS_tune-cortexa7hf = "${PACKAGE_EXTRA_ARCHS_tune-armv7ahf} cortexa7hf-vfp"
38PACKAGE_EXTRA_ARCHS_tune-cortexa7thf = "${PACKAGE_EXTRA_ARCHS_tune-armv7athf} cortexa7hf-vfp cortexa7t2hf-vfp"
39PACKAGE_EXTRA_ARCHS_tune-cortexa7hf-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv7ahf-neon} cortexa7hf-vfp cortexa7hf-vfp-neon"
40PACKAGE_EXTRA_ARCHS_tune-cortexa7thf-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv7athf-neon} cortexa7hf-vfp cortexa7hf-vfp-neon cortexa7t2hf-vfp cortexa7t2hf-vfp-neon"
41PACKAGE_EXTRA_ARCHS_tune-cortexa7hf-neon-vfpv4 = "${PACKAGE_EXTRA_ARCHS_tune-armv7ahf-neon-vfpv4} cortexa7hf-vfp cortexa7hf-vfp-neon cortexa7hf-vfp-vfpv4-neon"
42PACKAGE_EXTRA_ARCHS_tune-cortexa7thf-neon-vfpv4 = "${PACKAGE_EXTRA_ARCHS_tune-armv7athf-neon-vfpv4} cortexa7hf-vfp cortexa7hf-vfp-neon cortexa7t2hf-vfp cortexa7t2hf-vfp-neon cortexa7hf-vfp-vfpv4-neon cortexa7t2hf-vfp-vfpv4-neon"
diff --git a/meta/conf/machine/include/tune-cortexa8.inc b/meta/conf/machine/include/tune-cortexa8.inc
new file mode 100644
index 0000000000..771537ff84
--- /dev/null
+++ b/meta/conf/machine/include/tune-cortexa8.inc
@@ -0,0 +1,36 @@
1DEFAULTTUNE ?= "armv7a-neon"
2
3require conf/machine/include/arm/arch-armv7a.inc
4
5TUNEVALID[cortexa8] = "Enable Cortex-A8 specific processor optimizations"
6TUNE_CCARGS .= "${@bb.utils.contains("TUNE_FEATURES", "cortexa8", " -mtune=cortex-a8", "", d)}"
7
8# Little Endian base configs
9AVAILTUNES += "cortexa8 cortexa8t cortexa8-neon cortexa8t-neon"
10ARMPKGARCH_tune-cortexa8 = "cortexa8"
11ARMPKGARCH_tune-cortexa8t = "cortexa8"
12ARMPKGARCH_tune-cortexa8-neon = "cortexa8"
13ARMPKGARCH_tune-cortexa8t-neon = "cortexa8"
14TUNE_FEATURES_tune-cortexa8 = "${TUNE_FEATURES_tune-armv7a} cortexa8"
15TUNE_FEATURES_tune-cortexa8t = "${TUNE_FEATURES_tune-armv7at} cortexa8"
16TUNE_FEATURES_tune-cortexa8-neon = "${TUNE_FEATURES_tune-armv7a-neon} cortexa8"
17TUNE_FEATURES_tune-cortexa8t-neon = "${TUNE_FEATURES_tune-armv7at-neon} cortexa8"
18PACKAGE_EXTRA_ARCHS_tune-cortexa8 = "${PACKAGE_EXTRA_ARCHS_tune-armv7a} cortexa8-vfp"
19PACKAGE_EXTRA_ARCHS_tune-cortexa8t = "${PACKAGE_EXTRA_ARCHS_tune-armv7at} cortexa8-vfp cortexa8t2-vfp"
20PACKAGE_EXTRA_ARCHS_tune-cortexa8-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv7a-neon} cortexa8-vfp cortexa8-vfp-neon"
21PACKAGE_EXTRA_ARCHS_tune-cortexa8t-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv7at-neon} cortexa8-vfp cortexa8-vfp-neon cortexa8t2-vfp cortexa8t2-vfp-neon"
22
23# VFP Tunes
24AVAILTUNES += "cortexa8hf cortexa8thf cortexa8hf-neon cortexa8thf-neon"
25ARMPKGARCH_tune-cortexa8hf = "cortexa8"
26ARMPKGARCH_tune-cortexa8thf = "cortexa8"
27ARMPKGARCH_tune-cortexa8hf-neon = "cortexa8"
28ARMPKGARCH_tune-cortexa8thf-neon = "cortexa8"
29TUNE_FEATURES_tune-cortexa8hf ?= "${TUNE_FEATURES_tune-armv7ahf} cortexa8"
30TUNE_FEATURES_tune-cortexa8thf ?= "${TUNE_FEATURES_tune-armv7athf} cortexa8"
31TUNE_FEATURES_tune-cortexa8hf-neon ?= "${TUNE_FEATURES_tune-armv7ahf-neon} cortexa8"
32TUNE_FEATURES_tune-cortexa8thf-neon ?= "${TUNE_FEATURES_tune-armv7athf-neon} cortexa8"
33PACKAGE_EXTRA_ARCHS_tune-cortexa8hf = "${PACKAGE_EXTRA_ARCHS_tune-armv7ahf} cortexa8hf-vfp"
34PACKAGE_EXTRA_ARCHS_tune-cortexa8thf = "${PACKAGE_EXTRA_ARCHS_tune-armv7athf} cortexa8hf-vfp cortexa8t2hf-vfp"
35PACKAGE_EXTRA_ARCHS_tune-cortexa8hf-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv7ahf-neon} cortexa8hf-vfp cortexa8hf-vfp-neon"
36PACKAGE_EXTRA_ARCHS_tune-cortexa8thf-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv7athf-neon} cortexa8hf-vfp cortexa8hf-vfp-neon cortexa8t2hf-vfp cortexa8t2hf-vfp-neon"
diff --git a/meta/conf/machine/include/tune-cortexa9.inc b/meta/conf/machine/include/tune-cortexa9.inc
new file mode 100644
index 0000000000..700394b824
--- /dev/null
+++ b/meta/conf/machine/include/tune-cortexa9.inc
@@ -0,0 +1,36 @@
1DEFAULTTUNE ?= "armv7a-neon"
2
3require conf/machine/include/arm/arch-armv7a.inc
4
5TUNEVALID[cortexa9] = "Enable Cortex-A9 specific processor optimizations"
6TUNE_CCARGS .= "${@bb.utils.contains("TUNE_FEATURES", "cortexa9", " -mtune=cortex-a9", "", d)}"
7
8# Little Endian base configs
9AVAILTUNES += "cortexa9 cortexa9t cortexa9-neon cortexa9t-neon"
10ARMPKGARCH_tune-cortexa9 = "cortexa9"
11ARMPKGARCH_tune-cortexa9t = "cortexa9"
12ARMPKGARCH_tune-cortexa9-neon = "cortexa9"
13ARMPKGARCH_tune-cortexa9t-neon = "cortexa9"
14TUNE_FEATURES_tune-cortexa9 = "${TUNE_FEATURES_tune-armv7a} cortexa9"
15TUNE_FEATURES_tune-cortexa9t = "${TUNE_FEATURES_tune-armv7at} cortexa9"
16TUNE_FEATURES_tune-cortexa9-neon = "${TUNE_FEATURES_tune-armv7a-neon} cortexa9"
17TUNE_FEATURES_tune-cortexa9t-neon = "${TUNE_FEATURES_tune-armv7at-neon} cortexa9"
18PACKAGE_EXTRA_ARCHS_tune-cortexa9 = "${PACKAGE_EXTRA_ARCHS_tune-armv7a} cortexa9-vfp"
19PACKAGE_EXTRA_ARCHS_tune-cortexa9t = "${PACKAGE_EXTRA_ARCHS_tune-armv7at} cortexa9-vfp cortexa9t2-vfp"
20PACKAGE_EXTRA_ARCHS_tune-cortexa9-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv7a-neon} cortexa9-vfp cortexa9-vfp-neon"
21PACKAGE_EXTRA_ARCHS_tune-cortexa9t-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv7at-neon} cortexa9-vfp cortexa9-vfp-neon cortexa9t2-vfp cortexa9t2-vfp-neon"
22
23# VFP Tunes
24AVAILTUNES += "cortexa9hf cortexa9thf cortexa9hf-neon cortexa9thf-neon"
25ARMPKGARCH_tune-cortexa9hf = "cortexa9"
26ARMPKGARCH_tune-cortexa9thf = "cortexa9"
27ARMPKGARCH_tune-cortexa9hf-neon = "cortexa9"
28ARMPKGARCH_tune-cortexa9thf-neon = "cortexa9"
29TUNE_FEATURES_tune-cortexa9hf ?= "${TUNE_FEATURES_tune-armv7ahf} cortexa9"
30TUNE_FEATURES_tune-cortexa9thf ?= "${TUNE_FEATURES_tune-armv7athf} cortexa9"
31TUNE_FEATURES_tune-cortexa9hf-neon ?= "${TUNE_FEATURES_tune-armv7ahf-neon} cortexa9"
32TUNE_FEATURES_tune-cortexa9thf-neon ?= "${TUNE_FEATURES_tune-armv7athf-neon} cortexa9"
33PACKAGE_EXTRA_ARCHS_tune-cortexa9hf = "${PACKAGE_EXTRA_ARCHS_tune-armv7ahf} cortexa9hf-vfp"
34PACKAGE_EXTRA_ARCHS_tune-cortexa9thf = "${PACKAGE_EXTRA_ARCHS_tune-armv7athf} cortexa9hf-vfp cortexa9t2hf-vfp"
35PACKAGE_EXTRA_ARCHS_tune-cortexa9hf-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv7ahf-neon} cortexa9hf-vfp cortexa9hf-vfp-neon"
36PACKAGE_EXTRA_ARCHS_tune-cortexa9thf-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv7athf-neon} cortexa9hf-vfp cortexa9hf-vfp-neon cortexa9t2hf-vfp cortexa9t2hf-vfp-neon"
diff --git a/meta/conf/machine/include/tune-cortexm1.inc b/meta/conf/machine/include/tune-cortexm1.inc
new file mode 100644
index 0000000000..3b652796d2
--- /dev/null
+++ b/meta/conf/machine/include/tune-cortexm1.inc
@@ -0,0 +1,11 @@
1DEFAULTTUNE ?= "armv7a"
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"
9ARMPKGARCH_tune-cortexm1 = "cortexm1"
10TUNE_FEATURES_tune-cortexm1 = "${TUNE_FEATURES_tune-armv7a} cortexm1"
11PACKAGE_EXTRA_ARCHS_tune-cortexm1 = "${PACKAGE_EXTRA_ARCHS_tune-armv7at} cortexm1-vfp"
diff --git a/meta/conf/machine/include/tune-cortexm3.inc b/meta/conf/machine/include/tune-cortexm3.inc
new file mode 100644
index 0000000000..cbc4c0dd49
--- /dev/null
+++ b/meta/conf/machine/include/tune-cortexm3.inc
@@ -0,0 +1,14 @@
1DEFAULTTUNE ?= "cortexm3"
2
3require conf/machine/include/arm/arch-armv7a.inc
4
5TUNEVALID[cortexm3] = "Enable Cortex-M3 specific processor optimizations"
6TUNE_CCARGS .= "${@bb.utils.contains("TUNE_FEATURES", "cortexm3", " -mtune=cortex-m3", "", d)}"
7
8TUNEVALID[armv7m] = "Enable Cortex-M3 specific processor optimizations"
9TUNE_CCARGS .= "${@bb.utils.contains("TUNE_FEATURES", "armv7m", " -march=armv7-m", "", d)}"
10
11AVAILTUNES += "cortexm3"
12ARMPKGARCH_tune-cortexm3 = "armv7m"
13TUNE_FEATURES_tune-cortexm3 = "armv7m vfp cortexm3"
14PACKAGE_EXTRA_ARCHS_tune-cortexm3 = "${PACKAGE_EXTRA_ARCHS_tune-armv7at} armv7m-vfp"
diff --git a/meta/conf/machine/include/tune-cortexr4.inc b/meta/conf/machine/include/tune-cortexr4.inc
new file mode 100644
index 0000000000..57b6717e58
--- /dev/null
+++ b/meta/conf/machine/include/tune-cortexr4.inc
@@ -0,0 +1,14 @@
1DEFAULTTUNE ?= "cortexr4"
2
3require conf/machine/include/arm/arch-armv7a.inc
4
5TUNEVALID[cortexr4] = "Enable Cortex-R4 specific processor optimizations"
6TUNE_CCARGS .= "${@bb.utils.contains("TUNE_FEATURES", "cortexr4", " -mtune=cortex-r4", "", d)}"
7
8TUNEVALID[armv7r] = "Enable Cortex-R4 specific processor optimizations"
9TUNE_CCARGS .= "${@bb.utils.contains("TUNE_FEATURES", "armv7r", " -march=armv7-r", "", d)}"
10
11AVAILTUNES += "cortexr4"
12ARMPKGARCH_tune-cortexr4 = "armv7r"
13TUNE_FEATURES_tune-cortexr4 = "armv7r vfp cortexr4"
14PACKAGE_EXTRA_ARCHS_tune-cortexr4 = "${PACKAGE_EXTRA_ARCHS_tune-armv7at} armv7r-vfp"
diff --git a/meta/conf/machine/include/tune-ep9312.inc b/meta/conf/machine/include/tune-ep9312.inc
new file mode 100644
index 0000000000..b19b438125
--- /dev/null
+++ b/meta/conf/machine/include/tune-ep9312.inc
@@ -0,0 +1,12 @@
1DEFAULTTUNE ?= "ep9312"
2
3require conf/machine/include/arm/arch-armv4.inc
4
5TUNEVALID[ep9312] = "Enable Intel PXA27x specific processor optimizations"
6TUNE_CCARGS .= "${@bb.utils.contains("TUNE_FEATURES", "ep9312", " -march=ep9312 -mtune=ep9312", "", d)}"
7
8AVAILTUNES += "ep9312"
9ARMPKGARCH_tune-ep9312 = "ep9312"
10# this tune does not include TUNE_FEATURES_tune-armv4t, so there is no armv4 TUNE_FEATURES => no 't' in ARMPKGSFX_THUMB
11TUNE_FEATURES_tune-ep9312 = "thumb ep9312"
12PACKAGE_EXTRA_ARCHS_tune-ep9312 = "${PACKAGE_EXTRA_ARCHS_tune-armv4t} ep9312"
diff --git a/meta/conf/machine/include/tune-i586.inc b/meta/conf/machine/include/tune-i586.inc
new file mode 100644
index 0000000000..5fbb3c74d2
--- /dev/null
+++ b/meta/conf/machine/include/tune-i586.inc
@@ -0,0 +1,14 @@
1DEFAULTTUNE ?= "i586"
2
3require conf/machine/include/x86/arch-x86.inc
4
5# Extra tune features
6TUNEVALID[i586] = "Enable i586 specific processor optimizations"
7TUNE_CCARGS .= "${@bb.utils.contains("TUNE_FEATURES", "i586", " -march=i586", "", d)}"
8
9# Extra tune selections
10AVAILTUNES += "i586"
11TUNE_FEATURES_tune-i586 = "${TUNE_FEATURES_tune-x86} i586"
12BASE_LIB_tune-i586 = "lib"
13TUNE_PKGARCH_tune-i586 = "i586"
14PACKAGE_EXTRA_ARCHS_tune-i586 = "${PACKAGE_EXTRA_ARCHS_tune-x86} i586"
diff --git a/meta/conf/machine/include/tune-iwmmxt.inc b/meta/conf/machine/include/tune-iwmmxt.inc
new file mode 100644
index 0000000000..748ca0d0aa
--- /dev/null
+++ b/meta/conf/machine/include/tune-iwmmxt.inc
@@ -0,0 +1,14 @@
1# Configurations for the Intel PXA27x Appications Processor Family.
2# Please use tune-xscale for PXA255/PXA26x based processors.
3
4DEFAULTTUNE ?= "iwmmxt"
5
6require conf/machine/include/arm/arch-armv5-dsp.inc
7
8TUNEVALID[iwmmxt] = "Enable Intel PXA27x specific processor optimizations"
9TUNE_CCARGS .= "${@bb.utils.contains("TUNE_FEATURES", "iwmmxt", " -march=iwmmxt -mtune=iwmmxt", "", d)}"
10
11AVAILTUNES += "iwmmxt"
12ARMPKGARCH_tune-iwmmxt = "iwmmxt"
13TUNE_FEATURES_tune-iwmmxt = "thumb iwmmxt"
14PACKAGE_EXTRA_ARCHS_tune-iwmmxt = "${PACKAGE_EXTRA_ARCHS_tune-armv5te} iwmmxt iwmmxtt"
diff --git a/meta/conf/machine/include/tune-mips32.inc b/meta/conf/machine/include/tune-mips32.inc
new file mode 100644
index 0000000000..ae326cedf3
--- /dev/null
+++ b/meta/conf/machine/include/tune-mips32.inc
@@ -0,0 +1,25 @@
1DEFAULTTUNE ?= "mips32"
2
3require conf/machine/include/mips/arch-mips.inc
4
5TUNEVALID[mips32] = "Enable mips32 specific processor optimizations"
6TUNECONFLICTS[mips32] = "n64 n32"
7TUNE_CCARGS .= "${@bb.utils.contains("TUNE_FEATURES", "mips32", " -march=mips32", "", d)}"
8
9AVAILTUNES += "mips32 mips32el mips32-nf mips32el-nf"
10
11TUNE_FEATURES_tune-mips32 = "${TUNE_FEATURES_tune-mips} mips32"
12MIPSPKGSFX_VARIANT_tune-mips32 = "mips32"
13PACKAGE_EXTRA_ARCHS_tune-mips32 = "mips mips32"
14
15TUNE_FEATURES_tune-mips32el = "${TUNE_FEATURES_tune-mipsel} mips32"
16MIPSPKGSFX_VARIANT_tune-mips32el = "mips32el"
17PACKAGE_EXTRA_ARCHS_tune-mips32el = "mipsel mips32el"
18
19TUNE_FEATURES_tune-mips32-nf = "${TUNE_FEATURES_tune-mips-nf} mips32"
20MIPSPKGSFX_VARIANT_tune-mips32-nf = "mips32"
21PACKAGE_EXTRA_ARCHS_tune-mips32-nf = "mips-nf mips32-nf"
22
23TUNE_FEATURES_tune-mips32el-nf = "${TUNE_FEATURES_tune-mipsel-nf} mips32"
24MIPSPKGSFX_VARIANT_tune-mips32el-nf = "mips32el"
25PACKAGE_EXTRA_ARCHS_tune-mips32el-nf = "mipsel-nf mips32el-nf"
diff --git a/meta/conf/machine/include/tune-mips64.inc b/meta/conf/machine/include/tune-mips64.inc
new file mode 100644
index 0000000000..ba79e2b53f
--- /dev/null
+++ b/meta/conf/machine/include/tune-mips64.inc
@@ -0,0 +1,3 @@
1DEFAULTTUNE ?= "mips64"
2
3require conf/machine/include/mips/arch-mips.inc
diff --git a/meta/conf/machine/include/tune-ppc476.inc b/meta/conf/machine/include/tune-ppc476.inc
new file mode 100644
index 0000000000..4ed185d2e2
--- /dev/null
+++ b/meta/conf/machine/include/tune-ppc476.inc
@@ -0,0 +1,14 @@
1DEFAULTTUNE ?= "ppc476"
2
3require conf/machine/include/powerpc/arch-powerpc.inc
4
5TUNEVALID[ppc476] = "Enable ppc476 specific processor optimizations"
6TUNE_CCARGS .= "${@bb.utils.contains("TUNE_FEATURES", "ppc476", " -mcpu=476", "", d)}"
7
8AVAILTUNES += "ppc476"
9TUNE_FEATURES_tune-ppc476 = "m32 fpu-hard ppc476"
10TUNE_PKGARCH_tune-ppc476 = "ppc476"
11PACKAGE_EXTRA_ARCHS_tune-ppc476 = "${PACKAGE_EXTRA_ARCHS_tune-powerpc} ppc476"
12
13# glibc configure options to get 476 specific library (for sqrt)
14GLIBC_EXTRA_OECONF += "${@bb.utils.contains("TUNE_FEATURES", "ppc476", "-with-cpu=476", "", d)}"
diff --git a/meta/conf/machine/include/tune-ppc603e.inc b/meta/conf/machine/include/tune-ppc603e.inc
new file mode 100644
index 0000000000..d744a0053f
--- /dev/null
+++ b/meta/conf/machine/include/tune-ppc603e.inc
@@ -0,0 +1,14 @@
1DEFAULTTUNE ?= "ppc603e"
2
3require conf/machine/include/powerpc/arch-powerpc.inc
4
5TUNEVALID[ppc603e] = "Enable ppc603e specific processor optimizations"
6TUNE_CCARGS .= "${@bb.utils.contains("TUNE_FEATURES", "ppc603e", " -mcpu=603e", "", d)}"
7
8AVAILTUNES += "ppc603e"
9TUNE_FEATURES_tune-ppc603e = "m32 fpu-hard ppc603e"
10TUNE_PKGARCH_tune-ppc603e = "ppc603e"
11PACKAGE_EXTRA_ARCHS_tune-ppc603e = "${PACKAGE_EXTRA_ARCHS_tune-powerpc} ppc603e"
12
13# glibc configure options to get 603e specific library (for sqrt)
14GLIBC_EXTRA_OECONF += "${@bb.utils.contains("TUNE_FEATURES", "ppc603e", "-with-cpu=603e", "", d)}"
diff --git a/meta/conf/machine/include/tune-ppc7400.inc b/meta/conf/machine/include/tune-ppc7400.inc
new file mode 100644
index 0000000000..4ac0403e1f
--- /dev/null
+++ b/meta/conf/machine/include/tune-ppc7400.inc
@@ -0,0 +1,14 @@
1DEFAULTTUNE ?= "ppc7400"
2
3require conf/machine/include/powerpc/arch-powerpc.inc
4
5TUNEVALID[ppc7400] = "Enable ppc7400 specific processor optimizations"
6TUNE_CCARGS .= "${@bb.utils.contains("TUNE_FEATURES", "ppc7400", " -mcpu=7400", "", d)}"
7
8AVAILTUNES += "ppc7400"
9TUNE_FEATURES_tune-ppc7400 = "m32 fpu-hard ppc7400 altivec"
10TUNE_PKGARCH_tune-ppc7400 = "ppc7400"
11PACKAGE_EXTRA_ARCHS_tune-ppc7400 = "${PACKAGE_EXTRA_ARCHS_tune-powerpc} ppc7400"
12
13# glibc configure options to get 7400 specific library (for sqrt)
14#GLIBC_EXTRA_OECONF += "${@bb.utils.contains("TUNE_FEATURES", "ppc7400", "--with-cpu=power4", "", d)}"
diff --git a/meta/conf/machine/include/tune-ppce300c2.inc b/meta/conf/machine/include/tune-ppce300c2.inc
new file mode 100644
index 0000000000..05a9505f74
--- /dev/null
+++ b/meta/conf/machine/include/tune-ppce300c2.inc
@@ -0,0 +1,11 @@
1DEFAULTTUNE ?= "ppce300c2"
2
3require conf/machine/include/powerpc/arch-powerpc.inc
4
5TUNEVALID[ppce300c2] = "Enable ppce300c2 specific processor optimizations"
6TUNE_CCARGS .= "${@bb.utils.contains("TUNE_FEATURES", "ppce300c2", " -mcpu=e300c2", "", d)}"
7
8AVAILTUNES += "ppce300c2"
9TUNE_FEATURES_tune-ppce300c2 = "m32 fpu-soft ppce300c2"
10TUNE_PKGARCH_tune-ppce300c2 = "ppce300c2"
11PACKAGE_EXTRA_ARCHS_tune-ppce300c2 = "${PACKAGE_EXTRA_ARCHS_tune-powerpc-nf} ppce300c2"
diff --git a/meta/conf/machine/include/tune-ppce300c3.inc b/meta/conf/machine/include/tune-ppce300c3.inc
new file mode 100644
index 0000000000..b19cf220ba
--- /dev/null
+++ b/meta/conf/machine/include/tune-ppce300c3.inc
@@ -0,0 +1,23 @@
1DEFAULTTUNE ?= "ppce300c3"
2
3require conf/machine/include/powerpc/arch-powerpc.inc
4
5AVAILTUNES += "ppce300c3 ppce300c3-nf"
6
7# hard-float
8TUNEVALID[ppce300c3] = "Enable ppce300c3 specific processor optimizations"
9TUNE_FEATURES_tune-ppce300c3 = "${TUNE_FEATURES_tune-powerpc} ppce300c3"
10TUNE_PKGARCH_tune-ppce300c3 = "ppce300c3"
11PACKAGE_EXTRA_ARCHS_tune-ppce300c3 = "${PACKAGE_EXTRA_ARCHS_tune-powerpc} ppce300c3"
12TUNE_CCARGS .= "${@bb.utils.contains("TUNE_FEATURES", "ppce300c3", " -mcpu=e300c3", "", d)}"
13
14# glibc config options to make use of e300c3 (603e) specific sqrt/sqrtf routines
15GLIBC_EXTRA_OECONF += "${@bb.utils.contains("TUNE_FEATURES", "ppce300c3", "--with-cpu=e300c3", "", d)}"
16
17# soft-float
18TUNEVALID[ppce300c3-nf] = "Enable ppce300c3 specific processor optimizations (no fpu)"
19TUNE_FEATURES_tune-ppce300c3-nf = "${TUNE_FEATURES_tune-powerpc-nf} ppce300c3-nf"
20TUNE_PKGARCH_tune-ppce300c3-nf = "ppce300c3-nf"
21PACKAGE_EXTRA_ARCHS_tune-ppce300c3-nf = "${PACKAGE_EXTRA_ARCHS_tune-powerpc-nf} ppce300c3-nf"
22TUNE_CCARGS .= "${@bb.utils.contains("TUNE_FEATURES", "ppce300c3-nf", " -mcpu=e300c3", "", d)}"
23
diff --git a/meta/conf/machine/include/tune-ppce500.inc b/meta/conf/machine/include/tune-ppce500.inc
new file mode 100644
index 0000000000..70c1f8b253
--- /dev/null
+++ b/meta/conf/machine/include/tune-ppce500.inc
@@ -0,0 +1,20 @@
1DEFAULTTUNE ?= "ppce500"
2
3require conf/machine/include/powerpc/arch-powerpc.inc
4
5TUNEVALID[ppce500] = "Enable ppce500 specific processor optimizations"
6TUNE_CCARGS .= "${@bb.utils.contains("TUNE_FEATURES", "ppce500", " -mcpu=8540", "", d)}"
7
8TUNEVALID[spe] = "Enable SPE ABI extensions"
9TUNE_CCARGS .= "${@bb.utils.contains("TUNE_FEATURES", [ "ppce500", "spe" ], " -mabi=spe -mspe -mfloat-gprs=single", "", d)}"
10TARGET_FPU .= "${@bb.utils.contains("TUNE_FEATURES", [ "ppce500" , "spe" ], "ppc-efs", "", d)}"
11
12# spe is defined potentially in two places, so we want to be sure it will
13# only write spe once to the ABIEXTENSIONS field.
14SPEABIEXTENSION = "${@bb.utils.contains("TUNE_FEATURES", "spe", "spe", "", d)}"
15ABIEXTENSION .= "${SPEABIEXTENSION}"
16
17AVAILTUNES += "ppce500"
18TUNE_FEATURES_tune-ppce500 = "m32 spe ppce500"
19TUNE_PKGARCH_tune-ppce500 = "ppce500"
20PACKAGE_EXTRA_ARCHS_tune-ppce500 = "ppce500"
diff --git a/meta/conf/machine/include/tune-ppce500mc.inc b/meta/conf/machine/include/tune-ppce500mc.inc
new file mode 100644
index 0000000000..744d8e55e7
--- /dev/null
+++ b/meta/conf/machine/include/tune-ppce500mc.inc
@@ -0,0 +1,14 @@
1DEFAULTTUNE ?= "ppce500mc"
2
3require conf/machine/include/powerpc/arch-powerpc.inc
4
5TUNEVALID[ppce500mc] = "Enable ppce500mc specific processor optimizations"
6TUNE_CCARGS .= "${@bb.utils.contains("TUNE_FEATURES", "ppce500mc", " -mcpu=e500mc", "", d)}"
7
8AVAILTUNES += "ppce500mc"
9TUNE_FEATURES_tune-ppce500mc = "m32 fpu-hard ppce500mc"
10TUNE_PKGARCH_tune-ppce500mc = "ppce500mc"
11PACKAGE_EXTRA_ARCHS_tune-ppce500mc = "${PACKAGE_EXTRA_ARCHS_tune-powerpc} ppce500mc"
12
13# glibc configure options to get e500mc specific library (for sqrt)
14GLIBC_EXTRA_OECONF += "${@bb.utils.contains("TUNE_FEATURES", "ppce500mc", "-with-cpu=e500mc", "", d)}"
diff --git a/meta/conf/machine/include/tune-ppce500v2.inc b/meta/conf/machine/include/tune-ppce500v2.inc
new file mode 100644
index 0000000000..d014d70a6e
--- /dev/null
+++ b/meta/conf/machine/include/tune-ppce500v2.inc
@@ -0,0 +1,20 @@
1DEFAULTTUNE ?= "ppce500v2"
2
3require conf/machine/include/powerpc/arch-powerpc.inc
4
5TUNEVALID[ppce500v2] = "Enable ppce500v2 specific processor optimizations"
6TUNE_CCARGS .= "${@bb.utils.contains("TUNE_FEATURES", "ppce500v2", " -mcpu=8548", "", d)}"
7
8TUNEVALID[spe] = "Enable SPE ABI extensions"
9TUNE_CCARGS .= "${@bb.utils.contains("TUNE_FEATURES", [ "ppce500v2", "spe" ], " -mabi=spe -mspe -mfloat-gprs=double", "", d)}"
10TARGET_FPU .= "${@bb.utils.contains("TUNE_FEATURES", [ "ppce500v2" , "spe" ], "ppc-efd", "", d)}"
11
12# spe is defined potentially in two places, so we want to be sure it will
13# only write spe once to the ABIEXTENSIONS field.
14SPEABIEXTENSION = "${@bb.utils.contains("TUNE_FEATURES", "spe", "spe", "", d)}"
15ABIEXTENSION .= "${SPEABIEXTENSION}"
16
17AVAILTUNES += "ppce500v2"
18TUNE_FEATURES_tune-ppce500v2 = "m32 spe ppce500v2"
19TUNE_PKGARCH_tune-ppce500v2 = "ppce500v2"
20PACKAGE_EXTRA_ARCHS_tune-ppce500v2 = "ppce500v2"
diff --git a/meta/conf/machine/include/tune-ppce5500.inc b/meta/conf/machine/include/tune-ppce5500.inc
new file mode 100644
index 0000000000..25231ef4f2
--- /dev/null
+++ b/meta/conf/machine/include/tune-ppce5500.inc
@@ -0,0 +1,20 @@
1DEFAULTTUNE ?= "ppce5500"
2
3require conf/machine/include/powerpc/arch-powerpc64.inc
4
5TUNEVALID[e5500] = "Enable Freescale e5500 specific processor optimizations"
6TUNE_CCARGS .= "${@bb.utils.contains("TUNE_FEATURES", "e5500", " -mcpu=e5500", "", d)}"
7
8AVAILTUNES += "ppce5500 ppc64e5500"
9TUNE_FEATURES_tune-ppce5500 = "m32 fpu-hard e5500"
10BASE_LIB_tune-ppce5500 = "lib"
11TUNE_PKGARCH_tune-ppce5500 = "ppce5500"
12PACKAGE_EXTRA_ARCHS_tune-ppce5500 = "${PACKAGE_EXTRA_ARCHS_tune-powerpc} ppce5500"
13
14TUNE_FEATURES_tune-ppc64e5500 = "m64 fpu-hard e5500"
15BASE_LIB_tune-ppc64e5500 = "lib64"
16TUNE_PKGARCH_tune-ppc64e5500 = "ppc64e5500"
17PACKAGE_EXTRA_ARCHS_tune-ppc64e5500 = "${PACKAGE_EXTRA_ARCHS_tune-powerpc64} ppc64e5500"
18
19# glibc configure options to get e5500 specific library (for sqrt)
20GLIBC_EXTRA_OECONF += "${@bb.utils.contains("TUNE_FEATURES", "e5500", "--with-cpu=e5500", "", d)}"
diff --git a/meta/conf/machine/include/tune-ppce6500.inc b/meta/conf/machine/include/tune-ppce6500.inc
new file mode 100644
index 0000000000..ea743a3edc
--- /dev/null
+++ b/meta/conf/machine/include/tune-ppce6500.inc
@@ -0,0 +1,21 @@
1DEFAULTTUNE ?= "ppce6500"
2
3require conf/machine/include/powerpc/arch-powerpc64.inc
4
5TUNEVALID[e6500] = "Enable Freescale e6500 specific processor optimizations"
6TUNE_CCARGS .= "${@bb.utils.contains("TUNE_FEATURES", "e6500", " -mcpu=e6500", "", d)}"
7
8AVAILTUNES += "ppce6500 ppc64e6500"
9TUNE_FEATURES_tune-ppce6500 = "m32 fpu-hard e6500 altivec"
10BASE_LIB_tune-ppce6500 = "lib"
11TUNE_PKGARCH_tune-ppce6500 = "ppce6500"
12PACKAGE_EXTRA_ARCHS_tune-ppce6500 = "${PACKAGE_EXTRA_ARCHS_tune-powerpc} ppce6500"
13
14TUNE_FEATURES_tune-ppc64e6500 = "m64 fpu-hard e6500 altivec"
15BASE_LIB_tune-ppc64e6500 = "lib64"
16TUNE_PKGARCH_tune-ppc64e6500 = "ppc64e6500"
17PACKAGE_EXTRA_ARCHS_tune-ppc64e6500 = "${PACKAGE_EXTRA_ARCHS_tune-powerpc64} ppc64e6500"
18
19# glibc configure options to get e6500 specific library
20GLIBC_EXTRA_OECONF_powerpc64 += "${@bb.utils.contains("TUNE_FEATURES", "e6500", "--with-cpu=e6500", "", d)}"
21GLIBC_EXTRA_OECONF_powerpc += "${@bb.utils.contains("TUNE_FEATURES", "e6500", "--with-cpu=e6500", "", d)}"
diff --git a/meta/conf/machine/include/tune-sh3.inc b/meta/conf/machine/include/tune-sh3.inc
new file mode 100644
index 0000000000..c5ed7bab96
--- /dev/null
+++ b/meta/conf/machine/include/tune-sh3.inc
@@ -0,0 +1,17 @@
1DEFAULTTUNE ?= "sh3"
2
3require conf/machine/include/sh/arch-sh.inc
4
5TUNEVALID[sh3] = "Enable SH3 optimizations"
6TUNE_CCARGS .= "${@bb.utils.contains("TUNE_FEATURES", "sh3", " -m3", "", d)}"
7
8AVAILTUNES += "sh3 sh3eb"
9TUNE_FEATURES_tune-sh3 = "sh3"
10TUNE_ARCH_tune-sh3 = "sh3"
11TUNE_PKGARCH_tune-sh3 = "sh3"
12PACKAGE_EXTRA_ARCHS_tune-sh3 = "sh sh3"
13
14TUNE_FEATURES_tune-sh3eb = "sh3 bigendian"
15TUNE_ARCH_tune-sh3eb = "sh3eb"
16TUNE_PKGARCH_tune-sh3eb = "sh3eb"
17PACKAGE_EXTRA_ARCHS_tune-sh3eb = "sheb sh3eb"
diff --git a/meta/conf/machine/include/tune-sh4.inc b/meta/conf/machine/include/tune-sh4.inc
new file mode 100644
index 0000000000..56e23b9369
--- /dev/null
+++ b/meta/conf/machine/include/tune-sh4.inc
@@ -0,0 +1,34 @@
1DEFAULTTUNE ?= "sh4"
2
3# Pull in sh4 for compatibility...
4require conf/machine/include/sh/arch-sh.inc
5
6TUNEVALID[sh4] = "Enable SH4 optimizations"
7TUNE_CCARGS .= "${@bb.utils.contains("TUNE_FEATURES", "sh4", " -m4", "", d)}"
8
9# NOTE: If you want to optimize to sh4a, conf/machine/include/tune-sh4a.inc.
10# But it is not compatible for sh4.
11# The binary optimized by m4a doesn't operate on sh4. It works on sh4a only.
12TUNEVALID[sh4a] = "Enable SH4a optimizations"
13TUNE_CCARGS .= "${@bb.utils.contains("TUNE_FEATURES", "sh4a", " -m4a", "", d)}"
14
15AVAILTUNES += "sh4 sh4eb sh4a sh4aeb"
16TUNE_FEATURES_tune-sh4 = "sh4"
17TUNE_ARCH_tune-sh4 = "sh4"
18TUNE_PKGARCH_tune-sh4 = "sh4"
19PACKAGE_EXTRA_ARCHS_tune-sh4 = "sh sh4"
20
21TUNE_FEATURES_tune-sh4eb = "sh4 bigendian"
22TUNE_ARCH_tune-sh4eb = "sh4eb"
23TUNE_PKGARCH_tune-sh4eb = "sh4eb"
24PACKAGE_EXTRA_ARCHS_tune-sh4eb = "sheb sh4eb"
25
26TUNE_FEATURES_tune-sh4a = "sh4a"
27TUNE_ARCH_tune-sh4a = "sh4"
28TUNE_PKGARCH_tune-sh4a = "sh4a"
29PACKAGE_EXTRA_ARCHS_tune-sh4a = "sh sh4 sh4a"
30
31TUNE_FEATURES_tune-sh4aeb = "sh4a bigendian"
32TUNE_ARCH_tune-sh4aeb = "sh4eb"
33TUNE_PKGARCH_tune-sh4aeb = "sh4aeb"
34PACKAGE_EXTRA_ARCHS_tune-sh4aeb = "sheb sh4eb sh4aeb"
diff --git a/meta/conf/machine/include/tune-strongarm1100.inc b/meta/conf/machine/include/tune-strongarm1100.inc
new file mode 100644
index 0000000000..ea2fba89fe
--- /dev/null
+++ b/meta/conf/machine/include/tune-strongarm1100.inc
@@ -0,0 +1,11 @@
1DEFAULTTUNE ?= "armv4"
2
3require conf/machine/include/arm/arch-armv4.inc
4
5TUNEVALID[strongarm] = "Enable Strongarm 1100 series processor optimizations"
6TUNE_CCARGS .= "${@bb.utils.contains("TUNE_FEATURES", "strongarm", " -mtune=strongarm1100", "", d)}"
7
8AVAILTUNES += "strongarm"
9ARMPKGARCH_tune-strongarm = "strongarm"
10TUNE_FEATURES_tune-strongarm = "${TUNE_FEATURES_tune-armv4} strongarm"
11PACKAGE_EXTRA_ARCHS_tune-strongarm = "${PACKAGE_EXTRA_ARCHS_tune-armv4} strongarm"
diff --git a/meta/conf/machine/include/tune-supersparc.inc b/meta/conf/machine/include/tune-supersparc.inc
new file mode 100644
index 0000000000..0faa361f18
--- /dev/null
+++ b/meta/conf/machine/include/tune-supersparc.inc
@@ -0,0 +1,4 @@
1TUNE_ARCH = "sparc"
2
3TUNE_CCARGS = "-mcpu=supersparc"
4TUNE_PKGARCH = "supersparc"
diff --git a/meta/conf/machine/include/tune-xscale.inc b/meta/conf/machine/include/tune-xscale.inc
new file mode 100644
index 0000000000..0c5ca8d171
--- /dev/null
+++ b/meta/conf/machine/include/tune-xscale.inc
@@ -0,0 +1,16 @@
1DEFAULTTUNE ?= "armv5te"
2
3require conf/machine/include/arm/arch-armv5-dsp.inc
4
5TUNEVALID[xscale] = "Enable PXA255/PXA26x Xscale specific processor optimizations"
6TUNE_CCARGS .= "${@bb.utils.contains("TUNE_FEATURES", "xscale", " -mtune=xscale", "", d)}"
7
8AVAILTUNES += "xscale"
9ARMPKGARCH_tune-xscale = "xscale"
10TUNE_FEATURES_tune-xscale = "${TUNE_FEATURES_tune-armv5te} xscale"
11PACKAGE_EXTRA_ARCHS_tune-xscale = "${PACKAGE_EXTRA_ARCHS_tune-armv5te} xscale xscalet xscalee xscalete"
12
13AVAILTUNES += "xscale-be"
14ARMPKGARCH_tune-xscale-be = "xscale"
15TUNE_FEATURES_tune-xscale-be = "${TUNE_FEATURES_tune-armv5teb} xscale bigendian"
16PACKAGE_EXTRA_ARCHS_tune-xscale-be = "${PACKAGE_EXTRA_ARCHS_tune-armv5teb} xscaleb xscaletb xscaleeb xscaleteb"
diff --git a/meta/conf/machine/include/x86-base.inc b/meta/conf/machine/include/x86-base.inc
new file mode 100644
index 0000000000..d6c4d6010f
--- /dev/null
+++ b/meta/conf/machine/include/x86-base.inc
@@ -0,0 +1,52 @@
1#
2# Base machine settings for X86 architecture BSPs
3#
4
5#
6# common settings for X86 machines
7#
8MACHINE_FEATURES += "screen keyboard pci usbhost ext2 ext3 x86 \
9 acpi serial usbgadget alsa"
10
11MACHINE_EXTRA_RRECOMMENDS += "kernel-modules"
12
13IMAGE_FSTYPES += "live"
14
15KERNEL_IMAGETYPE ?= "bzImage"
16
17SERIAL_CONSOLE ?= "115200 ttyS0"
18
19#
20# kernel-related variables
21#
22PREFERRED_PROVIDER_virtual/kernel ??= "linux-yocto"
23PREFERRED_VERSION_linux-yocto ??= "3.0%"
24
25#
26# XSERVER subcomponents, used to build the XSERVER variable
27#
28XSERVER_X86_BASE = "xserver-xorg \
29 xf86-input-mouse \
30 xf86-input-keyboard \
31 xf86-input-evdev \
32 xf86-input-synaptics \
33 "
34
35XSERVER_X86_EXT = " \
36 ${@base_contains('DISTRO_FEATURES', 'opengl', 'xserver-xorg-extension-glx', '', d)} \
37 xserver-xorg-module-libint10 \
38 "
39
40XSERVER_X86_I915 = "xf86-video-intel \
41 ${@base_contains('DISTRO_FEATURES', 'opengl', 'mesa-driver-i915', '', d)} \
42 "
43
44XSERVER_X86_I965 = "xf86-video-intel \
45 ${@base_contains('DISTRO_FEATURES', 'opengl', 'mesa-driver-i965', '', d)} \
46 "
47
48XSERVER_X86_VESA = "xf86-video-vesa"
49
50XSERVER_X86_FBDEV = "xf86-video-fbdev"
51
52XSERVER_X86_MODESETTING = "xf86-video-modesetting"
diff --git a/meta/conf/machine/include/x86/README b/meta/conf/machine/include/x86/README
new file mode 100644
index 0000000000..2b6c46c7eb
--- /dev/null
+++ b/meta/conf/machine/include/x86/README
@@ -0,0 +1,24 @@
12012/03/30 - Mark Hatle <mark.hatle@windriver.com>
2 - Initial version
3
4Most of the items for the X86 architectures are defined in the single
5arch-x86 file.
6
7Three ABIs are define, m32, mx32 and m64.
8
9The following is the list of X86 specific variables:
10
11X86ARCH32 - This is the 32-bit architecture GNU canonical arch, TUNE_ARCH.
12
13X86ARCH64 - This is the 64-bit architecture GNU canonical arch, TUNE_ARCH.
14
15The TUNE_PKGARCH is defined as follows:
16
17TUNE_PKGARCH = ${TUNE_PKGARCH_tune-${DEFAULTTUNE}}
18
19The package architecture for 32-bit targets is historical and generally
20set to to match the core compatible processor type, i.e. i386.
21
22For 64-bit architectures, the architecture is expected to end in '_64'.
23
24If the x32 ABI is used, then the _64 is further extended with a '_x32'.
diff --git a/meta/conf/machine/include/x86/arch-x86.inc b/meta/conf/machine/include/x86/arch-x86.inc
new file mode 100644
index 0000000000..298bddc6a1
--- /dev/null
+++ b/meta/conf/machine/include/x86/arch-x86.inc
@@ -0,0 +1,51 @@
1#
2# X86 Architecture definition (IA32, X86_64, and X32)
3#
4
5DEFAULTTUNE ?= "x86"
6TARGET_FPU ?= ""
7X86ARCH32 ?= "i586"
8X86ARCH64 ?= "x86_64"
9
10TUNE_PKGARCH = "${TUNE_PKGARCH_tune-${DEFAULTTUNE}}"
11
12# ELF32 ABI
13TUNEVALID[m32] = "IA32 ELF32 standard ABI"
14TUNECONFLICTS[m32] = "m64 mx32"
15TUNE_ARCH .= "${@bb.utils.contains("TUNE_FEATURES", "m32", "${X86ARCH32}", "" ,d)}"
16TUNE_CCARGS .= "${@bb.utils.contains("TUNE_FEATURES", "m32", " -m32", "", d)}"
17MACHINEOVERRIDES =. "${@bb.utils.contains("TUNE_FEATURES", "m32", "x86:", "" ,d)}"
18
19# x32 ABI
20TUNEVALID[mx32] = "IA32e (x86_64) ELF32 standard ABI"
21TUNECONFLICTS[mx32] = "m64 m32"
22TUNE_ARCH .= "${@bb.utils.contains("TUNE_FEATURES", "mx32", "${X86ARCH64}", "" ,d)}"
23ABIEXTENSION .= "${@bb.utils.contains("TUNE_FEATURES", "mx32", "x32", "" ,d)}"
24TUNE_CCARGS .= "${@bb.utils.contains("TUNE_FEATURES", "mx32", " -mx32", "", d)}"
25TUNE_LDARGS += "${@bb.utils.contains("TUNE_FEATURES", "mx32", "-m elf32_x86_64", "", d)}"
26TUNE_ASARGS += "${@bb.utils.contains("TUNE_FEATURES", "mx32", "-x32", "", d)}"
27
28# ELF64 ABI
29TUNEVALID[m64] = "IA32e (x86_64) ELF64 standard ABI"
30TUNECONFLICTS[m64] = "m32 mx32"
31TUNE_ARCH .= "${@bb.utils.contains("TUNE_FEATURES", "m64", "${X86ARCH64}", "" ,d)}"
32TUNE_CCARGS .= "${@bb.utils.contains("TUNE_FEATURES", "m64", " -m64", "", d)}"
33
34# Default Tune configurations
35AVAILTUNES += "x86"
36TUNE_FEATURES_tune-x86 = "m32"
37BASE_LIB_tune-x86 = "lib"
38TUNE_PKGARCH_tune-x86 = "x86"
39PACKAGE_EXTRA_ARCHS_tune-x86 = "${TUNE_PKGARCH_tune-x86}"
40
41AVAILTUNES += "x86-64"
42TUNE_FEATURES_tune-x86-64 = "m64"
43BASE_LIB_tune-x86-64 = "lib64"
44TUNE_PKGARCH_tune-x86-64 = "x86_64"
45PACKAGE_EXTRA_ARCHS_tune-x86-64 = "${TUNE_PKGARCH_tune-x86-64}"
46
47AVAILTUNES += "x86-64-x32"
48TUNE_FEATURES_tune-x86-64-x32 = "mx32"
49BASE_LIB_tune-x86-64-x32 = "libx32"
50TUNE_PKGARCH_tune-x86-64-x32 = "x86_64_x32"
51PACKAGE_EXTRA_ARCHS_tune-x86-64-x32 = "${TUNE_PKGARCH_tune-x86-64-x32}"