arch/arm: add support for AArch64
author"Yann E. MORIN" <yann.morin.1998@free.fr>
Mon Dec 30 23:28:18 2013 +0100 (2013-12-30)
changeset 326287ad9e82546d
parent 3261 3b61be3d7aa6
child 3263 16f46c7ed41b
arch/arm: add support for AArch64

AArch64 id the 64-bit variant for ARM.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: Zhenqiang Chen <zhenqiang.chen@linaro.org>
Cc: Michael Hope <michael.hope@linaro.org>
config/arch/arm.in
scripts/build/arch/arm.sh
scripts/build/kernel/linux.sh
     1.1 --- a/config/arch/arm.in	Mon Dec 30 23:15:02 2013 +0100
     1.2 +++ b/config/arch/arm.in	Mon Dec 30 23:28:18 2013 +0100
     1.3 @@ -1,6 +1,7 @@
     1.4  # ARM specific configuration file
     1.5  
     1.6  ## select ARCH_SUPPORTS_32
     1.7 +## select ARCH_SUPPORTS_64
     1.8  ## select ARCH_DEFAULT_32
     1.9  ## select ARCH_SUPPORTS_BOTH_MMU
    1.10  ## select ARCH_DEFAULT_HAS_MMU
    1.11 @@ -9,9 +10,9 @@
    1.12  ## select ARCH_SUPPORTS_WITH_ARCH
    1.13  ## select ARCH_SUPPORTS_WITH_CPU
    1.14  ## select ARCH_SUPPORTS_WITH_TUNE
    1.15 -## select ARCH_SUPPORTS_WITH_FLOAT
    1.16 -## select ARCH_SUPPORTS_WITH_FPU
    1.17 -## select ARCH_SUPPORTS_SOFTFP
    1.18 +## select ARCH_SUPPORTS_WITH_FLOAT if ARCH_32
    1.19 +## select ARCH_SUPPORTS_WITH_FPU if ARCH_32
    1.20 +## select ARCH_SUPPORTS_SOFTFP if ARCH_32
    1.21  ##
    1.22  ## help The ARM architecture, as defined by:
    1.23  ## help     http://www.arm.com/
     2.1 --- a/scripts/build/arch/arm.sh	Mon Dec 30 23:15:02 2013 +0100
     2.2 +++ b/scripts/build/arch/arm.sh	Mon Dec 30 23:28:18 2013 +0100
     2.3 @@ -2,7 +2,16 @@
     2.4  
     2.5  CT_DoArchTupleValues() {
     2.6      # The architecture part of the tuple:
     2.7 -    CT_TARGET_ARCH="${CT_ARCH}${CT_ARCH_SUFFIX:-${target_endian_eb}}"
     2.8 +    case "${CT_ARCH_BITNESS}" in
     2.9 +        32)
    2.10 +            CT_TARGET_ARCH="${CT_ARCH}${CT_ARCH_SUFFIX:-${target_endian_eb}}"
    2.11 +            ;;
    2.12 +        64)
    2.13 +            # ARM 64 (aka AArch64) is special
    2.14 +            [ "${CT_ARCH_BE}" = "y" ] && target_endian_eb="_be"
    2.15 +            CT_TARGET_ARCH="aarch64${CT_ARCH_SUFFIX:-${target_endian_eb}}"
    2.16 +            ;;
    2.17 +    esac
    2.18  
    2.19      # The system part of the tuple:
    2.20      case "${CT_LIBC},${CT_ARCH_ARM_EABI}" in
     3.1 --- a/scripts/build/kernel/linux.sh	Mon Dec 30 23:15:02 2013 +0100
     3.2 +++ b/scripts/build/kernel/linux.sh	Mon Dec 30 23:28:18 2013 +0100
     3.3 @@ -110,6 +110,10 @@
     3.4      V_OPT="V=${CT_KERNEL_LINUX_VERBOSE_LEVEL}"
     3.5  
     3.6      kernel_arch="${CT_ARCH}"
     3.7 +    case "${CT_ARCH}:${CT_ARCH_BITNESS}" in
     3.8 +        # ARM 64 (aka AArch64) is special
     3.9 +        arm:64) kernel_arch="arm64";;
    3.10 +    esac
    3.11  
    3.12      CT_DoLog EXTRA "Installing kernel headers"
    3.13      CT_DoExecLog ALL                                    \