From 4675228299dcd13e9a086fedd22fb6085d098350 Mon Sep 17 00:00:00 2001 From: Waldemar Brodkorb Date: Fri, 9 Oct 2020 12:40:24 +0200 Subject: add kvx toolchain support --- scripts/config.sub | 1 + target/arch.lst | 1 + target/config/Config.in.binutils | 5 + target/config/Config.in.compiler | 5 + target/config/Config.in.cpu | 9 ++ target/config/Config.in.libc | 1 + target/kvx/Makefile | 7 + target/kvx/kernel/generic-kvx | 1 + target/kvx/uclibc-ng.config | 248 +++++++++++++++++++++++++++++++++++ target/linux/Config.in.kernelversion | 5 + target/linux/arch.lst | 1 + toolchain/binutils/Makefile.inc | 7 + toolchain/gcc/Makefile.inc | 7 + 13 files changed, 298 insertions(+) create mode 100644 target/kvx/Makefile create mode 100644 target/kvx/kernel/generic-kvx create mode 100644 target/kvx/uclibc-ng.config diff --git a/scripts/config.sub b/scripts/config.sub index 9bc49a7e9..111b01fc2 100755 --- a/scripts/config.sub +++ b/scripts/config.sub @@ -1182,6 +1182,7 @@ case $cpu-$vendor in | hexagon \ | i370 | i*86 | i860 | i960 | ia16 | ia64 \ | ip2k | iq2000 \ + | kvx \ | k1om \ | le32 | le64 \ | lm32 \ diff --git a/target/arch.lst b/target/arch.lst index f0bc76d79..8ef05f730 100644 --- a/target/arch.lst +++ b/target/arch.lst @@ -14,6 +14,7 @@ ft32 h8300 hppa ia64 +kvx lm32 m32c m32r diff --git a/target/config/Config.in.binutils b/target/config/Config.in.binutils index 8f1d9b7b3..5a90d909f 100644 --- a/target/config/Config.in.binutils +++ b/target/config/Config.in.binutils @@ -5,6 +5,7 @@ choice prompt "Binutils version" default ADK_TOOLCHAIN_BINUTILS_ARC if ADK_TARGET_ARCH_ARC default ADK_TOOLCHAIN_BINUTILS_AVR32 if ADK_TARGET_ARCH_AVR32 +default ADK_TOOLCHAIN_BINUTILS_KVX if ADK_TARGET_ARCH_KVX default ADK_TOOLCHAIN_BINUTILS_NDS32 if ADK_TARGET_ARCH_NDS32 default ADK_TOOLCHAIN_BINUTILS_2_28 if ADK_TARGET_CPU_SH_J2 default ADK_TOOLCHAIN_BINUTILS_2_34 if ADK_TARGET_ARCH_BFIN @@ -34,6 +35,10 @@ config ADK_TOOLCHAIN_BINUTILS_ARC bool "arc-2020.09-eng007" depends on ADK_TARGET_ARCH_ARC +config ADK_TOOLCHAIN_BINUTILS_KVX + bool "kvx-coolidge" + depends on ADK_TARGET_ARCH_KVX + config ADK_TOOLCHAIN_BINUTILS_NDS32 bool "nds32-2.30-open" depends on ADK_TARGET_ARCH_NDS32 diff --git a/target/config/Config.in.compiler b/target/config/Config.in.compiler index 4425bc24a..c76fc0ba8 100644 --- a/target/config/Config.in.compiler +++ b/target/config/Config.in.compiler @@ -14,6 +14,7 @@ prompt "GCC version" depends on ADK_BUILD_COMPILER_GCC default ADK_TOOLCHAIN_GCC_ARC if ADK_TARGET_ARCH_ARC default ADK_TOOLCHAIN_GCC_AVR32 if ADK_TARGET_ARCH_AVR32 +default ADK_TOOLCHAIN_GCC_KVX if ADK_TARGET_ARCH_KVX default ADK_TOOLCHAIN_GCC_LM32 if ADK_TARGET_ARCH_LM32 default ADK_TOOLCHAIN_GCC_METAG if ADK_TARGET_ARCH_METAG default ADK_TOOLCHAIN_GCC_NDS32 if ADK_TARGET_ARCH_NDS32 @@ -79,6 +80,10 @@ config ADK_TOOLCHAIN_GCC_METAG bool "4.2.4-metag" depends on ADK_TARGET_ARCH_METAG +config ADK_TOOLCHAIN_GCC_KVX + bool "coolidge" + depends on ADK_TARGET_ARCH_KVX + config ADK_TOOLCHAIN_GCC_LM32 bool "4.5.4-lm32" depends on ADK_TARGET_ARCH_LM32 diff --git a/target/config/Config.in.cpu b/target/config/Config.in.cpu index 59cc63657..3ee89ce50 100644 --- a/target/config/Config.in.cpu +++ b/target/config/Config.in.cpu @@ -507,6 +507,14 @@ config ADK_TARGET_CPU_IA64 select ADK_TARGET_USE_STATIC_LIBS_ONLY if ADK_TARGET_LIB_UCLIBC_NG depends on ADK_TARGET_ARCH_IA64 +# kvx +config ADK_TARGET_CPU_KVX + bool "kvx" + select ADK_TARGET_SUPPORTS_THREADS + select ADK_TARGET_SUPPORTS_NPTL + select ADK_TARGET_WITH_MMU + depends on ADK_TARGET_ARCH_KVX + # lm32 config ADK_TARGET_CPU_LM32 bool "lm32" @@ -2172,6 +2180,7 @@ config ADK_TARGET_CPU_ARCH default "h8300" if ADK_TARGET_ARCH_H8300 default "hppa" if ADK_TARGET_ARCH_HPPA default "ia64" if ADK_TARGET_ARCH_IA64 + default "kvx" if ADK_TARGET_ARCH_KVX default "lm32" if ADK_TARGET_ARCH_LM32 default "m32c" if ADK_TARGET_ARCH_M32C default "m32r" if ADK_TARGET_ARCH_M32R diff --git a/target/config/Config.in.libc b/target/config/Config.in.libc index 7a1f2d752..5a1acf416 100644 --- a/target/config/Config.in.libc +++ b/target/config/Config.in.libc @@ -23,6 +23,7 @@ config ADK_TARGET_LIB_UCLIBC_NG ADK_TARGET_ARCH_H8300 || \ ADK_TARGET_ARCH_HPPA || \ ADK_TARGET_ARCH_IA64 || \ + ADK_TARGET_ARCH_KVX || \ ADK_TARGET_ARCH_LM32 || \ ADK_TARGET_ARCH_M68K || \ ADK_TARGET_ARCH_METAG || \ diff --git a/target/kvx/Makefile b/target/kvx/Makefile new file mode 100644 index 000000000..03afae8f0 --- /dev/null +++ b/target/kvx/Makefile @@ -0,0 +1,7 @@ +# This file is part of the OpenADK project. OpenADK is copyrighted +# material, please see the LICENCE file in the top-level directory. + +include $(ADK_TOPDIR)/rules.mk +include $(ADK_TOPDIR)/mk/kernel-build.mk +include $(ADK_TOPDIR)/mk/image.mk + diff --git a/target/kvx/kernel/generic-kvx b/target/kvx/kernel/generic-kvx new file mode 100644 index 000000000..14b29e5dc --- /dev/null +++ b/target/kvx/kernel/generic-kvx @@ -0,0 +1 @@ +CONFIG_KVX=y diff --git a/target/kvx/uclibc-ng.config b/target/kvx/uclibc-ng.config new file mode 100644 index 000000000..fc6e6a1ed --- /dev/null +++ b/target/kvx/uclibc-ng.config @@ -0,0 +1,248 @@ +# +# Automatically generated file; DO NOT EDIT. +# uClibc-ng 1.0.36 C Library Configuration +# +# TARGET_aarch64 is not set +# TARGET_alpha is not set +# TARGET_arc is not set +# TARGET_arm is not set +# TARGET_avr32 is not set +# TARGET_bfin is not set +# TARGET_c6x is not set +# TARGET_cris is not set +# TARGET_csky is not set +# TARGET_frv is not set +# TARGET_h8300 is not set +# TARGET_hppa is not set +# TARGET_i386 is not set +# TARGET_ia64 is not set +TARGET_kvx=y +# TARGET_lm32 is not set +# TARGET_m68k is not set +# TARGET_metag is not set +# TARGET_microblaze is not set +# TARGET_mips is not set +# TARGET_nds32 is not set +# TARGET_nios2 is not set +# TARGET_or1k is not set +# TARGET_powerpc is not set +# TARGET_riscv64 is not set +# TARGET_sh is not set +# TARGET_sparc is not set +# TARGET_sparc64 is not set +# TARGET_tile is not set +# TARGET_x86_64 is not set +# TARGET_xtensa is not set + +# +# Target Architecture Features and Options +# +TARGET_ARCH="kvx" +FORCE_OPTIONS_FOR_ARCH=y +# CONFIG_AARCH64_PAGE_SIZE_4K is not set +# CONFIG_AARCH64_PAGE_SIZE_16K is not set +# CONFIG_AARCH64_PAGE_SIZE_64K is not set +TARGET_SUBARCH="" + +# +# Using ELF file format +# +ARCH_LITTLE_ENDIAN=y +# ARCH_WANTS_BIG_ENDIAN is not set +# ARCH_WANTS_LITTLE_ENDIAN is not set + +# +# Using Little Endian +# +ARCH_HAS_MMU=y +ARCH_USE_MMU=y +UCLIBC_HAS_FLOATS=y +UCLIBC_HAS_FPU=y +DO_C99_MATH=y +DO_XSI_MATH=y +UCLIBC_HAS_FENV=y +UCLIBC_HAS_LONG_DOUBLE_MATH=y +KERNEL_HEADERS="" +HAVE_DOT_CONFIG=y + +# +# General Library Settings +# +DOPIC=y +HAVE_SHARED=y +# FORCE_SHAREABLE_TEXT_SEGMENTS is not set +LDSO_LDD_SUPPORT=y +LDSO_CACHE_SUPPORT=y +# LDSO_PRELOAD_ENV_SUPPORT is not set +# LDSO_PRELOAD_FILE_SUPPORT is not set +LDSO_BASE_FILENAME="ld.so" +# LDSO_STANDALONE_SUPPORT is not set +# LDSO_PRELINK_SUPPORT is not set +UCLIBC_STATIC_LDCONFIG=y +LDSO_RUNPATH=y +LDSO_RUNPATH_OF_EXECUTABLE=y +LDSO_SAFE_RUNPATH=y +LDSO_SEARCH_INTERP_PATH=y +LDSO_LD_LIBRARY_PATH=y +UCLIBC_CTOR_DTOR=y +# LDSO_GNU_HASH_SUPPORT is not set +# HAS_NO_THREADS is not set +# UCLIBC_HAS_LINUXTHREADS is not set +UCLIBC_HAS_THREADS_NATIVE=y +UCLIBC_HAS_THREADS=y +UCLIBC_HAS_TLS=y +PTHREADS_DEBUG_SUPPORT=y +UCLIBC_HAS_SYSLOG=y +UCLIBC_HAS_LFS=y +# MALLOC is not set +# MALLOC_SIMPLE is not set +MALLOC_STANDARD=y +UCLIBC_DYNAMIC_ATEXIT=y +UCLIBC_HAS_UTMPX=y +UCLIBC_HAS_UTMP=y +UCLIBC_SUSV2_LEGACY=y +UCLIBC_SUSV3_LEGACY=y +# UCLIBC_SUSV3_LEGACY_MACROS is not set +UCLIBC_SUSV4_LEGACY=y +# UCLIBC_STRICT_HEADERS is not set +# UCLIBC_HAS_STUBS is not set +UCLIBC_HAS_SHADOW=y +UCLIBC_HAS_PROGRAM_INVOCATION_NAME=y +UCLIBC_HAS___PROGNAME=y +UCLIBC_HAS_PTY=y +ASSUME_DEVPTS=y +UNIX98PTY_ONLY=y +UCLIBC_HAS_GETPT=y +UCLIBC_HAS_LIBUTIL=y +UCLIBC_HAS_TM_EXTENSIONS=y +UCLIBC_HAS_TZ_CACHING=y +UCLIBC_HAS_TZ_FILE=y +UCLIBC_HAS_TZ_FILE_READ_MANY=y +UCLIBC_TZ_FILE_PATH="/etc/TZ" +UCLIBC_FALLBACK_TO_ETC_LOCALTIME=y + +# +# Advanced Library Settings +# +UCLIBC_PWD_BUFFER_SIZE=256 +UCLIBC_GRP_BUFFER_SIZE=256 + +# +# Support various families of functions +# +UCLIBC_LINUX_SPECIFIC=y +UCLIBC_HAS_GNU_ERROR=y +UCLIBC_BSD_SPECIFIC=y +UCLIBC_HAS_BSD_ERR=y +UCLIBC_HAS_OBSOLETE_BSD_SIGNAL=y +# UCLIBC_HAS_BSD_B64_NTOP_B64_PTON is not set +# UCLIBC_HAS_OBSOLETE_SYSV_SIGNAL is not set +# UCLIBC_NTP_LEGACY is not set +UCLIBC_SV4_DEPRECATED=y +UCLIBC_HAS_REALTIME=y +UCLIBC_HAS_ADVANCED_REALTIME=y +UCLIBC_HAS_EPOLL=y +UCLIBC_HAS_XATTR=y +# UCLIBC_HAS_PROFILING is not set +UCLIBC_HAS_CRYPT_IMPL=y +UCLIBC_HAS_SHA256_CRYPT_IMPL=y +UCLIBC_HAS_SHA512_CRYPT_IMPL=y +UCLIBC_HAS_CRYPT=y +UCLIBC_HAS_NETWORK_SUPPORT=y +UCLIBC_HAS_SOCKET=y +UCLIBC_HAS_IPV4=y +UCLIBC_HAS_IPV6=y +UCLIBC_USE_NETLINK=y +UCLIBC_SUPPORT_AI_ADDRCONFIG=y +UCLIBC_HAS_BSD_RES_CLOSE=y +UCLIBC_HAS_COMPAT_RES_STATE=y +# UCLIBC_HAS_EXTRA_COMPAT_RES_STATE is not set +UCLIBC_HAS_RESOLVER_SUPPORT=y + +# +# String and Stdio Support +# +UCLIBC_HAS_STRING_GENERIC_OPT=y +UCLIBC_HAS_STRING_ARCH_OPT=y +UCLIBC_HAS_STDIO_FUTEXES=y +UCLIBC_HAS_CTYPE_TABLES=y +UCLIBC_HAS_CTYPE_SIGNED=y +# UCLIBC_HAS_CTYPE_UNSAFE is not set +UCLIBC_HAS_CTYPE_CHECKED=y +# UCLIBC_HAS_CTYPE_ENFORCED is not set +UCLIBC_HAS_WCHAR=y +# UCLIBC_HAS_LIBICONV is not set +# UCLIBC_HAS_LIBINTL is not set +# UCLIBC_HAS_LOCALE is not set +UCLIBC_HAS_HEXADECIMAL_FLOATS=y +UCLIBC_HAS_GLIBC_CUSTOM_PRINTF=y +UCLIBC_PRINTF_SCANF_POSITIONAL_ARGS=9 +# UCLIBC_HAS_STDIO_BUFSIZ_256 is not set +# UCLIBC_HAS_STDIO_BUFSIZ_512 is not set +# UCLIBC_HAS_STDIO_BUFSIZ_1024 is not set +# UCLIBC_HAS_STDIO_BUFSIZ_2048 is not set +UCLIBC_HAS_STDIO_BUFSIZ_4096=y +# UCLIBC_HAS_STDIO_BUFSIZ_8192 is not set +UCLIBC_HAS_STDIO_BUILTIN_BUFFER_NONE=y +# UCLIBC_HAS_STDIO_BUILTIN_BUFFER_4 is not set +# UCLIBC_HAS_STDIO_BUILTIN_BUFFER_8 is not set +# UCLIBC_HAS_STDIO_SHUTDOWN_ON_ABORT is not set +UCLIBC_HAS_STDIO_GETC_MACRO=y +UCLIBC_HAS_STDIO_PUTC_MACRO=y +UCLIBC_HAS_STDIO_AUTO_RW_TRANSITION=y +# UCLIBC_HAS_FOPEN_LARGEFILE_MODE is not set +UCLIBC_HAS_FOPEN_EXCLUSIVE_MODE=y +UCLIBC_HAS_FOPEN_CLOSEEXEC_MODE=y +UCLIBC_HAS_GLIBC_CUSTOM_STREAMS=y +UCLIBC_HAS_PRINTF_M_SPEC=y +UCLIBC_HAS_ERRNO_MESSAGES=y +# UCLIBC_HAS_SYS_ERRLIST is not set +UCLIBC_HAS_SIGNUM_MESSAGES=y +# UCLIBC_HAS_SYS_SIGLIST is not set +UCLIBC_HAS_GNU_GETOPT=y +UCLIBC_HAS_GETOPT_LONG=y +UCLIBC_HAS_GNU_GETSUBOPT=y +UCLIBC_HAS_ARGP=y + +# +# Big and Tall +# +UCLIBC_HAS_REGEX=y +UCLIBC_HAS_FNMATCH=y +UCLIBC_HAS_WORDEXP=y +UCLIBC_HAS_NFTW=y +UCLIBC_HAS_FTW=y +UCLIBC_HAS_FTS=y +UCLIBC_HAS_GLOB=y +UCLIBC_HAS_GNU_GLOB=y + +# +# Library Installation Options +# +RUNTIME_PREFIX="/" +DEVEL_PREFIX="/usr/" +MULTILIB_DIR="lib" +HARDWIRED_ABSPATH=y + +# +# Security options +# +# UCLIBC_HAS_SSP is not set +# UCLIBC_BUILD_RELRO is not set +# UCLIBC_BUILD_NOW is not set +UCLIBC_BUILD_NOEXECSTACK=y + +# +# Development/debugging options +# +CROSS_COMPILER_PREFIX="" +UCLIBC_EXTRA_CFLAGS="" +# DODEBUG is not set +# DOSTRIP is not set +# DOASSERTS is not set +SUPPORT_LD_DEBUG=y +# SUPPORT_LD_DEBUG_EARLY is not set +# UCLIBC_MALLOC_DEBUGGING is not set +# UCLIBC_HAS_BACKTRACE is not set +WARNINGS="-Wall" +# EXTRA_WARNINGS is not set diff --git a/target/linux/Config.in.kernelversion b/target/linux/Config.in.kernelversion index 846ff42a2..c20fb0dde 100644 --- a/target/linux/Config.in.kernelversion +++ b/target/linux/Config.in.kernelversion @@ -13,6 +13,7 @@ default ADK_TARGET_LINUX_KERNEL_VERSION_GIT if ADK_TARGET_SYSTEM_SOLIDRUN_CLEARF default ADK_TARGET_LINUX_KERNEL_VERSION_GIT if ADK_TARGET_SYSTEM_KINETIS_K70 default ADK_TARGET_LINUX_KERNEL_VERSION_GIT if ADK_TARGET_SYSTEM_ADSP_BF537 default ADK_TARGET_LINUX_KERNEL_VERSION_GIT if ADK_TARGET_SYSTEM_PHYTEC_WEGA +default ADK_TARGET_LINUX_KERNEL_VERSION_GIT if ADK_TARGET_ARCH_KVX default ADK_TARGET_LINUX_KERNEL_VERSION_GIT if ADK_TARGET_ARCH_LM32 default ADK_TARGET_LINUX_KERNEL_VERSION_4_4 if ADK_TARGET_ARCH_CRIS default ADK_TARGET_LINUX_KERNEL_VERSION_4_4 if ADK_TARGET_ARCH_H8300 @@ -168,6 +169,7 @@ config ADK_TARGET_LINUX_KERNEL_GIT_REPO default "https://github.com/SolidRun/linux-armada38x.git" if ADK_TARGET_SYSTEM_SOLIDRUN_CLEARFOG default "https://github.com/beagleboard/linux.git" if ADK_TARGET_SYSTEM_BEAGLEBONE_BLACK default "https://git.phytec.de/git/linux-ti.git" if ADK_TARGET_SYSTEM_PHYTEC_WEGA + default "https://github.com/kalray/linux_coolidge.git" if ADK_TARGET_ARCH_KVX default "https://github.com/shenki/linux-lm32.git" if ADK_TARGET_ARCH_LM32 default "git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git" help @@ -176,6 +178,7 @@ config ADK_TARGET_LINUX_KERNEL_GIT_REPO config ADK_TARGET_LINUX_KERNEL_GIT_REPO_NAME string depends on ADK_TARGET_LINUX_KERNEL_VERSION_GIT + default "kvx" if ADK_TARGET_ARCH_KVX default "lm32" if ADK_TARGET_ARCH_LM32 default "rpi" if ADK_TARGET_BOARD_BCM28XX default "ad" if ADK_TARGET_SYSTEM_ADSP_BF537 @@ -189,6 +192,7 @@ config ADK_TARGET_LINUX_KERNEL_GIT_REPO_NAME config ADK_TARGET_LINUX_KERNEL_GIT string "git version" depends on ADK_TARGET_LINUX_KERNEL_VERSION_GIT + default "6b6e8a4d2dfd4c48f108963578712d4caef4513d" if ADK_TARGET_ARCH_KVX default "b6a72d383cf0d4c9c448c1f4e5e8d496ea5c1fd8" if ADK_TARGET_ARCH_LM32 default "a2092141807514666a273971cc8fa9e80f14439f" if ADK_TARGET_BOARD_BCM28XX default "f8d3b2a0fa5054aaed0f14cd457db9d8922bb167" if ADK_TARGET_SYSTEM_ADSP_BF537 @@ -207,6 +211,7 @@ config ADK_TARGET_LINUX_KERNEL_GIT_VER default "2.6.33" if ADK_TARGET_SYSTEM_KINETIS_K70 default "3.14.79" if ADK_TARGET_SYSTEM_SOLIDRUN_IMX6 default "4.8.0" if ADK_TARGET_SYSTEM_QEMU_LM32 + default "5.6.0" if ADK_TARGET_ARCH_KVX config ADK_TARGET_LINUX_KERNEL_GIT_TYPE string diff --git a/target/linux/arch.lst b/target/linux/arch.lst index 0765129d3..5810d9174 100644 --- a/target/linux/arch.lst +++ b/target/linux/arch.lst @@ -11,6 +11,7 @@ frv h8300 hppa ia64 +kvx lm32 m68k metag diff --git a/toolchain/binutils/Makefile.inc b/toolchain/binutils/Makefile.inc index 259229334..65c9a4130 100644 --- a/toolchain/binutils/Makefile.inc +++ b/toolchain/binutils/Makefile.inc @@ -30,6 +30,13 @@ PKG_RELEASE:= 1 PKG_SITES:= https://github.com/foss-for-synopsys-dwc-arc-processors/binutils-gdb.git DISTFILES:= ${PKG_NAME}-${PKG_VERSION}.tar.xz endif +ifeq ($(ADK_TOOLCHAIN_BINUTILS_KVX),y) +PKG_VERSION:= c5e8437af055869c8666a1c1e5a391d9af5be0c0 +PKG_GIT:= hash +PKG_RELEASE:= 1 +PKG_SITES:= https://github.com/kalray/gdb-binutils.git +DISTFILES:= ${PKG_NAME}-${PKG_VERSION}.tar.xz +endif ifeq ($(ADK_TOOLCHAIN_BINUTILS_NDS32),y) PKG_VERSION:= nds32-binutils-2.30-branch-open PKG_GIT:= branch diff --git a/toolchain/gcc/Makefile.inc b/toolchain/gcc/Makefile.inc index fff7dc896..398e802c2 100644 --- a/toolchain/gcc/Makefile.inc +++ b/toolchain/gcc/Makefile.inc @@ -57,6 +57,13 @@ PKG_RELEASE:= 1 DISTFILES:= ${PKG_NAME}-${PKG_VERSION}.tar.gz LIBSTDCXXVER:= 19 endif +ifeq ($(ADK_TOOLCHAIN_GCC_KVX),y) +PKG_VERSION:= 50bb1935d20f383c3d37c98b681f63de873688b2 +PKG_GIT:= hash +PKG_SITES:= https://github.com/kalray/gcc.git +PKG_RELEASE:= 1 +DISTFILES:= ${PKG_NAME}-${PKG_VERSION}.tar.xz +endif ifeq ($(ADK_TOOLCHAIN_GCC_LM32),y) PKG_VERSION:= 4.5.4 PKG_HASH:= 33fb968907ef7b6c528f6395ba049eb34c4df859bf5aa6c2bc3856268801e078 -- cgit v1.2.3