This site is an early beta and not released yet. Issues are to be expected and contents and designs are not final. Please help to test and improve it!
A note from the author: The documentation is currently in alpha and has known bugs because the content is directly parsed from the wiki without modifications. Known bugs include broken links, missing templates, a broken article order, missing pages and broken tables. These errors will be resolved before the release. Please help to test and improve it!

ROCK64

The ROCK64

The ROCK64 is a credit-card size 4K60P HDR Media Board Computer powered by Rockchip RK3328 Quad-Core ARM Cortex A53 64-Bit Processor and supports up to 4GB 1866MHz LPDDR3 memory. It provides an eMMC module socket, MicroSD Card slot, Pi-2 Bus, Pi-P5+ Bus, USB 3.0, and many other peripheral interfaces for makers to integrate with sensors and other devices.

It supports many different open source operating systems, such as Android, Debian, and Yocto.

Software releases

Under Software you will find a complete list of currently supported operating system images, which work with the ROCK64, as well as other related software.

OS build Installation Guide and tools:

Requirement

GNU/Linux

Android/Linux

Kodi/Linux

2160p 30Hz 8bit h264/h265/vp8

partial? 1

yes

yes

UI using GPU

no

yes

yes

Youtube

no

yes

no

vp9 / mpeg4 / mpeg2 / 10bit HDR / YCbCr

no

yes?

yes

Upstreaming Status

scope="col"

Function

Status

scope="col"

Component

scope="col"

Notes

scope="row"

Video Output

colspan="2"

Linux Mainline

rockchipdrm

With mpv, you’ll need to specify something like mpv --gpu-context=drm --drm-connector=1.HDMI-A-1 to get it to play back on a VT

scope="row"

3D Acceleration

Linux Mainline

Upstream Mesa

lima

Very recent version recommended for the best experience. Has weird glitches on HDMI output in weston.

scope="row"

Video Decode

Linux Staging

Broken/Not in ffmpeg

hantro_vpu and rockchip_vdec, using v4l2-requests

Soon to be moved out of staging, ffmpeg patch set seemingly abandoned, does not work on newer kernels. Git branch with commits

scope="row"

Audio

colspan="2"

Linux Mainline

snd_soc_rockchip_*

scope="row"

Power Button

colspan="2"

Linux Mainline

rk805_pwrkey

If your PWR switch does nothing unless held, this may need to be loaded manually with modprobe or by putting it in /etc/modules-load.d/

scope="row"

Analog Video Output

colspan="2"

Needs porting

rockchip_drm_tve

SoC and Memory Specification

CPU Architecture

  • Quad-core Cortex-A53 up to 1.5GHz CPU

  • Full implementation of the ARM architecture v8-A instruction set

  • ARM Neon Advanced SIMD (single instruction, multiple data) support for accelerated media and signal processing computation

  • ARMv8 Cryptography Extensions

  • In-order pipeline with symmetric dual-issue of most instructions

  • Unified system L2 cache

  • Includes VFP v3 hardware to support single and double-precision operations

  • Integrated 32KB L1 instruction cache, 32KB 4-way set associative L1 data cache

  • TrustZone technology support

  • Full CoreSight debug solution

  • One separate power domain for CPU core system to support internal power switch, and to externally turn on/off based on different application scenario

  • PD_A53: Cortex-A53 + Neon + FPU + L1 I/D Cache of core 2/3

  • One isolated voltage domain to support DVFS

Frequencies & Voltages

Frequency

Voltage

408 MHz

0.950 V

600 MHz

0.950 V

816 MHz

1.000 V

1008 MHz

1.100 V

1200 MHz

1.225 V

1296 MHz

1.300 V

Power Draw

These numbers for power draw have been measured through an USB power monitor (FNB38) while running the stress utility, whereby "cpu" stands for stress --cpu 4 and "vm" stands for stress --vm 4. The former spins on the CPU, the latter stresses the memory. Real workloads are usually a mix of both. The tests were ran through ssh, with nothing besides power and ethernet plugged into the ROCK64

Please keep in mind that under real world usage, many other factors come into play. Having a display connected, running a graphical session, I/O and most importantly the connected USB peripherals can add a lot.

Helpful refresher on the formula for power (W) on DC: power = current × voltage, because the power factor is 1. The ROCK64 runs on 5V, so use that to calculate current if you need to.

Frequency

Power cpu

Power vm

1296 MHz

2.64 W

2.95 W

1200 MHz

2.32 W

2.69 W

1008 MHz

1.90 W

2.31 W

816 MHz

1.62 W

2.05 W

600 MHz

1.45 W

1.85 W

408 MHz

1.33 W

1.72 W

Idle (no load)

colspan="2"

1.10 W

It appears a good upper bound for a headless setup is in the neighbourhood of 3 W, or the energy contained in 0.025 bananas per hour.

GPU Architecture

System Memory

  • LPDDR3 RAM Memory Variants: 1GB, 2GB and 4GB.

Enclosures

Rock64 Al Case1 1

The ROCK64 fits in three officially sold cases.

Troubleshooting

HDMI output disconnects as soon as it connects

Some older monitors seemingly can get into a weird state wherein the ROCK64 is unable to establish a proper connection with them. User:CounterPillow has seen this happen on an iiyama ProLite G2773HS connected over HDMI, and an Acer P225HQL connected over an HDMI to DVI adapter. The symptoms usually are that you see the monitor briefly turn on its backlight without displaying a picture, but then immediately either shutting off again or showing a "No Signal" message.

The solution is to completely power down your ROCK64, also removing its power source. Then plug in the monitor, and start up the ROCK64 afterwards. You should now be getting a picture again.

Power button doesn’t do anything on a short press (Linux)

Make sure the rk805_pwrkey module is loaded, e.g. with lsmod | grep rk805_pwrkey. If it doesn’t show up, do a modprobe rk805_pwrkey as root. To make this persistent, create a 99-rk805_pwrkey.conf in /etc/modules-load.d/ with the content rk805_pwrkey

If it still doesn’t work, make sure your init system is actually listening to the button press. With systemd, check /etc/systemd/logind.conf and make sure it’s either all commented out (uses defaults) or contains something like HandlePowerKey=poweroff. You can change the short press action by setting HandlePowerKey to one of "ignore", "poweroff", "reboot", "halt", "kexec", "suspend", "hibernate", "hybrid-sleep", "suspend-then-hibernate", or "lock".

Video output is glitchy during activity

If your video output glitches out while there is memory bandwidth pressure, the likely reason is that the video output (VOP) quality-of-service (QoS) registers aren’t set to high priority mode.

User:CounterPillow submitted a patch to u-boot to fix this, but someone still needs to write a kernel patch to save/restore the QoS registers from the power domain driver.