Integer core with local extensions
Base arithmetic, branches, loads/stores, CSRs, traps and three Custom-0 instructions: CLRREG, CLRMEM and ENTROPY.
FPGA processor prototype
The core combines an RV32I-like integer ISA with strict Harvard separation, local supervisor CSRs, MMU/MPU checks, USB/block-image boot, HNET network MMIO, PHP/Zend experiments and a compact SQL server path. It is small enough for MiSTer experiments and concrete enough to boot real ELF services.
Base arithmetic, branches, loads/stores, CSRs, traps and three Custom-0 instructions: CLRREG, CLRMEM and ENTROPY.
Instructions are fetched from IMEM, while data accesses go to DMEM or MMIO. The data path cannot directly rewrite executable memory.
Refillable I/D TLBs, 4 KiB page semantics, access/dirty checks, user/supervisor policy, W^X rejection and fixed HarvOS region rules.
RX/TX DMA, interrupt status and packet counters are exposed as supervisor MMIO. HarvTTP and HarvSQL use this path in the test network.
Architecture map
HarvOS is not documented as a generic RISC-V platform. Encodings are intentionally RISC-V-like, while privilege state, CSRs, MPU rules and boot state remain HarvOS-specific. That keeps the prototype focused on the invariants required for isolated boot, service loading and device I/O.
harvos_cpu instances in the SoC, connected through a round-robin shared data bus.Boot path
Hart 0 starts at 0x00000000; the second hart is started or parked by the SoC integration.
Program and data USB images provide ELF files, YAML configuration, web roots, SQL seed scripts and app parameters.
The loader validates ELF32/RISC-V-like binaries, places segments and builds the application start block.
After loading, IMEM is locked. Services such as HarvTTP and HarvSQL run as real ELFs through HNET.
Documentation
Prototype status
The current core is a synthesizable FPGA prototype and test platform. Some blocks are hard RTL paths; others are intentionally observable models for later production logic.