| ▲ | Rochus 4 days ago |
| How can it run when there is no MMU? Isn't this like rewriting a large part of the kernel? |
|
| ▲ | peterus 6 hours ago | parent | next [-] |
| This is for the recently released ESP32-S31 which does have a MMU, unlike the ESP32-S3. The author has more details in this reddit post: https://eddrit.com/r/esp32/comments/1vait52/mmu_linux_on_the...
And the docs section of the repo: https://github.com/GrieferPig/esp32-s31-linux/tree/main/docs... |
| |
| ▲ | Rochus 5 hours ago | parent | next [-] | | Thanks for the links. This doesn't seem to be a true RISC-V MMU (according to the Sv32 specification) integrated into the CPU core itself, but just a peripheral designed for memory mapped SPI flash and PSRAM. So as far as I understand there is no true process isolation with page faults and dynamic paging. | | |
| ▲ | Rohansi 3 hours ago | parent [-] | | Sv32 is what every 32-bit RISC-V CPU with an MMU uses. It is a full MMU. You can run Linux on it. | | |
| ▲ | Rochus 3 hours ago | parent [-] | | Sure, but what the S31 calls "MMU" is not an Sv32 MMU; therefore my comment. | | |
|
| |
| ▲ | chrsw 5 hours ago | parent | prev [-] | | The Microchip PIC32MZ MCU has an MMU as well. But not with wireless options in a 8x8 QFN80 package like this ESP32-S31. That's pretty small. No flash though. |
|
|
| ▲ | yjftsjthsd-h 6 hours ago | parent | prev [-] |
| There is actually precedent for nommu Linux, though it obviously has tradeoffs. |
| |
| ▲ | stevefan1999 3 hours ago | parent [-] | | Yeah, nommu Linux basically cannot run normal ELF since there is no virtual memory which is needed for relative addressing and relocations. You are mostly left with classical formats like AT&T a.out only | | |
| ▲ | derefr 2 hours ago | parent [-] | | You wouldn’t be able to guarantee execution of arbitrary ELF, but couldn’t you intentionally build non-PIC-compiled ELF executables where the section base addresses as defined in the header must match the MMU region “slots” the host provides? |
|
|