GR712RC / GR740 QEMU Emulator¶
QEMU emulation of two Cobham Gaisler space-grade SoCs, targeting RTEMS 5 applications built with the RCC 1.3.2 (RTEMS Compiler Collection) toolchain:
-M gr712rc— dual-core LEON3FT-M gr740— quad-core LEON4 (NGMP)
Both machine types are implemented as patches on top of QEMU 8.2.2 and live in
the qemu/ submodule.

Documentation¶
Architecture & internals¶
- QEMU primer — QEMU architecture explained for
TSIM / TEMU / GRSIM users: TCG, QOM,
MemoryRegion,qemu_irq, timers, and how a bus cycle travels from RTEMS to a device and back. - Code map — where things live: relevant files in the QEMU tree, the GR712RC / GR740 memory maps, RTEMS BSP sources worth reading, and the Kconfig / Meson build wiring.
- Adding a peripheral — step-by-step walkthrough for adding a new GRLIB APB device, including build-system integration, APB PnP registration, IRQ wiring, and timer-driven devices.
- Debugging — GDB remote debugging, QEMU monitor
commands, the trace subsystem, quick
fprintfinstrumentation, and a catalogue of common failure modes with root causes and fixes. - Contributing — Git workflow for this repo: cloning with submodules, editing QEMU source and committing to the fork, updating the submodule pointer, toolchain setup, and rebasing on upstream QEMU releases.
Interfaces¶
- UART socket interface — connecting external simulators to APBUARTs 1–4 via TCP socket backends; raw byte-stream protocol; extending the convention to CAN and SpaceWire.
- Adapter API — v0 HTTP/WebSocket contract for the
FastAPI service that wraps
qemu-system-sparcand exposes it to UIs and external models. - Running the service — operator walkthrough for starting the adapter + bundled React UI, both natively and via Docker Compose.
- Portable export — packaging the full
emulator + UI as a
docker savetarball for demoing on a fresh PC with no source.
Hardware reference¶
- GR740 IP cores — emulation status and strategy for every IP core in the GR740 datasheet, with difficulty ratings.
Source¶
Source code, issue tracker, and CI live on GitHub.