Difference between revisions of "ROCK64"

From PINE64
Jump to navigation Jump to search
(→‎Upstreaming Status: Added a warning)
 
(92 intermediate revisions by 16 users not shown)
Line 1: Line 1:
[[File:Rock64.jpg|400px|thumb|right|The ROCK64]]


== [https://www.pine64.org/rock64 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.  
[https://www.pine64.org/rock64 ROCK64] is a credit card size 4K60P HDR Media Board Computer powered by Rockchip RK3328 Quad-Core ARM Cortex A53 64-Bit Processor and support up to 4GB 1866MHz LPDDR3 memory. It provides eMMC module socket, MicroSD Card slot, Pi-2 Bus, Pi-P5+ Bus, USB 3.0 and many others peripheral devices interface for makers to integrate with sensors and devices. Various Operating System (OS) are made available by open source community such Android 7.1, Debian, Yocto and many more to come.


[[File:ROCK64_sideimg.jpg]]
It supports many different open source operating systems, such as Android, Debian, and Yocto.


== Software releases ==


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


== ROCK64 Software Images ==
OS build Installation Guide and tools:
 
* [https://files.pine64.org/doc/rock64/guide/ROCK64_Installing_Android_To_eMMC.pdf Guide to install stock Android build to eMMC module]
* OS build Installation Guide and tools:
* [https://files.pine64.org/doc/rock64/tools/SD_Firmware_Tool._v1.46.zip Tools to burn Android build into a bootable microSD card]
** [http://files.pine64.org/doc/rock64/guide/ROCK64_Installing_Android_To_eMMC.pdf Guide to install stock Android build to eMMC module]
* [https://files.pine64.org/doc/rock64/tools/AndroidTool_Release_v2.38.zip Tools that allows developer flash image into eMMC's Loader/Parameter/Misc/Kernal/Boot/Recovery/System/Backup partition]
** [http://files.pine64.org/doc/rock64/tools/SD_Firmware_Tool._v1.46.zip Tools to burn Android build into a bootable microSD card]
* [https://files.pine64.org/doc/rock64/tools/DriverAssitant_v4.5.zip Windows ADB driver package]
** [http://files.pine64.org/doc/rock64/tools/AndroidTool_Release_v2.38.zip Tools that allows developer flash image into eMMC's Loader/Parameter/Misc/Kernal/Boot/Recovery/System/Backup partition]
* [[ROCK64 MAC Address]]
** [http://files.pine64.org/doc/rock64/tools/DriverAssitant_v4.5.zip Windows ADB driver package]
** [[Set MacAddress on ROCK64]]
 
 
----
 
 
=== [[ROCK64_Software_Release|ROCK64 Ver3 and Ver2]] ===
 
Under [[ROCK64_Software_Release|'ROCK64 Software and OS Image Download Section']] you will find a complete list of currently supported Operating System images that work with the ROCK64 as well as other related software.
The list includes OS images and descriptions of:
 
* http://files.pine64.org/sw/pine64_installer/json/penguin.png [https://wiki.pine64.org/index.php/ROCK64_Software_Release#Ubuntu_18.04_Bionic'''Bionic Desktop LXDE (microSD /eMMC Boot)''']           http://files.pine64.org/sw/pine64_installer/json/penguin.png [https://wiki.pine64.org/index.php/ROCK64_Software_Release#Ubuntu_18.04_Bionic'''Bionic Minimal 64bit (microSD /eMMC Boot)''']
* http://files.pine64.org/sw/pine64_installer/json/penguin.png [https://wiki.pine64.org/index.php/ROCK64_Software_Release#Ubuntu_18.04_Bionic'''Bionic Minimal 32bit (microSD /eMMC Boot)''']           http://files.pine64.org/sw/pine64_installer/json/penguin.png [https://wiki.pine64.org/index.php/ROCK64_Software_Release#Ubuntu_18.04_Bionic'''Bionic Minimal Containers (microSD /eMMC Boot)''']  
 
* http://files.pine64.org/sw/pine64_installer/json/debian.png [http://wiki.pine64.org/index.php/ROCK64_Software_Release#Debian_Stretch'''Debian (microSD / eMMC Boot)''']
 
* http://files.pine64.org/sw/pine64_installer/json/debian.png [https://wiki.pine64.org/index.php/ROCK64_Software_Release#Debian_by_mrfixit2001'''Debian by mrfixit2001 (microSD / eMMC Boot)''']
 
* http://files.pine64.org/sw/pine64_installer/json/omv.png [https://wiki.pine64.org/index.php/ROCK64_Software_Release#OpenMediaVault '''OpenMediaVault 32bit (microSD / eMMC boot)''']           http://files.pine64.org/sw/pine64_installer/json/omv.png [https://wiki.pine64.org/index.php/ROCK64_Software_Release#OpenMediaVault'''OpenMediaVault 64bit (microSD / eMMC boot)''']
 
* [{{fullurl:ROCK64_Software_Release#Recalbox}} http://files.pine64.org/sw/pine64_installer/json/recalbox.png] [[ROCK64_Software_Release#Recalbox|'''Recalbox(microSD /eMMC Boot)''']]
 
* [{{fullurl:ROCK64_Software_Release#Slackware}} http://files.pine64.org/sw/pine64_installer/json/slackware.png] [[ROCK64_Software_Release#Slackware|'''Slackware(microSD /eMMC Boot)''']]
 
* [{{fullurl:ROCK64_Software_Release#Android_9.x_eMMC}} http://files.pine64.org/sw/pine64_installer/json/android_9.png] [[ROCK64_Software_Release#Android_9.x_eMMC|'''Android 9.x (eMMC)''']]
 
* [{{fullurl:ROCK64_Software_Release#Android_8.x_eMMC}} http://files.pine64.org/sw/pine64_installer/json/android_8.png] [[ROCK64_Software_Release#Android_8.x_eMMC|'''Android 8.x (eMMC)''']]           [{{fullurl:ROCK64_Software_Release#Android_8.x}} http://files.pine64.org/sw/pine64_installer/json/android_8.png] [[ROCK64_Software_Release#Android_8.x|'''Android 8.x (microSD Boot)''']]
 
* [{{fullurl:ROCK64_Software_Release#Android_7.x_eMMC}} http://files.pine64.org/sw/pine64_installer/json/android_7.png] [[ROCK64_Software_Release#Android_7.x_eMMC|'''Android 7.x (eMMC)''']]           [{{fullurl:ROCK64_Software_Release#Android_7.x}} http://files.pine64.org/sw/pine64_installer/json/android_7.png] [[ROCK64_Software_Release#Android_7.x|'''Android 7.x (microSD Boot)''']]
 
* [{{fullurl:ROCK64_Software_Release#Android_TV_7.x_eMMC}} http://files.pine64.org/sw/pine64_installer/json/android_7.png] [[ROCK64_Software_Release#Android_TV_7.x_eMMC|'''Android TV 7.x (eMMC)''']]           [{{fullurl:ROCK64_Software_Release#Android_TV_7.x}} http://files.pine64.org/sw/pine64_installer/json/android_7.png] [[ROCK64_Software_Release#Android_TV_7.x|'''Android TV 7.x (microSD Boot)''']]
 
=== [[ROCK64_Software_Release|ROCK64 Ver2 only]] ===
 
Under [[ROCK64_Software_Release|'ROCK64 Software and OS Image Download Section']] you will find a complete list of currently supported Operating System images that work with the ROCK64 as well as other related software.
The list includes OS images and descriptions of:
 
* http://files.pine64.org/sw/pine64_installer/json/armbian.png [https://wiki.pine64.org/index.php/ROCK64_Software_Release#Armbian'''Armbian Stretch Desktop (microSD / eMMC Boot)''']           http://files.pine64.org/sw/pine64_installer/json/armbian.png [https://wiki.pine64.org/index.php/ROCK64_Software_Release#Armbian'''Armbian Xenial Desktop (microSD / eMMC Boot)''']
 
* http://files.pine64.org/sw/pine64_installer/json/penguin.png [https://wiki.pine64.org/index.php/ROCK64_Software_Release#Ubuntu_18.04_Bionic_LXDE_Desktop_Image_.5BmicroSD_.2F_eMMC_Boot.5D_.5B0.8.3.5D'''Bionic Desktop LXDE (microSD /eMMC Boot)''']           http://files.pine64.org/sw/pine64_installer/json/penguin.png [https://wiki.pine64.org/index.php/ROCK64_Software_Release#Ubuntu_18.04_Bionic_minimal_64bit_.28arm64.29_Image_.5BmicroSD_.2F_eMMC_Boot.5D_.5B0.8.3.5D'''Bionic Minimal 64bit (microSD /eMMC Boot)''']
* http://files.pine64.org/sw/pine64_installer/json/penguin.png [https://wiki.pine64.org/index.php/ROCK64_Software_Release#Ubuntu_18.04_Bionic_minimal_32bit_.28armhf.29_Image_.5BmicroSD_.2F_eMMC_Boot.5D_.5B0.8.3.5D'''Bionic Minimal 32bit (microSD /eMMC Boot)''']           http://files.pine64.org/sw/pine64_installer/json/penguin.png [https://wiki.pine64.org/index.php/ROCK64_Software_Release#Ubuntu_18.04_Bionic_Containers_Image_.28DockerCE_.26_Kubernetes.29.5BmicroSD_.2F_eMMC_Boot.5D_.5B0.8.3.5D'''Bionic Minimal Containers (microSD /eMMC Boot)''']
 
* [{{fullurl:ROCK64_Software_Release#Cent_OS}} http://files.pine64.org/sw/pine64_installer/json/centos.jpg][[ROCK64_Software_Release#Cent_OS|''' Cent OS (microSD /eMMC Boot)''']]
 
* http://files.pine64.org/sw/pine64_installer/json/debian.png [http://wiki.pine64.org/index.php/ROCK64_Software_Release#Debian_Stretch'''Debian (microSD / eMMC Boot)''']
 
* [{{fullurl:ROCK64_Software_Release#Debian by mrfixit2001}} http://files.pine64.org/sw/pine64_installer/json/debian.png][[ROCK64_Software_Release#Debian by mrfixit2001|''' Debian by mrfixit2001 (microSD /eMMC Boot)''']]
 
* [{{fullurl:ROCK64_Software_Release#DietPi}} http://files.pine64.org/sw/pine64_installer/json/dietpi.png] [[ROCK64_Software_Release#DietPi|'''DietPi (microSD /eMMC Boot)''']]
 
* [{{fullurl:ROCK64_Software_Release#Lakka}} http://files.pine64.org/sw/pine64_installer/json/lakka.png] [[ROCK64_Software_Release#Lakka|'''Lakka(microSD /eMMC Boot)''']]
 
* [{{fullurl:ROCK64_Software_Release#Manjaro_ARM}} http://files.pine64.org/sw/pine64_installer/json/manjaro.png][[ROCK64_Software_Release#Manjaro_ARM|''' Manjaro KDE ARM (microSD /eMMC Boot)''']]          [{{fullurl:ROCK64_Software_Release#Manjaro_ARM}} http://files.pine64.org/sw/pine64_installer/json/manjaro.png][[ROCK64_Software_Release#Manjaro_ARM|''' Manjaro LXQT ARM (microSD /eMMC Boot)''']]
 
* [{{fullurl:ROCK64_Software_Release#Manjaro_ARM}} http://files.pine64.org/sw/pine64_installer/json/manjaro.png][[ROCK64_Software_Release#Manjaro_ARM|''' Manjaro ARM Minimal (microSD /eMMC Boot)''']]
 
* [{{fullurl:ROCK64_Software_Release#NEMS_Linux}} http://files.pine64.org/sw/pine64_installer/json/nems.jpg] [[ROCK64_Software_Release#NEMS_Linux|'''NEMS Linux (microSD /eMMC Boot)''']]
 
* [[File:Netbsd2.png]] [http://wiki.pine64.org/index.php/ROCK64_Software_Release#NetBSD '''NetBSD (microSD / eMMC Boot)''']
 
* [{{fullurl:ROCK64_Software_Release#NextCloudPi}} http://files.pine64.org/sw/pine64_installer/json/nextcloudpi.png] [[ROCK64_Software_Release#NextCloudPi|'''NextCloudPi(microSD /eMMC Boot)''']]
 
* [{{fullurl:ROCK64_Software_Release#LibreELEC_Nightly_Build}} http://files.pine64.org/sw/pine64_installer/json/libreelec.png] [[ROCK64_Software_Release#LibreELEC_Nightly_Build|'''LibreElec (microSD / eMMC Boot)''']]
 
* http://files.pine64.org/sw/pine64_installer/json/omv.png [https://wiki.pine64.org/index.php/ROCK64_Software_Release#OpenMediaVault'''OpenMediaVault 32bit (microSD / eMMC boot)''']           http://files.pine64.org/sw/pine64_installer/json/omv.png [https://wiki.pine64.org/index.php/ROCK64_Software_Release#OpenMediaVault'''OpenMediaVault 64bit (microSD / eMMC boot)''']
 
* [{{fullurl:ROCK64_Software_Release#Recalbox}} http://files.pine64.org/sw/pine64_installer/json/recalbox.png] [[ROCK64_Software_Release#Recalbox|'''Recalbox(microSD /eMMC Boot)''']]
 
* [{{fullurl:ROCK64_Software_Release#Slackware}} http://files.pine64.org/sw/pine64_installer/json/slackware.png] [[ROCK64_Software_Release#Slackware|'''Slackware(microSD /eMMC Boot)''']]
 
* [{{fullurl:ROCK64_Software_Release#Android_9.x_eMMC}} http://files.pine64.org/sw/pine64_installer/json/android_9.png] [[ROCK64_Software_Release#Android_9.x_eMMC|'''Android 9.x (eMMC)''']]
 
* [{{fullurl:ROCK64_Software_Release#Android_8.x_eMMC}} http://files.pine64.org/sw/pine64_installer/json/android_8.png] [[ROCK64_Software_Release#Android_8.x_eMMC|'''Android 8.x (eMMC)''']]           [{{fullurl:ROCK64_Software_Release#Android_8.x}} http://files.pine64.org/sw/pine64_installer/json/android_8.png] [[ROCK64_Software_Release#Android_8.x|'''Android 8.x (microSD Boot)''']]
 
* [{{fullurl:ROCK64_Software_Release#Android_7.x_eMMC}} http://files.pine64.org/sw/pine64_installer/json/android_7.png] [[ROCK64_Software_Release#Android_7.x_eMMC|'''Android 7.x (eMMC)''']]           [{{fullurl:ROCK64_Software_Release#Android_7.x}} http://files.pine64.org/sw/pine64_installer/json/android_7.png] [[ROCK64_Software_Release#Android_7.x|'''Android 7.x (microSD Boot)''']]
 
* [{{fullurl:ROCK64_Software_Release#Android_TV_7.x_eMMC}} http://files.pine64.org/sw/pine64_installer/json/android_7.png] [[ROCK64_Software_Release#Android_TV_7.x_eMMC|'''Android TV 7.x (eMMC)''']]           [{{fullurl:ROCK64_Software_Release#Android_TV_7.x}} http://files.pine64.org/sw/pine64_installer/json/android_7.png] [[ROCK64_Software_Release#Android_TV_7.x|'''Android TV 7.x (microSD Boot)''']]
 
* [{{fullurl:ROCK64_Software_Release#NetBSD}} http://files.pine64.org/sw/pine64_installer/json/Netbsd.png] [[ROCK64_Software_Release#NetBSD|'''NetBSD''']]         
[{{fullurl:ROCK64_Software_Release#OpenBSD}} http://files.pine64.org/sw/pine64_installer/json/Openbsd.png] [[ROCK64_Software_Release#OpenBSD|'''OpenBSD''']]
 
* [{{fullurl:ROCK64_Software_Release#Volumio_Digital_Audio_Player}} http://files.pine64.org/sw/pine64_installer/json/volumio.png] [[ROCK64_Software_Release#Volumio_Digital_Audio_Player|'''Volumio Digital Audio Player (microSD /eMMC Boot)''']]
 
* [{{fullurl:ROCK64_Software_Release#Fedora}} http://files.pine64.org/sw/pine64_installer/json/fedora.png] [[ROCK64_Software_Release#Fedora|'''Fedora (microSD /eMMC Boot)''']]
 
* [{{fullurl:ROCK64_Software_Release#Yocto}} http://files.pine64.org/sw/pine64_installer/json/yocto.png] [[ROCK64_Software_Release#Yocto|'''Yocto''']]
 
 
----
 
=== Quick Links to the Source of OS Images Build ===
'''Some OS images are still in <span style="color:#FF0000">beta or nightly build</span> which are only fit for testing purposes. These should usually be avoided for normal usage, since they are <span style="color:#FF0000">used at your own risk</span>'''
 
* [https://github.com/ayufan-rock64/linux-build/releases/latest/ ayufan Linux]
* [https://github.com/ayufan-rock64/android-7.1/releases/latest/ ayufan Android 7.1]
* [https://github.com/Raybuntu/LibreELEC.tv/releases/latest/ Raybuntu LibreElec KODI] | [https://github.com/Kwiboo/LibreELEC.tv/releases/latest/ Kwiboo LibreElec KODI]
* [https://github.com/fire219/rock64-fedora/releases/latest/ Fire219 Fedora]
* [http://le.builds.lakka.tv/Rockchip.ROCK64.arm/ Lakka] | [https://github.com/rtissera/RetroPie-Setup/releases/latest/ RetroPie-Setup]
* [https://dl.armbian.com/rock64/ Armbian]
* [https://github.com/m01/rock64-arch-linux-build/releases/latest Arch Linux]
* [https://ownyourbits.com/downloads/ NextCloudPi]
* [http://dl.fail.pp.ua/slackware/images/rock64/ Slackware]
 
 
 
----
 
=== State of software support for the hardware ===


{| class="wikitable sortable"
{| class="wikitable sortable"
Line 139: Line 32:
| no
| no
| yes
| yes
| ?
| yes


|-
|-
Line 151: Line 44:
| no
| no
| yes?
| yes?
| no [https://github.com/Kwiboo/LibreELEC.tv/tree/rockchip/projects/Rockchip/devices/ROCK64 1]
| yes


|}
|}


== Upstreaming Status ==
{{Warning|The data presented in this section requires updating.}}


{| class="wikitable plainrowheaders" border="1"
! scope="col" | Function
! scope="col" colspan="2" | Status
! scope="col" | Component
! scope="col" | Notes
|-
! scope="row" | Video Output
| colspan="2" style="background:PaleGreen; text-align:center;"|Linux Mainline
| <code>rockchipdrm</code>
| With mpv, you'll need to specify something like <code>mpv --gpu-context=drm --drm-connector=1.HDMI-A-1</code> to get it to play back on a VT
|-
! scope="row" | 3D Acceleration
| style="background:PaleGreen; text-align:center;"|Linux Mainline
| style="background:PaleGreen; text-align:center;"|Upstream Mesa
| <code>lima</code>
| Very recent version recommended for the best experience. Has weird glitches on HDMI output in weston.
|-
! scope="row" | Video Decode
| style="background:LightYellow; text-align:center;"|Linux Staging
| style="background:#F99; text-align:center;"|Broken/Not in ffmpeg
| <code>hantro_vpu</code> and <code>rockchip_vdec</code>, using <code>v4l2-requests</code>
| [https://lore.kernel.org/linux-media/49b1-608d4d00-2b-62afdf80@101971638/ Soon to be moved out of staging], ffmpeg patch set [https://patchwork.ffmpeg.org/project/ffmpeg/patch/20201209202513.27449-3-jonas@kwiboo.se/ seemingly abandoned], does not work on newer kernels. [https://github.com/Kwiboo/FFmpeg/commits/v4l2-request-hwaccel-master-stable Git branch with commits]
|-
! scope="row" | Audio
| colspan="2"  style="background:PaleGreen; text-align:center;"|Linux Mainline
| <code>snd_soc_rockchip_*</code>
|-
! scope="row" | Power Button
| colspan="2" style="background:PaleGreen; text-align:center;"|Linux Mainline
| <code>rk805_pwrkey</code>
| If your PWR switch does nothing unless held, this may need to be loaded manually with <code>modprobe</code> or by putting it in <code>/etc/modules-load.d/</code>
|-
! scope="row" | Analog Video Output
| colspan="2" style="background:#F99; text-align:center;"|Needs porting
| <code>rockchip_drm_tve</code>
| Definitely needs some cleanup before it'd be ready for mainline, and needs some dt bindings written.
|}


== SoC and Memory Specification ==
== SoC and Memory Specification ==
* Based on Rockchip RK3328
* Based on [https://www.rock-chips.com/a/en/products/RK33_Series/2017/0118/829.html Rockchip RK3328]
[[File:Rockchip_RK3328.png]]
[[File:Rockchip_RK3328.png|right]]


=== CPU Architecture ===
=== CPU Architecture ===
* [http://www.arm.com/products/processors/cortex-a/cortex-a53-processor.php Quad-core Cortex-A53 up to 1.5GHz CPU]
* [https://www.arm.com/products/processors/cortex-a/cortex-a53-processor.php Quad-core Cortex-A53 up to 1.5GHz CPU]
* Full implementation of the ARM architecture v8-A instruction set
* 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
* ARM Neon Advanced SIMD (single instruction, multiple data) support for accelerated media and signal processing computation
Line 168: Line 100:
* In-order pipeline with symmetric dual-issue of most instructions
* In-order pipeline with symmetric dual-issue of most instructions
* Unified system L2 cache
* Unified system L2 cache
* Include VFP v3 hardware to support single and double-precision operations
* Includes VFP v3 hardware to support single and double-precision operations
* Integrated 32KB L1 instruction cache, 32KB L1 data cache with 4-way set associative
* Integrated 32KB L1 instruction cache, 32KB 4-way set associative L1 data cache
* TrustZone technology support
* TrustZone technology support
* Full CoreSight debug solution
* Full CoreSight debug solution
* One separate power domains for CPU core system to support internal power switch and externally turn on/off based on different application scenario
* 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
* PD_A53: Cortex-A53 + Neon + FPU + L1 I/D Cache of core 2/3
* One isolated voltage domain to support DVFS
* One isolated voltage domain to support DVFS
==== Frequencies & Voltages ====
{| class="wikitable"
! Frequency
! Voltage
|- style="text-align:right;"
| 408 MHz
| 0.950 V
|- style="text-align:right;"
| 600 MHz
| 0.950 V
|- style="text-align:right;"
| 816 MHz
| 1.000 V
|- style="text-align:right;"
| 1008 MHz
| 1.100 V
|- style="text-align:right;"
| 1200 MHz
| 1.225 V
|- style="text-align:right;"
| 1296 MHz
| 1.300 V
|}
==== Power Draw ====
These numbers for power draw have been measured through an USB power monitor (FNB38) while running the <code>stress</code> utility, whereby "cpu" stands for <code>stress --cpu 4</code> and "vm" stands for <code>stress --vm 4</code>. 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 &times; voltage, because the power factor is 1. The ROCK64 runs on 5V, so use that to calculate current if you need to.
{| class="wikitable"
! Frequency
! Power cpu
! Power vm
|- style="text-align:right;"
| 1296 MHz
| 2.64 W
| 2.95 W
|- style="text-align:right;"
| 1200 MHz
| 2.32 W
| 2.69 W
|- style="text-align:right;"
| 1008 MHz
| 1.90 W
| 2.31 W
|- style="text-align:right;"
| 816 MHz
| 1.62 W
| 2.05 W
|- style="text-align:right;"
| 600 MHz
| 1.45 W
| 1.85 W
|- style="text-align:right;"
| 408 MHz
| 1.33 W
| 1.72 W
|- style="text-align:right;"
| Idle (no load)
|colspan="2" style="text-align:center;"| 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 ===
=== GPU Architecture ===
* [http://www.arm.com/products/multimedia/mali-gpu/ultra-low-power/mali-450.php ARM Mali-450MP2 Dual-core GPU]
* [https://www.arm.com/products/multimedia/mali-gpu/ultra-low-power/mali-450.php ARM Mali-450MP2 Dual-core GPU]
* OpenGL ES 1.1 and 2.0, OpenVG1.1
* OpenGL ES 1.1 and 2.0, OpenVG1.1


=== System Memory ===
=== System Memory ===
* LPDDR3 RAM Memory Variants: 1GB, 2GB and 4GB.
* LPDDR3 RAM Memory Variants: 1GB, 2GB and 4GB.
* Storage Memory: ROCK64 boards have 128Mb built-in SPI Flash memory but not yet in use, currently use '''bootable microSD Cards''' or '''bootable attachable eMMC'''.


== Board Features ==
== Board Features ==
[[File:ROCK64_sideimg.jpg|400px|thumb|right|The ROCK64 and a size comparison]]


=== Video ===
=== Video ===
Line 208: Line 206:


=== Storage ===
=== Storage ===
* microSD - bootable, support SDHC and SDXC, storage up to 256GB
[[File:Rock64-emmc-disable-jumper.png|250px|thumb|right|Position of the two-pin header for disabling the optionally installed eMMC module (highlighted in red)]]
 
* microSD - bootable, supports SDHC and SDXC and storage up to 256GB
* eMMC - bootable (optional eMMC Module)
* eMMC - bootable (optional eMMC Module)
* 128Mbit (16MB) on-board SPI flash memory (empty by default) - bootable? Usually accessible as a [http://linux-mtd.infradead.org/doc/general.html Linux MTD] device at <code>/dev/mtd0</code>
* 1 USB3.0 Dedicated Host port
* 1 USB3.0 Dedicated Host port
* 2 USB2.0 Dedicated Host port (top one is USB-OTG)
* 2 USB2.0 Dedicated Host port (top one is USB-OTG)
Optionally installed eMMC module can be disabled by placing a jumper onto the two pins on the separate two-pin header, located near one of the mounting holes and two side-mounted buttons.  See the picture in this section, in which this two-pin header is highlighted in red.


=== Expansion Ports ===
=== Expansion Ports ===
All GPIO pins, including UART, operate at 3.3V. (See VCCIO5 in the schematics.)
* 2x20 pins "Pi2" GPIO Header
* 2x20 pins "Pi2" GPIO Header
* 2x11 pins "Pi P5+" GPIO Header (with 2nd 10/100Mbps Ethernet pins)
* 2x11 pins "Pi P5+" GPIO Header (with 2nd 10/100Mbps Ethernet pins)


== Information, Schematics and Certifications ==
Board Dimensions: 85mm x 56mm x 18.8mm, see the [https://files.pine64.org/doc/rock64/rock64%20board%20dimension.pdf ROCK64 board dimension drawing]
Input Power: +5V @3A with 3.5mm/1.35mm Type H Barrel type DC connector (@2A will work if there is no heavy load on the USB 3.0 port)


ROCK64 ver 3.0 SBC related info:
* [https://files.pine64.org/doc/rock64/Rock64%20Ver%203%20change%20notice.pdf ROCK64 SBC v3.0 Change Notice]
* [https://files.pine64.org/doc/rock64/ROCK64_Schematic_v3.0_20181105.pdf ROCK64 Schematic v3.0 (Production Release)]
* [https://files.pine64.org/doc/rock64/ROCK64_comp_ref_top_v3.0_20181105.pdf ROCK64 Component Reference location v3.0 (top layer)]
* [https://files.pine64.org/doc/rock64/ROCK64_comp_ref_bottom_v3.0_20181105.pdf ROCK64 Component Reference location v3.0 (bottom layer)]
* [https://files.pine64.org/doc/rock64/ROCK64_V3_Pi-2_and_Pi-P5+_Bus.pdf ROCK64 SBC v3.0 Pi-2 and Pi-P5+ Bus GPIO Assignment]
* [https://files.pine64.org/doc/rock64/R64V3%20RTC%20Batt%20connector.png ROCK64 Rev3 SBC RTC Battery Connector polarity]


== ROCK64 Board Information, Schematics and Certifications ==
ROCK64 ver 2.0 SBC related info:
* Board Dimensions: 85mm x 56mm x 18.8mm
* [https://files.pine64.org/doc/rock64/ROCK64_Schematic_v2.0_20171019.pdf ROCK64 Schematic v2.0 (Production Release)]  
** [http://files.pine64.org/doc/rock64/rock64%20board%20dimension.pdf ROCK64 board dimension drawing]
* [https://files.pine64.org/doc/rock64/ROCK64_Pi-2%20_and_Pi_P5+_Bus.pdf ROCK64 SBC v2.0 Pi-2 and Pi-P5+ Bus GPIO Assignment]
* Input Power: +5V @3A with 3.5mm/1.35mm Type H Barrel type DC connector (@2A still work if no heavy loading on USB 3.0 port)
* ROCK64 ver 3.0 SBC related info
** [http://files.pine64.org/doc/rock64/Rock64%20Ver%203%20change%20notice.pdf ROCK64 SBC v3.0 Change Notice]
** [http://files.pine64.org/doc/rock64/ROCK64_Schematic_v3.0_20181105.pdf ROCK64 Schematic v3.0 (Production Release)]
** [http://files.pine64.org/doc/rock64/ROCK64_comp_ref_top_v3.0_20181105.pdf ROCK64 Component Reference location v3.0 (top layer)]
** [http://files.pine64.org/doc/rock64/ROCK64_comp_ref_bottom_v3.0_20181105.pdf ROCK64 Component Reference location v3.0 (bottom layer)]
** [http://files.pine64.org/doc/rock64/ROCK64_V3_Pi-2_and_Pi-P5+_Bus.pdf ROCK64 SBC v3.0 Pi-2 and Pi-P5+ Bus GPIO Assignment]
http://files.pine64.org/doc/rock64/R64V3%20RTC%20Batt%20connector.png
ROCK64 Rev3 SBC RTC Battery Connector polarity
* ROCK64 ver 2.0 SBC related info
** [http://files.pine64.org/doc/rock64/ROCK64_Schematic_v2.0_20171019.pdf ROCK64 Schematic v2.0 (Production Release)]  
** [http://files.pine64.org/doc/rock64/ROCK64_Pi-2%20_and_Pi_P5+_Bus.pdf ROCK64 SBC v2.0 Pi-2 and Pi-P5+ Bus GPIO Assignment]
* [https://github.com/Leapo/Rock64-R64.GPIO Github on ROCK64 GPIO library, thanks to Leapo]
* [https://github.com/Leapo/Rock64-R64.GPIO Github on ROCK64 GPIO library, thanks to Leapo]
* [http://synfare.com/599N105E/hwdocs/rock64/index.html Good documentation about ROCK64 GPIO pins article]
* [http://synfare.com/599N105E/hwdocs/rock64/index.html Good documentation about ROCK64 GPIO pins article]
* [http://files.pine64.org/doc/rock64/ROCK64_ES9023_Audio_100Mbps_Ethernet_Board.pdf ROCK64 Audio DAC with 10/100Mbps Ethernet POT Board Schematic]
* [https://files.pine64.org/doc/rock64/ROCK64_ES9023_Audio_100Mbps_Ethernet_Board.pdf ROCK64 Audio DAC with 10/100Mbps Ethernet POT Board Schematic]
* ROCK64 3-D autodesk drawing, thanks and courtesy of TeaPack
 
** [https://myhub.autodesk360.com/ue2b2f72e/g/shares/SH7f1edQT22b515c761e818b9e1b31b54545?viewState=NoIgbgDAdAjCA0IAsSDMAzAnAQwCaoFoYBjAdhgICNTVcCA2S9AJgIFMJTsAOGTU3LmLYQAXSA ROCK64 board 2D drawing @courtesy of TeaPack]
ROCK64 3D autodesk drawing (from ''TeaPack''):
** [https://myhub.autodesk360.com/ue2b2f72e/g/shares/SH7f1edQT22b515c761e6078b748ecd478e1?viewState=NoIgbgDAdAjCA0IDeAdEAXAngBwKZoC40ARXAZwEsBzAOzXjQEMyzd1C0AmAEwGYZOAI0G4AtAA4ArABZeo6eIiNRggJwxuomAHYAxoOm6YMaQDZOvNAF8QAXSA ROCK64 board 3D drawing @courtesy of TeaPack]
* [https://myhub.autodesk360.com/ue2b2f72e/g/shares/SH7f1edQT22b515c761e818b9e1b31b54545?viewState=NoIgbgDAdAjCA0IAsSDMAzAnAQwCaoFoYBjAdhgICNTVcCA2S9AJgIFMJTsAOGTU3LmLYQAXSA ROCK64 board 2D drawing @courtesy of TeaPack]
** [https://myhub.autodesk360.com/ue2b2f72e/g/shares/SH7f1edQT22b515c761e45a87155aecc813f?viewState=NoIgbgDAdAjCA0IDeAdEAXAngBwKZoC40ARXAZwEsBzAOzXjQEMyzd1C0BWAYwgGYYAEyEBaQQDYARoJEAWfjMmzckkQCYAHCs5LZAMxi41aAL4gAukA ROCK64 Audio DAC with 10/100Mbps Ethernet POT board 3D drawing @courtesy of TeaPack]
* [https://myhub.autodesk360.com/ue2b2f72e/g/shares/SH7f1edQT22b515c761e6078b748ecd478e1?viewState=NoIgbgDAdAjCA0IDeAdEAXAngBwKZoC40ARXAZwEsBzAOzXjQEMyzd1C0AmAEwGYZOAI0G4AtAA4ArABZeo6eIiNRggJwxuomAHYAxoOm6YMaQDZOvNAF8QAXSA ROCK64 board 3D drawing @courtesy of TeaPack]
** [https://myhub.autodesk360.com/ue2b2f72e/g/shares/SH7f1edQT22b515c761ee09b497ae3f2f72e?viewState=NoIgbgDAdAjCA0IBmSYEMAcBmAbBgtACwBGhMRATMeQKYYYX5ICcAJhjYWjDBGgKwgAukA ROCK64 board with Audio DAC POT board 3D drawing @courtesy of TeaPack]
* [https://myhub.autodesk360.com/ue2b2f72e/g/shares/SH7f1edQT22b515c761e45a87155aecc813f?viewState=NoIgbgDAdAjCA0IDeAdEAXAngBwKZoC40ARXAZwEsBzAOzXjQEMyzd1C0BWAYwgGYYAEyEBaQQDYARoJEAWfjMmzckkQCYAHCs5LZAMxi41aAL4gAukA ROCK64 Audio DAC with 10/100Mbps Ethernet POT board 3D drawing @courtesy of TeaPack]
* ROCK64 Certifications:
* [https://myhub.autodesk360.com/ue2b2f72e/g/shares/SH7f1edQT22b515c761ee09b497ae3f2f72e?viewState=NoIgbgDAdAjCA0IBmSYEMAcBmAbBgtACwBGhMRATMeQKYYYX5ICcAJhjYWjDBGgKwgAukA ROCK64 board with Audio DAC POT board 3D drawing @courtesy of TeaPack]
** Disclaimer: Please note that PINE64 SBC is not a "final" product and in general certification is not necessary. However, PINE64 still submit the SBC for FCC, CE, and ROHS certification and obtain the certificates to proof that SBC board is capable on passing the testing. Please note a final commercial product needs to performs its owns testing and obtains its owns certificates.
 
** [http://files.pine64.org/doc/cert/ROCK64%20FCC%20certification%20VOC20171129.pdf ROCK64 FCC Certificate]
Certifications:
** [http://files.pine64.org/doc/cert/ROCK64%20CE%20certification%20VOC20171129.pdf ROCK64 CE Certificate]
* [https://files.pine64.org/doc/cert/ROCK64%20FCC%20certification%20VOC20171129.pdf ROCK64 FCC Certificate]
** [http://files.pine64.org/doc/cert/ROCK64%20ROHS%20certification%20VOC20170927.pdf ROCK64 RoHS Certificate]
* [https://files.pine64.org/doc/cert/ROCK64%20CE%20certification%20VOC20171129.pdf ROCK64 CE Certificate]
* [https://files.pine64.org/doc/cert/ROCK64%20ROHS%20certification%20VOC20170927.pdf ROCK64 RoHS Certificate]


== Datasheets for Components and Peripherals ==
== Datasheets for Components and Peripherals ==
* Rockchip RK3328 SoC information:
 
** [http://www.rock-chips.com/a/en/products/RK33_Series/2017/0118/829.html Rockchip RK3328 SoC Brief]
Rockchip RK3328 SoC information:
** [http://opensource.rock-chips.com/images/d/d7/Rockchip_RK3328_Datasheet_V1.1-20170309.pdf Rockchip RK3328 Datasheet V1.1]
* [https://www.rock-chips.com/a/en/products/RK33_Series/2017/0118/829.html Rockchip RK3328 SoC Brief]
** [http://opensource.rock-chips.com/images/9/97/Rockchip_RK3328TRM_V1.1-Part1-20170321.pdf Rockchip RK3328 Technical Reference Manual part 1]
* [https://rockchip.fr/RK3328%20datasheet%20V1.2.pdf Rockchip RK3328 Datasheet V1.2]
** [http://files.pine64.org/doc/rock64/Rockchip_RK805_Datasheet_V1.1%C2%A020160921.pdf Rockchip RK805 Datasheet V1.1]
* [https://opensource.rock-chips.com/images/9/97/Rockchip_RK3328TRM_V1.1-Part1-20170321.pdf Rockchip RK3328 Technical Reference Manual part 1]
* LPDDR3 (178 Balls) SDRAM:
* [https://files.pine64.org/doc/rock64/Rockchip_RK805_Datasheet_V1.1%C2%A020160921.pdf Rockchip RK805 Datasheet V1.1]
** [http://files.pine64.org/doc/rock64/H9CCNNNCLTMLAR(Rev1.2).pdf Hynix LPDDR3 Datasheet V1.2]
 
** [http://files.pine64.org/doc/rock64/K4E8E324EB-EGCF000_DRAM_178F_11x11.5_Ver.1.00.00.pdf Samsung LPDDR3 Datasheet V1.00.00]
LPDDR3 (178 Balls) SDRAM:
** [http://files.pine64.org/doc/rock64/SPECTEK_178B_32GB_V91M_MOBILE_LPDDR3.pdf Spectek LPDDR3 Datasheet]
* [https://files.pine64.org/doc/rock64/H9CCNNNCLTMLAR(Rev1.2).pdf Hynix LPDDR3 Datasheet V1.2]
* eMMC information:
* [https://files.pine64.org/doc/rock64/K4E8E324EB-EGCF000_DRAM_178F_11x11.5_Ver.1.00.00.pdf Samsung LPDDR3 Datasheet V1.00.00]
** [http://files.pine64.org/doc/rock64/PINE64_eMMC_Module_20170719.pdf PINE64 eMMC module schematic]
* [https://files.pine64.org/doc/rock64/SPECTEK_178B_32GB_V91M_MOBILE_LPDDR3.pdf Spectek LPDDR3 Datasheet]
** [http://files.pine64.org/doc/rock64/usb%20emmc%20module%20adapter%20v2.pdf PINE64 USB adapter for eMMC module V2 schematic]
 
** [http://files.pine64.org/doc/rock64/USB%20adapter%20for%20eMMC%20module%20PCB.tar PINE64 USB adapter for eMMC module PCB in JPEG]
eMMC information:
** [http://files.pine64.org/doc/datasheet/pine64/SDINADF4-16-128GB-H%20data%20sheet%20v1.13.pdf SanDisk eMMC Datasheet]
* [https://files.pine64.org/doc/rock64/PINE64_eMMC_Module_20170719.pdf PINE64 eMMC module schematic]
** [http://files.pine64.org/doc/datasheet/pine64/H26M64003DQR%20Datasheet.pdf Hynix eMMC Datasheet]
* [https://files.pine64.org/doc/rock64/usb%20emmc%20module%20adapter%20v2.pdf PINE64 USB adapter for eMMC module V2 schematic]
** [http://files.pine64.org/doc/datasheet/pine64/FORESEE_eMMC_NCEMBSF9-xxG%20SPEC%20A0%2020150730.pdf Foresee eMMC Datasheet]
* [https://files.pine64.org/doc/rock64/USB%20adapter%20for%20eMMC%20module%20PCB.tar PINE64 USB adapter for eMMC module PCB in JPEG]
* SPI NOR Flash information:
* [https://files.pine64.org/doc/datasheet/pine64/E-00517%20FORESEE_eMMC_NCEMAM8B-16G%20SPEC.pdf 16GB Foresee eMMC Datasheet]
** [http://files.pine64.org/doc/datasheet/pine64/w25q128jv%20spi%20revc%2011162016.pdf WinBond 128Mb SPI Flash Datasheet]
* [https://files.pine64.org/doc/datasheet/pine64/SDINADF4-16-128GB-H%20data%20sheet%20v1.13.pdf 32Gb/64GB/128GB SanDisk eMMC Datasheet]
** [http://files.pine64.org/doc/datasheet/pine64/GD25Q128C-Rev2.5.pdf GigaDevice 128Mb SPI Flash Datasheet]
 
* Ethernet related info:
SPI NOR Flash information:
** [http://files.pine64.org/doc/datasheet/rock64/RTL8211F-CG-Realtek.pdf Realtek RTL8211F 10/100/1000M Ethernet Transceiver Datasheet]
* [https://files.pine64.org/doc/datasheet/pine64/w25q128jv%20spi%20revc%2011162016.pdf WinBond 128Mb SPI Flash Datasheet]
** [http://files.pine64.org/doc/rock64/DGKYD111B096GWA1D.pdf 10/100Mbps MegJack on Audio DAC POT board Datasheet]
* [https://files.pine64.org/doc/datasheet/pine64/GD25Q128C-Rev2.5.pdf GigaDevice 128Mb SPI Flash Datasheet]
* Peripheral related info:
 
** [http://files.pine64.org/doc/rock64/PDS-16002%20JMS578%20Datasheet%20(Rev.%201.01).pdf JMicron JMS578 to SATA  Datasheet]
Ethernet related info:
* Enclosure information:
* [https://files.pine64.org/doc/datasheet/rock64/RTL8211F-CG-Realtek.pdf Realtek RTL8211F 10/100/1000M Ethernet Transceiver Datasheet]
** [http://files.pine64.org/doc/datasheet/case/ROCK64%20Aluminum%20Waterproof%20Die%20Cast%20Casing.pdf Outdoor Aluminum Cast Dust-proof IP67 Enclosure Drawing]
* [https://files.pine64.org/doc/rock64/DGKYD111B096GWA1D.pdf 10/100Mbps MegJack on Audio DAC POT board Datasheet]
* Remote control button mapping
 
** [http://files.pine64.org/doc/Pine%20A64%20Schematic/remote-wit-logo.jpg Official Remote Control for the PINE A64 Button Mapping]
Peripheral related info:
* [https://files.pine64.org/doc/rock64/PDS-16002%20JMS578%20Datasheet%20(Rev.%201.01).pdf JMicron JMS578 to SATA  Datasheet]
 
Enclosure information:
* [https://files.pine64.org/doc/datasheet/case/ROCK64%20Aluminum%20Waterproof%20Die%20Cast%20Casing.pdf Outdoor Aluminum Cast Dust-proof IP67 Enclosure Drawing]
 
Remote control button mapping:
* [https://files.pine64.org/doc/Pine%20A64%20Schematic/remote-wit-logo.jpg Official Remote Control for the PINE A64 Button Mapping]
 
== Enclosures ==
 
[[File:Rock64-Al-Case1-1.jpg|thumb|100px]]
 
The ROCK64 fits in three officially sold cases.
 
* [["Model B" Acrylic Open Enclosure]], [https://pine64.com/product/model-b-acrylic-open-enclosure/ Store]
* "Model B" Aluminum Waterproof Enclosure, [https://pine64.com/product/model-b-aluminum-waterproof-enclosure/ Store]
* [[ROCK64 Premium Aluminum Casing]], [https://pine64.com/product/model-b-premium-aluminum-casing/?v=0446c16e2e66 Store]
 
== 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 <code>rk805_pwrkey</code> module is loaded, e.g. with <code>lsmod | grep rk805_pwrkey</code>. The module auto loading of <code>rk805_pwrkey</code> was fixed in the following upstream kernels: v6.0/v5.15.66/v5.10.142/v5.4.213/v4.19.258/v4.14.293 so there should be no requirement for fixes with those kernels or newer. If it doesn't show up, do a <code>modprobe rk805_pwrkey</code> as root. To make this persistent, create a <code>99-rk805_pwrkey.conf</code> in <code>/etc/modules-load.d/</code> with the content <code>rk805_pwrkey</code>
 
If it still doesn't work, make sure your init system is actually listening to the button press. With systemd, check <code>/etc/systemd/logind.conf</code> and make sure it's either all commented out (uses defaults) or contains something like <code>HandlePowerKey=poweroff</code>. You can change the short press action by setting <code>HandlePowerKey</code> 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 [https://overviewer.org/~pillow/up/c5179dcb67/0001-rockchip-rk3328-Set-VOP-QoS-to-high-priority.patch 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.


== Other Resources ==
== Other Resources ==
* [https://forum.pine64.org/forumdisplay.php?fid=85 ROCK64 Forum]
* [https://forum.pine64.org/forumdisplay.php?fid=85 ROCK64 Forum]
* [http://www.pine64.xyz:9090/?channels=ROCK64 ROCK64 IRC Channel]
* IRC Server: irc.pine64.org Channel: ROCK64
* [https://github.com/rock64-linux ROCK64 Linux GitHub Repo]
* [https://github.com/rock64-linux ROCK64 Linux GitHub Repo]
* [https://github.com/ayufan-rock64 ROCK64 ayufan GitHub Repo]
* [https://github.com/ayufan-rock64 ROCK64 ayufan GitHub Repo]
* [https://github.com/rockchip-linux Rockchip Linux GitHub Repo]
* [https://github.com/rockchip-linux Rockchip Linux GitHub Repo]
* [https://github.com/JamesLinEngineer/RKMC Rockchip Android RKMC (Forked from Kodi 16.1)]
* [https://github.com/JamesLinEngineer/RKMC Rockchip Android RKMC (Forked from Kodi 16.1)]
* [http://opensource.rock-chips.com/ Rockchip Open Source Wiki]
* [https://opensource.rock-chips.com/ Rockchip Open Source Wiki]
* [http://wiki.pine64.org/index.php/Rock64_Guides ROCK64 Guides]
* [https://www.armbian.com/rock64 Armbian's ROCK64 Page]
* [https://www.armbian.com/rock64 Armbian's ROCK64 Page]
[[Category:ROCK64]] [[Category:Rockchip RK3328]]

Latest revision as of 08:07, 23 October 2023

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 ROCK64 Software Releases 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

Warning: The data presented in this section requires updating.
Function Status Component Notes
Video Output 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
3D Acceleration Linux Mainline Upstream Mesa lima Very recent version recommended for the best experience. Has weird glitches on HDMI output in weston.
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
Audio Linux Mainline snd_soc_rockchip_*
Power Button 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/
Analog Video Output Needs porting rockchip_drm_tve Definitely needs some cleanup before it'd be ready for mainline, and needs some dt bindings written.

SoC and Memory Specification

Rockchip RK3328.png

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) 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.

Board Features

The ROCK64 and a size comparison

Video

  • Digital Video output up to 4K@60Hz
  • 4K HDR @ 60fps
  • H.264/AVC Base/Main/High/High10 profile @ level 5.1; up to 4Kx2K @ 60fps
  • H.265/HEVC Main/Main10 profile @ level 5.1 High-tier; up to 4Kx2K @ 60fps
  • VP9, up to 4Kx2K @ 60fps
  • MPEG-1, ISO/IEC 11172-2, up to 1080P @ 60fps
  • MPEG-2, ISO/IEC 13818-2, SP@ML, MP@HL, up to 1080P @ 60fps
  • MPEG-4, ISO/IEC 14496-2, SP@L0-3, ASP@L0-5, up to 1080P @ 60fps
  • VC-1, SP@ML, MP@HL, AP@L0-3, up to 1080P @ 60fps
  • MVC is supported based on H.264 or H.265, up to 1080P @ 60fps

Audio

  • 3.5mm A/V Jack (Composite Video Output and RCA Stereo support using conversion cable)

Network

  • 10/100/1000Mbps Ethernet
  • WiFi 802.11 b/g/n with Bluetooth 4.0 (optional USB dongle)

Storage

Position of the two-pin header for disabling the optionally installed eMMC module (highlighted in red)
  • microSD - bootable, supports SDHC and SDXC and storage up to 256GB
  • eMMC - bootable (optional eMMC Module)
  • 128Mbit (16MB) on-board SPI flash memory (empty by default) - bootable? Usually accessible as a Linux MTD device at /dev/mtd0
  • 1 USB3.0 Dedicated Host port
  • 2 USB2.0 Dedicated Host port (top one is USB-OTG)

Optionally installed eMMC module can be disabled by placing a jumper onto the two pins on the separate two-pin header, located near one of the mounting holes and two side-mounted buttons. See the picture in this section, in which this two-pin header is highlighted in red.

Expansion Ports

All GPIO pins, including UART, operate at 3.3V. (See VCCIO5 in the schematics.)

  • 2x20 pins "Pi2" GPIO Header
  • 2x11 pins "Pi P5+" GPIO Header (with 2nd 10/100Mbps Ethernet pins)

Information, Schematics and Certifications

Board Dimensions: 85mm x 56mm x 18.8mm, see the ROCK64 board dimension drawing

Input Power: +5V @3A with 3.5mm/1.35mm Type H Barrel type DC connector (@2A will work if there is no heavy load on the USB 3.0 port)

ROCK64 ver 3.0 SBC related info:

ROCK64 ver 2.0 SBC related info:

ROCK64 3D autodesk drawing (from TeaPack):

Certifications:

Datasheets for Components and Peripherals

Rockchip RK3328 SoC information:

LPDDR3 (178 Balls) SDRAM:

eMMC information:

SPI NOR Flash information:

Ethernet related info:

Peripheral related info:

Enclosure information:

Remote control button mapping:

Enclosures

Rock64-Al-Case1-1.jpg

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. The module auto loading of rk805_pwrkey was fixed in the following upstream kernels: v6.0/v5.15.66/v5.10.142/v5.4.213/v4.19.258/v4.14.293 so there should be no requirement for fixes with those kernels or newer. 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.

Other Resources