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

Jesse Taube mr.bossman075 at gmail.com
Tue Mar 14 11:35:39 PDT 2023



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.
> 



More information about the linux-riscv mailing list