ESP32-S31: first chip with virtual-memory a real paging MMU (RISC-V Sv32)?

Moderator: bongjiajun

sukeshak
Posts: 51
Joined: Sat Aug 19, 2017 10:20 am
Contact:

ESP32-S31: first chip with virtual-memory a real paging MMU (RISC-V Sv32)?

Postby sukeshak » Fri Aug 21, 2026 6:23 am

Espressif quietly did something new with the ๐—˜๐—ฆ๐—ฃ๐Ÿฏ๐Ÿฎ-๐—ฆ๐Ÿฏ๐Ÿญ: it's their first chip with ๐˜ƒ๐—ถ๐—ฟ๐˜๐˜‚๐—ฎ๐—น ๐—บ๐—ฒ๐—บ๐—ผ๐—ฟ๐˜† โ€” a real ๐—ฝ๐—ฎ๐—ด๐—ถ๐—ป๐—ด ๐— ๐— ๐—จ (๐—ฅ๐—œ๐—ฆ๐—–-๐—ฉ ๐—ฆ๐˜ƒ๐Ÿฏ๐Ÿฎ) โ€” and they've published an official Linux port for it.

I have been working on an Embedded Linux project for quite some time now. So, I dug into what's actually there today:

โ€ข espressif/esp-buildroot-external builds a complete stack for it: ๐˜–๐˜ฑ๐˜ฆ๐˜ฏ๐˜š๐˜‰๐˜, ๐˜œ-๐˜‰๐˜ฐ๐˜ฐ๐˜ต, ๐˜“๐˜ช๐˜ฏ๐˜ถ๐˜น 6.18, ๐˜ข๐˜ฏ๐˜ฅ ๐˜ข 32-๐˜ฃ๐˜ช๐˜ต ๐˜™๐˜๐˜š๐˜Š-๐˜ ๐˜ฎ๐˜ถ๐˜ด๐˜ญ ๐˜ถ๐˜ด๐˜ฆ๐˜ณ๐˜ด๐˜ฑ๐˜ข๐˜ค๐˜ฆ. Genuine virtual-memory Linux โ€” not the no-MMU curiosity that earlier ESP32 Linux ports were.
โ€ข The device tree tells the honest story: ๐˜ฐ๐˜ฏ๐˜ฆ ๐˜Š๐˜—๐˜œ ๐˜ค๐˜ฐ๐˜ณ๐˜ฆ ๐˜ฐ๐˜ง ๐˜ต๐˜ฉ๐˜ฆ ๐˜ต๐˜ธ๐˜ฐ, ๐˜ด๐˜ฐ๐˜ง๐˜ต-๐˜ง๐˜ญ๐˜ฐ๐˜ข๐˜ต, 16 ๐˜”๐˜‰ ๐˜ฐ๐˜ง ๐˜™๐˜ˆ๐˜” ๐˜ฎ๐˜ข๐˜ฑ๐˜ฑ๐˜ฆ๐˜ฅ, ๐˜ข ๐˜œ๐˜ˆ๐˜™๐˜›, ๐˜ข ๐˜ต๐˜ช๐˜ฎ๐˜ฆ๐˜ณ, ๐˜ข๐˜ฏ๐˜ฅ ๐˜ข ๐˜ณ๐˜ฆ๐˜ข๐˜ฅ-๐˜ฐ๐˜ฏ๐˜ญ๐˜บ ๐˜ค๐˜ณ๐˜ข๐˜ฎ๐˜ง๐˜ด ๐˜ณ๐˜ฐ๐˜ฐ๐˜ต๐˜ง๐˜ด ๐˜ช๐˜ฏ ๐˜ต๐˜ฉ๐˜ฆ ๐˜•๐˜–๐˜™ ๐˜ง๐˜ญ๐˜ข๐˜ด๐˜ฉ ๐˜ธ๐˜ช๐˜ฏ๐˜ฅ๐˜ฐ๐˜ธ โ€” and the kernel itself is an ๐˜น๐˜ช๐˜ฑ๐˜๐˜ฎ๐˜ข๐˜จ๐˜ฆ, executing in place from flash.
โ€ข No display driver, no input, no networking yet. It boots to a serial console, and that's the whole show for now.

So today it's a developer preview for early adopters, exactly as Espressif labels it. But the direction is worth watching: ๐˜ข ๐˜ž๐˜ช-๐˜๐˜ช 6 ๐˜”๐˜Š๐˜œ ๐˜ธ๐˜ช๐˜ต๐˜ฉ ๐˜ถ๐˜ฑ ๐˜ต๐˜ฐ 32 ๐˜”๐˜‰ ๐˜ฐ๐˜ง ๐˜ช๐˜ฏ-๐˜ฑ๐˜ข๐˜ค๐˜ฌ๐˜ข๐˜จ๐˜ฆ ๐˜—๐˜š๐˜™๐˜ˆ๐˜”, ๐˜ข 2๐˜‹ ๐˜ฑ๐˜ช๐˜น๐˜ฆ๐˜ญ ๐˜ข๐˜ค๐˜ค๐˜ฆ๐˜ญ๐˜ฆ๐˜ณ๐˜ข๐˜ต๐˜ฐ๐˜ณ (๐˜—๐˜—๐˜ˆ), ๐˜ข๐˜ฏ๐˜ฅ ๐˜ข ๐˜จ๐˜ช๐˜จ๐˜ข๐˜ฃ๐˜ช๐˜ต ๐˜Œ๐˜ต๐˜ฉ๐˜ฆ๐˜ณ๐˜ฏ๐˜ฆ๐˜ต ๐˜”๐˜ˆ๐˜Š ๐˜ต๐˜ฉ๐˜ข๐˜ต ๐˜ค๐˜ข๐˜ฏ ๐˜ณ๐˜ถ๐˜ฏ ๐˜ณ๐˜ฆ๐˜ข๐˜ญ ๐˜“๐˜ช๐˜ฏ๐˜ถ๐˜น. The day a framebuffer driver lands for its parallel LCD controller, this becomes a very interesting tiny-Linux HMI part.

Silicon, from the datasheet: dual-core RV32 @ 320 MHz, single-precision FPU per core, 128-bit SIMD on one core, Sv32 MMU, Wi-Fi 6 (2.4 GHz) + BT 5.4 + 802.15.4.

Interesting times ahead.

Return to โ€œESP32-S31โ€

Who is online

Users browsing this forum: No registered users and 1 guest