RK3588 reverse-engineered and emulated in Qemu
  • C 87.7%
  • Makefile 5.6%
  • Python 4.9%
  • Shell 1.8%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2026-10-15 18:28:26 -04:00
dts minor tweaks 2026-10-15 18:28:26 -04:00
initramfs Boot to login manager, glitchy desktop 2026-10-13 18:17:09 -04:00
packaging Initial Genbook/Orange Pi 5 emulation profile 2026-10-10 00:05:22 -04:00
qemu@f9587d4045 Boot to login manager, glitchy desktop 2026-10-13 18:17:09 -04:00
scripts Implement multicore + pmu regs 2026-10-14 14:53:37 -04:00
src New analogix edp impl, add genbook keyboard/trackpad, i2chid 2026-10-15 18:25:04 -04:00
.gitignore Implement multicore + pmu regs 2026-10-14 14:53:37 -04:00
.gitmodules Boot to login manager, glitchy desktop 2026-10-13 18:17:09 -04:00
AGENTS.md minor tweaks 2026-10-15 18:28:26 -04:00
Makefile minor tweaks 2026-10-15 18:28:26 -04:00
p9-exit.sh Initial Genbook/Orange Pi 5 emulation profile 2026-10-10 00:05:22 -04:00
plan.md Boot to login manager, glitchy desktop 2026-10-13 18:17:09 -04:00
qemu.patch New analogix edp impl, add genbook keyboard/trackpad, i2chid 2026-10-15 18:25:04 -04:00
README.md update readme 2026-10-14 18:10:25 -04:00

RK3588 Qemu port

Qemu platform support implemented for the RK3588. Goal is to get unmodified Armbian Ubuntu images booting to desktop.

Mostly done by GLM5.3. I gave it the leaked RK3588 TRM and ARM v8a profile spec split up into text files for referencing.

  • Emulate 16gb LPDDR5 + DDR training
  • HDMI, VOP2, eDP
  • GPIO, IOMUX, PMU, sha256 crypto, etc
  • Implementing Mali GPU is not practical. Try and pass in virtio-gpu and get that working with VOP2 somehow.
  • NPU - possibly incorporate research from https://github.com/widgetii/orangepi5plus-npu

Milestones I gave the LLM:

  1. Get my rk bootloader working
  2. Get the proprietary DDR image working
    • I gave it maskrom access to an Orange Pi 5 for it to work out some details
  3. Get EDKII working
  4. Get ATF working
  5. Get minimal Linux/busybox working
  6. Boot unmodified Armbian images

Build system is setup so that a small patch (qemu.patch) is applied to the qemu submodule, and src/ is symlinked to qemu/hw/arm/rk3588