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

Jesse Taube mr.bossman075 at gmail.com
Tue Mar 7 18:30:20 PST 2023



On 3/7/23 21:16, Randy Dunlap wrote:
> Hi--
> 
> On 3/7/23 17:26, Jesse Taube wrote:
>>
>>
>> On 2/28/23 23:42, Damien Le Moal wrote:
>>> On 3/1/23 13:07, Randy Dunlap wrote:
>>>> Hi--
>>>>
>>>> On 2/28/23 16:26, Jesse Taube wrote:
>>>>> This patch-set aims to add NOMMU support to RV32.
>>>>> Many people want to build simple emulators or HDL
>>>>> models of RISC-V this patch makes it possible to
>>>>> run linux on them.
>>>>>
>>>>> Yimin Gu is the original author of this set.
>>>>> Submitted here:
>>>>> https://lists.buildroot.org/pipermail/buildroot/2022-November/656134.html
>>>>>
>>>>> Though Jesse T rewrote the Dconf.
>>>>
>>>> Dconf?
>>>>
>>>>>
>>>>> The new set:
>>>>> https://lists.buildroot.org/pipermail/buildroot/2022-December/658258.html
>>>>> ---
>>>>> V1->V2:
>>>>>    - Add Conor's clock patch for implicit div64
>>>>>    - Fix typo in commit title 3/3
>>>>>    - Fix typo in commit description 2/3
>>>>> V2->V3
>>>>>    - Change from defconfig file to a PHONY config
>>>>> ---
>>>>
>>>> Is this 'rv32_nommu_virt_defconfig' target the only build target
>>>> that is supported?
>>>>
>>>> I ask because I applied the 3 patches and did 25 randconfig builds.
>>>> 5 of them failed the same way:
>>>>
>>>> riscv32-linux-ld: drivers/soc/canaan/k210-sysctl.o: in function `k210_soc_early_init':
>>>> k210-sysctl.c:(.init.text+0x78): undefined reference to `k210_clk_early_init'
>> I can not recreate this error.
>> can you send me the .config you used.
>>
>> Thanks,
>> Jesse Taube
> 
> Sure, it's attached.

Hmmm, it links fine for me.

objdump -x vmlinux | grep k210_clk_early_init
81e40124 g     F .init.text     00000088 k210_clk_early_init

gcc version 11.3.0 (Buildroot 2022.11-361-g1be0d438f7)
GNU assembler version 2.38 (riscv32-buildroot-linux-uclibc)
GNU ld (GNU Binutils) 2.38

what gcc version are you using?

Thanks,
Jesse Taube

> 
>>> Arg. Forgot about that. k210 is rv64 only and while the clk driver could still
>>> compile test with rv32 (or any arch), that driver provides the
>>> k210_clk_early_init() function which is called very early in the boot process
>>> from k210_soc_early_init(), which is an SOC_EARLY_INIT_DECLARE() call. The
>>> problem may be there. Probably should be disabled for rv32 if no SoC need that
>>> sort of early init call.
>>>
>>>>
>>>> because
>>>> # CONFIG_COMMON_CLK_K210 is not set
>>>>
>>>>
>>>> Maybe SOC_CANAAN needs some more selects for required code?
>>>>
>>>>> Conor Dooley (1):
>>>>>     clk: k210: remove an implicit 64-bit division
>>>>>
>>>>> Jesse Taube (1):
>>>>>     riscv: configs: Add nommu PHONY defconfig for RV32
>>>>>
>>>>> Yimin Gu (1):
>>>>>     riscv: Kconfig: Allow RV32 to build with no MMU
>>>>>
>>>>>    arch/riscv/Kconfig     | 5 ++---
>>>>>    arch/riscv/Makefile    | 4 ++++
>>>>>    drivers/clk/clk-k210.c | 2 +-
>>>>>    3 files changed, 7 insertions(+), 4 deletions(-)
>>>>>
>>>>
>>>
> 



More information about the linux-riscv mailing list