From dba942c80dc2cfa5768a856fff98e22a755fdd27 Mon Sep 17 00:00:00 2001 From: Waldemar Brodkorb Date: Tue, 4 Oct 2016 06:51:35 +0200 Subject: add experimental aarch64 support Ported over from GNU C Library and runtime tested in Qemu. --- extra/Configs/Config.aarch64 | 32 ++++++++++++++++++++++++++++++++ extra/Configs/Config.in | 11 ++++++++++- extra/Configs/Config.in.arch | 2 +- 3 files changed, 43 insertions(+), 2 deletions(-) create mode 100644 extra/Configs/Config.aarch64 (limited to 'extra') 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 -- cgit v1.2.3