deniz.in

Markets

Weather

Loading weather

· via Hacker News – Front Page (hnrss.org)

Espressif's ESP32-S31 runs Linux with a real MMU, gigabit Ethernet and USB host support

Espressif's ESP32-S31 pairs a true RISC-V MMU with gigabit Ethernet, USB hosting and dual SD slots, letting Linux run natively — though a 64 MB memory ceiling keeps it a microcontroller.

Espressif's ESP32-S31 runs Linux with a real MMU, gigabit Ethernet and USB host support

Espressif's newest chip, the ESP32-S31, moves the company's flagship microcontroller line into territory normally occupied by single-board computers. As XDA Developers reports, the part combines gigabit wired networking, a USB host controller, dual SD card slots and a camera interface with a genuinely modern memory management unit — enough for Linux to boot natively rather than through the workarounds earlier ESP32 chips required.

Peripheral list reads like an SBC spec sheet

The standout is networking. The S31 carries a 1000 Mbps Ethernet MAC, ten times the throughput of the 100 Mbps controller in the ESP32-P4, connected through an RJ45 socket with a PHY running over the chip's RGMII interface — which, according to XDA, is specifically what enables gigabit speeds where the older RMII approach would not.

The rest of the peripheral set is equally unusual for a microcontroller: a USB 2.0 High-Speed OTG controller wired to a full-size Type-A port that can supply 500 mA in host mode, an SDIO host with two card slots, a DVP camera interface of 8 to 16 bits, and a parallel LCD controller handling up to 24-bit RGB alongside I8080 and MOTO6800 panels. Rounding it out are two I2S controllers with hardware Bluetooth audio synchronisation, fourteen capacitive touch channels, a CAN FD controller and four MCPWM units.

Faster RISC-V cores and a dedicated PSRAM bus

Compute comes from two 32-bit RISC-V cores clocked at up to 320 MHz, each with its own floating-point unit and one of them fed by a 128-bit SIMD data path, plus a separate low-power core running at 40 MHz. Each core gets 32 KB of L1 instruction cache and both share 64 KB of data cache.

Memory support grew as well. The chip addresses up to 64 MB of PSRAM across a 250 MHz 8-bit DDR interface and up to 256 MB of flash. XDA notes that on the ESP32-S3 the PSRAM and flash interfaces were shared, which makes the S31's arrangement a meaningful step up.

This time the MMU is real

Espressif has labelled an MMU block in its chips for years, but on parts like the ESP32-S3 and ESP32-P4 that block only mapped external flash and PSRAM into the address space. The S31 datasheet, per XDA, instead describes Sv32 two-level page-table address translation along with Machine, Supervisor and User privilege modes. Sv32 is the actual RISC-V paging scheme, and the three privilege modes are what let a conventional kernel run in supervisor mode with firmware underneath it in machine mode — the way RISC-V Linux machines are built. That is what separates the S31 from earlier, hacky attempts to get Linux onto ESP32 silicon.

Linux already boots

Espressif published a Linux board support package in August, built on Buildroot and U-Boot and bundling a kernel, device tree and root file system, though the company says it is not yet recommended for production use. The community is iterating faster still: XDA cites one port running Linux 6.18 in supervisor mode with working drivers for nearly all of the hardware, and another based on Linux 7.1 driving an 800x480 LCD panel that shows a console. Add a keyboard and mouse over USB, wired Ethernet and SD storage, and the setup behaves much like a small single-board computer.

Memory is the ceiling

The S31 falls behind where RAM is concerned. XDA counts 512 KB of on-chip SRAM, in-package PSRAM options of 16 MB or 32 MB, a hard maximum of 64 MB and no DRAM controller — compared with, say, the Milk-V Duo S and its 512 MB. Existing Linux builds execute the kernel from flash specifically to avoid spending scarce PSRAM. There is no GPU or NPU either, and the video encoding and MIPI interfaces of the ESP32-P4 were traded for additional radios, leaving a JPEG codec, a 2D pixel-processing accelerator and 2D DMA — not enough for a full Linux desktop. XDA also raises the question of whether 320 MHz cores can genuinely keep a gigabit Ethernet link saturated.

Why it matters

The dividing line between microcontrollers and single-board computers has long been memory management: microcontrollers ran bare-metal firmware or an RTOS, and anything needing Linux graduated to a Pi-class board. The ESP32-S31 erodes that boundary, bringing a vendor-supported Linux stack to silicon that still carries the low power draw, touch sensing and control-oriented heritage of the ESP32 family. For embedded developers, one chip can now span sensor duty and a networked operating system with USB peripherals and a display attached. It will not replace a Raspberry Pi — the 64 MB memory ceiling sees to that — but it signals a middle class of devices where Linux arrives at microcontroller power budgets and integration levels, and it shows clearly where Espressif intends to take the platform next.

  • #esp32
  • #espressif
  • #risc-v
  • #linux
  • #microcontroller

Related posts