summaryrefslogtreecommitdiffstats
path: root/meta/conf/machine/include/arm
diff options
context:
space:
mode:
authorMark Hatle <mark.hatle@windriver.com>2014-12-18 16:51:14 +0800
committerRichard Purdie <richard.purdie@linuxfoundation.org>2014-12-23 10:18:19 +0000
commiteba9c1be73a8c1567795b2073fa850537336c7f6 (patch)
tree42371641af43afb157fcfb98a0ca38e6582180d1 /meta/conf/machine/include/arm
parenta1d75c2cf8ddb6bb48220ffdc883e11b9c06c8d9 (diff)
downloadpoky-eba9c1be73a8c1567795b2073fa850537336c7f6.tar.gz
aarch-arm64: Update tune files
arch-arm64 is the base tune file for aarch64. Update this to allow the system to work with both aarch32 and aarch64 (multilib). arch-armv8 is for compatibility, it simply uses the base config for now. feature-arm-thumb was updated, since aarch64 mode does NOT have thumb support. We should only be processing warnings and additional arguments if thumb support is enabled on the processor core. (From OE-Core rev: 03d2f5646485b565cc14a0009b7d5224ab298f4c) Signed-off-by: Mark Hatle <mark.hatle@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/conf/machine/include/arm')
-rw-r--r--meta/conf/machine/include/arm/arch-arm64.inc36
-rw-r--r--meta/conf/machine/include/arm/arch-armv8.inc21
-rw-r--r--meta/conf/machine/include/arm/feature-arm-thumb.inc10
3 files changed, 44 insertions, 23 deletions
diff --git a/meta/conf/machine/include/arm/arch-arm64.inc b/meta/conf/machine/include/arm/arch-arm64.inc
new file mode 100644
index 0000000000..5376b87dd6
--- /dev/null
+++ b/meta/conf/machine/include/arm/arch-arm64.inc
@@ -0,0 +1,36 @@
1DEFAULTTUNE ?= "aarch64"
2
3require conf/machine/include/arm/arch-armv7a.inc
4
5TUNEVALID[aarch64] = "Enable instructions for aarch64"
6
7MACHINEOVERRIDES .= "${@bb.utils.contains("TUNE_FEATURES", "aarch64", ":aarch64", "" ,d)}"
8
9# Little Endian base configs
10AVAILTUNES += "aarch64 aarch64_be"
11ARMPKGARCH_tune-aarch64 ?= "aarch64"
12ARMPKGARCH_tune-aarch64_be ?= "aarch64_be"
13TUNE_FEATURES_tune-aarch64 ?= "aarch64"
14TUNE_FEATURES_tune-aarch64_be ?= "${TUNE_FEATURES_tune-aarch64} bigendian"
15BASE_LIB_tune-aarch64 = "lib64"
16BASE_LIB_tune-aarch64_be = "lib64"
17
18PACKAGE_EXTRA_ARCHS_tune-aarch64 = "aarch64"
19PACKAGE_EXTRA_ARCHS_tune-aarch64_be = "aarch64_be"
20
21ARMPKGSFX_ENDIAN_64 = "${@bb.utils.contains("TUNE_FEATURES", "bigendian", "_be", "", d)}"
22TUNE_ARCH_64 = "aarch64${ARMPKGSFX_ENDIAN_64}"
23TUNE_PKGARCH_64 = "aarch64${ARMPKGSFX_ENDIAN_64}"
24ABIEXTENSION_64 = ""
25TARGET_FPU_64 = ""
26
27# Duplicated from arch-arm.inc
28TUNE_ARCH_32 = "${@bb.utils.contains("TUNE_FEATURES", "bigendian", "armeb", "arm", d)}"
29TUNE_PKGARCH_32 = "${ARMPKGARCH}${ARMPKGSFX_THUMB}${ARMPKGSFX_DSP}${ARMPKGSFX_EABI}${ARMPKGSFX_ENDIAN}${ARMPKGSFX_FPU}"
30ABIEXTENSION_32 = "eabi"
31TARGET_FPU_32 = "${@d.getVar('ARMPKGSFX_FPU', True).strip('-') or 'soft'}"
32
33TUNE_ARCH = "${@bb.utils.contains("TUNE_FEATURES", "aarch64", "${TUNE_ARCH_64}", "${TUNE_ARCH_32}" ,d)}"
34TUNE_PKGARCH = "${@bb.utils.contains("TUNE_FEATURES", "aarch64", "${TUNE_PKGARCH_64}", "${TUNE_PKGARCH_32}" ,d)}"
35ABIEXTENSION = "${@bb.utils.contains("TUNE_FEATURES", "aarch64", "${ABIEXTENSION_64}", "${ABIEXTENSION_32}" ,d)}"
36TARGET_FPU = "${@bb.utils.contains("TUNE_FEATURES", "aarch64", "${TARGET_FPU_64}", "${TARGET_FPU_32}" ,d)}"
diff --git a/meta/conf/machine/include/arm/arch-armv8.inc b/meta/conf/machine/include/arm/arch-armv8.inc
index c86142ab47..5e832fae6d 100644
--- a/meta/conf/machine/include/arm/arch-armv8.inc
+++ b/meta/conf/machine/include/arm/arch-armv8.inc
@@ -1,20 +1 @@
1DEFAULTTUNE ?= "aarch64" require conf/machine/include/arm/arch-arm64.inc
2
3ARMPKGARCH ?= "aarch64"
4
5TUNEVALID[aarch64] = "Enable instructions for aarch64"
6TUNEVALID[bigendian] = "Enable big-endian mode."
7TUNECONFLICTS[aarch64] = ""
8MACHINEOVERRIDES .= "${@bb.utils.contains("TUNE_FEATURES", "aarch64", ":aarch64", "" ,d)}"
9
10# Little Endian base configs
11AVAILTUNES += "aarch64 aarch64_be"
12TUNE_FEATURES_tune-aarch64 ?= "aarch64"
13TUNE_FEATURES_tune-aarch64_be ?= "${TUNE_FEATURES_tune-aarch64} bigendian"
14
15ARMPKGSFX_ENDIAN = "${@bb.utils.contains("TUNE_FEATURES", "bigendian", "_be", "", d)}"
16
17TUNE_ARCH = "aarch64${ARMPKGSFX_ENDIAN}"
18TUNE_PKGARCH = "aarch64${ARMPKGSFX_ENDIAN}"
19
20PACKAGE_EXTRA_ARCHS = "aarch64${ARMPKGSFX_ENDIAN}"
diff --git a/meta/conf/machine/include/arm/feature-arm-thumb.inc b/meta/conf/machine/include/arm/feature-arm-thumb.inc
index a94386f577..8e6619d1b5 100644
--- a/meta/conf/machine/include/arm/feature-arm-thumb.inc
+++ b/meta/conf/machine/include/arm/feature-arm-thumb.inc
@@ -18,6 +18,8 @@ ARM_THUMB_SUFFIX .= "${@bb.utils.contains('TUNE_FEATURES', 'armv7m', 't2', '', d
18# some recipe explicitly sets ARM_INSTRUCTION_SET to "arm" 18# some recipe explicitly sets ARM_INSTRUCTION_SET to "arm"
19ARM_M_OPT = "${@bb.utils.contains('TUNE_FEATURES', 'arm', '${ARM_THUMB_OPT}', 'thumb', d)}" 19ARM_M_OPT = "${@bb.utils.contains('TUNE_FEATURES', 'arm', '${ARM_THUMB_OPT}', 'thumb', d)}"
20python () { 20python () {
21 if bb.utils.contains('TUNE_FEATURES', 'thumb', 'False', 'True', d):
22 return
21 selected = d.getVar('ARM_INSTRUCTION_SET', True) 23 selected = d.getVar('ARM_INSTRUCTION_SET', True)
22 if selected == None: 24 if selected == None:
23 return 25 return
@@ -37,8 +39,10 @@ ARMPKGSFX_THUMB .= "${@bb.utils.contains('TUNE_FEATURES', 'thumb', '${ARM_THUMB_
37# arm system and vice versa. It is strongly recommended that DISTROs not 39# arm system and vice versa. It is strongly recommended that DISTROs not
38# turn this off - the actual cost is very small. 40# turn this off - the actual cost is very small.
39TUNEVALID[no-thumb-interwork] = "Disable mixing of thumb and ARM functions" 41TUNEVALID[no-thumb-interwork] = "Disable mixing of thumb and ARM functions"
40TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'no-thumb-interwork', ' -mno-thumb-interwork', ' -mthumb-interwork', d)}" 42THUMB_TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'no-thumb-interwork', ' -mno-thumb-interwork', ' -mthumb-interwork', d)}"
41OVERRIDES .= "${@bb.utils.contains('TUNE_FEATURES', 'no-thumb-interwork', ':thumb-interwork', '', d)}" 43THUMB_OVERRIDES .= "${@bb.utils.contains('TUNE_FEATURES', 'no-thumb-interwork', ':thumb-interwork', '', d)}"
44TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'thumb', ' ${THUMB_TUNE_CCARGS}', '', d)}"
45OVERRIDES .= "${@bb.utils.contains('TUNE_FEATURES', 'thumb', ' ${THUMB_OVERRIDES}', '', d)}"
42 46
43# what about armv7m devices which don't support -marm (e.g. Cortex-M3)? 47# what about armv7m devices which don't support -marm (e.g. Cortex-M3)?
44TARGET_CC_KERNEL_ARCH += "-mno-thumb-interwork -marm" 48TARGET_CC_KERNEL_ARCH += "${@bb.utils.contains('TUNE_FEATURES', 'thumb', '-mno-thumb-interwork -marm', '', d)}"