Re: [PATCH v1 1/2] riscv: Kconfig: Allow RV32 to build with no MMU

From: Jesse Taube
Date: Fri Jan 20 2023 - 12:39:25 EST




On 1/20/23 02:59, Conor Dooley wrote:
Hello!

Since you'll have to re-submit, making sure that allowing !MMU on rv32
doesn't break the build due to canaan k210 drivers being enabled despite
relying on 64-bit divisions, I've got some nits for you.
Not sure what driver needs 64bit, but sense !MMU was only selected by 64BIT. This should work.
diff --git a/arch/riscv/Kconfig.socs b/arch/riscv/Kconfig.socs
index 69774bb362d6..b9835b8ede86 100644
--- a/arch/riscv/Kconfig.socs
+++ b/arch/riscv/Kconfig.socs
@@ -43,7 +43,7 @@ config SOC_VIRT

config SOC_CANAAN
bool "Canaan Kendryte K210 SoC"
- depends on !MMU
+ depends on !MMU && 64BIT
select CLINT_TIMER if RISCV_M_MODE
select SERIAL_SIFIVE if TTY
select SERIAL_SIFIVE_CONSOLE if TTY

On Thu, Jan 19, 2023 at 12:26:41AM -0500, Jesse Taube wrote:
From: Yimin Gu <ustcymgu@xxxxxxxxx>

Some RISC-V 32bit ores do not have an MMU, and the kernel should be

s/ores/cores
OH thanks sorry for the spelling mistakes.

Thanks,
Jesse Taube
able to build for them. This patch enables the RV32 to be built with
no MMU support.

Signed-off-by: Yimin Gu <ustcymgu@xxxxxxxxx>
CC: Jesse Taube <Mr.Bossman075@xxxxxxxxx>
Tested-By: Waldemar Brodkorb <wbx@xxxxxxxxxxx>

And the automation complains that this tag is not "Tested-by:"

Thanks,
Conor.

Signed-off-by: Jesse Taube <Mr.Bossman075@xxxxxxxxx>
---
arch/riscv/Kconfig | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/arch/riscv/Kconfig b/arch/riscv/Kconfig
index 59d18881f35b..49759dbe6a8f 100644
--- a/arch/riscv/Kconfig
+++ b/arch/riscv/Kconfig
@@ -163,8 +163,8 @@ config MMU
config PAGE_OFFSET
hex
- default 0xC0000000 if 32BIT
- default 0x80000000 if 64BIT && !MMU
+ default 0xC0000000 if 32BIT && MMU
+ default 0x80000000 if !MMU
default 0xff60000000000000 if 64BIT
config KASAN_SHADOW_OFFSET
@@ -262,7 +262,6 @@ config ARCH_RV32I
select GENERIC_LIB_ASHRDI3
select GENERIC_LIB_LSHRDI3
select GENERIC_LIB_UCMPDI2
- select MMU
config ARCH_RV64I
bool "RV64I"
--
2.39.0