These patches add `CONFIG_MMU is not set` (for RV32I).
On 3/7/23 18:33, Randy Dunlap wrote:
On 3/7/23 18:30, Jesse Taube wrote:
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:I can not recreate this error.
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'
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?
gcc (SUSE Linux) 12.2.1 20230124 [revision 193f7e62815b4089dfaed4c2bd34fd4f10209e27]
from opensuse Tumbleweed.
I'll try it on a current tree...
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.
Sorry to bother you.
Thanks.
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(-)