aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorZoltan HERPAI <wigyori@uid0.hu>2018-12-16 10:45:53 +0100
committerZoltan HERPAI <wigyori@uid0.hu>2023-06-14 09:22:08 +0200
commit341e312ada4dda207a9f2c8402e73cc13b195983 (patch)
tree130d56e4e1773032cda3f7fe10c8d53342f37083
parent848759c2362fc60fef8aa76f2adeb228af3cae65 (diff)
downloadupstream-341e312ada4dda207a9f2c8402e73cc13b195983.tar.gz
upstream-341e312ada4dda207a9f2c8402e73cc13b195983.tar.bz2
upstream-341e312ada4dda207a9f2c8402e73cc13b195983.zip
generic: groundwork for RISC-V
Add build infrastructure for RISC-V. Signed-off-by: Zoltan HERPAI <wigyori@uid0.hu> (cherry picked from commit 50c05f6cd721130701cbbc77a75d2e090259c4e5)
-rw-r--r--include/kernel.mk2
-rw-r--r--include/site/riscv6430
-rw-r--r--include/target.mk4
-rw-r--r--target/Config.in5
4 files changed, 41 insertions, 0 deletions
diff --git a/include/kernel.mk b/include/kernel.mk
index c657bf5d82..b1ae42534d 100644
--- a/include/kernel.mk
+++ b/include/kernel.mk
@@ -90,6 +90,8 @@ else ifneq (,$(findstring $(ARCH) , mipsel mips64 mips64el ))
LINUX_KARCH := mips
else ifneq (,$(findstring $(ARCH) , powerpc64 ))
LINUX_KARCH := powerpc
+else ifneq (,$(findstring $(ARCH) , riscv64 ))
+ LINUX_KARCH := riscv
else ifneq (,$(findstring $(ARCH) , sh2 sh3 sh4 ))
LINUX_KARCH := sh
else ifneq (,$(findstring $(ARCH) , i386 x86_64 ))
diff --git a/include/site/riscv64 b/include/site/riscv64
new file mode 100644
index 0000000000..c5aa9c5543
--- /dev/null
+++ b/include/site/riscv64
@@ -0,0 +1,30 @@
+#!/bin/sh
+. $TOPDIR/include/site/linux
+ac_cv_c_littleendian=${ac_cv_c_littleendian=yes}
+ac_cv_c_bigendian=${ac_cv_c_bigendian=no}
+
+ac_cv_sizeof___int64=8
+ac_cv_sizeof_char=1
+ac_cv_sizeof_int=4
+ac_cv_sizeof_int16_t=2
+ac_cv_sizeof_int32_t=4
+ac_cv_sizeof_int64_t=8
+ac_cv_sizeof_long_int=8
+ac_cv_sizeof_long_long=8
+ac_cv_sizeof_long=8
+ac_cv_sizeof_off_t=8
+ac_cv_sizeof_short_int=2
+ac_cv_sizeof_short=2
+ac_cv_sizeof_size_t=8
+ac_cv_sizeof_ssize_t=8
+ac_cv_sizeof_u_int16_t=2
+ac_cv_sizeof_u_int32_t=4
+ac_cv_sizeof_u_int64_t=8
+ac_cv_sizeof_uint16_t=2
+ac_cv_sizeof_uint32_t=4
+ac_cv_sizeof_uint64_t=8
+ac_cv_sizeof_unsigned_int=4
+ac_cv_sizeof_unsigned_long=8
+ac_cv_sizeof_unsigned_long_long=8
+ac_cv_sizeof_unsigned_short=2
+ac_cv_sizeof_void_p=8
diff --git a/include/target.mk b/include/target.mk
index 992f955344..b5e3e7ff6f 100644
--- a/include/target.mk
+++ b/include/target.mk
@@ -260,6 +260,10 @@ ifeq ($(DUMP),1)
CPU_CFLAGS_arc700 = -mcpu=arc700
CPU_CFLAGS_archs = -mcpu=archs
endif
+ ifeq ($(ARCH),riscv64)
+ CPU_TYPE ?= riscv64
+ CPU_CFLAGS_riscv64:=-mabi=lp64d -march=rv64imafdc
+ endif
ifneq ($(CPU_TYPE),)
ifndef CPU_CFLAGS_$(CPU_TYPE)
$(warning CPU_TYPE "$(CPU_TYPE)" doesn't correspond to a known type)
diff --git a/target/Config.in b/target/Config.in
index a6b3351a61..ac0f1f9826 100644
--- a/target/Config.in
+++ b/target/Config.in
@@ -184,6 +184,10 @@ config powerpc64
select ARCH_64BIT
bool
+config riscv64
+ select ARCH_64BIT
+ bool
+
config sh3
bool
@@ -223,6 +227,7 @@ config ARCH
default "mips64el" if mips64el
default "powerpc" if powerpc
default "powerpc64" if powerpc64
+ default "riscv64" if riscv64
default "sh3" if sh3
default "sh3eb" if sh3eb
default "sh4" if sh4