Skip to content

Releases: Rompass/openc6-bios

OpenC6 BIOS v2.0-ME: Hardware PMP Isolation, LP-Core Supervisor & Preemptive Multitasking

Choose a tag to compare

@Rompass Rompass released this 01 Oct 14:45

OpenC6 BIOS v2.0-ME is a major architectural milestone, transforming the firmware from an ABI prototype into a true bare-metal microkernel and execution platform for the ESP32-C6 (RV32IMAC).

Key Architectural Systems

1. Hardware PMP Isolation & U-Mode Sandbox

  • Untrusted user payloads execute strictly in unprivileged RISC-V User Mode (U-Mode).
  • Hardware Top-of-Range (TOR) Physical Memory Protection registers isolate the execution arena, completely shielding kernel SRAM, MMIO peripherals, and critical system structures.
  • Dedicated vectored interrupt trampoline resolves upstream FreeRTOS context-switch privilege leakage bugs on RISC-V.
  • Dynamic arena allocation managing internal SRAM headroom.

2. Autonomous Out-of-Band Management Engine (LP-Core ME)

  • Autonomous supervisor firmware deployed directly to the Low-Power (ULP) RISC-V coprocessor.
  • Autonomous hardware SchedUtil frequency governor scaling HP core clock dividers (80 / 120 / 160 MHz) via direct PCR register manipulation.
  • Hardware watchdog enforcement (15-second hardware lockup reset) and real-time on-die junction thermal tracking (thermal throttling at 55 deg C, emergency soft-off at 75 deg C).
  • Hardware-debounced power button state machine with emergency 3-second hard reset.

3. Preemptive Multitasking & ZSWAP Memory Compression

  • Integrated process manager (proc_manager) supporting up to 8 concurrent processes.
  • Custom Next-Fit contiguous 4 KB page allocator with bitmap tracking.
  • Comprehensive shell job control: background execution (boot <path> bg), foreground switching (fg, bg), process suspension (suspend / Ctrl+X), and clean socket-aware termination (kill).
  • ZSWAP Engine: Suspended processes are compressed into RAM via the custom ZC6 v4 algorithm (~1.2 KB match-finder footprint), releasing physical 4 KB pages back to the arena.
  • Transparent on-the-fly execution and decompression of .zc6 archives.

4. File System & Tooling Enhancements

  • Log-structured circular Flash VFS (openc6_fs) with dynamic wear-leveling and RAM node indexing.
  • Companion C++ host loader (openc6_loader) for streaming compiled flat binaries over native USB Type-C directly into VFS.
  • Standalone C99 TUI auto-installer (make setup) featuring zero external dependencies, automated dependency resolution, and guided flashing for Arch Linux and Debian/Ubuntu systems.

Artifacts and Binaries

  • Precompiled payloads and reference implementations are available in tools/example/.
  • Complete development specifications and ABI system call tables are detailed in docs/payload_development.md.

OpenC6 BIOS v1.0.1: Micro UNIX Shell & ABI Core Release

Choose a tag to compare

@Rompass Rompass released this 25 Jun 22:25

OpenC6 BIOS v1.0.1
​Second working build for ESP32-C6. Implements a stable bare-metal ABI jump table to decouple payload binaries from heavy ESP-IDF APIs.

​What works:

​Boot selection matrix via physical GPIO 9 button.
​Micro UNIX shell over UART1 for raw openc6_fs manipulation (ls, cd, mkdir, cat, rm, write, boot).

​ABI exports: hardware SHA256 engine, fixed-point math lookup tables, Wi-Fi routines etc.

​Payload execution targets: internal volatile RAM or Flash XIP hardware mapping.

OpenC6 BIOS v1.0.0-beta (Initial Release)

Choose a tag to compare

@Rompass Rompass released this 15 Jun 19:08
cfde31f