diff options
Diffstat (limited to 'meta')
-rw-r--r-- | meta/conf/machine/include/arm/arch-arm64.inc | 36 | ||||
-rw-r--r-- | meta/conf/machine/include/arm/arch-armv8.inc | 21 | ||||
-rw-r--r-- | meta/conf/machine/include/arm/feature-arm-thumb.inc | 10 |
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 @@ | |||
1 | DEFAULTTUNE ?= "aarch64" | ||
2 | |||
3 | require conf/machine/include/arm/arch-armv7a.inc | ||
4 | |||
5 | TUNEVALID[aarch64] = "Enable instructions for aarch64" | ||
6 | |||
7 | MACHINEOVERRIDES .= "${@bb.utils.contains("TUNE_FEATURES", "aarch64", ":aarch64", "" ,d)}" | ||
8 | |||
9 | # Little Endian base configs | ||
10 | AVAILTUNES += "aarch64 aarch64_be" | ||
11 | ARMPKGARCH_tune-aarch64 ?= "aarch64" | ||
12 | ARMPKGARCH_tune-aarch64_be ?= "aarch64_be" | ||
13 | TUNE_FEATURES_tune-aarch64 ?= "aarch64" | ||
14 | TUNE_FEATURES_tune-aarch64_be ?= "${TUNE_FEATURES_tune-aarch64} bigendian" | ||
15 | BASE_LIB_tune-aarch64 = "lib64" | ||
16 | BASE_LIB_tune-aarch64_be = "lib64" | ||
17 | |||
18 | PACKAGE_EXTRA_ARCHS_tune-aarch64 = "aarch64" | ||
19 | PACKAGE_EXTRA_ARCHS_tune-aarch64_be = "aarch64_be" | ||
20 | |||
21 | ARMPKGSFX_ENDIAN_64 = "${@bb.utils.contains("TUNE_FEATURES", "bigendian", "_be", "", d)}" | ||
22 | TUNE_ARCH_64 = "aarch64${ARMPKGSFX_ENDIAN_64}" | ||
23 | TUNE_PKGARCH_64 = "aarch64${ARMPKGSFX_ENDIAN_64}" | ||
24 | ABIEXTENSION_64 = "" | ||
25 | TARGET_FPU_64 = "" | ||
26 | |||
27 | # Duplicated from arch-arm.inc | ||
28 | TUNE_ARCH_32 = "${@bb.utils.contains("TUNE_FEATURES", "bigendian", "armeb", "arm", d)}" | ||
29 | TUNE_PKGARCH_32 = "${ARMPKGARCH}${ARMPKGSFX_THUMB}${ARMPKGSFX_DSP}${ARMPKGSFX_EABI}${ARMPKGSFX_ENDIAN}${ARMPKGSFX_FPU}" | ||
30 | ABIEXTENSION_32 = "eabi" | ||
31 | TARGET_FPU_32 = "${@d.getVar('ARMPKGSFX_FPU', True).strip('-') or 'soft'}" | ||
32 | |||
33 | TUNE_ARCH = "${@bb.utils.contains("TUNE_FEATURES", "aarch64", "${TUNE_ARCH_64}", "${TUNE_ARCH_32}" ,d)}" | ||
34 | TUNE_PKGARCH = "${@bb.utils.contains("TUNE_FEATURES", "aarch64", "${TUNE_PKGARCH_64}", "${TUNE_PKGARCH_32}" ,d)}" | ||
35 | ABIEXTENSION = "${@bb.utils.contains("TUNE_FEATURES", "aarch64", "${ABIEXTENSION_64}", "${ABIEXTENSION_32}" ,d)}" | ||
36 | TARGET_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 @@ | |||
1 | DEFAULTTUNE ?= "aarch64" | require conf/machine/include/arm/arch-arm64.inc | |
2 | |||
3 | ARMPKGARCH ?= "aarch64" | ||
4 | |||
5 | TUNEVALID[aarch64] = "Enable instructions for aarch64" | ||
6 | TUNEVALID[bigendian] = "Enable big-endian mode." | ||
7 | TUNECONFLICTS[aarch64] = "" | ||
8 | MACHINEOVERRIDES .= "${@bb.utils.contains("TUNE_FEATURES", "aarch64", ":aarch64", "" ,d)}" | ||
9 | |||
10 | # Little Endian base configs | ||
11 | AVAILTUNES += "aarch64 aarch64_be" | ||
12 | TUNE_FEATURES_tune-aarch64 ?= "aarch64" | ||
13 | TUNE_FEATURES_tune-aarch64_be ?= "${TUNE_FEATURES_tune-aarch64} bigendian" | ||
14 | |||
15 | ARMPKGSFX_ENDIAN = "${@bb.utils.contains("TUNE_FEATURES", "bigendian", "_be", "", d)}" | ||
16 | |||
17 | TUNE_ARCH = "aarch64${ARMPKGSFX_ENDIAN}" | ||
18 | TUNE_PKGARCH = "aarch64${ARMPKGSFX_ENDIAN}" | ||
19 | |||
20 | PACKAGE_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" |
19 | ARM_M_OPT = "${@bb.utils.contains('TUNE_FEATURES', 'arm', '${ARM_THUMB_OPT}', 'thumb', d)}" | 19 | ARM_M_OPT = "${@bb.utils.contains('TUNE_FEATURES', 'arm', '${ARM_THUMB_OPT}', 'thumb', d)}" |
20 | python () { | 20 | python () { |
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. |
39 | TUNEVALID[no-thumb-interwork] = "Disable mixing of thumb and ARM functions" | 41 | TUNEVALID[no-thumb-interwork] = "Disable mixing of thumb and ARM functions" |
40 | TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'no-thumb-interwork', ' -mno-thumb-interwork', ' -mthumb-interwork', d)}" | 42 | THUMB_TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'no-thumb-interwork', ' -mno-thumb-interwork', ' -mthumb-interwork', d)}" |
41 | OVERRIDES .= "${@bb.utils.contains('TUNE_FEATURES', 'no-thumb-interwork', ':thumb-interwork', '', d)}" | 43 | THUMB_OVERRIDES .= "${@bb.utils.contains('TUNE_FEATURES', 'no-thumb-interwork', ':thumb-interwork', '', d)}" |
44 | TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'thumb', ' ${THUMB_TUNE_CCARGS}', '', d)}" | ||
45 | OVERRIDES .= "${@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)? |
44 | TARGET_CC_KERNEL_ARCH += "-mno-thumb-interwork -marm" | 48 | TARGET_CC_KERNEL_ARCH += "${@bb.utils.contains('TUNE_FEATURES', 'thumb', '-mno-thumb-interwork -marm', '', d)}" |