The Raster Graphic Acceleration block on RK3399 is a fixed-function 2D engine for blits, rotations, alpha compositing, and color-space conversion. Compositors and video pipelines lean on it for cheap surface transforms; on a phone the obvious uses are panel rotation (portrait ↔ landscape) and I420/NV12 → ARGB conversion for camera preview and video playback.
Right now we don’t drive it.
Identity
| Property | Value |
|---|---|
| Block | Rockchip RGA (RK3399 / RK3399S) |
| MMIO base | 0xff680000 |
| Bus / interface | Internal AXI master, behind RK IOMMU instance |
| DTS compatible | rockchip,rk3399-rga |
| IOMMU | Required for non-contiguous source/dest buffers |
| Linux driver | drivers/media/platform/rockchip/rga/ |
Driver
· not started No driver in tree.
The RGA is one of six RK3399 IP blocks that sit behind a Rockchip IOMMU
instance (the others are VOP, ISP0, ISP1, VPU-L, VPU-R). Without a
working rockchip-iommu port the RGA can only operate against
physically contiguous DMA buffers, which makes it useless for the GPU
buffers a compositor would actually want to rotate. So in practice the
RGA blocks on the RK IOMMU port, which itself blocks on FreeBSD’s IOMMU
framework being wired up for a non-PCIe device. See HARDWARE.md
under “System Peripherals” for the full IOMMU dependency chain.
To bring this up we would need:
- A working
rockchip-iommudriver (six instances on RK3399). FreeBSD’siommu(4)is PCIe-shaped; the RK IOMMU is a memory-mapped device in front of an IP block. Linux ref:drivers/iommu/rockchip-iommu.c. - A V4L2-style mem2mem framework or equivalent userland API for submitting source/dest buffer pairs and an operation descriptor. Linux exposes RGA via V4L2; FreeBSD has no V4L2 layer.
- The RGA driver itself — register programming is well-documented in
the Linux source (
rga-hw.c,rga-buf.c).
This is months of work for a low-leverage block. Software compositing of the 720×1440 panel via the Mali-T860 is fast enough today, and we have no camera or video-decode pipeline that would benefit from RGA output.
Status
| Question | Answer |
|---|---|
| Probes? | n/a |
| Used by anything? | No — Sway / Hyprland composite via panfrost / GLES |
| User-visible? | No |
| Blocking? | No — display path works without it |
Open work
- Defer until the IOMMU framework story is settled.
- If/when a V4L2 / media port lands for the camera ISP work (Phase 5+), the RGA becomes interesting as a “free” rotation engine for camera preview frames.
Related
- Hardware reference — System Peripherals row for RGA and the IOMMU dependency.
HARDWARE.md— full TODO list including the IOMMU port plan.- Porting research — Phase 5+ scope.