litex-hub / linux-on-litex-vexriscv

Linux on LiteX-VexRiscv
BSD 2-Clause "Simplified" License
583 stars 173 forks source link

Support the NOMMU port #24

Closed mithro closed 3 years ago

mithro commented 5 years ago

According to Palmer;

The NOMMU RISC-V port was posted to the Linux Kernel mailing list just this week

I think he is talking about the stuff at https://github.com/chmmn/riscv-uclinux

It would be good to support NOMMU Linux on LiteX for even lower resource usage (and more predictable performance).

mithro commented 5 years ago

@Dolu1990 - FYI How many resources would not having a MMU save?

Dolu1990 commented 5 years ago

@mithro I will check. But also, wasn't it also about only having a machine mode only + no mmu linux port ? That would probabably save much :D

Dolu1990 commented 5 years ago

I would say, it would mainly make it usable in a ice40 8K Currently, i have a Linux SoC with SDRAM which can hold in it, but that's realy full

mithro commented 5 years ago

@Dolu1990 That would be awesome!

futaris commented 5 years ago

https://lwn.net/Articles/790888/

futaris commented 5 years ago

NB, this doesn't support shared libraries. Static executables only.

AnttiLukats commented 5 years ago

it would also make it able to run in MAX10 10M08 device, and maybe maybe maybe in 8Mbyte HyperRAM,,, for many years ago running nommu in 4Mbyte was not a problem

enjoy-digital commented 3 years ago

Except doing it for the challenge, I'm not sure to see a real use case for this: iCE40 are good for pure logic gateware or to embeds small CPUs running bare-metal apps or small RT OSes, not to run Linux. Medium size FPGAs (ECP5, Cyclone4/5, Artix7, etc...) easily integrate the current Linux VexRiscv SoC so I'm not sure it's worth putting much efforts in a NOMMU port (but if anyone do it, that would be nice to share this work with us).

disdi commented 1 week ago

Now buildroot root supports NoMMU riscv32 qemu. RP2350 support also exists.

I think it will be very useful to have NoMMU linux running on Vexriscv Linux generated without MMU plugin.