summaryrefslogtreecommitdiff
path: root/extra
diff options
context:
space:
mode:
authorustcymgu@gmail.com <ustcymgu@gmail.com>2022-11-19 14:02:55 +0000
committerWaldemar Brodkorb <wbx@openadk.org>2022-11-20 08:44:03 +0100
commit0a5466d8d53bc8045ff56ff76cc1880aa85761c2 (patch)
tree5ff1df22a9a052a712318b88cc9c57ff2f963326 /extra
parent9e854172e249a383d858fef70368af63a04a28a8 (diff)
RISC-V 32-bit support
Added 32-bit RISC-V support. I have managed to get 32-bit RISC-V No-MMU Linux running based on mainstream buildroot. It's nice to have uclibc support this 32-bit No-MMU target. There's no substantial code change except definations and config options. Signed-off-by: Yimin Gu <ustcymgu@gmail.com>
Diffstat (limited to 'extra')
-rw-r--r--extra/Configs/Config.in9
-rw-r--r--extra/Configs/Config.riscv3214
2 files changed, 23 insertions, 0 deletions
diff --git a/extra/Configs/Config.in b/extra/Configs/Config.in
index 1c41d77ff..6bbb6f572 100644
--- a/extra/Configs/Config.in
+++ b/extra/Configs/Config.in
@@ -39,6 +39,7 @@ choice
default TARGET_or1k if DESIRED_TARGET_ARCH = "or1k"
default TARGET_powerpc if DESIRED_TARGET_ARCH = "powerpc"
default TARGET_riscv64 if DESIRED_TARGET_ARCH = "riscv64"
+ default TARGET_riscv32 if DESIRED_TARGET_ARCH = "riscv32"
default TARGET_sh if DESIRED_TARGET_ARCH = "sh"
default TARGET_sparc if DESIRED_TARGET_ARCH = "sparc"
default TARGET_sparc64 if DESIRED_TARGET_ARCH = "sparc64"
@@ -125,6 +126,9 @@ config TARGET_powerpc
config TARGET_riscv64
bool "riscv64"
+config TARGET_riscv32
+ bool "riscv32"
+
config TARGET_sh
bool "superh"
@@ -260,6 +264,10 @@ if TARGET_riscv64
source "extra/Configs/Config.riscv64"
endif
+if TARGET_riscv32
+source "extra/Configs/Config.riscv32"
+endif
+
if TARGET_sh
source "extra/Configs/Config.sh"
endif
@@ -565,6 +573,7 @@ config UCLIBC_HAS_LINUXTHREADS
select UCLIBC_HAS_REALTIME
depends on !TARGET_aarch64 && \
!TARGET_riscv64 && \
+ !TARGET_riscv32 && \
!TARGET_metag
help
If you want to compile uClibc with Linuxthreads support, then answer Y.
diff --git a/extra/Configs/Config.riscv32 b/extra/Configs/Config.riscv32
new file mode 100644
index 000000000..304d30f70
--- /dev/null
+++ b/extra/Configs/Config.riscv32
@@ -0,0 +1,14 @@
+#
+# For a description of the syntax of this configuration file,
+# see extra/config/Kconfig-language.txt
+#
+
+config TARGET_ARCH
+ string
+ default "riscv32"
+
+config FORCE_OPTIONS_FOR_ARCH
+ bool
+ default y
+ select ARCH_LITTLE_ENDIAN
+ select ARCH_HAS_MMU