summaryrefslogtreecommitdiff
path: root/extra
diff options
context:
space:
mode:
authorWaldemar Brodkorb <wbx@uclibc-ng.org>2016-10-04 06:51:35 +0200
committerWaldemar Brodkorb <wbx@openadk.org>2017-02-01 17:48:38 +0100
commitdba942c80dc2cfa5768a856fff98e22a755fdd27 (patch)
tree371e775cb6dfec085945f6834aeb9d3b6de36fbe /extra
parent9b457baf8d46329f7d7ee2aa084022bb0df88551 (diff)
add experimental aarch64 support
Ported over from GNU C Library and runtime tested in Qemu.
Diffstat (limited to 'extra')
-rw-r--r--extra/Configs/Config.aarch6432
-rw-r--r--extra/Configs/Config.in11
-rw-r--r--extra/Configs/Config.in.arch2
3 files changed, 43 insertions, 2 deletions
diff --git a/extra/Configs/Config.aarch64 b/extra/Configs/Config.aarch64
new file mode 100644
index 000000000..cf1ce3b79
--- /dev/null
+++ b/extra/Configs/Config.aarch64
@@ -0,0 +1,32 @@
+#
+# For a description of the syntax of this configuration file,
+# see extra/config/Kconfig-language.txt
+#
+
+config TARGET_ARCH
+ string
+ default "aarch64"
+
+config FORCE_OPTIONS_FOR_ARCH
+ bool
+ default y
+ select ARCH_ANY_ENDIAN
+ select ARCH_HAS_MMU
+ select UCLIBC_HAS_FPU
+
+choice
+ prompt "MMU Page Size"
+ default CONFIG_AARCH64_PAGE_SIZE_4K
+
+config CONFIG_AARCH64_PAGE_SIZE_4K
+ bool "4KB"
+ help
+ Choose between 4k(default), 16k or 64k
+
+config CONFIG_AARCH64_PAGE_SIZE_16K
+ bool "16KB"
+
+config CONFIG_AARCH64_PAGE_SIZE_64K
+ bool "64KB"
+
+endchoice
diff --git a/extra/Configs/Config.in b/extra/Configs/Config.in
index b2cf977b7..850bd7d13 100644
--- a/extra/Configs/Config.in
+++ b/extra/Configs/Config.in
@@ -15,6 +15,7 @@ config VERSION
choice
prompt "Target Architecture"
+ default TARGET_aarch64 if DESIRED_TARGET_ARCH = "aarch64"
default TARGET_alpha if DESIRED_TARGET_ARCH = "alpha"
default TARGET_arc if DESIRED_TARGET_ARCH = "arc"
default TARGET_arm if DESIRED_TARGET_ARCH = "arm"
@@ -42,6 +43,9 @@ choice
help
The architecture of your target.
+config TARGET_aarch64
+ bool "aarch64"
+
config TARGET_alpha
bool "alpha"
@@ -124,6 +128,10 @@ endchoice
menu "Target Architecture Features and Options"
+if TARGET_aarch64
+source "extra/Configs/Config.aarch64"
+endif
+
if TARGET_alpha
source "extra/Configs/Config.alpha"
endif
@@ -500,7 +508,8 @@ config UCLIBC_HAS_LINUXTHREADS
bool "Linuxthreads"
# linuxthreads need nanosleep()
select UCLIBC_HAS_REALTIME
- depends on !TARGET_metag
+ depends on !TARGET_aarch64 && \
+ !TARGET_metag
help
If you want to compile uClibc with Linuxthreads support, then answer Y.
diff --git a/extra/Configs/Config.in.arch b/extra/Configs/Config.in.arch
index 37dd8bd74..a1a2a5f99 100644
--- a/extra/Configs/Config.in.arch
+++ b/extra/Configs/Config.in.arch
@@ -191,7 +191,7 @@ config UCLIBC_HAS_FENV
config UCLIBC_HAS_LONG_DOUBLE_MATH
bool "Enable long double support"
depends on DO_C99_MATH
- depends on TARGET_aarch64 || TARGET_alpha || TARGET_i386 || TARGET_ia64 || TARGET_m68k || TARGET_powerpc || TARGET_s390 || TARGET_sparc || TARGET_tile || TARGET_x86_64
+ depends on TARGET_alpha || TARGET_i386 || TARGET_ia64 || TARGET_m68k || TARGET_powerpc || TARGET_s390 || TARGET_sparc || TARGET_tile || TARGET_x86_64
default y
help
If you want the uClibc math library to contain the full set of C99