Re: [PATCH v3 0/3] Add RISC-V 32 NOMMU support

From: Jesse Taube
Date: Tue Mar 14 2023 - 14:36:36 EST




On 3/7/23 23:11, Damien Le Moal wrote:
On 3/8/23 12:46, Jesse Taube wrote:


On 3/7/23 22:42, Damien Le Moal wrote:
On 3/8/23 12:23, Randy Dunlap wrote:
OK, I don't know how it happened. I cannot reproduce it now.
The failing .config files has CONFIG_MMU is not set (for RV32I), which
appears to be impossible.
These patches add `CONFIG_MMU is not set` (for RV32I).
But no worries it seems to be a non issue  now.

Your thoughts Damien?


Thanks for reminding me.

With these 3 patches applied to linux-next-20230307,
I still get this build error.

Does this help ?

diff --git a/drivers/soc/canaan/Kconfig b/drivers/soc/canaan/Kconfig
index 2527cf5757ec..7796c5f1d109 100644
--- a/drivers/soc/canaan/Kconfig
+++ b/drivers/soc/canaan/Kconfig
@@ -4,7 +4,8 @@ config SOC_K210_SYSCTL
bool "Canaan Kendryte K210 SoC system controller"
depends on RISCV && SOC_CANAAN && OF
default SOC_CANAAN
- select PM
- select MFD_SYSCON
+ select COMMON_CLK_K210

Ok so this has nothing to do with my patch-set actually and will happen on 64BIT as well.
the commit that brought in this bug is:

RISC-V: stop directly selecting drivers for SOC_CANAAN 3af577f9826fdddefac42b35fc5eb3912c5b7d85

I have tested the patches Damien here they work on 64BIT and 32BIT.
The change to drivers/clk/Kconfig is not strictly necessary but makes scene. I don't think they need to be tested on 32bit so we can omit COMPILE_TEST.

If needed i can submit the patches, which I will author under Damien.

As far as I can see there is nothing holding back this set as the issue found has no relation to this set.

Thanks,
Jesse Taube

+ select PM
+ select MFD_SYSCON
help
Canaan Kendryte K210 SoC system controller driver.

(just noticed that there are whitespace errors here...)

Note that both the sysctl and clk driver depend on RISCV. I think these should
probably also depend on 64BIT, and eventually add a "|| COMPILE_TEST" as well.
So something like this:

diff --git a/drivers/clk/Kconfig b/drivers/clk/Kconfig
index b6c5bf69a2b2..657a36d2640d 100644
--- a/drivers/clk/Kconfig
+++ b/drivers/clk/Kconfig
@@ -431,7 +431,7 @@ config COMMON_CLK_FIXED_MMIO

config COMMON_CLK_K210
bool "Clock driver for the Canaan Kendryte K210 SoC"
- depends on OF && RISCV && SOC_CANAAN
+ depends on OF && RISCV && SOC_CANAAN && (64BIT || COMPILE_TEST)
default SOC_CANAAN
help
Support for the Canaan Kendryte K210 RISC-V SoC clocks.
diff --git a/drivers/soc/canaan/Kconfig b/drivers/soc/canaan/Kconfig
index 2527cf5757ec..1745a614d2a7 100644
--- a/drivers/soc/canaan/Kconfig
+++ b/drivers/soc/canaan/Kconfig
@@ -2,9 +2,10 @@

config SOC_K210_SYSCTL
bool "Canaan Kendryte K210 SoC system controller"
- depends on RISCV && SOC_CANAAN && OF
+ depends on RISCV && SOC_CANAAN && OF && (64BIT || COMPILE_TEST)
default SOC_CANAAN
- select PM
- select MFD_SYSCON
+ select COMMON_CLK_K210
+ select PM
+ select MFD_SYSCON
help
Canaan Kendryte K210 SoC system controller driver.

COMPILE_TEST is optional though, but I do not see any reason why not eventhough
in practice these drivers will likely never end up in 32-bits SoC.



Oh thanks I was in the in the midst of making a similar patch.
Do you want to submit it or shall I. Also thanks for the help with this,
was using tag 6.2.

I am busy with other stuff and do not have time to properly test this. So please
feel free to go ahead and send something fully tested.