Unverified Commit 9be84592 authored by Guo Ren's avatar Guo Ren Committed by Palmer Dabbelt
Browse files

riscv: compat: Add COMPAT Kbuild skeletal support



Adds initial skeletal COMPAT Kbuild (Running 32bit U-mode on
64bit S-mode) support.
 - Setup kconfig & dummy functions for compiling.
 - Implement compat_start_thread by the way.

Signed-off-by: default avatarGuo Ren <guoren@linux.alibaba.com>
Signed-off-by: default avatarGuo Ren <guoren@kernel.org>
Reviewed-by: default avatarArnd Bergmann <arnd@arndb.de>
Tested-by: default avatarHeiko Stuebner <heiko@sntech.de>
Link: https://lore.kernel.org/r/20220405071314.3225832-21-guoren@kernel.org


Signed-off-by: default avatarPalmer Dabbelt <palmer@rivosinc.com>
parent 4608c159
Loading
Loading
Loading
Loading
+19 −0
Original line number Diff line number Diff line
@@ -76,6 +76,7 @@ config RISCV
	select HAVE_ARCH_KGDB if !XIP_KERNEL
	select HAVE_ARCH_KGDB_QXFER_PKT
	select HAVE_ARCH_MMAP_RND_BITS if MMU
	select HAVE_ARCH_MMAP_RND_COMPAT_BITS if COMPAT
	select HAVE_ARCH_SECCOMP_FILTER
	select HAVE_ARCH_TRACEHOOK
	select HAVE_ARCH_TRANSPARENT_HUGEPAGE if 64BIT && MMU
@@ -127,12 +128,18 @@ config ARCH_MMAP_RND_BITS_MIN
	default 18 if 64BIT
	default 8

config ARCH_MMAP_RND_COMPAT_BITS_MIN
	default 8

# max bits determined by the following formula:
#  VA_BITS - PAGE_SHIFT - 3
config ARCH_MMAP_RND_BITS_MAX
	default 24 if 64BIT # SV39 based
	default 17

config ARCH_MMAP_RND_COMPAT_BITS_MAX
	default 17

# set if we run in machine mode, cleared if we run in supervisor mode
config RISCV_M_MODE
	bool
@@ -394,6 +401,18 @@ config CRASH_DUMP

	  For more details see Documentation/admin-guide/kdump/kdump.rst

config COMPAT
	bool "Kernel support for 32-bit U-mode"
	default 64BIT
	depends on 64BIT && MMU
	help
	  This option enables support for a 32-bit U-mode running under a 64-bit
	  kernel at S-mode. riscv32-specific components such as system calls,
	  the user helper functions (vdso), signal rt_frame functions and the
	  ptrace interface are handled appropriately by the kernel.

	  If you want to execute 32-bit userspace applications, say Y.

endmenu

menu "Boot options"