summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYann E. MORIN" <yann.morin.1998@free.fr>2013-12-30 22:28:18 (GMT)
committerYann E. MORIN" <yann.morin.1998@free.fr>2013-12-30 22:28:18 (GMT)
commit1bf982dd686d5f07c377249396ac2068a1b1bbf2 (patch)
treee48006d20c58f92c2b689df6f0ed79846ec7de4f
parent9bda4536fee99b14737f6e0cba3bf4d186f0544d (diff)
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>
-rw-r--r--config/arch/arm.in7
-rw-r--r--scripts/build/arch/arm.sh11
-rw-r--r--scripts/build/kernel/linux.sh4
3 files changed, 18 insertions, 4 deletions
diff --git a/config/arch/arm.in b/config/arch/arm.in
index 25311c4..5d40e37 100644
--- a/config/arch/arm.in
+++ b/config/arch/arm.in
@@ -1,6 +1,7 @@
# ARM specific configuration file
## select ARCH_SUPPORTS_32
+## select ARCH_SUPPORTS_64
## select ARCH_DEFAULT_32
## select ARCH_SUPPORTS_BOTH_MMU
## select ARCH_DEFAULT_HAS_MMU
@@ -9,9 +10,9 @@
## select ARCH_SUPPORTS_WITH_ARCH
## select ARCH_SUPPORTS_WITH_CPU
## select ARCH_SUPPORTS_WITH_TUNE
-## select ARCH_SUPPORTS_WITH_FLOAT
-## select ARCH_SUPPORTS_WITH_FPU
-## select ARCH_SUPPORTS_SOFTFP
+## select ARCH_SUPPORTS_WITH_FLOAT if ARCH_32
+## select ARCH_SUPPORTS_WITH_FPU if ARCH_32
+## select ARCH_SUPPORTS_SOFTFP if ARCH_32
##
## help The ARM architecture, as defined by:
## help http://www.arm.com/
diff --git a/scripts/build/arch/arm.sh b/scripts/build/arch/arm.sh
index f111b03..430bdde 100644
--- a/scripts/build/arch/arm.sh
+++ b/scripts/build/arch/arm.sh
@@ -2,7 +2,16 @@
CT_DoArchTupleValues() {
# The architecture part of the tuple:
- CT_TARGET_ARCH="${CT_ARCH}${CT_ARCH_SUFFIX:-${target_endian_eb}}"
+ case "${CT_ARCH_BITNESS}" in
+ 32)
+ CT_TARGET_ARCH="${CT_ARCH}${CT_ARCH_SUFFIX:-${target_endian_eb}}"
+ ;;
+ 64)
+ # ARM 64 (aka AArch64) is special
+ [ "${CT_ARCH_BE}" = "y" ] && target_endian_eb="_be"
+ CT_TARGET_ARCH="aarch64${CT_ARCH_SUFFIX:-${target_endian_eb}}"
+ ;;
+ esac
# The system part of the tuple:
case "${CT_LIBC},${CT_ARCH_ARM_EABI}" in
diff --git a/scripts/build/kernel/linux.sh b/scripts/build/kernel/linux.sh
index 3899483..90daa8a 100644
--- a/scripts/build/kernel/linux.sh
+++ b/scripts/build/kernel/linux.sh
@@ -110,6 +110,10 @@ do_kernel_install() {
V_OPT="V=${CT_KERNEL_LINUX_VERBOSE_LEVEL}"
kernel_arch="${CT_ARCH}"
+ case "${CT_ARCH}:${CT_ARCH_BITNESS}" in
+ # ARM 64 (aka AArch64) is special
+ arm:64) kernel_arch="arm64";;
+ esac
CT_DoLog EXTRA "Installing kernel headers"
CT_DoExecLog ALL \