diff options
| -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)}" |
