Linux 6.12 成功移植到 ESP32-S31
Linux on ESP32
GrieferPig 在 GitHub 上分享了将 MMU Linux 移植到 ESP32-S31 架构的最新进展。该项目基于 Linux 6.12 内核,成功在 ESP32-S31-WROOM-3 开发板上运行。由于 ESP32-S31 的 Supervisor 模式非标准且缺乏官方技术参考手册,开发者通过逆向工程猜测了 CSR 寄存器用法,并修改了 OpenSBI 以支持 XIP(就地执行)来节省宝贵的 PSRAM 内存。目前,UART 控制台、时钟树等核心功能正在开发或测试中,而 I2C、SPI 等外设驱动尚未实现。尽管部分功能如双核 SMP 和 USB 仍在完善,但 CoreMark 跑分测试已验证了系统的基本运行能力,为在低功耗 RISC-V 芯片上运行完整 Linux 系统提供了新的可能性。
由于 ESP32-S31 的 Supervisor 模式并非标准实现,且在 ESP-IDF 中完全没有被使用,因此这些 CSR 寄存器的用法大多是根据 P4 的技术参考手册或 CSR 探测猜测出来的。