diff options
author | Richard Purdie <richard.purdie@linuxfoundation.org> | 2011-07-25 19:03:24 +0100 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2011-07-27 15:45:48 +0100 |
commit | 6afd21bced6513986f27d8cbc7d83bb2d804b5b0 (patch) | |
tree | 69e2b6c2fde4c15d948f9a8f798a30926f858600 /meta/conf/machine | |
parent | 30ddd02277d4513e2649ed168a513205e244bcb1 (diff) | |
download | poky-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>
Diffstat (limited to 'meta/conf/machine')
23 files changed, 435 insertions, 74 deletions
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 @@ | |||
1 | TUNE_ARCH = "arm" | 1 | |
2 | TUNEVALID[bigendian] = "Enable big-endian mode." | ||
3 | |||
4 | ARMPKGARCH ??= "arm" | ||
5 | ARMPKGSFX_ENDIAN = "${@bb.utils.contains("TUNE_FEATURES", "bigendian", "b", "", d)}" | ||
6 | ARMPKGSFX_FPU ??= "" | ||
7 | ARMPKGSFX_DSP ??= "" | ||
8 | ARMPKGSFX_EABI ??= "" | ||
9 | ARMPKGSFX_THUMB ??= "" | ||
10 | |||
11 | TUNE_ARCH = "${@bb.utils.contains("TUNE_FEATURES", "bigendian", "armeb", "arm", d)}" | ||
12 | TUNE_PKGARCH = "${@d.getVar('ARMPKGARCH', True)}${ARMPKGSFX_THUMB}${ARMPKGSFX_DSP}${ARMPKGSFX_EABI}${ARMPKGSFX_ENDIAN}${ARMPKGSFX_FPU}" | ||
2 | 13 | ||
3 | ABIEXTENSION = "eabi" | 14 | ABIEXTENSION = "eabi" |
15 | |||
16 | TARGET_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 @@ | |||
1 | DEFAULTTUNE ?= "armv4" | ||
2 | |||
3 | ARMPKGARCH ?= "armv4" | ||
4 | |||
5 | TUNEVALID[armv4] = "Enable instructions for ARMv4" | ||
6 | TUNE_CCARGS += "${@bb.utils.contains("TUNE_FEATURES", "armv4", "-march=armv4${ARMPKGSFX_THUMB}", "", d)}" | ||
7 | |||
8 | require conf/machine/include/arm/arch-arm.inc | ||
9 | require conf/machine/include/arm/feature-arm-thumb.inc | ||
10 | |||
11 | # Little Endian | ||
12 | AVAILTUNES += "armv4 armv4t" | ||
13 | TUNE_FEATURES_tune-armv4 ?= "armv4" | ||
14 | TUNE_FEATURES_tune-armv4t ?= "armv4 thumb" | ||
15 | PACKAGE_EXTRA_ARCHS_tune-armv4 = "arm armv4" | ||
16 | PACKAGE_EXTRA_ARCHS_tune-armv4t = "${PACKAGE_EXTRA_ARCHS_tune-armv4} armv4t" | ||
17 | |||
18 | # Big Endian | ||
19 | AVAILTUNES += "armv4b armv4tb" | ||
20 | TUNE_FEATURES_tune-armv4b ?= "${TUNE_FEATURES_tune-armv4} bigendian" | ||
21 | TUNE_FEATURES_tune-armv4tb ?= "${TUNE_FEATURES_tune-armv4t} bigendian" | ||
22 | PACKAGE_EXTRA_ARCHS_tune-armv4b = "armeb armv4b" | ||
23 | PACKAGE_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 @@ | |||
1 | ARMPKGSFX_DSP = "${@bb.utils.contains("TUNE_FEATURES", [ "armv5", "dsp" ], "e", "", d)}" | ||
2 | |||
3 | require conf/machine/include/arm/arch-armv5.inc | ||
4 | |||
5 | # Little Endian | ||
6 | AVAILTUNES += "armv5e armv5te" | ||
7 | TUNE_FEATURES_tune-armv5e ?= "armv5 dsp" | ||
8 | TUNE_FEATURES_tune-armv5te ?= "armv5 dsp thumb" | ||
9 | PACKAGE_EXTRA_ARCHS_tune-armv5e = "${PACKAGE_EXTRA_ARCHS_tune-armv5} armv5e" | ||
10 | PACKAGE_EXTRA_ARCHS_tune-armv5te = "${PACKAGE_EXTRA_ARCHS_tune-armv5t} armv5e armv5te" | ||
11 | |||
12 | # Little Endian + VFP/DSP | ||
13 | AVAILTUNES += "armv5e-vfp armv5te-vfp armv5ehf-vfp armv5tehf-vfp" | ||
14 | TUNE_FEATURES_tune-armv5e-vfp ?= "armv5 vfp dsp" | ||
15 | TUNE_FEATURES_tune-armv5te-vfp ?= "armv5 vfp dsp thumb" | ||
16 | TUNE_FEATURES_tune-armv5ehf-vfp ?= "${TUNE_FEATURES_tune-armv5e-vfp} callconvention-hard" | ||
17 | TUNE_FEATURES_tune-armv5tehf-vfp ?= "${TUNE_FEATURES_tune-armv5te-vfp} callconvention-hard" | ||
18 | PACKAGE_EXTRA_ARCHS_tune-armv5e-vfp = "${PACKAGE_EXTRA_ARCHS_tune-armv5-vfp} armv5e armv5e-vfp" | ||
19 | PACKAGE_EXTRA_ARCHS_tune-armv5te-vfp = "${PACKAGE_EXTRA_ARCHS_tune-armv5t-vfp} armv5e armv5te armv5e-vfp armv5te-vfp" | ||
20 | PACKAGE_EXTRA_ARCHS_tune-armv5ehf-vfp = "${PACKAGE_EXTRA_ARCHS_tune-armv5hf-vfp} armv5ehf-vfp" | ||
21 | PACKAGE_EXTRA_ARCHS_tune-armv5tehf-vfp = "${PACKAGE_EXTRA_ARCHS_tune-armv5thf-vfp} armv5ehf-vfp armv5tehf-vfp" | ||
22 | |||
23 | # Big Endian | ||
24 | AVAILTUNES += "armv5eb armv5teb" | ||
25 | TUNE_FEATURES_tune-armv5eb ?= "${TUNE_FEATURES_tune-armv5e} bigendian" | ||
26 | TUNE_FEATURES_tune-armv5teb ?= "${TUNE_FEATURES_tune-armv5te} bigendian" | ||
27 | PACKAGE_EXTRA_ARCHS_tune-armv5eb = "${PACKAGE_EXTRA_ARCHS_tune-armv5} armv5eb" | ||
28 | PACKAGE_EXTRA_ARCHS_tune-armv5teb = "${PACKAGE_EXTRA_ARCHS_tune-armv5t} armv5eb armv5teb" | ||
29 | |||
30 | # Big Endian + VFP/DSP | ||
31 | AVAILTUNES += "armv5eb-vfp armv5teb-vfp armv5ehfb-vfp armv5tehfb-vfp" | ||
32 | TUNE_FEATURES_tune-armv5eb-vfp ?= "${TUNE_FEATURES_tune-armv5e-vfp} bigendian" | ||
33 | TUNE_FEATURES_tune-armv5teb-vfp ?= "${TUNE_FEATURES_tune-armv5te-vfp} bigendian" | ||
34 | TUNE_FEATURES_tune-armv5ehfb-vfp ?= "${TUNE_FEATURES_tune-armv5eb-vfp} callconvention-hard" | ||
35 | TUNE_FEATURES_tune-armv5tehfb-vfp ?= "${TUNE_FEATURES_tune-armv5teb-vfp} callconvention-hard" | ||
36 | PACKAGE_EXTRA_ARCHS_tune-armv5eb-vfp = "${PACKAGE_EXTRA_ARCHS_tune-armv5-vfp} armv5eb armv5eb-vfp" | ||
37 | PACKAGE_EXTRA_ARCHS_tune-armv5teb-vfp = "${PACKAGE_EXTRA_ARCHS_tune-armv5t-vfp} armv5eb armv5teb armv5eb-vfp armv5teb-vfp" | ||
38 | PACKAGE_EXTRA_ARCHS_tune-armv5ehfb-vfp = "${PACKAGE_EXTRA_ARCHS_tune-armv5hfb-vfp} armv5ehfb-vfp" | ||
39 | PACKAGE_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 @@ | |||
1 | DEFAULTTUNE ?= "armv5" | ||
2 | |||
3 | ARMPKGARCH ?= "armv5" | ||
4 | |||
5 | TUNEVALID[armv5] = "Enable instructions for ARMv5" | ||
6 | TUNE_CONFLICTS[armv5] = "armv4" | ||
7 | TUNE_CCARGS += "${@bb.utils.contains("TUNE_FEATURES", "armv5", "-march=armv5${ARMPKGSFX_THUMB}${ARMPKGSFX_DSP}", "", d)}" | ||
8 | |||
9 | ARMPKGSFX_DSP = "${@bb.utils.contains("TUNE_FEATURES", [ "armv5", "dsp" ], "e", "", d)}" | ||
10 | |||
11 | require conf/machine/include/arm/arch-armv4.inc | ||
12 | require conf/machine/include/arm/feature-arm-vfp.inc | ||
13 | |||
14 | # Little Endian | ||
15 | AVAILTUNES += "armv5 armv5t armv5e armv5te" | ||
16 | TUNE_FEATURES_tune-armv5 ?= "armv5" | ||
17 | TUNE_FEATURES_tune-armv5t ?= "armv5 thumb" | ||
18 | PACKAGE_EXTRA_ARCHS_tune-armv5 = "${PACKAGE_EXTRA_ARCHS_tune-armv4} armv5" | ||
19 | PACKAGE_EXTRA_ARCHS_tune-armv5t = "${PACKAGE_EXTRA_ARCHS_tune-armv4t} armv5 armv5t" | ||
20 | |||
21 | # Little Endian + VFP/DSP | ||
22 | AVAILTUNES += "armv5-vfp armv5t-vfp armv5hf-vfp armv5thf-vfp" | ||
23 | TUNE_FEATURES_tune-armv5-vfp ?= "armv5 vfp" | ||
24 | TUNE_FEATURES_tune-armv5t-vfp ?= "armv5 vfp" | ||
25 | TUNE_FEATURES_tune-armv5hf-vfp ?= "${TUNE_FEATURES_tune-armv5-vfp} callconvention-hard" | ||
26 | TUNE_FEATURES_tune-armv5thf-vfp ?= "${TUNE_FEATURES_tune-armv5t-vfp} callconvention-hard" | ||
27 | PACKAGE_EXTRA_ARCHS_tune-armv5-vfp = "${PACKAGE_EXTRA_ARCHS_tune-armv5} armv5-vfp" | ||
28 | PACKAGE_EXTRA_ARCHS_tune-armv5t-vfp = "${PACKAGE_EXTRA_ARCHS_tune-armv5t} armv5-vfp armv5t-vfp" | ||
29 | PACKAGE_EXTRA_ARCHS_tune-armv5hf-vfp = "armv5hf-vfp" | ||
30 | PACKAGE_EXTRA_ARCHS_tune-armv5thf-vfp = "armv5hf-vfp armv5thf-vfp" | ||
31 | PACKAGE_EXTRA_ARCHS_tune-armv5tehf-vfp = "${PACKAGE_EXTRA_ARCHS_tune-armv5thf-vfp} armv5ehf-vfp armv5tehf-vfp" | ||
32 | |||
33 | # Big Endian | ||
34 | AVAILTUNES += "armv5b armv5tb" | ||
35 | TUNE_FEATURES_tune-armv5b ?= "${TUNE_FEATURES_tune-armv5} bigendian" | ||
36 | TUNE_FEATURES_tune-armv5tb ?= "${TUNE_FEATURES_tune-armv5t} bigendian" | ||
37 | PACKAGE_EXTRA_ARCHS_tune-armv5b = "${PACKAGE_EXTRA_ARCHS_tune-armv4} armv5b" | ||
38 | PACKAGE_EXTRA_ARCHS_tune-armv5tb = "${PACKAGE_EXTRA_ARCHS_tune-armv4t} armv5b armv5tb" | ||
39 | |||
40 | # Big Endian + VFP/DSP | ||
41 | AVAILTUNES += "armv5b-vfp armv5tb-vfp armv5hfb-vfp armv5thfb-vfp" | ||
42 | TUNE_FEATURES_tune-armv5b-vfp ?= "${TUNE_FEATURES_tune-armv5-vfp} bigendian" | ||
43 | TUNE_FEATURES_tune-armv5tb-vfp ?= "${TUNE_FEATURES_tune-armv5t-vfp} bigendian" | ||
44 | TUNE_FEATURES_tune-armv5hfb-vfp ?= "${TUNE_FEATURES_tune-armv5b-vfp} callconvention-hard" | ||
45 | TUNE_FEATURES_tune-armv5thfb-vfp ?= "${TUNE_FEATURES_tune-armv5tb-vfp} callconvention-hard" | ||
46 | PACKAGE_EXTRA_ARCHS_tune-armv5b-vfp = "${PACKAGE_EXTRA_ARCHS_tune-armv5} armv5b-vfp" | ||
47 | PACKAGE_EXTRA_ARCHS_tune-armv5tb-vfp = "${PACKAGE_EXTRA_ARCHS_tune-armv5t} armv5b-vfp armv5tb-vfp" | ||
48 | PACKAGE_EXTRA_ARCHS_tune-armv5hfb-vfp = "armv5hfb-vfp" | ||
49 | PACKAGE_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 @@ | |||
1 | DEFAULTTUNE ?= "armv6" | ||
2 | |||
3 | ARMPKGARCH ?= "armv6" | ||
4 | |||
5 | TUNEVALID[armv6] = "Enable instructions for ARMv6" | ||
6 | TUNE_CONFLICTS[armv6] = "armv4 armv5" | ||
7 | TUNE_CCARGS += "${@bb.utils.contains("TUNE_FEATURES", "armv6", "-march=armv6", "", d)}" | ||
8 | |||
9 | require conf/machine/include/arm/arch-armv5-dsp.inc | ||
10 | |||
11 | # Little Endian | ||
12 | AVAILTUNES += "armv6 armv6t armv6hf armv6thf" | ||
13 | TUNE_FEATURES_tune-armv6 ?= "armv6 vfp" | ||
14 | TUNE_FEATURES_tune-armv6t ?= "armv6 vfp thumb" | ||
15 | TUNE_FEATURES_tune-armv6hf ?= "${TUNE_FEATURES_tune-armv6} callconvention-hard" | ||
16 | TUNE_FEATURES_tune-armv6thf ?= "${TUNE_FEATURES_tune-armv6t} callconvention-hard" | ||
17 | PACKAGE_EXTRA_ARCHS_tune-armv6 = "${PACKAGE_EXTRA_ARCHS_tune-armv5e-vfp} armv6-vfp" | ||
18 | PACKAGE_EXTRA_ARCHS_tune-armv6t = "${PACKAGE_EXTRA_ARCHS_tune-armv5te-vfp} armv6-vfp armv6t-vfp" | ||
19 | PACKAGE_EXTRA_ARCHS_tune-armv6hf = "${PACKAGE_EXTRA_ARCHS_tune-armv5ehf-vfp} armv6hf-vfp" | ||
20 | PACKAGE_EXTRA_ARCHS_tune-armv6thf = "${PACKAGE_EXTRA_ARCHS_tune-armv5tehf-vfp} armv6hf-vfp armv6thf-vfp" | ||
21 | |||
22 | # Big Endian | ||
23 | AVAILTUNES += "armv6b armv6tb armv6hfb armv6thfb" | ||
24 | TUNE_FEATURES_tune-armv6b ?= "${TUNE_FEATURES_tune-armv6} bigendian" | ||
25 | TUNE_FEATURES_tune-armv6tb ?= "${TUNE_FEATURES_tune-armv6t} bigendian" | ||
26 | TUNE_FEATURES_tune-armv6hfb ?= "${TUNE_FEATURES_tune-armv6b} callconvention-hard" | ||
27 | TUNE_FEATURES_tune-armv6thfb ?= "${TUNE_FEATURES_tune-armv6tb} callconvention-hard" | ||
28 | PACKAGE_EXTRA_ARCHS_tune-armv6b = "${PACKAGE_EXTRA_ARCHS_tune-armv5e-vfp} armv6b-vfp" | ||
29 | PACKAGE_EXTRA_ARCHS_tune-armv6tb = "${PACKAGE_EXTRA_ARCHS_tune-armv5te-vfp} armv6b-vfp armv6tb-vfp" | ||
30 | PACKAGE_EXTRA_ARCHS_tune-armv6hfb = "${PACKAGE_EXTRA_ARCHS_tune-armv5ehfb-vfp} armv6hfb-vfp" | ||
31 | PACKAGE_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 @@ | |||
1 | DEFAULTTUNE ?= "armv7" | ||
2 | |||
3 | ARMPKGARCH ?= "armv7" | ||
4 | |||
5 | TUNEVALID[armv7] = "Enable instructions for ARMv7" | ||
6 | TUNE_CONFLICTS[armv7] = "armv4 armv5 armv6" | ||
7 | TUNE_CCARGS += "${@bb.utils.contains("TUNE_FEATURES", "armv7", "-march=armv7", "", d)}" | ||
8 | |||
9 | require conf/machine/include/arm/arch-armv6.inc | ||
10 | require conf/machine/include/arm/feature-arm-neon.inc | ||
11 | |||
12 | # Little Endian base configs | ||
13 | AVAILTUNES += "armv7 armv7t armv7-neon armv7t-neon" | ||
14 | TUNE_FEATURES_tune-armv7 ?= "armv7 vfp" | ||
15 | TUNE_FEATURES_tune-armv7t ?= "armv7 vfp thumb" | ||
16 | TUNE_FEATURES_tune-armv7-neon ?= "armv7 vfp neon" | ||
17 | TUNE_FEATURES_tune-armv7t-neon ?= "armv7 vfp neon thumb" | ||
18 | PACKAGE_EXTRA_ARCHS_tune-armv7 = "${PACKAGE_EXTRA_ARCHS_tune-armv6} armv7-vfp" | ||
19 | PACKAGE_EXTRA_ARCHS_tune-armv7t = "${PACKAGE_EXTRA_ARCHS_tune-armv6t} armv7-vfp armv7t2-vfp" | ||
20 | PACKAGE_EXTRA_ARCHS_tune-armv7-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv7} armv7-vfp-neon" | ||
21 | PACKAGE_EXTRA_ARCHS_tune-armv7t-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv7t} armv7-vfp-neon armv7at2-vfp-neon" | ||
22 | |||
23 | # VFP Tunes | ||
24 | AVAILTUNES += "armv7hf armv7thf armv7hf-neon armv7thf-neon | ||
25 | TUNE_FEATURES_tune-armv7hf ?= "${TUNE_FEATURES_tune-armv7} callconvention-hard" | ||
26 | TUNE_FEATURES_tune-armv7thf ?= "${TUNE_FEATURES_tune-armv7t} callconvention-hard" | ||
27 | TUNE_FEATURES_tune-armv7hf-neon ?= "${TUNE_FEATURES_tune-armv7-neon} callconvention-hard" | ||
28 | TUNE_FEATURES_tune-armv7thf-neon ?= "${TUNE_FEATURES_tune_armv7t-neon} callconvention-hard" | ||
29 | PACKAGE_EXTRA_ARCHS_tune-armv7hf = "${PACKAGE_EXTRA_ARCHS_tune-armv6hf} armv7hf-vfp" | ||
30 | PACKAGE_EXTRA_ARCHS_tune-armv7thf = "${PACKAGE_EXTRA_ARCHS_tune-armv6thf} armv7hf-vfp armv7t2hf-vfp" | ||
31 | PACKAGE_EXTRA_ARCHS_tune-armv7hf-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv7hf} armv7hf-vfp-neon" | ||
32 | PACKAGE_EXTRA_ARCHS_tune-armv7thf-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv7thf} armv7hf-vfp-neon armv7at2hf-vfp-neon" | ||
33 | |||
34 | # Big Endian | ||
35 | AVAILTUNES += "armv7b armv7tb armv7b-neon armv7tb-neon" | ||
36 | TUNE_FEATURES_tune-armv7b ?= "${TUNE_FEATURES_tune-armv7} bigendian" | ||
37 | TUNE_FEATURES_tune-armv7tb ?= "${TUNE_FEATURES_tune-armv7t} bigendian" | ||
38 | TUNE_FEATURES_tune-armv7b-neon ?= "${TUNE_FEATURES_tune-armv7-neon} bigendian" | ||
39 | TUNE_FEATURES_tune-armv7tb-neon ?= "${TUNE_FEATURES_tune-armv7t-neon} bigendian" | ||
40 | PACKAGE_EXTRA_ARCHS_tune-armv7b = "${PACKAGE_EXTRA_ARCHS_tune-armv6} armv7b-vfp" | ||
41 | PACKAGE_EXTRA_ARCHS_tune-armv7tb = "${PACKAGE_EXTRA_ARCHS_tune-armv6t} armv7b-vfp armv7t2b-vfp" | ||
42 | PACKAGE_EXTRA_ARCHS_tune-armv7b-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv7} armv7b-vfp-neon" | ||
43 | PACKAGE_EXTRA_ARCHS_tune-armv7tb-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv7t} armv7b-vfp-neon armv7at2b-vfp-neon" | ||
44 | |||
45 | # Big Endian + VFP | ||
46 | AVAILTUNES += "armv7hfb armv7thfb armv7hfb-neon armv7thfb-neon" | ||
47 | TUNE_FEATURES_tune-armv7hfb ?= "${TUNE_FEATURES_tune-armv7b} callconvention-hard" | ||
48 | TUNE_FEATURES_tune-armv7thfb ?= "${TUNE_FEATURES_tune-armv7tb} callconvention-hard" | ||
49 | TUNE_FEATURES_tune-armv7hfb-neon ?= "${TUNE_FEATURES_tune-armv7b-neon} callconvention-hard" | ||
50 | TUNE_FEATURES_tune-armv7thfb-neon ?= "${TUNE_FEATURES_tune_armv7tb-neon} callconvention-hard" | ||
51 | PACKAGE_EXTRA_ARCHS_tune-armv7hfb = "${PACKAGE_EXTRA_ARCHS_tune-armv6hfb} armv7hfb-vfp" | ||
52 | PACKAGE_EXTRA_ARCHS_tune-armv7thfb = "${PACKAGE_EXTRA_ARCHS_tune-armv6thfb} armv7hfb-vfp armv7t2hfb-vfp" | ||
53 | PACKAGE_EXTRA_ARCHS_tune-armv7hfb-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv7hfb} armv7hfb-vfp-neon" | ||
54 | PACKAGE_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 @@ | |||
1 | DEFAULTTUNE ?= "armv7a" | ||
2 | |||
3 | ARMPKGARCH ?= "armv7a" | ||
4 | |||
5 | TUNEVALID[armv7-a] = "Enable instructions for ARMv7-a" | ||
6 | TUNE_CONFLICTS[armv7a] = "armv4 armv5 armv6 armv7" | ||
7 | TUNE_CCARGS += "${@bb.utils.contains("TUNE_FEATURES", "armv7a", "-march=armv7-a -fno-tree-vectorize", "", d)}" | ||
8 | |||
9 | require conf/machine/include/arm/arch-armv7.inc | ||
10 | |||
11 | # Little Endian base configs | ||
12 | AVAILTUNES += "armv7a armv7at armv7a-neon armv7at-neon" | ||
13 | TUNE_FEATURES_tune-armv7a ?= "armv7a vfp" | ||
14 | TUNE_FEATURES_tune-armv7at ?= "armv7a vfp thumb" | ||
15 | TUNE_FEATURES_tune-armv7a-neon ?= "armv7a vfp neon" | ||
16 | TUNE_FEATURES_tune-armv7at-neon ?= "armv7a vfp neon thumb" | ||
17 | PACKAGE_EXTRA_ARCHS_tune-armv7a = "${PACKAGE_EXTRA_ARCHS_tune-armv7} armv7a-vfp" | ||
18 | PACKAGE_EXTRA_ARCHS_tune-armv7a-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv7a} armv7a-vfp-neon" | ||
19 | PACKAGE_EXTRA_ARCHS_tune-armv7at = "${PACKAGE_EXTRA_ARCHS_tune-armv7t} armv7a-vfp armv7at2-vfp" | ||
20 | PACKAGE_EXTRA_ARCHS_tune-armv7at-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv7at} armv7a-vfp-neon armv7at2-vfp-neon" | ||
21 | |||
22 | # VFP Tunes | ||
23 | AVAILTUNES += "armv7hf armv7thf armv7hf-neon armv7thf-neon | ||
24 | TUNE_FEATURES_tune-armv7ahf ?= "${TUNE_FEATURES_tune-armv7a} callconvention-hard" | ||
25 | TUNE_FEATURES_tune-armv7athf ?= "${TUNE_FEATURES_tune-armv7at} callconvention-hard" | ||
26 | TUNE_FEATURES_tune-armv7ahf-neon ?= "${TUNE_FEATURES_tune-armv7a-neon} callconvention-hard" | ||
27 | TUNE_FEATURES_tune-armv7athf-neon ?= "${TUNE_FEATURES_tune_armv7at-neon} callconvention-hard" | ||
28 | PACKAGE_EXTRA_ARCHS_tune-armv7ahf = "${PACKAGE_EXTRA_ARCHS_tune-armv7hf} armv7ahf-vfp" | ||
29 | PACKAGE_EXTRA_ARCHS_tune-armv7athf = "${PACKAGE_EXTRA_ARCHS_tune-armv7thf} armv7ahf-vfp armv7at2hf-vfp" | ||
30 | PACKAGE_EXTRA_ARCHS_tune-armv7ahf-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv7ahf} armv7ahf-vfp-neon" | ||
31 | PACKAGE_EXTRA_ARCHS_tune-armv7athf-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv7athf} armv7ahf-vfp-neon armv7at2hf-vfp-neon" | ||
32 | |||
33 | # Big Endian | ||
34 | AVAILTUNES += "armv7ab armv7atb armv7ab-neon armv7atb-neon" | ||
35 | TUNE_FEATURES_tune-armv7ab ?= "${TUNE_FEATURES_tune-armv7a} bigendian" | ||
36 | TUNE_FEATURES_tune-armv7atb ?= "${TUNE_FEATURES_tune-armv7at} bigendian" | ||
37 | TUNE_FEATURES_tune-armv7ab-neon ?= "${TUNE_FEATURES_tune-armv7a-neon} bigendian" | ||
38 | TUNE_FEATURES_tune-armv7atb-neon ?= "${TUNE_FEATURES_tune-armv7at-neon} bigendian" | ||
39 | PACKAGE_EXTRA_ARCHS_tune-armv7ab = "${PACKAGE_EXTRA_ARCHS_tune-armv7} armv7ab-vfp" | ||
40 | PACKAGE_EXTRA_ARCHS_tune-armv7atb = "${PACKAGE_EXTRA_ARCHS_tune-armv7t} armv7ab-vfp armv7at2b-vfp" | ||
41 | PACKAGE_EXTRA_ARCHS_tune-armv7ab-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv7a} armv7ab-vfp-neon" | ||
42 | PACKAGE_EXTRA_ARCHS_tune-armv7atb-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv7at} armv7ab-vfp-neon armv7at2b-vfp-neon" | ||
43 | |||
44 | # Big Endian + VFP | ||
45 | AVAILTUNES += "armv7ahfb armv7athfb armv7ahfb-neon armv7athfb-neon" | ||
46 | TUNE_FEATURES_tune-armv7ahfb ?= "${TUNE_FEATURES_tune-armv7ab} callconvention-hard" | ||
47 | TUNE_FEATURES_tune-armv7athfb ?= "${TUNE_FEATURES_tune-armv7atb} callconvention-hard" | ||
48 | TUNE_FEATURES_tune-armv7ahfb-neon ?= "${TUNE_FEATURES_tune-armv7ab-neon} callconvention-hard" | ||
49 | TUNE_FEATURES_tune-armv7athfb-neon ?= "${TUNE_FEATURES_tune_armv7atb-neon} callconvention-hard" | ||
50 | PACKAGE_EXTRA_ARCHS_tune-armv7ahfb = "${PACKAGE_EXTRA_ARCHS_tune-armv7hfb} armv7ahfb-vfp" | ||
51 | PACKAGE_EXTRA_ARCHS_tune-armv7athfb = "${PACKAGE_EXTRA_ARCHS_tune-armv7thfb} armv7ahfb-vfp armv7at2hfb-vfp" | ||
52 | PACKAGE_EXTRA_ARCHS_tune-armv7ahfb-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv7ahfb} armv7ahfb-vfp-neon" | ||
53 | PACKAGE_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 @@ | |||
1 | TUNEVALID[neon] = "Enable Neon SIMD accelerator unit." | ||
2 | TUNE_CCARGS += "${@bb.utils.contains("TUNE_FEATURES", "neon", "-mfpu=neon", "" ,d)}" | ||
3 | ARMPKGSFX_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. | ||
7 | TUNEVALID[thumb] = "Use thumb instructions instead of ARM" | ||
8 | TUNE_CCARGS += "${@bb.utils.contains("TUNE_FEATURES", "thumb", "-mthumb", "-mno-thumb", d)}" | ||
9 | OVERRIDES .= "${@bb.utils.contains("TUNE_FEATURES", "thumb", ":thumb", "", d)}" | ||
10 | |||
11 | # Note armv7 will hit on armv7a as well | ||
12 | ARMPKGSFX_THUMB .= "${@bb.utils.contains("TUNE_FEATURES", [ "armv4", "thumb" ], "t", "", d)}" | ||
13 | ARMPKGSFX_THUMB .= "${@bb.utils.contains("TUNE_FEATURES", [ "armv5", "thumb" ], "t", "", d)}" | ||
14 | ARMPKGSFX_THUMB .= "${@bb.utils.contains("TUNE_FEATURES", [ "armv6", "thumb" ], "t", "", d)}" | ||
15 | ARMPKGSFX_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. | ||
21 | TUNEVALID[no-thumb-interwork] = "Disable mixing of thumb and ARM functions" | ||
22 | TUNE_CCARGS += "${@bb.utils.contains("TUNE_FEATURES", "no-thumb-interwork", "-mno-thumb-interwork", "-mthumb-interwork", d)}" | ||
23 | OVERRIDES .= "${@bb.utils.contains("TUNE_FEATURES", "no-thumb-interwork", ":thumb-interwork", "", d)}" | ||
24 | |||
25 | TARGET_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 @@ | |||
1 | TUNEVALID[vfp] = "Enable Vector Floating Point (vfp) unit." | ||
2 | ARMPKGSFX_FPU .= "${@bb.utils.contains("TUNE_FEATURES", "vfp", "-vfp", "" ,d)}" | ||
3 | |||
4 | TUNEVALID[callconvention-hard] = "Enable EABI hard float call convention, requires VFP." | ||
5 | TUNE_CCARGS += "${@bb.utils.contains("TUNE_FEATURES", "vfp", bb.utils.contains("TUNE_FEATURES", "callconvention-hard", "-mfloat-abi=hard", "-mfloat-abi=softfp", d), "" ,d)}" | ||
6 | ARMPKGSFX_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 @@ | |||
1 | require conf/machine/include/arm/arch-arm.inc | 1 | DEFAULTTUNE ?= "arm1136jfs" |
2 | 2 | ||
3 | TUNE_CCARGS = "-march=armv6j -mtune=arm1136jf-s" | 3 | require conf/machine/include/arm/arch-armv6.inc |
4 | TUNE_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)]}" | ||
5 | TUNE_PKGARCH = "armv6" | ||
6 | 4 | ||
7 | ARM_INSTRUCTION_SET = "${@['thumb','arm'][bb.data.getVar('CPU_FEATURES', d, 1).find('thumb') == -1]}" | 5 | TUNEVALID[arm1136jfs] = "Enable arm1136jfs specific processor optimizations" |
8 | PACKAGE_EXTRA_ARCHS = "arm armv4 armv4t armv5te armv6" | 6 | TUNE_CCARGS += "${@bb.utils.contains("TUNE_FEATURES", "arm1136jfs", "-mtune=arm1136jf-s", "", d)}" |
9 | 7 | ||
10 | require conf/machine/include/tune-thumb.inc | 8 | AVAILTUNES += "arm1136jfs" |
9 | TUNE_FEATURES_tune-arm1136jfs = "${TUNE_FEATURES_tune-armv6} arm1136jfs" | ||
10 | PACKAGE_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 @@ | |||
1 | require conf/machine/include/arm/arch-arm.inc | 1 | DEFAULTTUNE ?= "arm920t" |
2 | |||
3 | require conf/machine/include/arm/arch-armv4.inc | ||
4 | |||
5 | TUNEVALID[arm920t] = "Enable arm920t specific processor optimizations" | ||
6 | TUNE_CCARGS += "${@bb.utils.contains("TUNE_FEATURES", "arm920t", "-mtune=arm920t", "", d)}" | ||
7 | |||
8 | AVAILTUNES += "arm920t" | ||
9 | TUNE_FEATURES_tune-arm920t = "${TUNE_FEATURES_tune-armv4t} arm920t" | ||
10 | PACKAGE_EXTRA_ARCHS_tune-arm920t = "${PACKAGE_EXTRA_ARCHS_tune-armv4t}" | ||
2 | 11 | ||
3 | TUNE_PKGARCH = "armv4t" | ||
4 | TUNE_CCARGS = "-march=armv4t -mtune=arm920t" | ||
5 | PACKAGE_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 @@ | |||
1 | require conf/machine/include/arm/arch-arm.inc | 1 | DEFAULTTUNE ?= "arm926ejs" |
2 | 2 | ||
3 | TUNE_PKGARCH = "armv5te" | 3 | require conf/machine/include/arm/arch-armv5-dsp.inc |
4 | PACKAGE_EXTRA_ARCHS = "arm armv4 armv4t armv5te" | 4 | |
5 | # For gcc 3.x you need: | 5 | TUNEVALID[arm926ejs] = "Enable arm926ejs specific processor optimizations" |
6 | #TUNE_CCARGS = "-march=armv5te -mtune=arm926ejs" | 6 | TUNE_CCARGS += "${@bb.utils.contains("TUNE_FEATURES", "arm926ejs", "-mtune=arm926ej-s", "", d)}" |
7 | # For gcc 4.x you need: | 7 | |
8 | TUNE_CCARGS = "-march=armv5te -mtune=arm926ej-s" | 8 | AVAILTUNES += "arm926ejs" |
9 | TUNE_FEATURES_tune-arm926ejs = "${TUNE_FEATURES_tune-armv5te} arm926ejs" | ||
10 | PACKAGE_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 @@ | |||
1 | require conf/machine/include/arm/arch-arm.inc | 1 | DEFAULTTUNE ?= "arm9tdmi" |
2 | |||
3 | require conf/machine/include/arm/arch-armv4.inc | ||
4 | |||
5 | TUNEVALID[arm9tdmi] = "Enable arm9tdmi specific processor optimizations" | ||
6 | TUNE_CCARGS += "${@bb.utils.contains("TUNE_FEATURES", "arm9tdmi", "-mtune=arm9tdmi", "", d)}" | ||
7 | |||
8 | AVAILTUNES += "arm9tdmi" | ||
9 | TUNE_FEATURES_tune-arm9tdmi = "${TUNE_FEATURES_tune-armv4t} arm9tdmi" | ||
10 | PACKAGE_EXTRA_ARCHS_tune-arm9tdmi = "${PACKAGE_EXTRA_ARCHS_tune-armv4t}" | ||
2 | 11 | ||
3 | TUNE_PKGARCH = "armv4t" | ||
4 | PACKAGE_EXTRA_ARCHS = "arm armv4 armv4t" | ||
5 | TUNE_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 @@ | |||
1 | require conf/machine/include/arm/arch-arm.inc | 1 | require 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 | ||
6 | TUNE_CCARGS = "-march=armv7 -mfpu=vfp -mfloat-abi=softfp" | ||
7 | TUNE_PKGARCH = "armv7" | ||
8 | PACKAGE_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 @@ | |||
1 | require conf/machine/include/arm/arch-arm.inc | 1 | DEFAULTTUNE ?= "cortexa8-neon" |
2 | 2 | ||
3 | require 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] | 5 | TUNEVALID[cortexa8] = "Enable Cortex-A8 specific processor optimizations" |
5 | # [1] http://gcc.gnu.org/onlinedocs/gcc/ARM-NEON-Intrinsics.html | 6 | TUNE_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 | ||
9 | TUNE_CCARGS = "-march=armv7-a -mtune=cortex-a8 -mfpu=neon -mfloat-abi=softfp -fno-tree-vectorize" | 8 | AVAILTUNES += "cortexa8 cortexa8t" |
9 | TUNE_FEATURES_tune-cortexa8 = "${TUNE_FEATURES_tune-armv7a} cortexa8" | ||
10 | TUNE_FEATURES_tune-cortexa8t = "${TUNE_FEATURES_tune-armv7at} cortexa8" | ||
11 | TUNE_FEATURES_tune-cortexa8-neon = "${TUNE_FEATURES_tune-cortexa8} neon" | ||
10 | 12 | ||
11 | # Other potentially useful options | 13 | PACKAGE_EXTRA_ARCHS_tune-cortexa8 = "${PACKAGE_EXTRA_ARCHS_tune-armv7at}" |
12 | #-ftree-vectorize -ffast-math -fno-omit-frame-pointer | 14 | PACKAGE_EXTRA_ARCHS_tune-cortexa8t = "${PACKAGE_EXTRA_ARCHS_tune-armv7at}" |
15 | PACKAGE_EXTRA_ARCHS_tune-cortexa8-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv7at-neon}" | ||
13 | 16 | ||
14 | TUNE_PKGARCH = "armv7a" | ||
15 | PACKAGE_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 @@ | |||
1 | require conf/machine/include/arm/arch-arm.inc | 1 | DEFAULTTUNE ?= "cortexm1" |
2 | |||
3 | require conf/machine/include/arm/arch-armv7a.inc | ||
4 | |||
5 | TUNEVALID[cortexm1] = "Enable Cortex-M1 specific processor optimizations" | ||
6 | TUNE_CCARGS += "${@bb.utils.contains("TUNE_FEATURES", "cortexm1", "-mtune=cortex-m1", "", d)}" | ||
7 | |||
8 | AVAILTUNES += "cortexm1" | ||
9 | TUNE_FEATURES_tune-cortexm1 = "${TUNE_FEATURES_tune-armv7a} coretexm1" | ||
10 | PACKAGE_EXTRA_ARCHS_tune-cortexm1 = "${PACKAGE_EXTRA_ARCHS_tune-armv7at}" | ||
2 | 11 | ||
3 | TUNE_CCARGS = "-march=armv7 -mtune=cortex-m1 -mfpu=vfp -mfloat-abi=softfp" | ||
4 | TUNE_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 @@ | |||
1 | require conf/machine/include/arm/arch-arm.inc | 1 | DEFAULTTUNE ?= "cortexm3" |
2 | ARMPKGARCH ?= "armv7m" | ||
3 | |||
4 | require conf/machine/include/arm/arch-armv7a.inc | ||
5 | |||
6 | TUNEVALID[cortexm3] = "Enable Cortex-M3 specific processor optimizations" | ||
7 | TUNE_CCARGS += "${@bb.utils.contains("TUNE_FEATURES", "cortexm3", "-mtune=cortex-m3", "", d)}" | ||
8 | |||
9 | TUNEVALID[armv7m] = "Enable Cortex-M3 specific processor optimizations" | ||
10 | TUNE_CCARGS += "${@bb.utils.contains("TUNE_FEATURES", "armv7m", "-march=armv7-m", "", d)}" | ||
11 | |||
12 | AVAILTUNES += "cortexm3" | ||
13 | TUNE_FEATURES_tune-cortexm3 = "armv7m vfp coretexm3" | ||
14 | PACKAGE_EXTRA_ARCHS_tune-cortexm3 = "${PACKAGE_EXTRA_ARCHS_tune-armv7at} armv7m" | ||
2 | 15 | ||
3 | # valid options for -march: `armv7', `armv7-m' | ||
4 | TUNE_CCARGS = "-march=armv7-m -mtune=cortex-m3 -mfpu=vfp -mfloat-abi=softfp" | ||
5 | TUNE_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 @@ | |||
1 | require conf/machine/include/arm/arch-arm.inc | 1 | DEFAULTTUNE ?= "cortexr4" |
2 | ARMPKGARCH ?= "armv7r" | ||
3 | |||
4 | require conf/machine/include/arm/arch-armv7a.inc | ||
5 | |||
6 | TUNEVALID[cortexr4] = "Enable Cortex-R4 specific processor optimizations" | ||
7 | TUNE_CCARGS += "${@bb.utils.contains("TUNE_FEATURES", "cortexr4", "-mtune=cortex-r4", "", d)}" | ||
8 | |||
9 | TUNEVALID[armv7r] = "Enable Cortex-R4 specific processor optimizations" | ||
10 | TUNE_CCARGS += "${@bb.utils.contains("TUNE_FEATURES", "armv7r", "-march=armv7-m", "", d)}" | ||
11 | |||
12 | AVAILTUNES += "cortexr4" | ||
13 | TUNE_FEATURES_tune-cortexr4 = "armv7r vfp coretexr4" | ||
14 | PACKAGE_EXTRA_ARCHS_tune-cortexr4 = "${PACKAGE_EXTRA_ARCHS_tune-armv7at} armv7r" | ||
2 | 15 | ||
3 | # valid options for -march: `armv7', `armv7-r' | ||
4 | TUNE_CCARGS = "-march=armv7-r -mtune=cortex-r4 -mfpu=vfp -mfloat-abi=softfp" | ||
5 | TUNE_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 @@ | |||
1 | require conf/machine/include/arm/arch-arm.inc | 1 | DEFAULTTUNE ?= "ep9312" |
2 | ARMPKGARCH ?= "ep9312" | ||
2 | 3 | ||
3 | TUNE_CCARGS = "-march=ep9312 -mtune=ep9312 -mcpu=ep9312" | 4 | require conf/machine/include/arm/arch-armv4.inc |
4 | # add "-mfp=maverick" for newer gcc versions > 4.0 | 5 | |
6 | TUNEVALID[ep9312] = "Enable Intel PXA27x specific processor optimizations" | ||
7 | TUNE_CCARGS += "${@bb.utils.contains("TUNE_FEATURES", "ep9312", "-march=ep9312 -mtune=ep9312", "", d)}" | ||
8 | |||
9 | AVAILTUNES += "ep9312" | ||
10 | TUNE_FEATURES_tune-ep9312 = "thumb ep9312" | ||
11 | PACKAGE_EXTRA_ARCHS_tune-ep9312 = "${PACKAGE_EXTRA_ARCHS_tune-armv4t} ep9312" | ||
5 | 12 | ||
6 | #set arch to ep9312 for all generated packages | ||
7 | PACKAGE_EXTRA_ARCHS = "arm armv4t ep9312" | ||
8 | TUNE_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 @@ | |||
1 | require 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. |
5 | TUNE_CCARGS = "-march=iwmmxt -mcpu=iwmmxt -mtune=iwmmxt" | 3 | |
6 | PACKAGE_EXTRA_ARCHS = "arm armv4 armv4t armv5te iwmmxt" | 4 | DEFAULTTUNE ?= "iwmmxt" |
7 | TUNE_PKGARCH = "iwmmxt" | 5 | ARMPKGARCH ?= "iwmmxt" |
6 | |||
7 | require conf/machine/include/arm/arch-armv5-dsp.inc | ||
8 | |||
9 | TUNEVALID[iwmmxt] = "Enable Intel PXA27x specific processor optimizations" | ||
10 | TUNE_CCARGS += "${@bb.utils.contains("TUNE_FEATURES", "iwmmxt", "-march=iwmmxt -mtune=iwmmxt", "", d)}" | ||
11 | |||
12 | AVAILTUNES += "iwmmxt" | ||
13 | TUNE_FEATURES_tune-iwmmxt = "thumb iwmmxt" | ||
14 | PACKAGE_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 @@ | |||
1 | require conf/machine/include/arm/arch-arm.inc | 1 | DEFAULTTUNE ?= "strongarm" |
2 | 2 | ||
3 | TUNE_PKGARCH = "arm" | 3 | require conf/machine/include/arm/arch-armv4.inc |
4 | 4 | ||
5 | # This machine lists common configuration options for Strongarm 1100 devices | 5 | TUNEVALID[strongarm] = "Enable Strongarm 1100 series processor optimizations" |
6 | # NOTE: The Zaurus Collie also has a Strongarm processor, but uses the 1110 type | 6 | TUNE_CCARGS += "${@bb.utils.contains("TUNE_FEATURES", "strongarm", "-mtune=strongarm1100", "", d)}" |
7 | |||
8 | AVAILTUNES += "strongarm" | ||
9 | TUNE_FEATURES_tune-strongarm = "${TUNE_FEATURES_tune-armv4} strongarm" | ||
10 | PACKAGE_EXTRA_ARCHS_tune-strongarm = "${PACKAGE_EXTRA_ARCHS_tune-armv4}" | ||
7 | 11 | ||
8 | TUNE_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 @@ | |||
1 | require conf/machine/include/arm/arch-arm.inc | 1 | DEFAULTTUNE ?= "xscale" |
2 | 2 | ||
3 | INHERIT += "siteinfo" | 3 | require conf/machine/include/arm/arch-armv5-dsp.inc |
4 | 4 | ||
5 | TUNE_CCARGS = "-march=armv5te -mtune=xscale" | 5 | TUNEVALID[xscale] = "Enable PXA255/PXA26x Xscale specific processor optimizations" |
6 | TARGET_CC_KERNEL_ARCH = "-march=armv5te -mtune=xscale" | 6 | TUNE_CCARGS += "${@bb.utils.contains("TUNE_FEATURES", "xscale", "-mtune=xscale", "", d)}" |
7 | TUNE_PKGARCH = "${@['armv5teb', 'armv5te'][bb.data.getVar('SITEINFO_ENDIANNESS', d, 1) == 'le']}" | 7 | |
8 | PACKAGE_EXTRA_ARCHS = "${@['armeb armv4b armv4tb armv5teb', 'arm armv4 armv4t armv5te'][bb.data.getVar('SITEINFO_ENDIANNESS', d, 1) == 'le']}" | 8 | AVAILTUNES += "xscale" |
9 | TUNE_FEATURES_tune-xscale = "${TUNE_FEATURES_tune-armv5te} xscale" | ||
10 | PACKAGE_EXTRA_ARCHS_tune-xscale = "${PACKAGE_EXTRA_ARCHS_tune-armv5te}" | ||
11 | |||
12 | AVAILTUNES += "xscale-be" | ||
13 | TUNE_FEATURES_tune-xscale = "${TUNE_FEATURES_tune-armv5teb} xscale" | ||
14 | PACKAGE_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 |