summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-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)}"