<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.pine64.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=I3master</id>
	<title>PINE64 - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.pine64.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=I3master"/>
	<link rel="alternate" type="text/html" href="https://wiki.pine64.org/wiki/Special:Contributions/I3master"/>
	<updated>2026-05-06T18:09:50Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.37.1</generator>
	<entry>
		<id>https://wiki.pine64.org/index.php?title=ROCKPro64&amp;diff=19780</id>
		<title>ROCKPro64</title>
		<link rel="alternate" type="text/html" href="https://wiki.pine64.org/index.php?title=ROCKPro64&amp;diff=19780"/>
		<updated>2023-06-07T23:18:29Z</updated>

		<summary type="html">&lt;p&gt;I3master: Removed references to &amp;quot;I&amp;quot;.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:ROCKPro64v21FRONT.jpg|400px|thumb|right|The ROCKPro64]]&lt;br /&gt;
&lt;br /&gt;
The '''ROCKPro64''' is the most powerful Single Board Computer released by PINE64. It is powered by a Rockchip RK3399 Hexa-Core (dual ARM Cortex A72 and quad ARM Cortex A53) 64-Bit Processor with a Mali T-860 Quad-Core GPU. The key features include a PCIe x4 open ended slot, the use of LPDDR4 RAM, and industry standard heatsink mounting holes.&lt;br /&gt;
&lt;br /&gt;
The ROCKPro64 is equipped with 2GB or 4GB LPDDR4 system memory, and 128Mb SPI boot Flash. There is also an optional eMMC module (up to 128GB) and microSD slot for booting. The board is equipped with 1x USB 3.0 type C Host with DP 1.2, 1x USB 3.0 type A Host, 2x USB 2.0 Host, Gigabit Ethernet, PI-2 GPIO Bus, MiPi DSI interface, eDP interface, touch Panel interface, stereo MiPi CSI interface, as well as many other device interfaces such as UART, SPI, I2C, for makers to integrate with sensors and other peripherals. Many different Operating Systems (OS) are freely available from the open source community, such as Android, Linux (Ubuntu, Debian, Arch), and BSD.&lt;br /&gt;
&lt;br /&gt;
== Getting Started ==&lt;br /&gt;
&lt;br /&gt;
The article [[ROCKPro64 Getting Started]] gives important information to get the board up and running.&lt;br /&gt;
&lt;br /&gt;
== Software releases ==&lt;br /&gt;
&lt;br /&gt;
In the [[ROCKPro64 Software Releases]] page, you will find a complete list of currently supported Operating System images that work with the ROCKPro64, as well as other related software. The Software Release page has links to download the images as well as high level instructions to load each image.&lt;br /&gt;
&lt;br /&gt;
Please see the [[Getting started]] page for detailed discussion of what you need (prerequisites) as well as instructions if the high level instructions are insufficient.&lt;br /&gt;
&lt;br /&gt;
== Board Layout ==&lt;br /&gt;
[[Image:ROCKPro64v21REAR.jpg|thumb|right|A hi-res picture of v2.1 rear.]]&lt;br /&gt;
[[Image:FLIR 20220619 125451 686.jpg|thumb|right|A thermal image of v2.1 front (upside-down).]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:ROCKPro64_annotated.jpg|500px|An annotated ROCKPro64]]&lt;br /&gt;
&lt;br /&gt;
=== Main Chips ===&lt;br /&gt;
* RK3399 system-on-chip (1)&lt;br /&gt;
* LPDDR4 SDRAM 1 (18)&lt;br /&gt;
* LPDDR4 SDRAM 2 (3)&lt;br /&gt;
* SPI NOR flash memory (17)&lt;br /&gt;
* RK808 power management (near 19)&lt;br /&gt;
* RTL8211 ethernet transceiver (near 25)&lt;br /&gt;
* ES8316 Sound Codec (on rear of board)&lt;br /&gt;
* The heatsink mounting holes around the RK3399 are 59 mm apart&lt;br /&gt;
&lt;br /&gt;
=== Switches ===&lt;br /&gt;
&lt;br /&gt;
The Power button (11, SW3): is the same as on your mobile phone - press and release after about 1 second to power on. Press and hold for about 3 seconds to power off.&lt;br /&gt;
&lt;br /&gt;
The Reset button (10, SW901): performs a reset.&lt;br /&gt;
&lt;br /&gt;
The Recover button (28, SW900): used to enter maskrom mode.&lt;br /&gt;
&lt;br /&gt;
=== Connectors, Sockets and Headers ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;line-height: 1.4;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;font-size: .9em;&amp;quot;&lt;br /&gt;
! Diagram !! Schematic&amp;lt;br&amp;gt;designator !! Silkscreen&amp;lt;br&amp;gt;label !! Number&amp;lt;br&amp;gt;of pins !! Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 2  || U39   || PI-2-bus || style=&amp;quot;text-align: center;&amp;quot; | 40 || Pi-2 bus &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 4  || J8    || +FAN- || style=&amp;quot;text-align: center;&amp;quot; | 2 || PWM controlled fan header&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 5  || J10   || SPDIF || style=&amp;quot;text-align: center;&amp;quot; | 3 || SPDIF header&lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 6  || U6    || +RTC- || style=&amp;quot;text-align: center;&amp;quot; | 2 || RTC battery backup header&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7  || U31   || Wifi-BT || style=&amp;quot;text-align: center;&amp;quot; | 16 || SDIO WIFI/BT module-MIMO 2&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 8  || USB3  ||  || style=&amp;quot;text-align: center;&amp;quot; | 9 || USB-3 and USB Type C&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 9  || USB1  ||  || style=&amp;quot;text-align: center;&amp;quot; | 2×4 || Dual USB-2&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 12 || IR1   || IR || style=&amp;quot;text-align: center;&amp;quot; | 3 || infrared receiver socket &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 13 || J16   || Headphone+mic || style=&amp;quot;text-align: center;&amp;quot; | 4 || Headphone + mic 3.5mm jack&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -  || CON16 || GND PWR RST GND || style=&amp;quot;text-align: center;&amp;quot; | 4 || Power &amp;amp; reset, unpopulated&amp;lt;br&amp;gt;header near Headphone jack&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 14 || U29   || EMMC || style=&amp;quot;text-align: center;&amp;quot; | 34 || eMMC connector&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 14* || J13  ||  || style=&amp;quot;text-align: center;&amp;quot; | 13 || TF-card, a.k.a. microSD&amp;lt;br&amp;gt;(* under 14 on the bottom side)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 15 || U30   ||  || style=&amp;quot;text-align: center;&amp;quot; | 14 || SDIO WIFI/BT module-MIMO 1&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 16 || SW4   ||  || style=&amp;quot;text-align: center;&amp;quot; | 2 || Jumper to [[#Disable eMMC]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 19 || J15   || PCI || style=&amp;quot;text-align: center;&amp;quot; | 64 || PCI-express X4 socket&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 20 || J21   || DSI || style=&amp;quot;text-align: center;&amp;quot; | 30 || DSI&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 21 || J22   || EDP || style=&amp;quot;text-align: center;&amp;quot; | 30 || LCD EDP&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 22 || CON1  || TP || style=&amp;quot;text-align: center;&amp;quot; | 6 || touch panel connector&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 23 || CON15 ||  || style=&amp;quot;text-align: center;&amp;quot; | 4 || DC out for SATA disk cable&amp;lt;br&amp;gt;(direct connect from DC-IN)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 24 || J11   || DC-IN || style=&amp;quot;text-align: center;&amp;quot; | 2 || Power input, positive tip;&amp;lt;br&amp;gt;12V/3A (minimum) recommended&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 25 || U32   ||  || style=&amp;quot;text-align: center;&amp;quot; | 8 || 8P8C (often referred to as 'RJ45')&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 26 || J14   ||  || style=&amp;quot;text-align: center;&amp;quot; | 19 || HDMI&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 27 || J17   || MIPI CAM || style=&amp;quot;text-align: center;&amp;quot; | 32 || MIPI-1&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 29 || J19   || MIPI CAM || style=&amp;quot;text-align: center;&amp;quot; | 32 || MIPI-2&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 30 || J18   || CIF || style=&amp;quot;text-align: center;&amp;quot; | 26 || CIF&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== LEDs ===&lt;br /&gt;
&lt;br /&gt;
A green LED next to the 12V input barrel connector will light as long as there is 12V applied to the connector. (Even if the RockPro64 is powered off.)&lt;br /&gt;
&lt;br /&gt;
A white LED behind the reset button will light as long as the RockPro64 is running (it comes on a few seconds after power on, when control is passed to the operating system.)&lt;br /&gt;
&lt;br /&gt;
A red LED behind the reset button is DIY - it is lit for example if the board is in OTG mode with an Ayufan image, or if an Android image is in standby mode.&lt;br /&gt;
&lt;br /&gt;
Yellow and green LEDs on the LAN socket behave in a standard way.&lt;br /&gt;
&lt;br /&gt;
=== Jumpers ===&lt;br /&gt;
They are used for boot device selection, as described in the following section.&lt;br /&gt;
&lt;br /&gt;
==== Disable eMMC ====&lt;br /&gt;
&lt;br /&gt;
There is an unlabelled (on the PCB silk-screen) 2-pin jumper (16) between the eMMC socket (14) and the SPI chip (17). It is designated as SW4 on the [[#Board Information, Schematics and Certifications | schematic diagram]]. The default condition is OPEN (no jumper). It is useful for controlling the boot as follows:&lt;br /&gt;
&lt;br /&gt;
Default boot device (with no SPI software) is eMMC, then SDcard. If both the eMMC and the SDcard contain bootable images then the eMMC can be disabled by installing the jumper. This completely removes the eMMC from the resulting OS. If you wish the eMMC to be visible in the booted OS the jumper should be removed 2 seconds after applying power (and before the white LED comes on).&lt;br /&gt;
&lt;br /&gt;
The possible combinations are summarised in the table below.&lt;br /&gt;
&lt;br /&gt;
* 1 = present&lt;br /&gt;
* 0 = not present&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
! µSD !! eMMC !! SW4 !! boot from&lt;br /&gt;
|-&lt;br /&gt;
| 0 || 0 || 0 || unsupported&lt;br /&gt;
|-&lt;br /&gt;
| 0 || 0 || 1 || unsupported&lt;br /&gt;
|-&lt;br /&gt;
| 0 || 1 || 0 || eMMC&lt;br /&gt;
|-&lt;br /&gt;
| 0 || 1 || 1 || unsupported&lt;br /&gt;
|-&lt;br /&gt;
| 1 || 0 || 0 || SDCard&lt;br /&gt;
|-&lt;br /&gt;
| 1 || 0 || 1 || SDCard&lt;br /&gt;
|-&lt;br /&gt;
| 1 || 1 || 0 || eMMC&lt;br /&gt;
|-&lt;br /&gt;
| 1 || 1 || 1 || SDCard&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Disable SPI (while booting) ====&lt;br /&gt;
There is a second possibility to jumper your ROCKPro64: If you mess-up your SPI and are unable to boot, jumpering pins 23 (CLK) and 25 pin (GND) on the PI-2-bus header will disable the SPI as a boot device. (This was taken from the IRC logs, 09 August 2018 @ 17:23) You have to remove the jumper 2 seconds after having started your RP64 (before the white LED turns ON) otherwise the SPI will be missing and you won't be able to flash it.&lt;br /&gt;
Ayufan images contain (at the moment) only one script for the SPI and the RP64, it's &amp;quot;rockpro64_reset_spi_flash&amp;quot;. Other SPI scripts are dedicated to the R64 (as it is written on the name) and it will mess-up your RP64 SPI if you use them.&lt;br /&gt;
&lt;br /&gt;
== Hardware Compatibility ==&lt;br /&gt;
&lt;br /&gt;
The hardware compatibility list can be found under [[ROCKPro64 Hardware compatibility]].&lt;br /&gt;
&lt;br /&gt;
== Board Features ==&lt;br /&gt;
&lt;br /&gt;
This section outlines the most important characteristics of the board and its components.&lt;br /&gt;
&lt;br /&gt;
=== SoC and Memory Specification ===&lt;br /&gt;
* Based on Rockchip RK3399&lt;br /&gt;
[[File:Rockchip_RK3399.png|right]]&lt;br /&gt;
&lt;br /&gt;
==== CPU Architecture ====&lt;br /&gt;
&lt;br /&gt;
* [https://developer.arm.com/products/processors/cortex-a/cortex-a72 Dual-core Cortex-A72 up to 2.0GHz CPU]&lt;br /&gt;
* [https://developer.arm.com/products/processors/cortex-a/cortex-a53 Quad-core Cortex-A53 up to 1.5GHz CPU]&lt;br /&gt;
* big.LITTLE architecture: Dual Cortex-A72 + Quad Cortex-A53, 64-bit CPU&lt;br /&gt;
* Cortex-A72:&lt;br /&gt;
** 1-4x Symmetrical Multiprocessing (SMP) within a single processor cluster, and multiple coherent SMP processor clusters through AMBA 5 CHI or AMBA 4 ACE technology&lt;br /&gt;
** AArch64 for 64-bit support and new architectural features&lt;br /&gt;
** L1 cache 48KB Icache and 32KB Dcache for each A72 &lt;br /&gt;
** L2 cache 1024KB for big cluster &lt;br /&gt;
** DSP &amp;amp; SIMD extensions&lt;br /&gt;
** VFPv4 floating point&lt;br /&gt;
** Hardware virtualization support&lt;br /&gt;
* Cortex-A53:&lt;br /&gt;
** L1 cache 32KB Icache and 32KB Dcache for each A53&lt;br /&gt;
** L2 cache 512KB for little cluster &lt;br /&gt;
* Full implementation of the ARM architecture v8-A instruction set&lt;br /&gt;
* ARM Neon Advanced SIMD (single instruction, multiple data) support for accelerated media and signal processing computation&lt;br /&gt;
* ARMv8 Cryptography Extensions&lt;br /&gt;
* In-order pipeline with symmetric dual-issue of most instructions&lt;br /&gt;
* Include VFP v3 hardware to support single and double-precision operations&lt;br /&gt;
* TrustZone technology support&lt;br /&gt;
* Full CoreSight debug solution&lt;br /&gt;
* One isolated voltage domain to support DVFS&lt;br /&gt;
&lt;br /&gt;
==== GPU Architecture ====&lt;br /&gt;
&lt;br /&gt;
* [https://developer.arm.com/products/graphics-and-multimedia/mali-gpus/mali-t860-and-mali-t880-gpus ARM Mali-T860MP4 Quad-core GPU]&lt;br /&gt;
* The highest performance GPUs built on Arm Mali’s famous Midgard architecture, the Mali-T860 GPU is designed for complex graphics use cases and provides stunning visuals for UHD content.&lt;br /&gt;
* Frequency: 650MHz &lt;br /&gt;
* Throughput: 1300Mtri/s, 10.4Gpix/s &lt;br /&gt;
* OpenGL® ES 1.1, 1.2, 2.0, 3.1, 3.2, Vulkan 1.0*, OpenCL™ 1.1, 1.2, DirectX® 11 FL11_1, RenderScript™.&lt;br /&gt;
&lt;br /&gt;
==== System Memory ====&lt;br /&gt;
* LPDDR4 RAM Memory Variants: Dual Channels 2GB and 4GB.&lt;br /&gt;
* Storage Memory: 128Mb built-in SPI Flash memory (as at August 2018 only support for USB boot).&lt;br /&gt;
&lt;br /&gt;
=== Display ===&lt;br /&gt;
&lt;br /&gt;
* Dual VOP: one supports resolutions up to 4096x2160 and [https://www.arm.com/why-arm/technologies/graphics-technologies/arm-frame-buffer-compression AFBC]; the other supports resolutions up to 2560x1600&lt;br /&gt;
* Dual channel MIPI-DSI (4 lanes per channel)&lt;br /&gt;
* eDP 1.3 (4 lanes with 10.8Gbps) to support displays, with PSR&lt;br /&gt;
* Digital Video port up to 4Kp60&lt;br /&gt;
* DisplayPort 1.2 (4 lanes, up to 4K 60Hz)&lt;br /&gt;
* Supports Rec.2020 and conversion to Rec.709 &lt;br /&gt;
&lt;br /&gt;
=== Video ===&lt;br /&gt;
&lt;br /&gt;
* Digital Video output up to 4K@60Hz&lt;br /&gt;
* 4K HDR @ 30fps&lt;br /&gt;
* H.264/AVC Base/Main/High/High10 profile @ level 5.1; up to 4Kx2K @ 60fps&lt;br /&gt;
* H.265/HEVC Main/Main10 profile @ level 5.1 High-tier; up to 4Kx2K @ 60fps&lt;br /&gt;
* VP9, up to 4Kx2K @ 60fps&lt;br /&gt;
* MPEG-1, ISO/IEC 11172-2, up to 1080P @ 60fps&lt;br /&gt;
* MPEG-2, ISO/IEC 13818-2, SP@ML, MP@HL, up to 1080P @ 60fps&lt;br /&gt;
* MPEG-4, ISO/IEC 14496-2, SP@L0-3, ASP@L0-5, up to 1080P @ 60fps&lt;br /&gt;
* VC-1, SP@ML, MP@HL, AP@L0-3, up to 1080P @ 60fps&lt;br /&gt;
* MVC is supported based on H.264 or H.265, up to 1080P @ 60fps&lt;br /&gt;
&lt;br /&gt;
=== Audio ===&lt;br /&gt;
&lt;br /&gt;
* 3.5mm Phone Jack&lt;br /&gt;
* 3-pin S/PDIF header &lt;br /&gt;
* Audio via Digital Video port&lt;br /&gt;
&lt;br /&gt;
=== Camera ===&lt;br /&gt;
&lt;br /&gt;
* Dual MIPI CSI，dual ISP, maximum input resolution of 13M pixels &lt;br /&gt;
&lt;br /&gt;
=== Network ===&lt;br /&gt;
&lt;br /&gt;
* 10/100/1000Mbps Ethernet - Capable of pushing 941 MBit/s in iperf3&lt;br /&gt;
* Wi-Fi 802.11 ac/a/b/g/n with Bluetooth 4.01 (old version with 2x2) / Bluetooth 5 (new version with 1x1) (optional)&lt;br /&gt;
&lt;br /&gt;
=== Storage ===&lt;br /&gt;
&lt;br /&gt;
* microSD - bootable, support SDHC and SDXC, storage up to 256GB&lt;br /&gt;
* eMMC - bootable (optional eMMC Module)&lt;br /&gt;
* 1 USB3.0 Host port&lt;br /&gt;
* 1 USB type C OTG port with DP output &lt;br /&gt;
* 2 USB2.0 Dedicated Host ports&lt;br /&gt;
&lt;br /&gt;
=== Expansion Ports ===&lt;br /&gt;
&lt;br /&gt;
* 2x20 pins &amp;quot;Pi2&amp;quot; GPIO Header&lt;br /&gt;
* PCIe 2.1 (4 full-duplex lanes with 20Gbps) x4 open ended port&lt;br /&gt;
&lt;br /&gt;
==== GPIO Pins ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable plainrowheaders&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;width:20em;&amp;quot; | Assigned To&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Pin Nr.&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Pin Nr.&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;width:20em;&amp;quot; | Assigned To&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| 3.3 V&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 1&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 2&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| 5 V&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| GPIO1_C4 (I2C8_SDA) &amp;lt;sup style=&amp;quot;font-style:italic;color:green&amp;quot;&amp;gt;a&amp;lt;/sup&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 3&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 4&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| 5 V&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| GPIO1_C5 (I2C8_SCL) &amp;lt;sup style=&amp;quot;font-style:italic;color:green&amp;quot;&amp;gt;a&amp;lt;/sup&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 5&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 6&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GND&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| GPIO4_D0 (CPU_GPCLK)&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 7&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 8&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GPIO4_C4 (UART2_TX)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| GND&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 9&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 10&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GPIO4_C3 (UART2_RX)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| GPIO1_C6&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 11&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 12&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GPIO3_D0 (I2S0_CLK)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| GPIO1_C2&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 13&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 14&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GND&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| GPIO1_A1&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 15&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 16&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GPIO1_A4&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| 3.3 V&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 17&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 18&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GPIO4_C5 [SPDIF]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| [UART4_TX] GPIO1_B0 (SPI1_TXD)&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 19&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 20&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GND&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| [UART4_RX] GPIO1_A7 (SPI1_RXD)&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 21&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 22&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GPIO4_D1&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| GPIO1_B1 (SPI1_CLK)&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 23&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 24&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GPIO1_B2 (SPI1_CSN0)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| GND&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 25&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 26&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GPIO1_B5&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| GPIO1_B3 (I2C4_SDA)&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 27&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 28&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GPIO1_B4 (I2C4_SCL)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| GPIO4_D3&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 29&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 30&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GND&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| GPIO4_D4&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 31&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 32&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GPIO3_D4 (I2S0_SDI1SDO3)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| GPIO3_D5 (I2S0_SDI2SDO2)&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 33&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 34&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GND&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| GPIO3_D2 (I2S0_LRCKTX)&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 35&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 36&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GPIO3_D6 (I2S0_SDI3SDO1)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| GPIO3_D1 (I2S0_LRCKRX)&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 37&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 38&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GPIO3_D3 (I2S0_SDI0)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| GND&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 39&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 40&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GPIO3_D7 (I2S0_SDO0)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== Notes =====&lt;br /&gt;
&lt;br /&gt;
* '''a:''' pulled high to 3.3V through 2.2kOhm resistor&lt;br /&gt;
&lt;br /&gt;
===== Linux /dev/gpiochip Assignments =====&lt;br /&gt;
&lt;br /&gt;
{| class=wikitable style=&amp;quot;max-width: 1000px; text-align: center;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | Pin Nr.&lt;br /&gt;
| 3 || 5 || 7 || 8 || 10 || 11 || 12 || 13 || 15 || 16 || 18 || 19 || 21 || 22 || 23 || 24 || 26 || 27 || 28 || 29 || 31 || 32 || 33 || 35 || 36 || 37 || 38 || 40&lt;br /&gt;
|- &lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | Chip&lt;br /&gt;
| 1 || 1 || 4 || 4 || 4 || 1 || 3 || 1 || 1 || 1 || 4 || 1 || 1 || 4 || 1 || 1 || 1 || 1 || 1 || 4 || 4 || 3 || 3 || 3 || 3 || 3 || 3 || 3&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | Line&lt;br /&gt;
| 20 || 21 || 24 || 20 || 19 || 22 || 24 || 18 || 1 || 4 || 21 || 8 || 7 || 25 || 9 || 10 || 13 || 11 || 12 || 27 || 28 || 28 || 29 || 26 || 30 || 25 || 27 || 31&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
On Linux, using the new &amp;lt;code&amp;gt;/dev/gpiochip&amp;lt;/code&amp;gt; API, the &amp;lt;code&amp;gt;''n''&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;GPIO''n''_''XX''&amp;lt;/code&amp;gt; appears to correlate to the number of the &amp;lt;code&amp;gt;/dev/gpiochip''n''&amp;lt;/code&amp;gt;, and the &amp;lt;code&amp;gt;''XX''&amp;lt;/code&amp;gt; to the definition &amp;lt;code&amp;gt;RK_P''XX''&amp;lt;/code&amp;gt; of lines in &amp;lt;code&amp;gt;include/dt-bindings/pinctrl/rockchip.h&amp;lt;/code&amp;gt; of the Linux kernel source. Having these named in the dts would be nice.&lt;br /&gt;
&lt;br /&gt;
You can use [https://git.kernel.org/pub/scm/libs/libgpiod/libgpiod.git/ libgpiod] to drive them, and test them with the included tools (&amp;lt;code&amp;gt;gpioinfo&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;gpioset&amp;lt;/code&amp;gt;, ...)&lt;br /&gt;
&lt;br /&gt;
For example, &amp;lt;code&amp;gt;gpioset 4 25=1&amp;lt;/code&amp;gt; (run as root) would turn pin 22 on. Do beware that poking the wrong GPIO pin can lock up your system.&lt;br /&gt;
&lt;br /&gt;
The conversion table at right is also available as a [https://gist.github.com/CounterPillow/fe066655bf2d929148fe6eb3f15b1dd5 C header file].&lt;br /&gt;
&lt;br /&gt;
=== Working Features ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! Feature/Option&lt;br /&gt;
! Android&lt;br /&gt;
! Android Version&lt;br /&gt;
! Linux&lt;br /&gt;
! Linux Version&lt;br /&gt;
! Test/Verify Steps&lt;br /&gt;
! Notes&lt;br /&gt;
! Product Link&lt;br /&gt;
|-&lt;br /&gt;
| PINE64 LCD Touchscreen (Screen/Touch)&lt;br /&gt;
| Yes/Yes&lt;br /&gt;
| &lt;br /&gt;
| No/No&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| Maybe [https://github.com/avafinger/pine64-touchscreen this] will help get this working?&lt;br /&gt;
| [https://pine64.com/?product=7-lcd-touch-screen-panel 7″ LCD Touch Screen Panel]&lt;br /&gt;
|-&lt;br /&gt;
| Wireless&lt;br /&gt;
&amp;lt;small&amp;gt;ROCKPro64 2×2 MIMO Dual Band WiFi 802.11AC / Bluetooth 4.2 Module (old)&lt;br /&gt;
ROCKPro64 1x1 Dual Band WiFi 802.11AC / Bluetooth 5.0 Module (new)&amp;lt;/small&amp;gt;&lt;br /&gt;
| Yes/Yes&lt;br /&gt;
| &lt;br /&gt;
| No/Yes*&lt;br /&gt;
| &lt;br /&gt;
| For the &amp;quot;new&amp;quot; ROCKPro64 WIFI module: Verified with Manjaro ARM (kernel 6.2.5). A config file (&amp;quot;firmware file&amp;quot;) is needed at &amp;lt;code&amp;gt;/lib/firmware/brcm/brcmfmac43455-sdio.txt&amp;lt;/code&amp;gt;. See [[#Getting wifi working (&amp;quot;new&amp;quot; wifi module)]] for the file contents and details.&lt;br /&gt;
| In 0.7.9 Ayufan linux releases this is deliberately disabled for stability reasons. On Manjaro ARM (kernel 6.2.5), WIFI seems to be stable with the firmware file. On a 5GHz network (802.11AC), it is possible to get about 120Mbps using the &amp;quot;new&amp;quot; ROCKPro64 WIFI module.&lt;br /&gt;
| [https://store.pine64.org/product/rockpro64-1x1-dual-band-wifi-802-11acbluetooth-5-0-module ROCKPro64 1x1 Dual Band WiFi 802.11AC / Bluetooth 5.0 Module]&lt;br /&gt;
|-&lt;br /&gt;
| USB OTG&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| use this script: [https://github.com/ayufan-rock64/linux-package/blob/master/root-rockpro64/usr/local/sbin/rockpro64_enable_otg.sh rockpro64_enable_otg.sh], then configure ip on usb0: ifconfig usb0 169.169.222.222 and run iperf, you should likely see about 200-300MB/s&lt;br /&gt;
| [[ROCKPro64#OTG_mode]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| USB Mass Storage USB2/USB3&lt;br /&gt;
| Yes/yes&lt;br /&gt;
| &lt;br /&gt;
| Yes/Yes&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Dedicated Fan Power (pwm1)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| Yes&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| You might want to use [https://github.com/tuxd3v/ats ATS].&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| GPIO pins (raw or via RPI python scripts)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| Check out [https://forum.frank-mankel.org/topic/292/rockpro64-rp64-gpio/2 what Frank Mankel has done].&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| MIPI CSI Camera 1 and 2&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| eDP&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| HDMI Audio&lt;br /&gt;
| Yes&lt;br /&gt;
| 7.1.2&lt;br /&gt;
| Yes&lt;br /&gt;
| 4.4.132-1083 - 4.4.138-1100&lt;br /&gt;
| &lt;br /&gt;
| Stopped working in 4.4.154.1105. Ayufan is looking into it. This is working in Manjaro ARM (kernel 6.2.5). Select the &amp;lt;code&amp;gt;Analog Output (Built-in Audio Stereo)&amp;lt;/code&amp;gt; option in the audio output device selection window (either use &amp;lt;code&amp;gt;pavucontrol&amp;lt;/code&amp;gt; or the volume button in the KDE desktop). Despite the slightly misleading name, audio does go through the HDMI port. See here for details: https://forum.manjaro.org/t/no-hdmi-audio-on-rockpro64/25595/2.&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 3.5mm Audio/Mic&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| USB-C Host&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Display via USB-C&lt;br /&gt;
| Yes&lt;br /&gt;
| 7.x and 8.x&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| eDP via USB-C per tillim. No sound on Android 7.x. Sound does work on Android 8.x&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| ROCKPro64 PLAYBOX ENCLOSURE&lt;br /&gt;
| N/A&lt;br /&gt;
| &lt;br /&gt;
| N/A&lt;br /&gt;
| &lt;br /&gt;
| N/A&lt;br /&gt;
| Ventilation does not exist, thus requires manual changes to add venting. Case should be modified to account power adapter not being centered in cut holes. Opening the case once close without modifying it first is near impossible without special tools. Graphene heatsink is included and does well for Linux but not Android.&lt;br /&gt;
| https://pine64.com/?product=rockpro64-playbox-enclosure&lt;br /&gt;
|-&lt;br /&gt;
| ROCKPro64 30mm Tall Profile Heatsink&lt;br /&gt;
| N/A&lt;br /&gt;
| &lt;br /&gt;
| N/A&lt;br /&gt;
| &lt;br /&gt;
| N/A&lt;br /&gt;
| &lt;br /&gt;
| https://store.pine64.org/?product=rockpro64-heatsink&lt;br /&gt;
|-&lt;br /&gt;
| ROCKPro64 20mm Mid Profile Heatsink&lt;br /&gt;
| N/A&lt;br /&gt;
| &lt;br /&gt;
| N/A&lt;br /&gt;
| &lt;br /&gt;
| N/A&lt;br /&gt;
| &lt;br /&gt;
| https://pine64.com/?product=rockpro64-20mm-mid-profile-heatsink&lt;br /&gt;
|-&lt;br /&gt;
| Fan For ROCKPro64 20mm Mid Profile Heatsink&lt;br /&gt;
| N/A&lt;br /&gt;
| &lt;br /&gt;
| N/A&lt;br /&gt;
| &lt;br /&gt;
| N/A&lt;br /&gt;
| You might want to use [https://github.com/tuxd3v/fanctl fanctl] to control the fan while keeping your CPU cool&lt;br /&gt;
| https://pine64.com/?product=fan-for-rockpro64-20mm-mid-profile-heatsink&lt;br /&gt;
|-&lt;br /&gt;
| HDMI output 4K@60Hz&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| PCIe 2.1&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Real Time Clock (RTC) battery backup&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| https://store.pine64.org/?product=rtc-backup-battery-cr-battery&lt;br /&gt;
|-&lt;br /&gt;
| Boot from USB/PXE&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
RockChip themselves have tables of supported features at 4.4 and mainline kernel versions [http://opensource.rock-chips.com/wiki_Status_Matrix in their wiki here].&lt;br /&gt;
&lt;br /&gt;
== Board Information, Schematics and Certifications ==&lt;br /&gt;
* Board Dimensions: 133mm x 80mm x 19mm&lt;br /&gt;
* Input Power: +12V @3A/5A with 5.5mm/2.1mm Type M Barrel type DC connector&lt;br /&gt;
* [https://files.pine64.org/doc/rockpro64/rockpro64_v21-SCH.pdf ROCKPro64 Schematic v2.1 (Second Batch Production Release)]&lt;br /&gt;
** [https://files.pine64.org/doc/rockpro64/RockPro64_v21_Boardoutline-top.dxf ROCKPro64 v2.1 Board Top Outline in AutoCad DXF format]&lt;br /&gt;
** [https://files.pine64.org/doc/rockpro64/RockPro64_v21_Boardoutline-bottom.dxf ROCKPro64 v2.1 Board Bottom Outline in AutoCad DXF format]&lt;br /&gt;
** [https://files.pine64.org/doc/rockpro64/RockPro64_v21_Boardoutline-top.pdf ROCKPro64 v2.1 Board Top Outline in PDF format]&lt;br /&gt;
** [https://files.pine64.org/doc/rockpro64/RockPro64_v21_Boardoutline-bottom.pdf ROCKPro64 v2.1 Board Bottom Outline in PDF format]&lt;br /&gt;
* [https://files.pine64.org/doc/rockpro64/rockpro64_v20-SCH.pdf ROCKPro64 Schematic v2.0 (Pilot Production Release)]&lt;br /&gt;
** [https://files.pine64.org/doc/rockpro64/ROCKPRo64%20Engineering%20Change%20Notice%2020180628RP01.pdf Engineering Change Notice for v2.0 to turn on 3.3V power on PCIe]&lt;br /&gt;
* [https://files.pine64.org/doc/rockpro64/rockpro64_wifi_ap6359SA.pdf ROCKPro64 AP6359SA Wifi/BT Schematic]&lt;br /&gt;
* [https://files.pine64.org/doc/rockpro64/Rockpro64%20Pi-2%20Connector%20ver0.2.png ROCKPro64 Pi-2 Pin assignment and definition]&lt;br /&gt;
* [https://files.pine64.org/doc/rockpro64/RockPro-3D-model.zip ROCKPro64 3D model]&lt;br /&gt;
&lt;br /&gt;
Certifications:&lt;br /&gt;
&lt;br /&gt;
* Disclaimer: Please note that PINE64 SBC is not a &amp;quot;final&amp;quot; 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.&lt;br /&gt;
* [https://files.pine64.org/doc/cert/ROCKPro64%20FCC%20SDOC%20Certificate.pdf ROCKPro64 FCC Certificate]&lt;br /&gt;
* [https://files.pine64.org/doc/cert/ROCKPro64%20CE-EMC%20Certificate.pdf ROCKPro64 CE Certificate]&lt;br /&gt;
* [https://files.pine64.org/doc/cert/ROCKPro64%20ROHS%20%20SEC180529404001E%20Report.pdf ROCKPro64 RoHS Report]&lt;br /&gt;
&lt;br /&gt;
== Datasheets for Components and Peripherals ==&lt;br /&gt;
&lt;br /&gt;
Rockchip RK3399 SoC information:&lt;br /&gt;
&lt;br /&gt;
* [https://www.rock-chips.com/a/en/products/RK33_Series/2016/0419/758.html Rockchip RK3399 SoC Brief]&lt;br /&gt;
* [http://opensource.rock-chips.com/images/d/d7/Rockchip_RK3399_Datasheet_V2.1-20200323.pdf Rockchip RK3399 Datasheet V2.1]&lt;br /&gt;
* [http://opensource.rock-chips.com/images/e/ee/Rockchip_RK3399TRM_V1.4_Part1-20170408.pdf Rockchip RK3399 Technical Reference Manual part 1]&lt;br /&gt;
* [https://files.pine64.org/doc/datasheet/rockpro64/RK808%20datasheet%20V0.8.pdf Rockchip RK808 Datasheet V0.8]&lt;br /&gt;
&lt;br /&gt;
LPDDR4 (200 Balls) SDRAM:&lt;br /&gt;
&lt;br /&gt;
* [https://files.pine64.org/doc/datasheet/rockpro64/SM512M32Z01MD2BNP(200BALL).pdf Micron LPDDR4 Mobile LPDDR4 Datasheet]&lt;br /&gt;
&lt;br /&gt;
eMMC information:&lt;br /&gt;
&lt;br /&gt;
* [https://files.pine64.org/doc/rock64/PINE64_eMMC_Module_20170719.pdf PINE64 eMMC module schematic]&lt;br /&gt;
* [https://files.pine64.org/doc/rock64/usb%20emmc%20module%20adapter%20v2.pdf PINE64 USB adapter for eMMC module V2 schematic]&lt;br /&gt;
* [https://files.pine64.org/doc/rock64/USB%20adapter%20for%20eMMC%20module%20PCB.tar PINE64 USB adapter for eMMC module PCB in JPEG]&lt;br /&gt;
* [https://files.pine64.org/doc/datasheet/pine64/E-00517%20FORESEE_eMMC_NCEMAM8B-16G%20SPEC.pdf 16GB Foresee eMMC Datasheet]&lt;br /&gt;
* [https://files.pine64.org/doc/datasheet/pine64/SDINADF4-16-128GB-H%20data%20sheet%20v1.13.pdf 32GB/64GB/128GB SanDisk eMMC Datasheet]&lt;br /&gt;
&lt;br /&gt;
SPI NOR Flash information:&lt;br /&gt;
&lt;br /&gt;
* [https://files.pine64.org/doc/datasheet/pine64/w25q128jv%20spi%20revc%2011162016.pdf WinBond 128Mb SPI Flash Datasheet]&lt;br /&gt;
* [https://files.pine64.org/doc/datasheet/pine64/GD25Q128C-Rev2.5.pdf GigaDevice 128Mb SPI Flash Datasheet]&lt;br /&gt;
&lt;br /&gt;
Heatsink related info:&lt;br /&gt;
&lt;br /&gt;
* [https://files.pine64.org/doc/datasheet/rockpro64/Rockpro%20Passive%20Heatsink%20Spec.jpg ROCKPro64 Passive Heatsink Dimension Drawing]&lt;br /&gt;
* [https://files.pine64.org/doc/datasheet/rockpro64/LMS-TC150%20Silicon%20Thermal%20Pad.pdf Heatsink Thermal Pad Specification]&lt;br /&gt;
&lt;br /&gt;
Wireless related info:&lt;br /&gt;
&lt;br /&gt;
* AMPAK AP6256 11AC WiFi + Bluetooth5.0 Datasheet [https://files.pine64.org/doc/datasheet/rockpro64/AP6256%20datasheet_V1.3_12202017.pdf (v. 1.3)] [http://files.pine64.org/doc/datasheet/PinebookPro/AP6256%20datasheet_V1.7_12282018.pdf (v. 1.7)]&lt;br /&gt;
&lt;br /&gt;
Ethernet related info:&lt;br /&gt;
&lt;br /&gt;
* [https://files.pine64.org/doc/datasheet/rock64/RTL8211F-CG-Realtek.pdf Realtek RTL8211F 10/100/1000M Ethernet Transceiver Datasheet]&lt;br /&gt;
&lt;br /&gt;
Peripheral related info:&lt;br /&gt;
&lt;br /&gt;
* [https://files.pine64.org/doc/datasheet/rockpro64/ASM1061_Data%20Sheet_R1_8.pdf asmedia ASM1061 PCIe SATA 2.0 Datasheet]&lt;br /&gt;
&lt;br /&gt;
Remote control button mapping:&lt;br /&gt;
&lt;br /&gt;
* [https://files.pine64.org/doc/Pine%20A64%20Schematic/remote-wit-logo.jpg Official Remote Control for the PINE64 Button Mapping]&lt;br /&gt;
&lt;br /&gt;
Audio Codec (ES8316) (under board):&lt;br /&gt;
&lt;br /&gt;
* [http://everest-semi.com/pdf/ES8316%20PB.pdf Everest ES8316 Audio Codec]&lt;br /&gt;
&lt;br /&gt;
PWM controlled fan, SPDIF, and RTC Battery Backup headers:&lt;br /&gt;
&lt;br /&gt;
* [https://www.jst-mfg.com/product/pdf/eng/ePH.pdf JST-PH connector]&lt;br /&gt;
&lt;br /&gt;
== Useful Articles and Blog Posts ==&lt;br /&gt;
&lt;br /&gt;
If you want to dive in to the ecosystem, here's a short list of various articles and blog posts that can help you set up your soft- or hardware development environment.&lt;br /&gt;
&lt;br /&gt;
* [https://stikonas.eu/wordpress/2019/09/15/blobless-boot-with-rockpro64/ Blobless boot with RockPro64 by Andrius Štikonas]&lt;br /&gt;
&lt;br /&gt;
* [https://marcin.juszkiewicz.com.pl/2020/06/17/ebbr-on-rockpro64/ EBBR on RockPro64 by Marcin Juszkiewicz]&lt;br /&gt;
&lt;br /&gt;
* [[ROCKPro64 Device Tree Overlays on Mainline]]&lt;br /&gt;
&lt;br /&gt;
== The NAS Case for the ROCKPro64 ==&lt;br /&gt;
&lt;br /&gt;
[[file:NASCaseMain.png|thumb|right|Front View of the PINE64 NAS Case for the ROCKPro64]]&lt;br /&gt;
&lt;br /&gt;
Please [[NASCase|follow this this link]] for '''detailed instructions on how to assemble the ROCKPro64 NAS Case'''.&lt;br /&gt;
&lt;br /&gt;
The NAS Case instructions also contains detailed information about:&lt;br /&gt;
*what the NAS Case ships with&lt;br /&gt;
*What additional things you need to purchase for your NAS Case&lt;br /&gt;
*What optional things you can consider purchasing for your NAS build&lt;br /&gt;
*What OS Image we recommend you use for your NAS build&lt;br /&gt;
*IO accessibility after installing the ROCKPro64 into the NAS Case&lt;br /&gt;
*[https://files.pine64.org/doc/rockpro64/ROCKPro64%20NAS%20Case%20Exploded%20View%20Diagram.pdf NAS Case Exploded View]&lt;br /&gt;
*[https://files.pine64.org/doc/rockpro64/NAS%20Case%20Drawing.dwg NAS Case Drawing]&lt;br /&gt;
&lt;br /&gt;
== 3D printable ITX mounting brackets ==&lt;br /&gt;
&lt;br /&gt;
[[file:ITX-Bracket-Mounted.jpg|300px|thumb|right|A Quartz64-A mounted in an ITX case using 3D printed brackets]]&lt;br /&gt;
&lt;br /&gt;
Allows mounting a ROCKPro64-A or Quartz64-A board inside a regular PC case that conforms to the ITX standard, using 3D printed brackets:&lt;br /&gt;
&lt;br /&gt;
* AMF/STL/STEP files plus the original FreeCAD file used to create the models [[File:RP64-A_Q64-A_to_ITX_mounting_brackets.zip]]&lt;br /&gt;
* Make sure to flip the two brackets by 180 degrees on one of the horizontal axes (X/Y) in your slicer of choice before printing to avoid unnecessary supports&lt;br /&gt;
* To allow enough clearance between the board and the bracket you either need to print four copies of the washer model or add nut(s) between the board and the bracket&lt;br /&gt;
* If using nuts for the clearance between the board and the brackets, make sure it creates at least 3.2mm of spacing in between&lt;br /&gt;
* Depending on the accuracy and calibration of a 3D printer, slight deviation can occur and you likely need to manually widen some of the holes to allow screws to fit&lt;br /&gt;
&lt;br /&gt;
== Other Resources ==&lt;br /&gt;
&lt;br /&gt;
* [https://forum.pine64.org/forumdisplay.php?fid=98 ROCKPro64 Forum]&lt;br /&gt;
* [https://pine64.com/?post_type=product PINE64 shop]&lt;br /&gt;
* [https://github.com/rockchip-linux Rockchip Linux GitHub Repo]&lt;br /&gt;
* [http://opensource.rock-chips.com/ Rockchip Open Source Wiki]&lt;br /&gt;
* ExplainingComputers have a video review [https://www.youtube.com/watch?v=CeoNHGFN_30 of the RockPro64 here, including linux first boot.]&lt;br /&gt;
* [[ROCKPro64 Installing Arch Linux ARM]]&lt;br /&gt;
* [[ROCKPro64 Powering From An ATX Supply]]&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
=== No Video or GPU Acceleration on Debian ===&lt;br /&gt;
&lt;br /&gt;
If you can log in through serial but don't get any video or GPU acceleration on Debian, this is likely due to Debian's decision to compile the devfreq governors as loadable modules but not including them early enough for panfrost to be able to be provided with one of them.&lt;br /&gt;
&lt;br /&gt;
The usual sign of this being the case is the following line in your log: &amp;lt;code&amp;gt;[drm:panfrost_devfreq_init [panfrost]] *ERROR* Couldn't initialize GPU devfreq&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Log in to your ROCKPro64, and run the following:&lt;br /&gt;
&lt;br /&gt;
 sudo -i&lt;br /&gt;
 echo governor_simpleondemand &amp;gt;&amp;gt; /etc/initramfs-tools/modules &amp;amp;&amp;amp; update-initramfs -u -k $(uname -r)&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
Then, reboot.&lt;br /&gt;
&lt;br /&gt;
== Hardware &amp;quot;Hacking&amp;quot; ==&lt;br /&gt;
&lt;br /&gt;
=== Enabling PCIe 2.0 ===&lt;br /&gt;
By default, the RockPro64 runs the PCIe slot at gen 1 speeds because there might be stability issues with gen 2 speeds. The port can be switched back to gen 2 speeds by adding the following device tree overlay.&lt;br /&gt;
&lt;br /&gt;
1. Copy and paste the device tree overlay file below into a new file (you could name it &amp;lt;code&amp;gt;pcie-2.0.dts&amp;lt;/code&amp;gt;):&lt;br /&gt;
 // Pulled from: https://forum.armbian.com/topic/23574-howto-enable-pcie-gen2-to-get-max-speed-of-nvme-rockpi-4b/&lt;br /&gt;
 /dts-v1/;&lt;br /&gt;
 /plugin/;&lt;br /&gt;
 &lt;br /&gt;
 &amp;amp;pcie0 {&lt;br /&gt;
         max-link-speed = &amp;lt;0x03&amp;gt;;&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
2. Compile the device tree into a binary file. Note that you will need &amp;lt;code&amp;gt;dtc&amp;lt;/code&amp;gt; installed.&lt;br /&gt;
 dtc -I dts -O dtb -@ pcie-2.0.dts -o pcie-2.0.dto&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
4. Copy or move the device tree from the current directory into the boot partition (in this case into the &amp;lt;code&amp;gt;/boot/dtbs/overlay/&amp;lt;/code&amp;gt; folder). If you haven't yet created the &amp;lt;code&amp;gt;/boot/dtbs/overlay/&amp;lt;/code&amp;gt; folder, then create it with &amp;lt;code&amp;gt;sudo mkdir /boot/dtbs/overlay/&amp;lt;/code&amp;gt;&lt;br /&gt;
 sudo cp pcie-2.0.dto /boot/dtbs/overlay/&lt;br /&gt;
&lt;br /&gt;
5. Add the device compiled tree overlay file to the list of files u-boot needs to load. If you are using ManjaroARM (or ArchLinuxARM with a &amp;lt;code&amp;gt;extlinux.conf&amp;lt;/code&amp;gt; file), then add the following line to the file &amp;lt;code&amp;gt;/boot/extlinux/extlinux.conf&amp;lt;/code&amp;gt;:&lt;br /&gt;
 FDTOVERLAYS /dtbs/overlay/pcie-2.0.dtb&lt;br /&gt;
&lt;br /&gt;
If you already have an &amp;lt;code&amp;gt;FDTOVERLAYS&amp;lt;/code&amp;gt; line, then add a space at the end of the current line, then add this overlay file after that.&lt;br /&gt;
See here for details on this process: [[ROCKPro64 Device Tree Overlays on Mainline]]&lt;br /&gt;
&lt;br /&gt;
The resulting &amp;lt;code&amp;gt;/boot/extlinux/extlinux.conf&amp;lt;/code&amp;gt; file might look like below after adding this dtb file:&lt;br /&gt;
 LABEL Manjaro ARM&lt;br /&gt;
 KERNEL /Image&lt;br /&gt;
 FDT /dtbs/rockchip/rk3399-rockpro64.dtb&lt;br /&gt;
 FDTOVERLAYS /dtbs/overlay/pcie-2.0.dtb /dtbs/overlay/cpu-overclock.dtb&lt;br /&gt;
 APPEND initrd=/initramfs-linux.img console=ttyS2,1500000 zfs=zroot rw rootwait audit=0 cpufreq.default_governor=schedutil&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Overclocking (and undervolting) ===&lt;br /&gt;
The RK3399 can be overclocked. See here for details: [[Overclocking#RK3399-based devices]].&lt;br /&gt;
By overclocking, you do risk damaging your hardware, however, it is possible to achieve small, but measurable improvements in performance with an overclock. The overclock can be applied with a device tree overlay file.&lt;br /&gt;
Below is an example device tree overlay for CPU overclocking on the RockPro64. It may or may not work well on your device, but some have found that these speeds are stable.&lt;br /&gt;
The example below bumps the little cores up to 1.608GHz from 1.416GHz and bumps the big cores up to 2.088GHz from 1.8GHz.&lt;br /&gt;
&lt;br /&gt;
1. Copy and paste the device tree overlay file below into a new file (you could name it &amp;lt;code&amp;gt;cpu-overclock.dts&amp;lt;/code&amp;gt;):&lt;br /&gt;
 // Pulled from: https://github.com/torvalds/linux/blob/master/arch/arm64/boot/dts/rockchip/rk3399-op1-opp.dtsi&lt;br /&gt;
 /dts-v1/;&lt;br /&gt;
 /plugin/;&lt;br /&gt;
 &lt;br /&gt;
        &amp;amp;cluster0_opp {&lt;br /&gt;
                opp00 {&lt;br /&gt;
                        opp-hz = /bits/ 64 &amp;lt;408000000&amp;gt;;&lt;br /&gt;
                        opp-microvolt = &amp;lt;800000&amp;gt;;&lt;br /&gt;
                        clock-latency-ns = &amp;lt;40000&amp;gt;;&lt;br /&gt;
                };&lt;br /&gt;
                opp01 {&lt;br /&gt;
                        opp-hz = /bits/ 64 &amp;lt;600000000&amp;gt;;&lt;br /&gt;
                        opp-microvolt = &amp;lt;825000&amp;gt;;&lt;br /&gt;
                };&lt;br /&gt;
                opp02 {&lt;br /&gt;
                        opp-hz = /bits/ 64 &amp;lt;816000000&amp;gt;;&lt;br /&gt;
                        opp-microvolt = &amp;lt;850000&amp;gt;;&lt;br /&gt;
                };&lt;br /&gt;
                opp03 {&lt;br /&gt;
                        opp-hz = /bits/ 64 &amp;lt;1008000000&amp;gt;;&lt;br /&gt;
                        opp-microvolt = &amp;lt;900000&amp;gt;;&lt;br /&gt;
                };&lt;br /&gt;
                opp04 {&lt;br /&gt;
                        opp-hz = /bits/ 64 &amp;lt;1200000000&amp;gt;;&lt;br /&gt;
                        opp-microvolt = &amp;lt;975000&amp;gt;;&lt;br /&gt;
                };&lt;br /&gt;
                opp05 {&lt;br /&gt;
                        opp-hz = /bits/ 64 &amp;lt;1416000000&amp;gt;;&lt;br /&gt;
                        opp-microvolt = &amp;lt;1100000&amp;gt;;&lt;br /&gt;
                };&lt;br /&gt;
                opp06 {&lt;br /&gt;
                        opp-hz = /bits/ 64 &amp;lt;1512000000&amp;gt;;&lt;br /&gt;
                        opp-microvolt = &amp;lt;1150000&amp;gt;;&lt;br /&gt;
                };&lt;br /&gt;
                opp07 {&lt;br /&gt;
                        opp-hz = /bits/ 64 &amp;lt;1608000000&amp;gt;;&lt;br /&gt;
                        opp-microvolt = &amp;lt;1200000&amp;gt;;&lt;br /&gt;
                };&lt;br /&gt;
        };&lt;br /&gt;
        &amp;amp;cluster1_opp {&lt;br /&gt;
                opp00 {&lt;br /&gt;
                        opp-hz = /bits/ 64 &amp;lt;408000000&amp;gt;;&lt;br /&gt;
                        opp-microvolt = &amp;lt;800000&amp;gt;;&lt;br /&gt;
                        clock-latency-ns = &amp;lt;40000&amp;gt;;&lt;br /&gt;
                };&lt;br /&gt;
                opp01 {&lt;br /&gt;
                        opp-hz = /bits/ 64 &amp;lt;600000000&amp;gt;;&lt;br /&gt;
                        opp-microvolt = &amp;lt;800000&amp;gt;;&lt;br /&gt;
                };&lt;br /&gt;
                opp02 {&lt;br /&gt;
                        opp-hz = /bits/ 64 &amp;lt;816000000&amp;gt;;&lt;br /&gt;
                        opp-microvolt = &amp;lt;825000&amp;gt;;&lt;br /&gt;
                };&lt;br /&gt;
                opp03 {&lt;br /&gt;
                        opp-hz = /bits/ 64 &amp;lt;1008000000&amp;gt;;&lt;br /&gt;
                        opp-microvolt = &amp;lt;850000&amp;gt;;&lt;br /&gt;
                };&lt;br /&gt;
                opp04 {&lt;br /&gt;
                        opp-hz = /bits/ 64 &amp;lt;1200000000&amp;gt;;&lt;br /&gt;
                        opp-microvolt = &amp;lt;900000&amp;gt;;&lt;br /&gt;
                };&lt;br /&gt;
                opp05 {&lt;br /&gt;
                        opp-hz = /bits/ 64 &amp;lt;1416000000&amp;gt;;&lt;br /&gt;
                        opp-microvolt = &amp;lt;975000&amp;gt;;&lt;br /&gt;
                };&lt;br /&gt;
                opp06 {&lt;br /&gt;
                        opp-hz = /bits/ 64 &amp;lt;1608000000&amp;gt;;&lt;br /&gt;
                        opp-microvolt = &amp;lt;1050000&amp;gt;;&lt;br /&gt;
                };&lt;br /&gt;
                opp07 {&lt;br /&gt;
                        opp-hz = /bits/ 64 &amp;lt;1800000000&amp;gt;;&lt;br /&gt;
                        opp-microvolt = &amp;lt;1150000&amp;gt;;&lt;br /&gt;
                };&lt;br /&gt;
                opp08 {&lt;br /&gt;
                        opp-hz = /bits/ 64 &amp;lt;2016000000&amp;gt;;&lt;br /&gt;
                        opp-microvolt = &amp;lt;1250000&amp;gt;;&lt;br /&gt;
                };&lt;br /&gt;
                opp09 {&lt;br /&gt;
                        opp-hz = /bits/ 64 &amp;lt;2088000000&amp;gt;;&lt;br /&gt;
                        opp-microvolt = &amp;lt;1250000&amp;gt;;&lt;br /&gt;
                };&lt;br /&gt;
        };&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2. Compile the device tree into a binary file. Note that you will need &amp;lt;code&amp;gt;dtc&amp;lt;/code&amp;gt; installed.&lt;br /&gt;
 dtc -I dts -O dtb -@ cpu-overclock.dts -o cpu-overclock.dto&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
4. Copy or move the device tree from the current directory into the boot partition (in this case into the &amp;lt;code&amp;gt;/boot/dtbs/overlay/&amp;lt;/code&amp;gt; folder). If you haven't yet created the &amp;lt;code&amp;gt;/boot/dtbs/overlay/&amp;lt;/code&amp;gt; folder, then create it with &amp;lt;code&amp;gt;sudo mkdir /boot/dtbs/overlay/&amp;lt;/code&amp;gt;&lt;br /&gt;
 sudo cp cpu-overclock.dto /boot/dtbs/overlay/&lt;br /&gt;
&lt;br /&gt;
5. Add the device compiled tree overlay file to the list of files u-boot needs to load. If you are using ManjaroARM (or ArchLinuxARM with a &amp;lt;code&amp;gt;extlinux.conf&amp;lt;/code&amp;gt; file), then add the following line to the file &amp;lt;code&amp;gt;/boot/extlinux/extlinux.conf&amp;lt;/code&amp;gt;:&lt;br /&gt;
 FDTOVERLAYS /dtbs/overlay/cpu-overclock.dtb&lt;br /&gt;
&lt;br /&gt;
If you already have an &amp;lt;code&amp;gt;FDTOVERLAYS&amp;lt;/code&amp;gt; line, then add a space at the end of the current line, then add this overlay file after that.&lt;br /&gt;
See here for details on this process: [[ROCKPro64 Device Tree Overlays on Mainline]]&lt;br /&gt;
&lt;br /&gt;
The resulting &amp;lt;code&amp;gt;/boot/extlinux/extlinux.conf&amp;lt;/code&amp;gt; file might look like below after adding this dtb file:&lt;br /&gt;
 LABEL Manjaro ARM&lt;br /&gt;
 KERNEL /Image&lt;br /&gt;
 FDT /dtbs/rockchip/rk3399-rockpro64.dtb&lt;br /&gt;
 FDTOVERLAYS /dtbs/overlay/pcie-2.0.dtb /dtbs/overlay/cpu-overclock.dtb&lt;br /&gt;
 APPEND initrd=/initramfs-linux.img console=ttyS2,1500000 zfs=zroot rw rootwait audit=0 cpufreq.default_governor=schedutil&lt;br /&gt;
&lt;br /&gt;
=== Getting wifi working (&amp;quot;new&amp;quot; wifi module) ===&lt;br /&gt;
ManjaroARM and ArchLinuxARM (and probably others) provide the NVRAM file needed to initialize the Wi-Fi module in the linux-firmware package, but it is listed under the generic name &amp;lt;code&amp;gt;brcmfmac43455-sdio.AW-CM256SM.txt&amp;lt;/code&amp;gt;.&lt;br /&gt;
You can copy this file to the new name (that the driver looks for) with the following commands:&lt;br /&gt;
 cd /usr/lib/firmware/brcm/&lt;br /&gt;
 sudo cp brcmfmac43455-sdio.AW-CM256SM.txt brcmfmac43455-sdio.txt&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Then, reboot and Wi-Fi should start working.&lt;br /&gt;
Details for this method are here: https://forum.pine64.org/showthread.php?tid=16635&amp;amp;pid=117061#pid117061&lt;br /&gt;
However, on a 5GHz network with &amp;lt;code&amp;gt;wireless-regdb&amp;lt;/code&amp;gt; installed and the regulatory domain set to 'US', the adapter is almost unusable. Speeds are usually 0 bits per second. Sometimes a few packets can get through every few seconds, but that is it. On a 2.4GHz network, this is not an issue. This &amp;quot;can&amp;quot; be resolved by setting the regulator domain to 'GB' or 'CN', but this isn't a solution for you if you are in the USA, for instance. There are various other &amp;lt;code&amp;gt;brcmfmac43455-sdio.txt&amp;lt;/code&amp;gt; files online that one can try. Some work better than others. Since these are text files where each line represents a property value, one can combine parts of these files to generate new firmware files for testing. One such combination yields decent results. This can be achieved by applying the patch below to the default &amp;lt;code&amp;gt;brcmfmac43455-sdio.AW-CM256SM.txt&amp;lt;/code&amp;gt; file. With this firmware file, it is possible to get about 140Mbps up and down with this patch (with the regulatory domain set to 'US').&lt;br /&gt;
&lt;br /&gt;
 --- brcmfmac43455-sdio.AW-CM256SM.txt   2023-04-27 19:16:47.000000000 -0500&lt;br /&gt;
 +++ brcmfmac43455-sdio.txt      2023-05-21 11:42:22.058517093 -0500&lt;br /&gt;
 @@ -21,19 +21,18 @@&lt;br /&gt;
  ltecxpadnum=0x0504&lt;br /&gt;
  macaddr=00:90:4c:c5:12:38&lt;br /&gt;
  manfid=0x2d0&lt;br /&gt;
 -maxp2ga0=64&lt;br /&gt;
 -maxp5ga0=80,82,76,77&lt;br /&gt;
 -mcsbw202gpo=0x99355533&lt;br /&gt;
 -mcsbw205ghpo=0x99855000&lt;br /&gt;
 -mcsbw205glpo=0x99755000&lt;br /&gt;
 -mcsbw205gmpo=0x9df55000&lt;br /&gt;
 -mcsbw405ghpo=0xd9755000&lt;br /&gt;
 -mcsbw405glpo=0xb8555000&lt;br /&gt;
 -mcsbw405gmpo=0xed955000&lt;br /&gt;
 -mcsbw805ghpo=0xd9555000&lt;br /&gt;
 -mcsbw805glpo=0xc8555000&lt;br /&gt;
 -mcsbw805gmpo=0xe9555000&lt;br /&gt;
 -muxenab=0x10&lt;br /&gt;
 +maxp2ga0=70&lt;br /&gt;
 +maxp5ga0=73,74,73,73&lt;br /&gt;
 +mcsbw202gpo=0x99333322&lt;br /&gt;
 +mcsbw205ghpo=0x8a875444&lt;br /&gt;
 +mcsbw205glpo=0x8a875444&lt;br /&gt;
 +mcsbw205gmpo=0x8a875444&lt;br /&gt;
 +mcsbw405ghpo=0xda844333&lt;br /&gt;
 +mcsbw405glpo=0xda844333&lt;br /&gt;
 +mcsbw405gmpo=0xdb844333&lt;br /&gt;
 +mcsbw805ghpo=0xda555444&lt;br /&gt;
 +mcsbw805glpo=0xdb555444&lt;br /&gt;
 +mcsbw805gmpo=0xda555444&lt;br /&gt;
  nocrc=1&lt;br /&gt;
  ofdmlrbw202gpo=0x0033&lt;br /&gt;
  pa2ga0=-112,6296,-662&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To use this patch, copy it off into a file and use the &amp;lt;code&amp;gt;patch&amp;lt;/code&amp;gt; command.&lt;br /&gt;
However, it might be easier to apply the patch by hand. &lt;br /&gt;
To do this, open the file &amp;lt;code&amp;gt;/usr/lib/firmware/brcm/brcmfmac43455-sdio.txt&amp;lt;/code&amp;gt; (after completing the copy step above),  delete the line with &amp;lt;code&amp;gt;maxp2ga0=64&amp;lt;/code&amp;gt; through the line with &amp;lt;code&amp;gt;muxenab=0x10&amp;lt;/code&amp;gt;.&lt;br /&gt;
Then add the following in its place:&lt;br /&gt;
 maxp2ga0=70&lt;br /&gt;
 maxp5ga0=73,74,73,73&lt;br /&gt;
 mcsbw202gpo=0x99333322&lt;br /&gt;
 mcsbw205ghpo=0x8a875444&lt;br /&gt;
 mcsbw205glpo=0x8a875444&lt;br /&gt;
 mcsbw205gmpo=0x8a875444&lt;br /&gt;
 mcsbw405ghpo=0xda844333&lt;br /&gt;
 mcsbw405glpo=0xda844333&lt;br /&gt;
 mcsbw405gmpo=0xdb844333&lt;br /&gt;
 mcsbw805ghpo=0xda555444&lt;br /&gt;
 mcsbw805glpo=0xdb555444&lt;br /&gt;
 mcsbw805gmpo=0xda555444&lt;br /&gt;
&lt;br /&gt;
Reboot and the Wi-Fi (at least for 5GHz networks) should work well. It is not exactly clear what these fields do, so the impact this has on the Wi-Fi module or your ability to operate it legally in your country is not certain. It seems that this file is passed directly to the hardware, where it is interpreted by the Wi-Fi module itself. However, given that this file is simply a combination of other existing files for similar hardware, it might be fine to use.&lt;br /&gt;
The patch above only pulls in lines from the following firmware file: https://github.com/reMarkable/brcmfmac-firmware/blob/master/brcmfmac43455-sdio.txt.&lt;br /&gt;
This code comes with the following license - which is not replicated here because it will fill this wiki with text - see the link here for the license: https://github.com/reMarkable/brcmfmac-firmware/blob/master/LICENCE.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Stabilizing the system (underclocking the RAM) ===&lt;br /&gt;
By default, it seems that the some RockPro64 devices are not stable. This seems to manifest as gcc segfaulting randomly. Usually, this can be &amp;quot;fixed&amp;quot; by starting the build again and hoping gcc doesn't crash. If the build finishes or crashes at a different point, this is a good indicator that the system is not stable. The issue seems to be that the RAM is running a little too fast and some bits are getting randomly flipped. In this thread, it seems that the solution is to bring the RAM all the way down to 333MHz: https://forum.pine64.org/showthread.php?tid=11209. Other frequencies are possible, but the highest officially supported frequency below 800MHz is 666MHz, which is still a big step down from the default frequency of 800MHz provided by ManjaroARM. It is also possible to set arbitrary frequencies in u-boot. Frequencies that have been tested with this method are 702MHz and 752MHz. It seems that there is only a slight performance decrease at 752MHz compared to 800MHz. The PKGBUILD for this is available here: https://aur.archlinux.org/packages/uboot-rockpro64-foss&lt;br /&gt;
&lt;br /&gt;
By default, this PKGBUILD uses the default RAM speed of 800MHz. Uncomment the line that begins with &amp;quot;patch&amp;quot; to enable the 752MHz patch. Details are in the comments at the top of the PKGBUILD.&lt;br /&gt;
If you would like to try out other frequencies, follow the instructions in the comments at the top of the PKGBUILD.&lt;br /&gt;
&lt;br /&gt;
After building and installing, the install hook will prompt you on if you want to install the new build of U-Boot to EMMC. If you want to, press Y, otherwise, hit N and then copy and paste the printed &amp;lt;code&amp;gt;dd&amp;lt;/code&amp;gt; commands and modify them to write to the correct device (change the &amp;lt;code&amp;gt;/dev/mmcblk&amp;lt;/code&amp;gt; part).&lt;br /&gt;
&lt;br /&gt;
After installing U-Boot and rebooting, U-Boot should print out that it set the RAM to 400MHz (initially). Then a few lines down, the RAM should be set to 752MHz.&lt;br /&gt;
&lt;br /&gt;
[[Category:ROCKPro64]] [[Category:Rockchip RK3399]]&lt;/div&gt;</summary>
		<author><name>I3master</name></author>
	</entry>
	<entry>
		<id>https://wiki.pine64.org/index.php?title=ROCKPro64_Getting_Started&amp;diff=19699</id>
		<title>ROCKPro64 Getting Started</title>
		<link rel="alternate" type="text/html" href="https://wiki.pine64.org/index.php?title=ROCKPro64_Getting_Started&amp;diff=19699"/>
		<updated>2023-05-29T19:17:09Z</updated>

		<summary type="html">&lt;p&gt;I3master: Updated SPI flash install instructions.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This section gives important information to get the board up and running.&lt;br /&gt;
&lt;br /&gt;
== Video Playback ==&lt;br /&gt;
&lt;br /&gt;
Hardware video acceleration is supported in recent kernels and user needs only to install the relevant Mesa packages/ports, specifically the Mesa DRI drivers for Mali GPUs (Midgard/Bifrost).  One can confirm via software glxinfo, or having the library file such as .../lib/dri/panfrost_dri.so.&lt;br /&gt;
&lt;br /&gt;
Ayufan has some old documentation on [https://github.com/ayufan-rock64/linux-build/blob/master/recipes/video-playback.md video playback here.] For your ROCKPro64 the install should be&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;sudo apt-get install ffmpeg mpv libmali-rk-midgard-t86x-r14p0-gbm&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(These modules are included in the Ayufan desktop releases.) At which stage rkmpv myvideo.mp4 will play a fullscreen, hardware assisted, version of your video. rkmpv is at /usr/local/bin/rkmpv&lt;br /&gt;
&lt;br /&gt;
== Using an NVMe Disk as rootfs ==&lt;br /&gt;
&lt;br /&gt;
Forum member Bullet64 has documented [https://forum.frank-mankel.org/topic/208/booten-von-der-nvme-platte how to move rootfs to an NVMe disk.] This is useful until we get a full SPI option to boot from the NVMe.&lt;br /&gt;
&lt;br /&gt;
== Setup a Serial Console (UART2) ==&lt;br /&gt;
&lt;br /&gt;
{{Warning|RockPro64 is designed to use 3VDC3A (3 Volts Direct Current 3 Ampere) for the connection, using 5VDC and more might damage the board!}}&lt;br /&gt;
&lt;br /&gt;
To use Serial Console you will a need operating system that supports it on your RockPro64, by default the serial console is provided for baud 9 600 which is far too slow for rockpro64 so consider using 1 500 000 (1.5Mbps) instead &amp;lt;b&amp;gt;IF&amp;lt;/b&amp;gt; your serial console device supports it (many doesn't which results in their inability to use the console).&lt;br /&gt;
&lt;br /&gt;
{{Warning|Do not connect RxD (pin 10) until the U-Boot SPL is running (see [[RK3399 boot sequence]]) or the SPL will not start.&lt;br /&gt;
&lt;br /&gt;
To avoid this issue, a simple [[ROCKPro64 Serial Buffer Circuit]] can be installed between the RockPro64 and the serial adapter.}} &lt;br /&gt;
&lt;br /&gt;
In terms of connections you need to perform the following from your serial console-capable device e.g. Pine64's Woodpecker available in store:&lt;br /&gt;
&lt;br /&gt;
* GND &amp;lt;-&amp;gt; GND (pin 6)&lt;br /&gt;
* RxD &amp;lt;-&amp;gt; TxD (pin 8)&lt;br /&gt;
* TxD &amp;lt;-&amp;gt; RxD (pin 10)&lt;br /&gt;
&lt;br /&gt;
After the configuration of your preferred operating system you can connect to the serial console using any of these commands:&lt;br /&gt;
&lt;br /&gt;
  $ screen /dev/ttyUSB0 1500000&lt;br /&gt;
&lt;br /&gt;
  $ picocom /dev/ttyUSB0 -b 1500000&lt;br /&gt;
&lt;br /&gt;
  $ minicom -D /dev/ttyUSB0 -b 1500000&lt;br /&gt;
&lt;br /&gt;
NOTE: You might need a root permission if your user is not in the appropriate user-group e.g. &amp;lt;code&amp;gt;dialup&amp;lt;/code&amp;gt; on GNU/Linux&lt;br /&gt;
&lt;br /&gt;
Alternatively there is a detailed guide on forums: https://forum.pine64.org/showthread.php?tid=6387&lt;br /&gt;
&lt;br /&gt;
GNU/Linux:&lt;br /&gt;
&lt;br /&gt;
* With GNU/Linux on your RockPro64 the built-in support for serial console can be enabled by parsing parse e.g. &amp;lt;code&amp;gt;console=ttyS2,1500000n8&amp;lt;/code&amp;gt; in the kernel command line, many distributions make this available by default, but consider verifying the contents of &amp;lt;code&amp;gt;/boot/extlinux/extlinux.conf&amp;lt;/code&amp;gt; if you encounter issues.&lt;br /&gt;
* NOTE: the &amp;lt;code&amp;gt;n8&amp;lt;/code&amp;gt; in the kernel argument means &amp;lt;b&amp;gt;no parity, 8 bits per character&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Booting from USB or PXE ==&lt;br /&gt;
&lt;br /&gt;
The default choice of boot device is first eMMC (if present) then SDcard. See [[ROCKPro64#Disable_eMMC | jumpers above for details on adjusting this sequence.]]&lt;br /&gt;
&lt;br /&gt;
It is possible to flash the SPI to extend the options for boot devices to USB drives or PXE. The preferred method is now the rock64_write_spi_flash.sh script (see [[ROCKPro64#Useful_scripts | useful scripts above.]]) The Getting started wiki article has more details [[Getting started#Flashing_u-boot_to_SPI_Flash | here.]]&lt;br /&gt;
&lt;br /&gt;
Background info and historic details of this usage [https://github.com/ayufan-rock64/linux-build/blob/master/recipes/flash-spi.md can be found here.]&lt;br /&gt;
== Booting from SATA ==&lt;br /&gt;
U-Boot supports booting from SATA devices. However, it seems that this support was broken for the RockPro64 until U-Boot 2023.04. This version is not yet supplied by ManjaroARM, but can be compiled relatively easily in ManjaroARM and installed. The PKGBUILD here provides a version of U-Boot that supports SATA boot: https://aur.archlinux.org/packages/uboot-rockpro64-foss&lt;br /&gt;
There are instructions in the pinned comment on how to build this in ArchLinuxARM if needed.&lt;br /&gt;
&lt;br /&gt;
Note that with this configuration, U-Boot is compiled to be installed on a micro SD card or EMMC module (at a specific address - not in a filesystem).&lt;br /&gt;
The install hook provided in this PKGBUILD will ask you if you want to write U-Boot to an EMMC module. If you want to install to a micro SD card instead, press 'n' when prompted and modify the `dd` commands that are printed out. The installer will then prompt to check if you want to install U-Boot to SPI flash. Hit 'Y' and then enter if this is what you want to do, but be sure that you know how to recover from a corrupted SPI flash (as SPI is the first boot device).&lt;br /&gt;
If you would prefer to install U-Boot to SPI flash yourself, see the guide here: https://wiki.gentoo.org/wiki/PINE64_ROCKPro64/Installing_U-Boot.&lt;br /&gt;
&lt;br /&gt;
Once installed, both the boot partition and root partition may now exist on a SATA device.&lt;br /&gt;
&lt;br /&gt;
=== Troubleshooting ===&lt;br /&gt;
If U-Boot fails to boot from SATA, you can attempt to debug the issue through the U-Boot command line.&lt;br /&gt;
* After booting your RockPro64, press any key repeatedly. Enter works well as it won't type anything on the screen when the prompt comes up.&lt;br /&gt;
* Once you get a prompt, type &amp;lt;code&amp;gt;pci&amp;lt;/code&amp;gt; and hit enter. This will initialize the U-Boot PCIe subsystem. It is necessary for scanning for SATA devices.&lt;br /&gt;
* Now, type &amp;lt;code&amp;gt;scsi scan&amp;lt;/code&amp;gt; and hit enter. This will scan for SATA devices. You should see your SATA device show up in the list with its reported capacity.&lt;br /&gt;
* You can now attempt to list partitions on the SATA device by running &amp;lt;code&amp;gt;part list scsi 0&amp;lt;/code&amp;gt;. You may need to change the device number on the end (0 in the example) to match what was reported by the &amp;lt;code&amp;gt;scsi scan&amp;lt;/code&amp;gt; command.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Booting from SPI using u-boot ==&lt;br /&gt;
&lt;br /&gt;
{{Warning|idbloader is not open-source}}&lt;br /&gt;
&lt;br /&gt;
Always be prepared to recover from a broken SPI boot BEFORE flashing or you will end up with a broken boot.&lt;br /&gt;
&lt;br /&gt;
In general the recovery is killswitching SPI through shorting pins 23 &amp;lt;-&amp;gt; 25 together and then loading u-boot from a storage device e.g. SD-card or eMMC where majority of GNU distributions e.g. Manjaro usually have u-boot packaged with the provided images.&lt;br /&gt;
&lt;br /&gt;
Follow instructions in https://github.com/sigmaris/u-boot/wiki/Flashing-U-Boot-to-SPI#instructions-for-rockpro64&lt;br /&gt;
&lt;br /&gt;
== Boot sequence ==&lt;br /&gt;
&lt;br /&gt;
The RockPro64 boot sequence has been documented [https://github.com/sigmaris/u-boot/wiki/RockPro64-boot-sequence here] by sigmaris.&lt;br /&gt;
&lt;br /&gt;
== OTG Mode ==&lt;br /&gt;
&lt;br /&gt;
You can boot your ROCKPro64 into OTG mode with the use of the Recover button (see [[ROCKPro64#Switches | switch 28 above.]]) Note there are 2 OTG ports on your ROCKPro64: the type-C USB 3 socket is definitely one. From the schematic it appears the USB 3 (type A) socket is the other, but this has yet to be confirmed.&lt;br /&gt;
&lt;br /&gt;
The method is to power off the board. Then push and hold the Recover button and push and release the Power button. &lt;br /&gt;
* If you have an Ayufan bootable image in either the SD-card or eMMC then there are 4 OTG modes [https://github.com/ayufan-rock64/linux-u-boot/commit/ea6efecdfecc57c853a6f32f78469d1b2417329b described here] including Android fastboot, RockUSB and MaskROM modes. Releasing the Recover button as soon as the white LED lights counts as 1 blink. Keeping it pressed you will get 2 blinks of the white LED etc. Once the board enters OTG mode the red LED will be lit. In mode 1 the boot and linux-root partitions of the card with the Ayufan image (partitions 6 &amp;amp; 7 of a Linux installation) are made available as devices. In all cases the USB device made available at the host has device ID 18d1:d00d.&lt;br /&gt;
* If you do not have an Ayufan image in either the SD-card or the eMMC, then neither white nor red LEDs will light, but the board will enter MaskROM mode where the USB device made available at the host has device ID 2207:330c.&lt;br /&gt;
&lt;br /&gt;
== NVMe Drives ==&lt;br /&gt;
&lt;br /&gt;
Please be aware that [https://pine64.com/product/rockpro64-pci-e-x4-to-m-2-ngff-nvme-ssd-interface-card the PINE64 SSD interface card] is intended for use with NVMe devices. These can be identified by the fact they have a single (Key M) notch, e.g. [https://www.wdc.com/content/dam/wdc/website/products/family/wd-black-pcie-ssd/wdfWDBlackSSD_PCIe_img1.jpg.imgw.500.500.jpg the WD Black devices.]&lt;br /&gt;
&lt;br /&gt;
While M2/NGFF SATA devices (with a Key B notch, typically have Key M as well) will physically fit, they will not work. e.g. [https://www.wdc.com/content/dam/wdc/website/products/personal/internal_storage/wd_blue_3d_nand_sata_ssd/blue3d_product-overview.jpg.imgw.1000.1000.jpg WD Blue devices.]&lt;br /&gt;
&lt;br /&gt;
== SATA Drives ==&lt;br /&gt;
&lt;br /&gt;
SATA drives can be connected directly via the [https://pine64.com/product/pcie-to-dual-sata-iii-interface-card/ ROCKPro64 PCIe interface card.] Please note the card does not include the power cable - that is a [https://pine64.com/?product=rockpro64-power-cable-for-dual-sata-drives separate item.] Equally you must be aware that connecting SATA drives in this manner means they will be drawing power from your ROCKPro64 - please ensure you are using a 5A or better power supply.&lt;br /&gt;
&lt;br /&gt;
ExplainingComputers did a YouTube [https://www.youtube.com/watch?v=9CCQicHwfDI ROCKPro64 PCIe SATA card review and tests using a Ubuntu console and OpenMediaVault.]&lt;br /&gt;
&lt;br /&gt;
== Wi-Fi &amp;amp; Bluetooth Module ==&lt;br /&gt;
If you have bought the [https://pine64.com/product/rockpro64-1x1-dual-band-wifi-802-11ac-bluetooth-5-0-module Wi-Fi and Bluetooth module] from the Pine store then instructions for connecting it can be found on the accessories page [[Accessories_Step_by_Step_Guides#Wifi.2FBluetooth_module | here.]] '''Please note that the 0.7.9 Ayufan's Linux releases (August 2018) have deliberately DISABLED support for this module in the search for stability. It can be tested and used with the Android image.'''&lt;br /&gt;
&lt;br /&gt;
It can also be used on Manjaro by installing ap6256-firmware and wireless-regdb packages.&lt;br /&gt;
&lt;br /&gt;
== 7&amp;quot; LCD Touch Screen ==&lt;br /&gt;
&lt;br /&gt;
Instructions for connecting the [https://pine64.com/?product=7-lcd-touch-screen-panel LCD touch screen] from the Pine [[Accessories_Step_by_Step_Guides#7.22_LCD_Touch_Screen_Panel | are here.]]&lt;br /&gt;
&lt;br /&gt;
'''Note at present (August 2018) this screen is only supported by the Android image.'''&lt;br /&gt;
&lt;br /&gt;
{{Warning|When using the touchscreen ensure the cables are properly connected and tightened down and that you do not let the metal backplate touch the SBC}}&lt;br /&gt;
&lt;br /&gt;
== RTC Battery Backup ==&lt;br /&gt;
&lt;br /&gt;
The Pine store has a couple of options for RTC battery backups: a [https://pine64.com/product/rtc-backup-battery-holder-2-x-aaa AAA version here] or a [https://pine64.com/product/rtc-backup-battery-holder-cr-2032 CR-2032 version here.] Instructions for plugging in either of them are also on the [[Accessories_Step_by_Step_Guides| Accessories page ]]. For the ROCKPro64, the backup plugs into the RTC connector, number 6 in the board layout diagram above, next to the USB3 and case screw point.&lt;br /&gt;
&lt;br /&gt;
== Acrylic Open Enclosure ==&lt;br /&gt;
&lt;br /&gt;
Assembly instructions for the [https://pine64.com/product/pine-a64-rockpro64-acrylic-open-enclosure acrylic enclosure] from the Pine store are also on the [[Accessories_Step_by_Step_Guides| Accessories page ]]&lt;br /&gt;
&lt;br /&gt;
== NAS case ==&lt;br /&gt;
&lt;br /&gt;
The [https://files.pine64.org/doc/rockpro64/ROCKPro64%20NAS%20Case%20Exploded%20View%20Diagram.pdf Exploded View Installation Diagram] for the [https://pine64.com/product/rockpro64-metal-desktop-nas-casing NAS case from the Pine store].&lt;br /&gt;
&lt;br /&gt;
Detailed '''NAS Case overview and assembly instructions''' can be found [[NASCase | here]].&lt;/div&gt;</summary>
		<author><name>I3master</name></author>
	</entry>
	<entry>
		<id>https://wiki.pine64.org/index.php?title=ROCKPro64&amp;diff=19697</id>
		<title>ROCKPro64</title>
		<link rel="alternate" type="text/html" href="https://wiki.pine64.org/index.php?title=ROCKPro64&amp;diff=19697"/>
		<updated>2023-05-29T02:56:54Z</updated>

		<summary type="html">&lt;p&gt;I3master: Added RAM underclocking instructions.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:ROCKPro64v21FRONT.jpg|400px|thumb|right|The ROCKPro64]]&lt;br /&gt;
&lt;br /&gt;
The '''ROCKPro64''' is the most powerful Single Board Computer released by PINE64. It is powered by a Rockchip RK3399 Hexa-Core (dual ARM Cortex A72 and quad ARM Cortex A53) 64-Bit Processor with a Mali T-860 Quad-Core GPU. The key features include a PCIe x4 open ended slot, the use of LPDDR4 RAM, and industry standard heatsink mounting holes.&lt;br /&gt;
&lt;br /&gt;
The ROCKPro64 is equipped with 2GB or 4GB LPDDR4 system memory, and 128Mb SPI boot Flash. There is also an optional eMMC module (up to 128GB) and microSD slot for booting. The board is equipped with 1x USB 3.0 type C Host with DP 1.2, 1x USB 3.0 type A Host, 2x USB 2.0 Host, Gigabit Ethernet, PI-2 GPIO Bus, MiPi DSI interface, eDP interface, touch Panel interface, stereo MiPi CSI interface, as well as many other device interfaces such as UART, SPI, I2C, for makers to integrate with sensors and other peripherals. Many different Operating Systems (OS) are freely available from the open source community, such as Android, Linux (Ubuntu, Debian, Arch), and BSD.&lt;br /&gt;
&lt;br /&gt;
== Getting Started ==&lt;br /&gt;
&lt;br /&gt;
The article [[ROCKPro64 Getting Started]] gives important information to get the board up and running.&lt;br /&gt;
&lt;br /&gt;
== Software releases ==&lt;br /&gt;
&lt;br /&gt;
In the [[ROCKPro64 Software Releases]] page, you will find a complete list of currently supported Operating System images that work with the ROCKPro64, as well as other related software. The Software Release page has links to download the images as well as high level instructions to load each image.&lt;br /&gt;
&lt;br /&gt;
Please see the [[Getting started]] page for detailed discussion of what you need (prerequisites) as well as instructions if the high level instructions are insufficient.&lt;br /&gt;
&lt;br /&gt;
== Board Layout ==&lt;br /&gt;
[[Image:ROCKPro64v21REAR.jpg|thumb|right|A hi-res picture of v2.1 rear.]]&lt;br /&gt;
[[Image:FLIR 20220619 125451 686.jpg|thumb|right|A thermal image of v2.1 front (upside-down).]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:ROCKPro64_annotated.jpg|500px|An annotated ROCKPro64]]&lt;br /&gt;
&lt;br /&gt;
=== Main Chips ===&lt;br /&gt;
* RK3399 system-on-chip (1)&lt;br /&gt;
* LPDDR4 SDRAM 1 (18)&lt;br /&gt;
* LPDDR4 SDRAM 2 (3)&lt;br /&gt;
* SPI NOR flash memory (17)&lt;br /&gt;
* RK808 power management (near 19)&lt;br /&gt;
* RTL8211 ethernet transceiver (near 25)&lt;br /&gt;
* ES8316 Sound Codec (on rear of board)&lt;br /&gt;
* The heatsink mounting holes around the RK3399 are 59 mm apart&lt;br /&gt;
&lt;br /&gt;
=== Switches ===&lt;br /&gt;
&lt;br /&gt;
The Power button (11, SW3): is the same as on your mobile phone - press and release after about 1 second to power on. Press and hold for about 3 seconds to power off.&lt;br /&gt;
&lt;br /&gt;
The Reset button (10, SW901): performs a reset.&lt;br /&gt;
&lt;br /&gt;
The Recover button (28, SW900): used to enter maskrom mode.&lt;br /&gt;
&lt;br /&gt;
=== Connectors, Sockets and Headers ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;line-height: 1.4;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;font-size: .9em;&amp;quot;&lt;br /&gt;
! Diagram !! Schematic&amp;lt;br&amp;gt;designator !! Silkscreen&amp;lt;br&amp;gt;label !! Number&amp;lt;br&amp;gt;of pins !! Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 2  || U39   || PI-2-bus || style=&amp;quot;text-align: center;&amp;quot; | 40 || Pi-2 bus &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 4  || J8    || +FAN- || style=&amp;quot;text-align: center;&amp;quot; | 2 || PWM controlled fan header&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 5  || J10   || SPDIF || style=&amp;quot;text-align: center;&amp;quot; | 3 || SPDIF header&lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 6  || U6    || +RTC- || style=&amp;quot;text-align: center;&amp;quot; | 2 || RTC battery backup header&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7  || U31   || Wifi-BT || style=&amp;quot;text-align: center;&amp;quot; | 16 || SDIO WIFI/BT module-MIMO 2&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 8  || USB3  ||  || style=&amp;quot;text-align: center;&amp;quot; | 9 || USB-3 and USB Type C&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 9  || USB1  ||  || style=&amp;quot;text-align: center;&amp;quot; | 2×4 || Dual USB-2&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 12 || IR1   || IR || style=&amp;quot;text-align: center;&amp;quot; | 3 || infrared receiver socket &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 13 || J16   || Headphone+mic || style=&amp;quot;text-align: center;&amp;quot; | 4 || Headphone + mic 3.5mm jack&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -  || CON16 || GND PWR RST GND || style=&amp;quot;text-align: center;&amp;quot; | 4 || Power &amp;amp; reset, unpopulated&amp;lt;br&amp;gt;header near Headphone jack&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 14 || U29   || EMMC || style=&amp;quot;text-align: center;&amp;quot; | 34 || eMMC connector&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 14* || J13  ||  || style=&amp;quot;text-align: center;&amp;quot; | 13 || TF-card, a.k.a. microSD&amp;lt;br&amp;gt;(* under 14 on the bottom side)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 15 || U30   ||  || style=&amp;quot;text-align: center;&amp;quot; | 14 || SDIO WIFI/BT module-MIMO 1&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 16 || SW4   ||  || style=&amp;quot;text-align: center;&amp;quot; | 2 || Jumper to [[#Disable eMMC]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 19 || J15   || PCI || style=&amp;quot;text-align: center;&amp;quot; | 64 || PCI-express X4 socket&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 20 || J21   || DSI || style=&amp;quot;text-align: center;&amp;quot; | 30 || DSI&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 21 || J22   || EDP || style=&amp;quot;text-align: center;&amp;quot; | 30 || LCD EDP&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 22 || CON1  || TP || style=&amp;quot;text-align: center;&amp;quot; | 6 || touch panel connector&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 23 || CON15 ||  || style=&amp;quot;text-align: center;&amp;quot; | 4 || DC out for SATA disk cable&amp;lt;br&amp;gt;(direct connect from DC-IN)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 24 || J11   || DC-IN || style=&amp;quot;text-align: center;&amp;quot; | 2 || Power input, positive tip;&amp;lt;br&amp;gt;12V/3A (minimum) recommended&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 25 || U32   ||  || style=&amp;quot;text-align: center;&amp;quot; | 8 || 8P8C (often referred to as 'RJ45')&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 26 || J14   ||  || style=&amp;quot;text-align: center;&amp;quot; | 19 || HDMI&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 27 || J17   || MIPI CAM || style=&amp;quot;text-align: center;&amp;quot; | 32 || MIPI-1&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 29 || J19   || MIPI CAM || style=&amp;quot;text-align: center;&amp;quot; | 32 || MIPI-2&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 30 || J18   || CIF || style=&amp;quot;text-align: center;&amp;quot; | 26 || CIF&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== LEDs ===&lt;br /&gt;
&lt;br /&gt;
A green LED next to the 12V input barrel connector will light as long as there is 12V applied to the connector. (Even if the RockPro64 is powered off.)&lt;br /&gt;
&lt;br /&gt;
A white LED behind the reset button will light as long as the RockPro64 is running (it comes on a few seconds after power on, when control is passed to the operating system.)&lt;br /&gt;
&lt;br /&gt;
A red LED behind the reset button is DIY - it is lit for example if the board is in OTG mode with an Ayufan image, or if an Android image is in standby mode.&lt;br /&gt;
&lt;br /&gt;
Yellow and green LEDs on the LAN socket behave in a standard way.&lt;br /&gt;
&lt;br /&gt;
=== Jumpers ===&lt;br /&gt;
They are used for boot device selection, as described in the following section.&lt;br /&gt;
&lt;br /&gt;
==== Disable eMMC ====&lt;br /&gt;
&lt;br /&gt;
There is an unlabelled (on the PCB silk-screen) 2-pin jumper (16) between the eMMC socket (14) and the SPI chip (17). It is designated as SW4 on the [[#Board Information, Schematics and Certifications | schematic diagram]]. The default condition is OPEN (no jumper). It is useful for controlling the boot as follows:&lt;br /&gt;
&lt;br /&gt;
Default boot device (with no SPI software) is eMMC, then SDcard. If both the eMMC and the SDcard contain bootable images then the eMMC can be disabled by installing the jumper. This completely removes the eMMC from the resulting OS. If you wish the eMMC to be visible in the booted OS the jumper should be removed 2 seconds after applying power (and before the white LED comes on).&lt;br /&gt;
&lt;br /&gt;
The possible combinations are summarised in the table below.&lt;br /&gt;
&lt;br /&gt;
* 1 = present&lt;br /&gt;
* 0 = not present&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
! µSD !! eMMC !! SW4 !! boot from&lt;br /&gt;
|-&lt;br /&gt;
| 0 || 0 || 0 || unsupported&lt;br /&gt;
|-&lt;br /&gt;
| 0 || 0 || 1 || unsupported&lt;br /&gt;
|-&lt;br /&gt;
| 0 || 1 || 0 || eMMC&lt;br /&gt;
|-&lt;br /&gt;
| 0 || 1 || 1 || unsupported&lt;br /&gt;
|-&lt;br /&gt;
| 1 || 0 || 0 || SDCard&lt;br /&gt;
|-&lt;br /&gt;
| 1 || 0 || 1 || SDCard&lt;br /&gt;
|-&lt;br /&gt;
| 1 || 1 || 0 || eMMC&lt;br /&gt;
|-&lt;br /&gt;
| 1 || 1 || 1 || SDCard&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Disable SPI (while booting) ====&lt;br /&gt;
There is a second possibility to jumper your ROCKPro64: If you mess-up your SPI and are unable to boot, jumpering pins 23 (CLK) and 25 pin (GND) on the PI-2-bus header will disable the SPI as a boot device. (This was taken from the IRC logs, 09 August 2018 @ 17:23) You have to remove the jumper 2 seconds after having started your RP64 (before the white LED turns ON) otherwise the SPI will be missing and you won't be able to flash it.&lt;br /&gt;
Ayufan images contain (at the moment) only one script for the SPI and the RP64, it's &amp;quot;rockpro64_reset_spi_flash&amp;quot;. Other SPI scripts are dedicated to the R64 (as it is written on the name) and it will mess-up your RP64 SPI if you use them.&lt;br /&gt;
&lt;br /&gt;
== Hardware Compatibility ==&lt;br /&gt;
&lt;br /&gt;
The hardware compatibility list can be found under [[ROCKPro64 Hardware compatibility]].&lt;br /&gt;
&lt;br /&gt;
== Board Features ==&lt;br /&gt;
&lt;br /&gt;
This section outlines the most important characteristics of the board and its components.&lt;br /&gt;
&lt;br /&gt;
=== SoC and Memory Specification ===&lt;br /&gt;
* Based on Rockchip RK3399&lt;br /&gt;
[[File:Rockchip_RK3399.png|right]]&lt;br /&gt;
&lt;br /&gt;
==== CPU Architecture ====&lt;br /&gt;
&lt;br /&gt;
* [https://developer.arm.com/products/processors/cortex-a/cortex-a72 Dual-core Cortex-A72 up to 2.0GHz CPU]&lt;br /&gt;
* [https://developer.arm.com/products/processors/cortex-a/cortex-a53 Quad-core Cortex-A53 up to 1.5GHz CPU]&lt;br /&gt;
* big.LITTLE architecture: Dual Cortex-A72 + Quad Cortex-A53, 64-bit CPU&lt;br /&gt;
* Cortex-A72:&lt;br /&gt;
** 1-4x Symmetrical Multiprocessing (SMP) within a single processor cluster, and multiple coherent SMP processor clusters through AMBA 5 CHI or AMBA 4 ACE technology&lt;br /&gt;
** AArch64 for 64-bit support and new architectural features&lt;br /&gt;
** L1 cache 48KB Icache and 32KB Dcache for each A72 &lt;br /&gt;
** L2 cache 1024KB for big cluster &lt;br /&gt;
** DSP &amp;amp; SIMD extensions&lt;br /&gt;
** VFPv4 floating point&lt;br /&gt;
** Hardware virtualization support&lt;br /&gt;
* Cortex-A53:&lt;br /&gt;
** L1 cache 32KB Icache and 32KB Dcache for each A53&lt;br /&gt;
** L2 cache 512KB for little cluster &lt;br /&gt;
* Full implementation of the ARM architecture v8-A instruction set&lt;br /&gt;
* ARM Neon Advanced SIMD (single instruction, multiple data) support for accelerated media and signal processing computation&lt;br /&gt;
* ARMv8 Cryptography Extensions&lt;br /&gt;
* In-order pipeline with symmetric dual-issue of most instructions&lt;br /&gt;
* Include VFP v3 hardware to support single and double-precision operations&lt;br /&gt;
* TrustZone technology support&lt;br /&gt;
* Full CoreSight debug solution&lt;br /&gt;
* One isolated voltage domain to support DVFS&lt;br /&gt;
&lt;br /&gt;
==== GPU Architecture ====&lt;br /&gt;
&lt;br /&gt;
* [https://developer.arm.com/products/graphics-and-multimedia/mali-gpus/mali-t860-and-mali-t880-gpus ARM Mali-T860MP4 Quad-core GPU]&lt;br /&gt;
* The highest performance GPUs built on Arm Mali’s famous Midgard architecture, the Mali-T860 GPU is designed for complex graphics use cases and provides stunning visuals for UHD content.&lt;br /&gt;
* Frequency: 650MHz &lt;br /&gt;
* Throughput: 1300Mtri/s, 10.4Gpix/s &lt;br /&gt;
* OpenGL® ES 1.1, 1.2, 2.0, 3.1, 3.2, Vulkan 1.0*, OpenCL™ 1.1, 1.2, DirectX® 11 FL11_1, RenderScript™.&lt;br /&gt;
&lt;br /&gt;
==== System Memory ====&lt;br /&gt;
* LPDDR4 RAM Memory Variants: Dual Channels 2GB and 4GB.&lt;br /&gt;
* Storage Memory: 128Mb built-in SPI Flash memory (as at August 2018 only support for USB boot).&lt;br /&gt;
&lt;br /&gt;
=== Display ===&lt;br /&gt;
&lt;br /&gt;
* Dual VOP: one supports resolutions up to 4096x2160 and [https://www.arm.com/why-arm/technologies/graphics-technologies/arm-frame-buffer-compression AFBC]; the other supports resolutions up to 2560x1600&lt;br /&gt;
* Dual channel MIPI-DSI (4 lanes per channel)&lt;br /&gt;
* eDP 1.3 (4 lanes with 10.8Gbps) to support displays, with PSR&lt;br /&gt;
* Digital Video port up to 4Kp60&lt;br /&gt;
* DisplayPort 1.2 (4 lanes, up to 4K 60Hz)&lt;br /&gt;
* Supports Rec.2020 and conversion to Rec.709 &lt;br /&gt;
&lt;br /&gt;
=== Video ===&lt;br /&gt;
&lt;br /&gt;
* Digital Video output up to 4K@60Hz&lt;br /&gt;
* 4K HDR @ 30fps&lt;br /&gt;
* H.264/AVC Base/Main/High/High10 profile @ level 5.1; up to 4Kx2K @ 60fps&lt;br /&gt;
* H.265/HEVC Main/Main10 profile @ level 5.1 High-tier; up to 4Kx2K @ 60fps&lt;br /&gt;
* VP9, up to 4Kx2K @ 60fps&lt;br /&gt;
* MPEG-1, ISO/IEC 11172-2, up to 1080P @ 60fps&lt;br /&gt;
* MPEG-2, ISO/IEC 13818-2, SP@ML, MP@HL, up to 1080P @ 60fps&lt;br /&gt;
* MPEG-4, ISO/IEC 14496-2, SP@L0-3, ASP@L0-5, up to 1080P @ 60fps&lt;br /&gt;
* VC-1, SP@ML, MP@HL, AP@L0-3, up to 1080P @ 60fps&lt;br /&gt;
* MVC is supported based on H.264 or H.265, up to 1080P @ 60fps&lt;br /&gt;
&lt;br /&gt;
=== Audio ===&lt;br /&gt;
&lt;br /&gt;
* 3.5mm Phone Jack&lt;br /&gt;
* 3-pin S/PDIF header &lt;br /&gt;
* Audio via Digital Video port&lt;br /&gt;
&lt;br /&gt;
=== Camera ===&lt;br /&gt;
&lt;br /&gt;
* Dual MIPI CSI，dual ISP, maximum input resolution of 13M pixels &lt;br /&gt;
&lt;br /&gt;
=== Network ===&lt;br /&gt;
&lt;br /&gt;
* 10/100/1000Mbps Ethernet - Capable of pushing 941 MBit/s in iperf3&lt;br /&gt;
* Wi-Fi 802.11 ac/a/b/g/n with Bluetooth 4.01 (old version with 2x2) / Bluetooth 5 (new version with 1x1) (optional)&lt;br /&gt;
&lt;br /&gt;
=== Storage ===&lt;br /&gt;
&lt;br /&gt;
* microSD - bootable, support SDHC and SDXC, storage up to 256GB&lt;br /&gt;
* eMMC - bootable (optional eMMC Module)&lt;br /&gt;
* 1 USB3.0 Host port&lt;br /&gt;
* 1 USB type C OTG port with DP output &lt;br /&gt;
* 2 USB2.0 Dedicated Host ports&lt;br /&gt;
&lt;br /&gt;
=== Expansion Ports ===&lt;br /&gt;
&lt;br /&gt;
* 2x20 pins &amp;quot;Pi2&amp;quot; GPIO Header&lt;br /&gt;
* PCIe 2.1 (4 full-duplex lanes with 20Gbps) x4 open ended port&lt;br /&gt;
&lt;br /&gt;
==== GPIO Pins ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable plainrowheaders&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;width:20em;&amp;quot; | Assigned To&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Pin Nr.&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Pin Nr.&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;width:20em;&amp;quot; | Assigned To&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| 3.3 V&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 1&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 2&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| 5 V&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| GPIO1_C4 (I2C8_SDA) &amp;lt;sup style=&amp;quot;font-style:italic;color:green&amp;quot;&amp;gt;a&amp;lt;/sup&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 3&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 4&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| 5 V&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| GPIO1_C5 (I2C8_SCL) &amp;lt;sup style=&amp;quot;font-style:italic;color:green&amp;quot;&amp;gt;a&amp;lt;/sup&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 5&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 6&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GND&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| GPIO4_D0 (CPU_GPCLK)&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 7&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 8&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GPIO4_C4 (UART2_TX)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| GND&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 9&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 10&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GPIO4_C3 (UART2_RX)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| GPIO1_C6&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 11&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 12&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GPIO3_D0 (I2S0_CLK)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| GPIO1_C2&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 13&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 14&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GND&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| GPIO1_A1&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 15&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 16&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GPIO1_A4&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| 3.3 V&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 17&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 18&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GPIO4_C5 [SPDIF]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| [UART4_TX] GPIO1_B0 (SPI1_TXD)&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 19&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 20&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GND&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| [UART4_RX] GPIO1_A7 (SPI1_RXD)&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 21&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 22&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GPIO4_D1&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| GPIO1_B1 (SPI1_CLK)&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 23&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 24&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GPIO1_B2 (SPI1_CSN0)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| GND&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 25&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 26&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GPIO1_B5&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| GPIO1_B3 (I2C4_SDA)&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 27&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 28&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GPIO1_B4 (I2C4_SCL)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| GPIO4_D3&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 29&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 30&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GND&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| GPIO4_D4&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 31&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 32&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GPIO3_D4 (I2S0_SDI1SDO3)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| GPIO3_D5 (I2S0_SDI2SDO2)&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 33&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 34&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GND&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| GPIO3_D2 (I2S0_LRCKTX)&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 35&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 36&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GPIO3_D6 (I2S0_SDI3SDO1)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| GPIO3_D1 (I2S0_LRCKRX)&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 37&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 38&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GPIO3_D3 (I2S0_SDI0)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| GND&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 39&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 40&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GPIO3_D7 (I2S0_SDO0)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== Notes =====&lt;br /&gt;
&lt;br /&gt;
* '''a:''' pulled high to 3.3V through 2.2kOhm resistor&lt;br /&gt;
&lt;br /&gt;
===== Linux /dev/gpiochip Assignments =====&lt;br /&gt;
&lt;br /&gt;
{| class=wikitable style=&amp;quot;max-width: 1000px; text-align: center;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | Pin Nr.&lt;br /&gt;
| 3 || 5 || 7 || 8 || 10 || 11 || 12 || 13 || 15 || 16 || 18 || 19 || 21 || 22 || 23 || 24 || 26 || 27 || 28 || 29 || 31 || 32 || 33 || 35 || 36 || 37 || 38 || 40&lt;br /&gt;
|- &lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | Chip&lt;br /&gt;
| 1 || 1 || 4 || 4 || 4 || 1 || 3 || 1 || 1 || 1 || 4 || 1 || 1 || 4 || 1 || 1 || 1 || 1 || 1 || 4 || 4 || 3 || 3 || 3 || 3 || 3 || 3 || 3&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | Line&lt;br /&gt;
| 20 || 21 || 24 || 20 || 19 || 22 || 24 || 18 || 1 || 4 || 21 || 8 || 7 || 25 || 9 || 10 || 13 || 11 || 12 || 27 || 28 || 28 || 29 || 26 || 30 || 25 || 27 || 31&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
On Linux, using the new &amp;lt;code&amp;gt;/dev/gpiochip&amp;lt;/code&amp;gt; API, the &amp;lt;code&amp;gt;''n''&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;GPIO''n''_''XX''&amp;lt;/code&amp;gt; appears to correlate to the number of the &amp;lt;code&amp;gt;/dev/gpiochip''n''&amp;lt;/code&amp;gt;, and the &amp;lt;code&amp;gt;''XX''&amp;lt;/code&amp;gt; to the definition &amp;lt;code&amp;gt;RK_P''XX''&amp;lt;/code&amp;gt; of lines in &amp;lt;code&amp;gt;include/dt-bindings/pinctrl/rockchip.h&amp;lt;/code&amp;gt; of the Linux kernel source. Having these named in the dts would be nice.&lt;br /&gt;
&lt;br /&gt;
You can use [https://git.kernel.org/pub/scm/libs/libgpiod/libgpiod.git/ libgpiod] to drive them, and test them with the included tools (&amp;lt;code&amp;gt;gpioinfo&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;gpioset&amp;lt;/code&amp;gt;, ...)&lt;br /&gt;
&lt;br /&gt;
For example, &amp;lt;code&amp;gt;gpioset 4 25=1&amp;lt;/code&amp;gt; (run as root) would turn pin 22 on. Do beware that poking the wrong GPIO pin can lock up your system.&lt;br /&gt;
&lt;br /&gt;
The conversion table at right is also available as a [https://gist.github.com/CounterPillow/fe066655bf2d929148fe6eb3f15b1dd5 C header file].&lt;br /&gt;
&lt;br /&gt;
=== Working Features ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! Feature/Option&lt;br /&gt;
! Android&lt;br /&gt;
! Android Version&lt;br /&gt;
! Linux&lt;br /&gt;
! Linux Version&lt;br /&gt;
! Test/Verify Steps&lt;br /&gt;
! Notes&lt;br /&gt;
! Product Link&lt;br /&gt;
|-&lt;br /&gt;
| PINE64 LCD Touchscreen (Screen/Touch)&lt;br /&gt;
| Yes/Yes&lt;br /&gt;
| &lt;br /&gt;
| No/No&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| Maybe [https://github.com/avafinger/pine64-touchscreen this] will help get this working?&lt;br /&gt;
| [https://pine64.com/?product=7-lcd-touch-screen-panel 7″ LCD Touch Screen Panel]&lt;br /&gt;
|-&lt;br /&gt;
| Wireless&lt;br /&gt;
&amp;lt;small&amp;gt;ROCKPro64 2×2 MIMO Dual Band WiFi 802.11AC / Bluetooth 4.2 Module (old)&lt;br /&gt;
ROCKPro64 1x1 Dual Band WiFi 802.11AC / Bluetooth 5.0 Module (new)&amp;lt;/small&amp;gt;&lt;br /&gt;
| Yes/Yes&lt;br /&gt;
| &lt;br /&gt;
| No/Yes*&lt;br /&gt;
| &lt;br /&gt;
| For the &amp;quot;new&amp;quot; ROCKPro64 WIFI module: Verified with Manjaro ARM (kernel 6.2.5). A config file (&amp;quot;firmware file&amp;quot;) is needed at &amp;lt;code&amp;gt;/lib/firmware/brcm/brcmfmac43455-sdio.txt&amp;lt;/code&amp;gt;. See [[#Getting wifi working (&amp;quot;new&amp;quot; wifi module)]] for the file contents and details.&lt;br /&gt;
| In 0.7.9 Ayufan linux releases this is deliberately disabled for stability reasons. After testing for a few hours, on Manjaro ARM (kernel 6.2.5), there haven't been stability issues found (WiFi stayed connected). On a 5GHz network (802.11AC), it was tested to be possible to get about 120Mbps using the &amp;quot;new&amp;quot; ROCKPro64 WIFI module.&lt;br /&gt;
| [https://store.pine64.org/product/rockpro64-1x1-dual-band-wifi-802-11acbluetooth-5-0-module ROCKPro64 1x1 Dual Band WiFi 802.11AC / Bluetooth 5.0 Module]&lt;br /&gt;
|-&lt;br /&gt;
| USB OTG&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| use this script: [https://github.com/ayufan-rock64/linux-package/blob/master/root-rockpro64/usr/local/sbin/rockpro64_enable_otg.sh rockpro64_enable_otg.sh], then configure ip on usb0: ifconfig usb0 169.169.222.222 and run iperf, you should likely see about 200-300MB/s&lt;br /&gt;
| [[ROCKPro64#OTG_mode]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| USB Mass Storage USB2/USB3&lt;br /&gt;
| Yes/yes&lt;br /&gt;
| &lt;br /&gt;
| Yes/Yes&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Dedicated Fan Power (pwm1)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| Yes&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| You might want to use [https://github.com/tuxd3v/ats ATS].&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| GPIO pins (raw or via RPI python scripts)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| Check out [https://forum.frank-mankel.org/topic/292/rockpro64-rp64-gpio/2 what Frank Mankel has done].&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| MIPI CSI Camera 1 and 2&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| eDP&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| HDMI Audio&lt;br /&gt;
| Yes&lt;br /&gt;
| 7.1.2&lt;br /&gt;
| Yes&lt;br /&gt;
| 4.4.132-1083 - 4.4.138-1100&lt;br /&gt;
| &lt;br /&gt;
| Stopped working in 4.4.154.1105. Ayufan is looking into it. This is working in Manjaro ARM (kernel 6.2.5). Select the &amp;lt;code&amp;gt;Analog Output (Built-in Audio Stereo)&amp;lt;/code&amp;gt; option in the audio output device selection window (either use &amp;lt;code&amp;gt;pavucontrol&amp;lt;/code&amp;gt; or the volume button in the KDE desktop). Despite the slightly misleading name, audio does go through the HDMI port. See here for details: https://forum.manjaro.org/t/no-hdmi-audio-on-rockpro64/25595/2.&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 3.5mm Audio/Mic&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| USB-C Host&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Display via USB-C&lt;br /&gt;
| Yes&lt;br /&gt;
| 7.x and 8.x&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| eDP via USB-C per tillim. No sound on Android 7.x. Sound does work on Android 8.x&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| ROCKPro64 PLAYBOX ENCLOSURE&lt;br /&gt;
| N/A&lt;br /&gt;
| &lt;br /&gt;
| N/A&lt;br /&gt;
| &lt;br /&gt;
| N/A&lt;br /&gt;
| Ventilation does not exist, thus requires manual changes to add venting. Case should be modified to account power adapter not being centered in cut holes. Opening the case once close without modifying it first is near impossible without special tools. Graphene heatsink is included and does well for Linux but not Android.&lt;br /&gt;
| https://pine64.com/?product=rockpro64-playbox-enclosure&lt;br /&gt;
|-&lt;br /&gt;
| ROCKPro64 30mm Tall Profile Heatsink&lt;br /&gt;
| N/A&lt;br /&gt;
| &lt;br /&gt;
| N/A&lt;br /&gt;
| &lt;br /&gt;
| N/A&lt;br /&gt;
| &lt;br /&gt;
| https://store.pine64.org/?product=rockpro64-heatsink&lt;br /&gt;
|-&lt;br /&gt;
| ROCKPro64 20mm Mid Profile Heatsink&lt;br /&gt;
| N/A&lt;br /&gt;
| &lt;br /&gt;
| N/A&lt;br /&gt;
| &lt;br /&gt;
| N/A&lt;br /&gt;
| &lt;br /&gt;
| https://pine64.com/?product=rockpro64-20mm-mid-profile-heatsink&lt;br /&gt;
|-&lt;br /&gt;
| Fan For ROCKPro64 20mm Mid Profile Heatsink&lt;br /&gt;
| N/A&lt;br /&gt;
| &lt;br /&gt;
| N/A&lt;br /&gt;
| &lt;br /&gt;
| N/A&lt;br /&gt;
| You might want to use [https://github.com/tuxd3v/fanctl fanctl] to control the fan while keeping your CPU cool&lt;br /&gt;
| https://pine64.com/?product=fan-for-rockpro64-20mm-mid-profile-heatsink&lt;br /&gt;
|-&lt;br /&gt;
| HDMI output 4K@60Hz&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| PCIe 2.1&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Real Time Clock (RTC) battery backup&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| https://store.pine64.org/?product=rtc-backup-battery-cr-battery&lt;br /&gt;
|-&lt;br /&gt;
| Boot from USB/PXE&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
RockChip themselves have tables of supported features at 4.4 and mainline kernel versions [http://opensource.rock-chips.com/wiki_Status_Matrix in their wiki here].&lt;br /&gt;
&lt;br /&gt;
== Board Information, Schematics and Certifications ==&lt;br /&gt;
* Board Dimensions: 133mm x 80mm x 19mm&lt;br /&gt;
* Input Power: +12V @3A/5A with 5.5mm/2.1mm Type M Barrel type DC connector&lt;br /&gt;
* [https://files.pine64.org/doc/rockpro64/rockpro64_v21-SCH.pdf ROCKPro64 Schematic v2.1 (Second Batch Production Release)]&lt;br /&gt;
** [https://files.pine64.org/doc/rockpro64/RockPro64_v21_Boardoutline-top.dxf ROCKPro64 v2.1 Board Top Outline in AutoCad DXF format]&lt;br /&gt;
** [https://files.pine64.org/doc/rockpro64/RockPro64_v21_Boardoutline-bottom.dxf ROCKPro64 v2.1 Board Bottom Outline in AutoCad DXF format]&lt;br /&gt;
** [https://files.pine64.org/doc/rockpro64/RockPro64_v21_Boardoutline-top.pdf ROCKPro64 v2.1 Board Top Outline in PDF format]&lt;br /&gt;
** [https://files.pine64.org/doc/rockpro64/RockPro64_v21_Boardoutline-bottom.pdf ROCKPro64 v2.1 Board Bottom Outline in PDF format]&lt;br /&gt;
* [https://files.pine64.org/doc/rockpro64/rockpro64_v20-SCH.pdf ROCKPro64 Schematic v2.0 (Pilot Production Release)]&lt;br /&gt;
** [https://files.pine64.org/doc/rockpro64/ROCKPRo64%20Engineering%20Change%20Notice%2020180628RP01.pdf Engineering Change Notice for v2.0 to turn on 3.3V power on PCIe]&lt;br /&gt;
* [https://files.pine64.org/doc/rockpro64/rockpro64_wifi_ap6359SA.pdf ROCKPro64 AP6359SA Wifi/BT Schematic]&lt;br /&gt;
* [https://files.pine64.org/doc/rockpro64/Rockpro64%20Pi-2%20Connector%20ver0.2.png ROCKPro64 Pi-2 Pin assignment and definition]&lt;br /&gt;
* [https://files.pine64.org/doc/rockpro64/RockPro-3D-model.zip ROCKPro64 3D model]&lt;br /&gt;
&lt;br /&gt;
Certifications:&lt;br /&gt;
&lt;br /&gt;
* Disclaimer: Please note that PINE64 SBC is not a &amp;quot;final&amp;quot; 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.&lt;br /&gt;
* [https://files.pine64.org/doc/cert/ROCKPro64%20FCC%20SDOC%20Certificate.pdf ROCKPro64 FCC Certificate]&lt;br /&gt;
* [https://files.pine64.org/doc/cert/ROCKPro64%20CE-EMC%20Certificate.pdf ROCKPro64 CE Certificate]&lt;br /&gt;
* [https://files.pine64.org/doc/cert/ROCKPro64%20ROHS%20%20SEC180529404001E%20Report.pdf ROCKPro64 RoHS Report]&lt;br /&gt;
&lt;br /&gt;
== Datasheets for Components and Peripherals ==&lt;br /&gt;
&lt;br /&gt;
Rockchip RK3399 SoC information:&lt;br /&gt;
&lt;br /&gt;
* [https://www.rock-chips.com/a/en/products/RK33_Series/2016/0419/758.html Rockchip RK3399 SoC Brief]&lt;br /&gt;
* [http://opensource.rock-chips.com/images/d/d7/Rockchip_RK3399_Datasheet_V2.1-20200323.pdf Rockchip RK3399 Datasheet V2.1]&lt;br /&gt;
* [http://opensource.rock-chips.com/images/e/ee/Rockchip_RK3399TRM_V1.4_Part1-20170408.pdf Rockchip RK3399 Technical Reference Manual part 1]&lt;br /&gt;
* [https://files.pine64.org/doc/datasheet/rockpro64/RK808%20datasheet%20V0.8.pdf Rockchip RK808 Datasheet V0.8]&lt;br /&gt;
&lt;br /&gt;
LPDDR4 (200 Balls) SDRAM:&lt;br /&gt;
&lt;br /&gt;
* [https://files.pine64.org/doc/datasheet/rockpro64/SM512M32Z01MD2BNP(200BALL).pdf Micron LPDDR4 Mobile LPDDR4 Datasheet]&lt;br /&gt;
&lt;br /&gt;
eMMC information:&lt;br /&gt;
&lt;br /&gt;
* [https://files.pine64.org/doc/rock64/PINE64_eMMC_Module_20170719.pdf PINE64 eMMC module schematic]&lt;br /&gt;
* [https://files.pine64.org/doc/rock64/usb%20emmc%20module%20adapter%20v2.pdf PINE64 USB adapter for eMMC module V2 schematic]&lt;br /&gt;
* [https://files.pine64.org/doc/rock64/USB%20adapter%20for%20eMMC%20module%20PCB.tar PINE64 USB adapter for eMMC module PCB in JPEG]&lt;br /&gt;
* [https://files.pine64.org/doc/datasheet/pine64/E-00517%20FORESEE_eMMC_NCEMAM8B-16G%20SPEC.pdf 16GB Foresee eMMC Datasheet]&lt;br /&gt;
* [https://files.pine64.org/doc/datasheet/pine64/SDINADF4-16-128GB-H%20data%20sheet%20v1.13.pdf 32GB/64GB/128GB SanDisk eMMC Datasheet]&lt;br /&gt;
&lt;br /&gt;
SPI NOR Flash information:&lt;br /&gt;
&lt;br /&gt;
* [https://files.pine64.org/doc/datasheet/pine64/w25q128jv%20spi%20revc%2011162016.pdf WinBond 128Mb SPI Flash Datasheet]&lt;br /&gt;
* [https://files.pine64.org/doc/datasheet/pine64/GD25Q128C-Rev2.5.pdf GigaDevice 128Mb SPI Flash Datasheet]&lt;br /&gt;
&lt;br /&gt;
Heatsink related info:&lt;br /&gt;
&lt;br /&gt;
* [https://files.pine64.org/doc/datasheet/rockpro64/Rockpro%20Passive%20Heatsink%20Spec.jpg ROCKPro64 Passive Heatsink Dimension Drawing]&lt;br /&gt;
* [https://files.pine64.org/doc/datasheet/rockpro64/LMS-TC150%20Silicon%20Thermal%20Pad.pdf Heatsink Thermal Pad Specification]&lt;br /&gt;
&lt;br /&gt;
Wireless related info:&lt;br /&gt;
&lt;br /&gt;
* AMPAK AP6256 11AC WiFi + Bluetooth5.0 Datasheet [https://files.pine64.org/doc/datasheet/rockpro64/AP6256%20datasheet_V1.3_12202017.pdf (v. 1.3)] [http://files.pine64.org/doc/datasheet/PinebookPro/AP6256%20datasheet_V1.7_12282018.pdf (v. 1.7)]&lt;br /&gt;
&lt;br /&gt;
Ethernet related info:&lt;br /&gt;
&lt;br /&gt;
* [https://files.pine64.org/doc/datasheet/rock64/RTL8211F-CG-Realtek.pdf Realtek RTL8211F 10/100/1000M Ethernet Transceiver Datasheet]&lt;br /&gt;
&lt;br /&gt;
Peripheral related info:&lt;br /&gt;
&lt;br /&gt;
* [https://files.pine64.org/doc/datasheet/rockpro64/ASM1061_Data%20Sheet_R1_8.pdf asmedia ASM1061 PCIe SATA 2.0 Datasheet]&lt;br /&gt;
&lt;br /&gt;
Remote control button mapping:&lt;br /&gt;
&lt;br /&gt;
* [https://files.pine64.org/doc/Pine%20A64%20Schematic/remote-wit-logo.jpg Official Remote Control for the PINE64 Button Mapping]&lt;br /&gt;
&lt;br /&gt;
Audio Codec (ES8316) (under board):&lt;br /&gt;
&lt;br /&gt;
* [http://everest-semi.com/pdf/ES8316%20PB.pdf Everest ES8316 Audio Codec]&lt;br /&gt;
&lt;br /&gt;
PWM controlled fan, SPDIF, and RTC Battery Backup headers:&lt;br /&gt;
&lt;br /&gt;
* [https://www.jst-mfg.com/product/pdf/eng/ePH.pdf JST-PH connector]&lt;br /&gt;
&lt;br /&gt;
== Useful Articles and Blog Posts ==&lt;br /&gt;
&lt;br /&gt;
If you want to dive in to the ecosystem, here's a short list of various articles and blog posts that can help you set up your soft- or hardware development environment.&lt;br /&gt;
&lt;br /&gt;
* [https://stikonas.eu/wordpress/2019/09/15/blobless-boot-with-rockpro64/ Blobless boot with RockPro64 by Andrius Štikonas]&lt;br /&gt;
&lt;br /&gt;
* [https://marcin.juszkiewicz.com.pl/2020/06/17/ebbr-on-rockpro64/ EBBR on RockPro64 by Marcin Juszkiewicz]&lt;br /&gt;
&lt;br /&gt;
* [[ROCKPro64 Device Tree Overlays on Mainline]]&lt;br /&gt;
&lt;br /&gt;
== The NAS Case for the ROCKPro64 ==&lt;br /&gt;
&lt;br /&gt;
[[file:NASCaseMain.png|thumb|right|Front View of the PINE64 NAS Case for the ROCKPro64]]&lt;br /&gt;
&lt;br /&gt;
Please [[NASCase|follow this this link]] for '''detailed instructions on how to assemble the ROCKPro64 NAS Case'''.&lt;br /&gt;
&lt;br /&gt;
The NAS Case instructions also contains detailed information about:&lt;br /&gt;
*what the NAS Case ships with&lt;br /&gt;
*What additional things you need to purchase for your NAS Case&lt;br /&gt;
*What optional things you can consider purchasing for your NAS build&lt;br /&gt;
*What OS Image we recommend you use for your NAS build&lt;br /&gt;
*IO accessibility after installing the ROCKPro64 into the NAS Case&lt;br /&gt;
*[https://files.pine64.org/doc/rockpro64/ROCKPro64%20NAS%20Case%20Exploded%20View%20Diagram.pdf NAS Case Exploded View]&lt;br /&gt;
*[https://files.pine64.org/doc/rockpro64/NAS%20Case%20Drawing.dwg NAS Case Drawing]&lt;br /&gt;
&lt;br /&gt;
== 3D printable ITX mounting brackets ==&lt;br /&gt;
&lt;br /&gt;
[[file:ITX-Bracket-Mounted.jpg|300px|thumb|right|A Quartz64-A mounted in an ITX case using 3D printed brackets]]&lt;br /&gt;
&lt;br /&gt;
Allows mounting a ROCKPro64-A or Quartz64-A board inside a regular PC case that conforms to the ITX standard, using 3D printed brackets:&lt;br /&gt;
&lt;br /&gt;
* AMF/STL/STEP files plus the original FreeCAD file used to create the models [[File:RP64-A_Q64-A_to_ITX_mounting_brackets.zip]]&lt;br /&gt;
* Make sure to flip the two brackets by 180 degrees on one of the horizontal axes (X/Y) in your slicer of choice before printing to avoid unnecessary supports&lt;br /&gt;
* To allow enough clearance between the board and the bracket you either need to print four copies of the washer model or add nut(s) between the board and the bracket&lt;br /&gt;
* If using nuts for the clearance between the board and the brackets, make sure it creates at least 3.2mm of spacing in between&lt;br /&gt;
* Depending on the accuracy and calibration of a 3D printer, slight deviation can occur and you likely need to manually widen some of the holes to allow screws to fit&lt;br /&gt;
&lt;br /&gt;
== Other Resources ==&lt;br /&gt;
&lt;br /&gt;
* [https://forum.pine64.org/forumdisplay.php?fid=98 ROCKPro64 Forum]&lt;br /&gt;
* [https://pine64.com/?post_type=product PINE64 shop]&lt;br /&gt;
* [https://github.com/rockchip-linux Rockchip Linux GitHub Repo]&lt;br /&gt;
* [http://opensource.rock-chips.com/ Rockchip Open Source Wiki]&lt;br /&gt;
* ExplainingComputers have a video review [https://www.youtube.com/watch?v=CeoNHGFN_30 of the RockPro64 here, including linux first boot.]&lt;br /&gt;
* [[ROCKPro64 Installing Arch Linux ARM]]&lt;br /&gt;
* [[ROCKPro64 Powering From An ATX Supply]]&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
=== No Video or GPU Acceleration on Debian ===&lt;br /&gt;
&lt;br /&gt;
If you can log in through serial but don't get any video or GPU acceleration on Debian, this is likely due to Debian's decision to compile the devfreq governors as loadable modules but not including them early enough for panfrost to be able to be provided with one of them.&lt;br /&gt;
&lt;br /&gt;
The usual sign of this being the case is the following line in your log: &amp;lt;code&amp;gt;[drm:panfrost_devfreq_init [panfrost]] *ERROR* Couldn't initialize GPU devfreq&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Log in to your ROCKPro64, and run the following:&lt;br /&gt;
&lt;br /&gt;
 sudo -i&lt;br /&gt;
 echo governor_simpleondemand &amp;gt;&amp;gt; /etc/initramfs-tools/modules &amp;amp;&amp;amp; update-initramfs -u -k $(uname -r)&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
Then, reboot.&lt;br /&gt;
&lt;br /&gt;
== Hardware &amp;quot;Hacking&amp;quot; ==&lt;br /&gt;
&lt;br /&gt;
=== Enabling PCIe 2.0 ===&lt;br /&gt;
By default, the RockPro64 runs the PCIe slot at gen 1 speeds because there might be stability issues with gen 2 speeds. The port can be switched back to gen 2 speeds by adding the following device tree overlay.&lt;br /&gt;
&lt;br /&gt;
1. Copy and paste the device tree overlay file below into a new file (you could name it &amp;lt;code&amp;gt;pcie-2.0.dts&amp;lt;/code&amp;gt;):&lt;br /&gt;
 // Pulled from: https://forum.armbian.com/topic/23574-howto-enable-pcie-gen2-to-get-max-speed-of-nvme-rockpi-4b/&lt;br /&gt;
 /dts-v1/;&lt;br /&gt;
 /plugin/;&lt;br /&gt;
 &lt;br /&gt;
 &amp;amp;pcie0 {&lt;br /&gt;
         max-link-speed = &amp;lt;0x03&amp;gt;;&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
2. Compile the device tree into a binary file. Note that you will need &amp;lt;code&amp;gt;dtc&amp;lt;/code&amp;gt; installed.&lt;br /&gt;
 dtc -I dts -O dtb -@ pcie-2.0.dts -o pcie-2.0.dto&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
4. Copy or move the device tree from the current directory into the boot partition (in this case into the &amp;lt;code&amp;gt;/boot/dtbs/overlay/&amp;lt;/code&amp;gt; folder). If you haven't yet created the &amp;lt;code&amp;gt;/boot/dtbs/overlay/&amp;lt;/code&amp;gt; folder, then create it with &amp;lt;code&amp;gt;sudo mkdir /boot/dtbs/overlay/&amp;lt;/code&amp;gt;&lt;br /&gt;
 sudo cp pcie-2.0.dto /boot/dtbs/overlay/&lt;br /&gt;
&lt;br /&gt;
5. Add the device compiled tree overlay file to the list of files u-boot needs to load. If you are using ManjaroARM (or ArchLinuxARM with a &amp;lt;code&amp;gt;extlinux.conf&amp;lt;/code&amp;gt; file), then add the following line to the file &amp;lt;code&amp;gt;/boot/extlinux/extlinux.conf&amp;lt;/code&amp;gt;:&lt;br /&gt;
 FDTOVERLAYS /dtbs/overlay/pcie-2.0.dtb&lt;br /&gt;
&lt;br /&gt;
If you already have an &amp;lt;code&amp;gt;FDTOVERLAYS&amp;lt;/code&amp;gt; line, then add a space at the end of the current line, then add this overlay file after that.&lt;br /&gt;
See here for details on this process: [[ROCKPro64 Device Tree Overlays on Mainline]]&lt;br /&gt;
&lt;br /&gt;
The resulting &amp;lt;code&amp;gt;/boot/extlinux/extlinux.conf&amp;lt;/code&amp;gt; file might look like below after adding this dtb file:&lt;br /&gt;
 LABEL Manjaro ARM&lt;br /&gt;
 KERNEL /Image&lt;br /&gt;
 FDT /dtbs/rockchip/rk3399-rockpro64.dtb&lt;br /&gt;
 FDTOVERLAYS /dtbs/overlay/pcie-2.0.dtb /dtbs/overlay/cpu-overclock.dtb&lt;br /&gt;
 APPEND initrd=/initramfs-linux.img console=ttyS2,1500000 zfs=zroot rw rootwait audit=0 cpufreq.default_governor=schedutil&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Overclocking (and undervolting) ===&lt;br /&gt;
The RK3399 can be overclocked. See here for details: [[Overclocking#RK3399-based devices]].&lt;br /&gt;
By overclocking, you do risk damaging your hardware, however, it is possible to achieve small, but measurable improvements in performance with an overclock. The overclock can be applied with a device tree overlay file.&lt;br /&gt;
Below is an example device tree overlay for CPU overclocking on the RockPro64. It may or may not work well on your device, but I found that these speeds were stable for me.&lt;br /&gt;
The example below bumps the little cores up to 1.608GHz from 1.416GHz and bumps the big cores up to 2.088GHz from 1.8GHz.&lt;br /&gt;
&lt;br /&gt;
1. Copy and paste the device tree overlay file below into a new file (you could name it &amp;lt;code&amp;gt;cpu-overclock.dts&amp;lt;/code&amp;gt;):&lt;br /&gt;
 // Pulled from: https://github.com/torvalds/linux/blob/master/arch/arm64/boot/dts/rockchip/rk3399-op1-opp.dtsi&lt;br /&gt;
 /dts-v1/;&lt;br /&gt;
 /plugin/;&lt;br /&gt;
 &lt;br /&gt;
        &amp;amp;cluster0_opp {&lt;br /&gt;
                opp00 {&lt;br /&gt;
                        opp-hz = /bits/ 64 &amp;lt;408000000&amp;gt;;&lt;br /&gt;
                        opp-microvolt = &amp;lt;800000&amp;gt;;&lt;br /&gt;
                        clock-latency-ns = &amp;lt;40000&amp;gt;;&lt;br /&gt;
                };&lt;br /&gt;
                opp01 {&lt;br /&gt;
                        opp-hz = /bits/ 64 &amp;lt;600000000&amp;gt;;&lt;br /&gt;
                        opp-microvolt = &amp;lt;825000&amp;gt;;&lt;br /&gt;
                };&lt;br /&gt;
                opp02 {&lt;br /&gt;
                        opp-hz = /bits/ 64 &amp;lt;816000000&amp;gt;;&lt;br /&gt;
                        opp-microvolt = &amp;lt;850000&amp;gt;;&lt;br /&gt;
                };&lt;br /&gt;
                opp03 {&lt;br /&gt;
                        opp-hz = /bits/ 64 &amp;lt;1008000000&amp;gt;;&lt;br /&gt;
                        opp-microvolt = &amp;lt;900000&amp;gt;;&lt;br /&gt;
                };&lt;br /&gt;
                opp04 {&lt;br /&gt;
                        opp-hz = /bits/ 64 &amp;lt;1200000000&amp;gt;;&lt;br /&gt;
                        opp-microvolt = &amp;lt;975000&amp;gt;;&lt;br /&gt;
                };&lt;br /&gt;
                opp05 {&lt;br /&gt;
                        opp-hz = /bits/ 64 &amp;lt;1416000000&amp;gt;;&lt;br /&gt;
                        opp-microvolt = &amp;lt;1100000&amp;gt;;&lt;br /&gt;
                };&lt;br /&gt;
                opp06 {&lt;br /&gt;
                        opp-hz = /bits/ 64 &amp;lt;1512000000&amp;gt;;&lt;br /&gt;
                        opp-microvolt = &amp;lt;1150000&amp;gt;;&lt;br /&gt;
                };&lt;br /&gt;
                opp07 {&lt;br /&gt;
                        opp-hz = /bits/ 64 &amp;lt;1608000000&amp;gt;;&lt;br /&gt;
                        opp-microvolt = &amp;lt;1200000&amp;gt;;&lt;br /&gt;
                };&lt;br /&gt;
        };&lt;br /&gt;
        &amp;amp;cluster1_opp {&lt;br /&gt;
                opp00 {&lt;br /&gt;
                        opp-hz = /bits/ 64 &amp;lt;408000000&amp;gt;;&lt;br /&gt;
                        opp-microvolt = &amp;lt;800000&amp;gt;;&lt;br /&gt;
                        clock-latency-ns = &amp;lt;40000&amp;gt;;&lt;br /&gt;
                };&lt;br /&gt;
                opp01 {&lt;br /&gt;
                        opp-hz = /bits/ 64 &amp;lt;600000000&amp;gt;;&lt;br /&gt;
                        opp-microvolt = &amp;lt;800000&amp;gt;;&lt;br /&gt;
                };&lt;br /&gt;
                opp02 {&lt;br /&gt;
                        opp-hz = /bits/ 64 &amp;lt;816000000&amp;gt;;&lt;br /&gt;
                        opp-microvolt = &amp;lt;825000&amp;gt;;&lt;br /&gt;
                };&lt;br /&gt;
                opp03 {&lt;br /&gt;
                        opp-hz = /bits/ 64 &amp;lt;1008000000&amp;gt;;&lt;br /&gt;
                        opp-microvolt = &amp;lt;850000&amp;gt;;&lt;br /&gt;
                };&lt;br /&gt;
                opp04 {&lt;br /&gt;
                        opp-hz = /bits/ 64 &amp;lt;1200000000&amp;gt;;&lt;br /&gt;
                        opp-microvolt = &amp;lt;900000&amp;gt;;&lt;br /&gt;
                };&lt;br /&gt;
                opp05 {&lt;br /&gt;
                        opp-hz = /bits/ 64 &amp;lt;1416000000&amp;gt;;&lt;br /&gt;
                        opp-microvolt = &amp;lt;975000&amp;gt;;&lt;br /&gt;
                };&lt;br /&gt;
                opp06 {&lt;br /&gt;
                        opp-hz = /bits/ 64 &amp;lt;1608000000&amp;gt;;&lt;br /&gt;
                        opp-microvolt = &amp;lt;1050000&amp;gt;;&lt;br /&gt;
                };&lt;br /&gt;
                opp07 {&lt;br /&gt;
                        opp-hz = /bits/ 64 &amp;lt;1800000000&amp;gt;;&lt;br /&gt;
                        opp-microvolt = &amp;lt;1150000&amp;gt;;&lt;br /&gt;
                };&lt;br /&gt;
                opp08 {&lt;br /&gt;
                        opp-hz = /bits/ 64 &amp;lt;2016000000&amp;gt;;&lt;br /&gt;
                        opp-microvolt = &amp;lt;1250000&amp;gt;;&lt;br /&gt;
                };&lt;br /&gt;
                opp09 {&lt;br /&gt;
                        opp-hz = /bits/ 64 &amp;lt;2088000000&amp;gt;;&lt;br /&gt;
                        opp-microvolt = &amp;lt;1250000&amp;gt;;&lt;br /&gt;
                };&lt;br /&gt;
        };&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2. Compile the device tree into a binary file. Note that you will need &amp;lt;code&amp;gt;dtc&amp;lt;/code&amp;gt; installed.&lt;br /&gt;
 dtc -I dts -O dtb -@ cpu-overclock.dts -o cpu-overclock.dto&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
4. Copy or move the device tree from the current directory into the boot partition (in this case into the &amp;lt;code&amp;gt;/boot/dtbs/overlay/&amp;lt;/code&amp;gt; folder). If you haven't yet created the &amp;lt;code&amp;gt;/boot/dtbs/overlay/&amp;lt;/code&amp;gt; folder, then create it with &amp;lt;code&amp;gt;sudo mkdir /boot/dtbs/overlay/&amp;lt;/code&amp;gt;&lt;br /&gt;
 sudo cp cpu-overclock.dto /boot/dtbs/overlay/&lt;br /&gt;
&lt;br /&gt;
5. Add the device compiled tree overlay file to the list of files u-boot needs to load. If you are using ManjaroARM (or ArchLinuxARM with a &amp;lt;code&amp;gt;extlinux.conf&amp;lt;/code&amp;gt; file), then add the following line to the file &amp;lt;code&amp;gt;/boot/extlinux/extlinux.conf&amp;lt;/code&amp;gt;:&lt;br /&gt;
 FDTOVERLAYS /dtbs/overlay/cpu-overclock.dtb&lt;br /&gt;
&lt;br /&gt;
If you already have an &amp;lt;code&amp;gt;FDTOVERLAYS&amp;lt;/code&amp;gt; line, then add a space at the end of the current line, then add this overlay file after that.&lt;br /&gt;
See here for details on this process: [[ROCKPro64 Device Tree Overlays on Mainline]]&lt;br /&gt;
&lt;br /&gt;
The resulting &amp;lt;code&amp;gt;/boot/extlinux/extlinux.conf&amp;lt;/code&amp;gt; file might look like below after adding this dtb file:&lt;br /&gt;
 LABEL Manjaro ARM&lt;br /&gt;
 KERNEL /Image&lt;br /&gt;
 FDT /dtbs/rockchip/rk3399-rockpro64.dtb&lt;br /&gt;
 FDTOVERLAYS /dtbs/overlay/pcie-2.0.dtb /dtbs/overlay/cpu-overclock.dtb&lt;br /&gt;
 APPEND initrd=/initramfs-linux.img console=ttyS2,1500000 zfs=zroot rw rootwait audit=0 cpufreq.default_governor=schedutil&lt;br /&gt;
&lt;br /&gt;
=== Getting wifi working (&amp;quot;new&amp;quot; wifi module) ===&lt;br /&gt;
ManjaroARM and ArchLinuxARM (and probably others) provide the NVRAM file needed to initialize the Wi-Fi module in the linux-firmware package, but it is listed under the generic name &amp;lt;code&amp;gt;brcmfmac43455-sdio.AW-CM256SM.txt&amp;lt;/code&amp;gt;.&lt;br /&gt;
You can copy this file to the new name (that the driver looks for) with the following commands:&lt;br /&gt;
 cd /usr/lib/firmware/brcm/&lt;br /&gt;
 sudo cp brcmfmac43455-sdio.AW-CM256SM.txt brcmfmac43455-sdio.txt&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Then, reboot and Wi-Fi should start working.&lt;br /&gt;
Details for this method are here: https://forum.pine64.org/showthread.php?tid=16635&amp;amp;pid=117061#pid117061&lt;br /&gt;
However, I noticed that on a 5GHz network with &amp;lt;code&amp;gt;wireless-regdb&amp;lt;/code&amp;gt; installed and the regulatory domain set correctly (to 'US' for me), the adapter was almost unusable. Speeds were usually 0 bits per second. Sometimes a few packets would get through every few seconds, but that was it. On a 2.4GHz network, this was not an issue. This &amp;quot;can&amp;quot; be resolved by setting the regulator domain to 'GB' or 'CN', but this doesn't seem like a great solution. Instead, I tried various other &amp;lt;code&amp;gt;brcmfmac43455-sdio.txt&amp;lt;/code&amp;gt; files found online. Some worked better than others. I combined parts of various files and found that applying the patch below to the default &amp;lt;code&amp;gt;brcmfmac43455-sdio.AW-CM256SM.txt&amp;lt;/code&amp;gt; file fixed the issue. I was able to get about 140Mbps up and down with this patch (with the regulatory domain set correctly to 'US').&lt;br /&gt;
&lt;br /&gt;
 --- brcmfmac43455-sdio.AW-CM256SM.txt   2023-04-27 19:16:47.000000000 -0500&lt;br /&gt;
 +++ brcmfmac43455-sdio.txt      2023-05-21 11:42:22.058517093 -0500&lt;br /&gt;
 @@ -21,19 +21,18 @@&lt;br /&gt;
  ltecxpadnum=0x0504&lt;br /&gt;
  macaddr=00:90:4c:c5:12:38&lt;br /&gt;
  manfid=0x2d0&lt;br /&gt;
 -maxp2ga0=64&lt;br /&gt;
 -maxp5ga0=80,82,76,77&lt;br /&gt;
 -mcsbw202gpo=0x99355533&lt;br /&gt;
 -mcsbw205ghpo=0x99855000&lt;br /&gt;
 -mcsbw205glpo=0x99755000&lt;br /&gt;
 -mcsbw205gmpo=0x9df55000&lt;br /&gt;
 -mcsbw405ghpo=0xd9755000&lt;br /&gt;
 -mcsbw405glpo=0xb8555000&lt;br /&gt;
 -mcsbw405gmpo=0xed955000&lt;br /&gt;
 -mcsbw805ghpo=0xd9555000&lt;br /&gt;
 -mcsbw805glpo=0xc8555000&lt;br /&gt;
 -mcsbw805gmpo=0xe9555000&lt;br /&gt;
 -muxenab=0x10&lt;br /&gt;
 +maxp2ga0=70&lt;br /&gt;
 +maxp5ga0=73,74,73,73&lt;br /&gt;
 +mcsbw202gpo=0x99333322&lt;br /&gt;
 +mcsbw205ghpo=0x8a875444&lt;br /&gt;
 +mcsbw205glpo=0x8a875444&lt;br /&gt;
 +mcsbw205gmpo=0x8a875444&lt;br /&gt;
 +mcsbw405ghpo=0xda844333&lt;br /&gt;
 +mcsbw405glpo=0xda844333&lt;br /&gt;
 +mcsbw405gmpo=0xdb844333&lt;br /&gt;
 +mcsbw805ghpo=0xda555444&lt;br /&gt;
 +mcsbw805glpo=0xdb555444&lt;br /&gt;
 +mcsbw805gmpo=0xda555444&lt;br /&gt;
  nocrc=1&lt;br /&gt;
  ofdmlrbw202gpo=0x0033&lt;br /&gt;
  pa2ga0=-112,6296,-662&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To use this patch, copy it off into a file and use the &amp;lt;code&amp;gt;patch&amp;lt;/code&amp;gt; command.&lt;br /&gt;
However, it might be easier to apply the patch by hand. &lt;br /&gt;
To do this, open the file &amp;lt;code&amp;gt;/usr/lib/firmware/brcm/brcmfmac43455-sdio.txt&amp;lt;/code&amp;gt; (after completing the copy step above),  delete the line with &amp;lt;code&amp;gt;maxp2ga0=64&amp;lt;/code&amp;gt; through the line with &amp;lt;code&amp;gt;muxenab=0x10&amp;lt;/code&amp;gt;.&lt;br /&gt;
Then add the following in its place:&lt;br /&gt;
 maxp2ga0=70&lt;br /&gt;
 maxp5ga0=73,74,73,73&lt;br /&gt;
 mcsbw202gpo=0x99333322&lt;br /&gt;
 mcsbw205ghpo=0x8a875444&lt;br /&gt;
 mcsbw205glpo=0x8a875444&lt;br /&gt;
 mcsbw205gmpo=0x8a875444&lt;br /&gt;
 mcsbw405ghpo=0xda844333&lt;br /&gt;
 mcsbw405glpo=0xda844333&lt;br /&gt;
 mcsbw405gmpo=0xdb844333&lt;br /&gt;
 mcsbw805ghpo=0xda555444&lt;br /&gt;
 mcsbw805glpo=0xdb555444&lt;br /&gt;
 mcsbw805gmpo=0xda555444&lt;br /&gt;
&lt;br /&gt;
Reboot and the Wi-Fi (at least for 5GHz networks) should work well. I was unable to determine what these fields do, so I am not sure what impact this has on the Wi-Fi module or your ability to operate it legally in your country. From what I can tell (and I haven't looked into the process in too much depth), it seems that this file is passed directly to the hardware, where it is interpreted by the Wi-Fi module itself, but I am not sure on this. However, given that this file is simply a combination of other existing files for similar hardware, I would think that it should be fine.&lt;br /&gt;
I ended up pulling lines only from the file here: https://github.com/reMarkable/brcmfmac-firmware/blob/master/brcmfmac43455-sdio.txt.&lt;br /&gt;
This code comes with the following license (which I will not replicate here because it will fill this wiki with text - instead I have provided a link to its source): https://github.com/reMarkable/brcmfmac-firmware/blob/master/LICENCE.&lt;br /&gt;
I believe this license allows me to take these lines from one of the config files and provide them here in patch format.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Stabilizing the system (underclocking the RAM) ===&lt;br /&gt;
By default, it seems that the some RockPro64 devices are not stable. This seems to manifest as gcc segfaulting randomly. Usually, this can be &amp;quot;fixed&amp;quot; by starting the build again and hoping gcc doesn't crash. If the build finishes or crashes at a different point, this is a good indicator that the system is not stable. The issue seems to be that the RAM is running a little too fast and some bits are getting randomly flipped (at least for me). In this thread, it seems that the solution is to bring the RAM all the way down to 333MHz: https://forum.pine64.org/showthread.php?tid=11209. Other frequencies are possible, but the highest officially supported frequency below 800MHz I found was 666MHz, which is still a big step down from the default frequency of 800MHz provided by ManjaroARM. After looking through the U-Boot code, I found that it seems to be possible to set arbitrary frequencies. After giving this a test, I found that 702MHz was stable. After that, I tried a bit higher (at 752MHz). This was also stable. Given that this is less than 50MHz away from being unstable, I stopped there. It seems that there is only a slight performance decrease at this frequency compared to 800MHz. The PKGBUILD for this is available here: https://aur.archlinux.org/packages/uboot-rockpro64-foss&lt;br /&gt;
&lt;br /&gt;
By default, this PKGBUILD uses the default RAM speed of 800MHz. Uncomment the line that begins with &amp;quot;patch&amp;quot; to enable the 752MHz patch. Details are in the comments at the top of the PKGBUILD.&lt;br /&gt;
If you would like to try out other frequencies, follow the instructions in the comments at the top of the PKGBUILD.&lt;br /&gt;
&lt;br /&gt;
After building and installing, the install hook will prompt you on if you want to install the new build of U-Boot to EMMC. If you want to, press Y, otherwise, hit N and then copy and paste the printed &amp;lt;code&amp;gt;dd&amp;lt;/code&amp;gt; commands and modify them to write to the correct device (change the &amp;lt;code&amp;gt;/dev/mmcblk&amp;lt;/code&amp;gt; part).&lt;br /&gt;
&lt;br /&gt;
After installing U-Boot and rebooting, U-Boot should print out that it set the RAM to 400MHz (initially). Then a few lines down, the RAM should be set to 752MHz.&lt;br /&gt;
&lt;br /&gt;
[[Category:ROCKPro64]] [[Category:Rockchip RK3399]]&lt;/div&gt;</summary>
		<author><name>I3master</name></author>
	</entry>
	<entry>
		<id>https://wiki.pine64.org/index.php?title=ROCKPro64_Getting_Started&amp;diff=19696</id>
		<title>ROCKPro64 Getting Started</title>
		<link rel="alternate" type="text/html" href="https://wiki.pine64.org/index.php?title=ROCKPro64_Getting_Started&amp;diff=19696"/>
		<updated>2023-05-29T01:25:41Z</updated>

		<summary type="html">&lt;p&gt;I3master: added a missing word.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This section gives important information to get the board up and running.&lt;br /&gt;
&lt;br /&gt;
== Video Playback ==&lt;br /&gt;
&lt;br /&gt;
Hardware video acceleration is supported in recent kernels and user needs only to install the relevant Mesa packages/ports, specifically the Mesa DRI drivers for Mali GPUs (Midgard/Bifrost).  One can confirm via software glxinfo, or having the library file such as .../lib/dri/panfrost_dri.so.&lt;br /&gt;
&lt;br /&gt;
Ayufan has some old documentation on [https://github.com/ayufan-rock64/linux-build/blob/master/recipes/video-playback.md video playback here.] For your ROCKPro64 the install should be&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;sudo apt-get install ffmpeg mpv libmali-rk-midgard-t86x-r14p0-gbm&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(These modules are included in the Ayufan desktop releases.) At which stage rkmpv myvideo.mp4 will play a fullscreen, hardware assisted, version of your video. rkmpv is at /usr/local/bin/rkmpv&lt;br /&gt;
&lt;br /&gt;
== Using an NVMe Disk as rootfs ==&lt;br /&gt;
&lt;br /&gt;
Forum member Bullet64 has documented [https://forum.frank-mankel.org/topic/208/booten-von-der-nvme-platte how to move rootfs to an NVMe disk.] This is useful until we get a full SPI option to boot from the NVMe.&lt;br /&gt;
&lt;br /&gt;
== Setup a Serial Console (UART2) ==&lt;br /&gt;
&lt;br /&gt;
{{Warning|RockPro64 is designed to use 3VDC3A (3 Volts Direct Current 3 Ampere) for the connection, using 5VDC and more might damage the board!}}&lt;br /&gt;
&lt;br /&gt;
To use Serial Console you will a need operating system that supports it on your RockPro64, by default the serial console is provided for baud 9 600 which is far too slow for rockpro64 so consider using 1 500 000 (1.5Mbps) instead &amp;lt;b&amp;gt;IF&amp;lt;/b&amp;gt; your serial console device supports it (many doesn't which results in their inability to use the console).&lt;br /&gt;
&lt;br /&gt;
{{Warning|Do not connect RxD (pin 10) until the U-Boot SPL is running (see [[RK3399 boot sequence]]) or the SPL will not start.&lt;br /&gt;
&lt;br /&gt;
To avoid this issue, a simple [[ROCKPro64 Serial Buffer Circuit]] can be installed between the RockPro64 and the serial adapter.}} &lt;br /&gt;
&lt;br /&gt;
In terms of connections you need to perform the following from your serial console-capable device e.g. Pine64's Woodpecker available in store:&lt;br /&gt;
&lt;br /&gt;
* GND &amp;lt;-&amp;gt; GND (pin 6)&lt;br /&gt;
* RxD &amp;lt;-&amp;gt; TxD (pin 8)&lt;br /&gt;
* TxD &amp;lt;-&amp;gt; RxD (pin 10)&lt;br /&gt;
&lt;br /&gt;
After the configuration of your preferred operating system you can connect to the serial console using any of these commands:&lt;br /&gt;
&lt;br /&gt;
  $ screen /dev/ttyUSB0 1500000&lt;br /&gt;
&lt;br /&gt;
  $ picocom /dev/ttyUSB0 -b 1500000&lt;br /&gt;
&lt;br /&gt;
  $ minicom -D /dev/ttyUSB0 -b 1500000&lt;br /&gt;
&lt;br /&gt;
NOTE: You might need a root permission if your user is not in the appropriate user-group e.g. &amp;lt;code&amp;gt;dialup&amp;lt;/code&amp;gt; on GNU/Linux&lt;br /&gt;
&lt;br /&gt;
Alternatively there is a detailed guide on forums: https://forum.pine64.org/showthread.php?tid=6387&lt;br /&gt;
&lt;br /&gt;
GNU/Linux:&lt;br /&gt;
&lt;br /&gt;
* With GNU/Linux on your RockPro64 the built-in support for serial console can be enabled by parsing parse e.g. &amp;lt;code&amp;gt;console=ttyS2,1500000n8&amp;lt;/code&amp;gt; in the kernel command line, many distributions make this available by default, but consider verifying the contents of &amp;lt;code&amp;gt;/boot/extlinux/extlinux.conf&amp;lt;/code&amp;gt; if you encounter issues.&lt;br /&gt;
* NOTE: the &amp;lt;code&amp;gt;n8&amp;lt;/code&amp;gt; in the kernel argument means &amp;lt;b&amp;gt;no parity, 8 bits per character&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Booting from USB or PXE ==&lt;br /&gt;
&lt;br /&gt;
The default choice of boot device is first eMMC (if present) then SDcard. See [[ROCKPro64#Disable_eMMC | jumpers above for details on adjusting this sequence.]]&lt;br /&gt;
&lt;br /&gt;
It is possible to flash the SPI to extend the options for boot devices to USB drives or PXE. The preferred method is now the rock64_write_spi_flash.sh script (see [[ROCKPro64#Useful_scripts | useful scripts above.]]) The Getting started wiki article has more details [[Getting started#Flashing_u-boot_to_SPI_Flash | here.]]&lt;br /&gt;
&lt;br /&gt;
Background info and historic details of this usage [https://github.com/ayufan-rock64/linux-build/blob/master/recipes/flash-spi.md can be found here.]&lt;br /&gt;
== Booting from SATA ==&lt;br /&gt;
U-Boot supports booting from SATA devices. However, it seems that this support was broken for the RockPro64 until U-Boot 2023.04. This version is not yet supplied by ManjaroARM, but can be compiled relatively easily in ManjaroARM and installed. The PKGBUILD here provides a version of U-Boot that supports SATA boot: https://aur.archlinux.org/packages/uboot-rockpro64-foss&lt;br /&gt;
There are instructions in the pinned comment on how to build this in ArchLinuxARM if needed.&lt;br /&gt;
&lt;br /&gt;
Note that with this configuration, U-Boot is compiled to be installed on a micro SD card or EMMC module (at a specific address - not in a filesystem).&lt;br /&gt;
The install hook provided in this PKGBUILD will ask you if you want to write U-Boot to an EMMC module. If you want to install to a micro SD card instead, press 'n' when prompted and modify the `dd` commands that are printed out. It should be possible to run the &amp;lt;code&amp;gt;mkimage&amp;lt;/code&amp;gt; command to generate an SPI image of U-Boot. See here for details: https://wiki.gentoo.org/wiki/PINE64_ROCKPro64/Installing_U-Boot.&lt;br /&gt;
&lt;br /&gt;
Once installed, both the boot partition and root partition may now exist on a SATA device.&lt;br /&gt;
&lt;br /&gt;
=== Troubleshooting ===&lt;br /&gt;
If U-Boot fails to boot from SATA, you can attempt to debug the issue through the U-Boot command line.&lt;br /&gt;
* After booting your RockPro64, press any key repeatedly. Enter works well as it won't type anything on the screen when the prompt comes up.&lt;br /&gt;
* Once you get a prompt, type &amp;lt;code&amp;gt;pci&amp;lt;/code&amp;gt; and hit enter. This will initialize the U-Boot PCIe subsystem. It is necessary for scanning for SATA devices.&lt;br /&gt;
* Now, type &amp;lt;code&amp;gt;scsi scan&amp;lt;/code&amp;gt; and hit enter. This will scan for SATA devices. You should see your SATA device show up in the list with its reported capacity.&lt;br /&gt;
* You can now attempt to list partitions on the SATA device by running &amp;lt;code&amp;gt;part list scsi 0&amp;lt;/code&amp;gt;. You may need to change the device number on the end (0 in the example) to match what was reported by the &amp;lt;code&amp;gt;scsi scan&amp;lt;/code&amp;gt; command.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Booting from SPI using u-boot ==&lt;br /&gt;
&lt;br /&gt;
{{Warning|idbloader is not open-source}}&lt;br /&gt;
&lt;br /&gt;
Always be prepared to recover from a broken SPI boot BEFORE flashing or you will end up with a broken boot.&lt;br /&gt;
&lt;br /&gt;
In general the recovery is killswitching SPI through shorting pins 23 &amp;lt;-&amp;gt; 25 together and then loading u-boot from a storage device e.g. SD-card or eMMC where majority of GNU distributions e.g. Manjaro usually have u-boot packaged with the provided images.&lt;br /&gt;
&lt;br /&gt;
Follow instructions in https://github.com/sigmaris/u-boot/wiki/Flashing-U-Boot-to-SPI#instructions-for-rockpro64&lt;br /&gt;
&lt;br /&gt;
== Boot sequence ==&lt;br /&gt;
&lt;br /&gt;
The RockPro64 boot sequence has been documented [https://github.com/sigmaris/u-boot/wiki/RockPro64-boot-sequence here] by sigmaris.&lt;br /&gt;
&lt;br /&gt;
== OTG Mode ==&lt;br /&gt;
&lt;br /&gt;
You can boot your ROCKPro64 into OTG mode with the use of the Recover button (see [[ROCKPro64#Switches | switch 28 above.]]) Note there are 2 OTG ports on your ROCKPro64: the type-C USB 3 socket is definitely one. From the schematic it appears the USB 3 (type A) socket is the other, but this has yet to be confirmed.&lt;br /&gt;
&lt;br /&gt;
The method is to power off the board. Then push and hold the Recover button and push and release the Power button. &lt;br /&gt;
* If you have an Ayufan bootable image in either the SD-card or eMMC then there are 4 OTG modes [https://github.com/ayufan-rock64/linux-u-boot/commit/ea6efecdfecc57c853a6f32f78469d1b2417329b described here] including Android fastboot, RockUSB and MaskROM modes. Releasing the Recover button as soon as the white LED lights counts as 1 blink. Keeping it pressed you will get 2 blinks of the white LED etc. Once the board enters OTG mode the red LED will be lit. In mode 1 the boot and linux-root partitions of the card with the Ayufan image (partitions 6 &amp;amp; 7 of a Linux installation) are made available as devices. In all cases the USB device made available at the host has device ID 18d1:d00d.&lt;br /&gt;
* If you do not have an Ayufan image in either the SD-card or the eMMC, then neither white nor red LEDs will light, but the board will enter MaskROM mode where the USB device made available at the host has device ID 2207:330c.&lt;br /&gt;
&lt;br /&gt;
== NVMe Drives ==&lt;br /&gt;
&lt;br /&gt;
Please be aware that [https://pine64.com/product/rockpro64-pci-e-x4-to-m-2-ngff-nvme-ssd-interface-card the PINE64 SSD interface card] is intended for use with NVMe devices. These can be identified by the fact they have a single (Key M) notch, e.g. [https://www.wdc.com/content/dam/wdc/website/products/family/wd-black-pcie-ssd/wdfWDBlackSSD_PCIe_img1.jpg.imgw.500.500.jpg the WD Black devices.]&lt;br /&gt;
&lt;br /&gt;
While M2/NGFF SATA devices (with a Key B notch, typically have Key M as well) will physically fit, they will not work. e.g. [https://www.wdc.com/content/dam/wdc/website/products/personal/internal_storage/wd_blue_3d_nand_sata_ssd/blue3d_product-overview.jpg.imgw.1000.1000.jpg WD Blue devices.]&lt;br /&gt;
&lt;br /&gt;
== SATA Drives ==&lt;br /&gt;
&lt;br /&gt;
SATA drives can be connected directly via the [https://pine64.com/product/pcie-to-dual-sata-iii-interface-card/ ROCKPro64 PCIe interface card.] Please note the card does not include the power cable - that is a [https://pine64.com/?product=rockpro64-power-cable-for-dual-sata-drives separate item.] Equally you must be aware that connecting SATA drives in this manner means they will be drawing power from your ROCKPro64 - please ensure you are using a 5A or better power supply.&lt;br /&gt;
&lt;br /&gt;
ExplainingComputers did a YouTube [https://www.youtube.com/watch?v=9CCQicHwfDI ROCKPro64 PCIe SATA card review and tests using a Ubuntu console and OpenMediaVault.]&lt;br /&gt;
&lt;br /&gt;
== Wi-Fi &amp;amp; Bluetooth Module ==&lt;br /&gt;
If you have bought the [https://pine64.com/product/rockpro64-1x1-dual-band-wifi-802-11ac-bluetooth-5-0-module Wi-Fi and Bluetooth module] from the Pine store then instructions for connecting it can be found on the accessories page [[Accessories_Step_by_Step_Guides#Wifi.2FBluetooth_module | here.]] '''Please note that the 0.7.9 Ayufan's Linux releases (August 2018) have deliberately DISABLED support for this module in the search for stability. It can be tested and used with the Android image.'''&lt;br /&gt;
&lt;br /&gt;
It can also be used on Manjaro by installing ap6256-firmware and wireless-regdb packages.&lt;br /&gt;
&lt;br /&gt;
== 7&amp;quot; LCD Touch Screen ==&lt;br /&gt;
&lt;br /&gt;
Instructions for connecting the [https://pine64.com/?product=7-lcd-touch-screen-panel LCD touch screen] from the Pine [[Accessories_Step_by_Step_Guides#7.22_LCD_Touch_Screen_Panel | are here.]]&lt;br /&gt;
&lt;br /&gt;
'''Note at present (August 2018) this screen is only supported by the Android image.'''&lt;br /&gt;
&lt;br /&gt;
{{Warning|When using the touchscreen ensure the cables are properly connected and tightened down and that you do not let the metal backplate touch the SBC}}&lt;br /&gt;
&lt;br /&gt;
== RTC Battery Backup ==&lt;br /&gt;
&lt;br /&gt;
The Pine store has a couple of options for RTC battery backups: a [https://pine64.com/product/rtc-backup-battery-holder-2-x-aaa AAA version here] or a [https://pine64.com/product/rtc-backup-battery-holder-cr-2032 CR-2032 version here.] Instructions for plugging in either of them are also on the [[Accessories_Step_by_Step_Guides| Accessories page ]]. For the ROCKPro64, the backup plugs into the RTC connector, number 6 in the board layout diagram above, next to the USB3 and case screw point.&lt;br /&gt;
&lt;br /&gt;
== Acrylic Open Enclosure ==&lt;br /&gt;
&lt;br /&gt;
Assembly instructions for the [https://pine64.com/product/pine-a64-rockpro64-acrylic-open-enclosure acrylic enclosure] from the Pine store are also on the [[Accessories_Step_by_Step_Guides| Accessories page ]]&lt;br /&gt;
&lt;br /&gt;
== NAS case ==&lt;br /&gt;
&lt;br /&gt;
The [https://files.pine64.org/doc/rockpro64/ROCKPro64%20NAS%20Case%20Exploded%20View%20Diagram.pdf Exploded View Installation Diagram] for the [https://pine64.com/product/rockpro64-metal-desktop-nas-casing NAS case from the Pine store].&lt;br /&gt;
&lt;br /&gt;
Detailed '''NAS Case overview and assembly instructions''' can be found [[NASCase | here]].&lt;/div&gt;</summary>
		<author><name>I3master</name></author>
	</entry>
	<entry>
		<id>https://wiki.pine64.org/index.php?title=ROCKPro64_Getting_Started&amp;diff=19695</id>
		<title>ROCKPro64 Getting Started</title>
		<link rel="alternate" type="text/html" href="https://wiki.pine64.org/index.php?title=ROCKPro64_Getting_Started&amp;diff=19695"/>
		<updated>2023-05-29T01:24:48Z</updated>

		<summary type="html">&lt;p&gt;I3master: Added SATA boot information.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This section gives important information to get the board up and running.&lt;br /&gt;
&lt;br /&gt;
== Video Playback ==&lt;br /&gt;
&lt;br /&gt;
Hardware video acceleration is supported in recent kernels and user needs only to install the relevant Mesa packages/ports, specifically the Mesa DRI drivers for Mali GPUs (Midgard/Bifrost).  One can confirm via software glxinfo, or having the library file such as .../lib/dri/panfrost_dri.so.&lt;br /&gt;
&lt;br /&gt;
Ayufan has some old documentation on [https://github.com/ayufan-rock64/linux-build/blob/master/recipes/video-playback.md video playback here.] For your ROCKPro64 the install should be&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;sudo apt-get install ffmpeg mpv libmali-rk-midgard-t86x-r14p0-gbm&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(These modules are included in the Ayufan desktop releases.) At which stage rkmpv myvideo.mp4 will play a fullscreen, hardware assisted, version of your video. rkmpv is at /usr/local/bin/rkmpv&lt;br /&gt;
&lt;br /&gt;
== Using an NVMe Disk as rootfs ==&lt;br /&gt;
&lt;br /&gt;
Forum member Bullet64 has documented [https://forum.frank-mankel.org/topic/208/booten-von-der-nvme-platte how to move rootfs to an NVMe disk.] This is useful until we get a full SPI option to boot from the NVMe.&lt;br /&gt;
&lt;br /&gt;
== Setup a Serial Console (UART2) ==&lt;br /&gt;
&lt;br /&gt;
{{Warning|RockPro64 is designed to use 3VDC3A (3 Volts Direct Current 3 Ampere) for the connection, using 5VDC and more might damage the board!}}&lt;br /&gt;
&lt;br /&gt;
To use Serial Console you will a need operating system that supports it on your RockPro64, by default the serial console is provided for baud 9 600 which is far too slow for rockpro64 so consider using 1 500 000 (1.5Mbps) instead &amp;lt;b&amp;gt;IF&amp;lt;/b&amp;gt; your serial console device supports it (many doesn't which results in their inability to use the console).&lt;br /&gt;
&lt;br /&gt;
{{Warning|Do not connect RxD (pin 10) until the U-Boot SPL is running (see [[RK3399 boot sequence]]) or the SPL will not start.&lt;br /&gt;
&lt;br /&gt;
To avoid this issue, a simple [[ROCKPro64 Serial Buffer Circuit]] can be installed between the RockPro64 and the serial adapter.}} &lt;br /&gt;
&lt;br /&gt;
In terms of connections you need to perform the following from your serial console-capable device e.g. Pine64's Woodpecker available in store:&lt;br /&gt;
&lt;br /&gt;
* GND &amp;lt;-&amp;gt; GND (pin 6)&lt;br /&gt;
* RxD &amp;lt;-&amp;gt; TxD (pin 8)&lt;br /&gt;
* TxD &amp;lt;-&amp;gt; RxD (pin 10)&lt;br /&gt;
&lt;br /&gt;
After the configuration of your preferred operating system you can connect to the serial console using any of these commands:&lt;br /&gt;
&lt;br /&gt;
  $ screen /dev/ttyUSB0 1500000&lt;br /&gt;
&lt;br /&gt;
  $ picocom /dev/ttyUSB0 -b 1500000&lt;br /&gt;
&lt;br /&gt;
  $ minicom -D /dev/ttyUSB0 -b 1500000&lt;br /&gt;
&lt;br /&gt;
NOTE: You might need a root permission if your user is not in the appropriate user-group e.g. &amp;lt;code&amp;gt;dialup&amp;lt;/code&amp;gt; on GNU/Linux&lt;br /&gt;
&lt;br /&gt;
Alternatively there is a detailed guide on forums: https://forum.pine64.org/showthread.php?tid=6387&lt;br /&gt;
&lt;br /&gt;
GNU/Linux:&lt;br /&gt;
&lt;br /&gt;
* With GNU/Linux on your RockPro64 the built-in support for serial console can be enabled by parsing parse e.g. &amp;lt;code&amp;gt;console=ttyS2,1500000n8&amp;lt;/code&amp;gt; in the kernel command line, many distributions make this available by default, but consider verifying the contents of &amp;lt;code&amp;gt;/boot/extlinux/extlinux.conf&amp;lt;/code&amp;gt; if you encounter issues.&lt;br /&gt;
* NOTE: the &amp;lt;code&amp;gt;n8&amp;lt;/code&amp;gt; in the kernel argument means &amp;lt;b&amp;gt;no parity, 8 bits per character&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Booting from USB or PXE ==&lt;br /&gt;
&lt;br /&gt;
The default choice of boot device is first eMMC (if present) then SDcard. See [[ROCKPro64#Disable_eMMC | jumpers above for details on adjusting this sequence.]]&lt;br /&gt;
&lt;br /&gt;
It is possible to flash the SPI to extend the options for boot devices to USB drives or PXE. The preferred method is now the rock64_write_spi_flash.sh script (see [[ROCKPro64#Useful_scripts | useful scripts above.]]) The Getting started wiki article has more details [[Getting started#Flashing_u-boot_to_SPI_Flash | here.]]&lt;br /&gt;
&lt;br /&gt;
Background info and historic details of this usage [https://github.com/ayufan-rock64/linux-build/blob/master/recipes/flash-spi.md can be found here.]&lt;br /&gt;
== Booting from SATA ==&lt;br /&gt;
U-Boot supports booting from SATA devices. However, it seems that this support was broken for the RockPro64 until U-Boot 2023.04. This version is not yet supplied by ManjaroARM, but can be compiled relatively easily in ManjaroARM and installed. The PKGBUILD here provides a version of U-Boot that supports SATA boot: https://aur.archlinux.org/packages/uboot-rockpro64-foss&lt;br /&gt;
There are instructions in the pinned comment on how to build this in ArchLinuxARM if needed.&lt;br /&gt;
&lt;br /&gt;
Note that with this configuration, U-Boot is compiled to be installed on a micro SD card or EMMC module (at a specific address - not in a filesystem).&lt;br /&gt;
The install hook provided in this PKGBUILD will ask you if you want to write U-Boot to an EMMC module. If you want to install to a micro SD card instead, press 'n' when prompted and modify the `dd` commands that are printed out. It should be possible to run the &amp;lt;code&amp;gt;mkimage&amp;lt;/code&amp;gt; to generate an SPI image of U-Boot. See here for details: https://wiki.gentoo.org/wiki/PINE64_ROCKPro64/Installing_U-Boot.&lt;br /&gt;
&lt;br /&gt;
Once installed, both the boot partition and root partition may now exist on a SATA device.&lt;br /&gt;
&lt;br /&gt;
=== Troubleshooting ===&lt;br /&gt;
If U-Boot fails to boot from SATA, you can attempt to debug the issue through the U-Boot command line.&lt;br /&gt;
* After booting your RockPro64, press any key repeatedly. Enter works well as it won't type anything on the screen when the prompt comes up.&lt;br /&gt;
* Once you get a prompt, type &amp;lt;code&amp;gt;pci&amp;lt;/code&amp;gt; and hit enter. This will initialize the U-Boot PCIe subsystem. It is necessary for scanning for SATA devices.&lt;br /&gt;
* Now, type &amp;lt;code&amp;gt;scsi scan&amp;lt;/code&amp;gt; and hit enter. This will scan for SATA devices. You should see your SATA device show up in the list with its reported capacity.&lt;br /&gt;
* You can now attempt to list partitions on the SATA device by running &amp;lt;code&amp;gt;part list scsi 0&amp;lt;/code&amp;gt;. You may need to change the device number on the end (0 in the example) to match what was reported by the &amp;lt;code&amp;gt;scsi scan&amp;lt;/code&amp;gt; command.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Booting from SPI using u-boot ==&lt;br /&gt;
&lt;br /&gt;
{{Warning|idbloader is not open-source}}&lt;br /&gt;
&lt;br /&gt;
Always be prepared to recover from a broken SPI boot BEFORE flashing or you will end up with a broken boot.&lt;br /&gt;
&lt;br /&gt;
In general the recovery is killswitching SPI through shorting pins 23 &amp;lt;-&amp;gt; 25 together and then loading u-boot from a storage device e.g. SD-card or eMMC where majority of GNU distributions e.g. Manjaro usually have u-boot packaged with the provided images.&lt;br /&gt;
&lt;br /&gt;
Follow instructions in https://github.com/sigmaris/u-boot/wiki/Flashing-U-Boot-to-SPI#instructions-for-rockpro64&lt;br /&gt;
&lt;br /&gt;
== Boot sequence ==&lt;br /&gt;
&lt;br /&gt;
The RockPro64 boot sequence has been documented [https://github.com/sigmaris/u-boot/wiki/RockPro64-boot-sequence here] by sigmaris.&lt;br /&gt;
&lt;br /&gt;
== OTG Mode ==&lt;br /&gt;
&lt;br /&gt;
You can boot your ROCKPro64 into OTG mode with the use of the Recover button (see [[ROCKPro64#Switches | switch 28 above.]]) Note there are 2 OTG ports on your ROCKPro64: the type-C USB 3 socket is definitely one. From the schematic it appears the USB 3 (type A) socket is the other, but this has yet to be confirmed.&lt;br /&gt;
&lt;br /&gt;
The method is to power off the board. Then push and hold the Recover button and push and release the Power button. &lt;br /&gt;
* If you have an Ayufan bootable image in either the SD-card or eMMC then there are 4 OTG modes [https://github.com/ayufan-rock64/linux-u-boot/commit/ea6efecdfecc57c853a6f32f78469d1b2417329b described here] including Android fastboot, RockUSB and MaskROM modes. Releasing the Recover button as soon as the white LED lights counts as 1 blink. Keeping it pressed you will get 2 blinks of the white LED etc. Once the board enters OTG mode the red LED will be lit. In mode 1 the boot and linux-root partitions of the card with the Ayufan image (partitions 6 &amp;amp; 7 of a Linux installation) are made available as devices. In all cases the USB device made available at the host has device ID 18d1:d00d.&lt;br /&gt;
* If you do not have an Ayufan image in either the SD-card or the eMMC, then neither white nor red LEDs will light, but the board will enter MaskROM mode where the USB device made available at the host has device ID 2207:330c.&lt;br /&gt;
&lt;br /&gt;
== NVMe Drives ==&lt;br /&gt;
&lt;br /&gt;
Please be aware that [https://pine64.com/product/rockpro64-pci-e-x4-to-m-2-ngff-nvme-ssd-interface-card the PINE64 SSD interface card] is intended for use with NVMe devices. These can be identified by the fact they have a single (Key M) notch, e.g. [https://www.wdc.com/content/dam/wdc/website/products/family/wd-black-pcie-ssd/wdfWDBlackSSD_PCIe_img1.jpg.imgw.500.500.jpg the WD Black devices.]&lt;br /&gt;
&lt;br /&gt;
While M2/NGFF SATA devices (with a Key B notch, typically have Key M as well) will physically fit, they will not work. e.g. [https://www.wdc.com/content/dam/wdc/website/products/personal/internal_storage/wd_blue_3d_nand_sata_ssd/blue3d_product-overview.jpg.imgw.1000.1000.jpg WD Blue devices.]&lt;br /&gt;
&lt;br /&gt;
== SATA Drives ==&lt;br /&gt;
&lt;br /&gt;
SATA drives can be connected directly via the [https://pine64.com/product/pcie-to-dual-sata-iii-interface-card/ ROCKPro64 PCIe interface card.] Please note the card does not include the power cable - that is a [https://pine64.com/?product=rockpro64-power-cable-for-dual-sata-drives separate item.] Equally you must be aware that connecting SATA drives in this manner means they will be drawing power from your ROCKPro64 - please ensure you are using a 5A or better power supply.&lt;br /&gt;
&lt;br /&gt;
ExplainingComputers did a YouTube [https://www.youtube.com/watch?v=9CCQicHwfDI ROCKPro64 PCIe SATA card review and tests using a Ubuntu console and OpenMediaVault.]&lt;br /&gt;
&lt;br /&gt;
== Wi-Fi &amp;amp; Bluetooth Module ==&lt;br /&gt;
If you have bought the [https://pine64.com/product/rockpro64-1x1-dual-band-wifi-802-11ac-bluetooth-5-0-module Wi-Fi and Bluetooth module] from the Pine store then instructions for connecting it can be found on the accessories page [[Accessories_Step_by_Step_Guides#Wifi.2FBluetooth_module | here.]] '''Please note that the 0.7.9 Ayufan's Linux releases (August 2018) have deliberately DISABLED support for this module in the search for stability. It can be tested and used with the Android image.'''&lt;br /&gt;
&lt;br /&gt;
It can also be used on Manjaro by installing ap6256-firmware and wireless-regdb packages.&lt;br /&gt;
&lt;br /&gt;
== 7&amp;quot; LCD Touch Screen ==&lt;br /&gt;
&lt;br /&gt;
Instructions for connecting the [https://pine64.com/?product=7-lcd-touch-screen-panel LCD touch screen] from the Pine [[Accessories_Step_by_Step_Guides#7.22_LCD_Touch_Screen_Panel | are here.]]&lt;br /&gt;
&lt;br /&gt;
'''Note at present (August 2018) this screen is only supported by the Android image.'''&lt;br /&gt;
&lt;br /&gt;
{{Warning|When using the touchscreen ensure the cables are properly connected and tightened down and that you do not let the metal backplate touch the SBC}}&lt;br /&gt;
&lt;br /&gt;
== RTC Battery Backup ==&lt;br /&gt;
&lt;br /&gt;
The Pine store has a couple of options for RTC battery backups: a [https://pine64.com/product/rtc-backup-battery-holder-2-x-aaa AAA version here] or a [https://pine64.com/product/rtc-backup-battery-holder-cr-2032 CR-2032 version here.] Instructions for plugging in either of them are also on the [[Accessories_Step_by_Step_Guides| Accessories page ]]. For the ROCKPro64, the backup plugs into the RTC connector, number 6 in the board layout diagram above, next to the USB3 and case screw point.&lt;br /&gt;
&lt;br /&gt;
== Acrylic Open Enclosure ==&lt;br /&gt;
&lt;br /&gt;
Assembly instructions for the [https://pine64.com/product/pine-a64-rockpro64-acrylic-open-enclosure acrylic enclosure] from the Pine store are also on the [[Accessories_Step_by_Step_Guides| Accessories page ]]&lt;br /&gt;
&lt;br /&gt;
== NAS case ==&lt;br /&gt;
&lt;br /&gt;
The [https://files.pine64.org/doc/rockpro64/ROCKPro64%20NAS%20Case%20Exploded%20View%20Diagram.pdf Exploded View Installation Diagram] for the [https://pine64.com/product/rockpro64-metal-desktop-nas-casing NAS case from the Pine store].&lt;br /&gt;
&lt;br /&gt;
Detailed '''NAS Case overview and assembly instructions''' can be found [[NASCase | here]].&lt;/div&gt;</summary>
		<author><name>I3master</name></author>
	</entry>
	<entry>
		<id>https://wiki.pine64.org/index.php?title=ROCKPro64&amp;diff=19694</id>
		<title>ROCKPro64</title>
		<link rel="alternate" type="text/html" href="https://wiki.pine64.org/index.php?title=ROCKPro64&amp;diff=19694"/>
		<updated>2023-05-29T01:00:27Z</updated>

		<summary type="html">&lt;p&gt;I3master: Added license info&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:ROCKPro64v21FRONT.jpg|400px|thumb|right|The ROCKPro64]]&lt;br /&gt;
&lt;br /&gt;
The '''ROCKPro64''' is the most powerful Single Board Computer released by PINE64. It is powered by a Rockchip RK3399 Hexa-Core (dual ARM Cortex A72 and quad ARM Cortex A53) 64-Bit Processor with a Mali T-860 Quad-Core GPU. The key features include a PCIe x4 open ended slot, the use of LPDDR4 RAM, and industry standard heatsink mounting holes.&lt;br /&gt;
&lt;br /&gt;
The ROCKPro64 is equipped with 2GB or 4GB LPDDR4 system memory, and 128Mb SPI boot Flash. There is also an optional eMMC module (up to 128GB) and microSD slot for booting. The board is equipped with 1x USB 3.0 type C Host with DP 1.2, 1x USB 3.0 type A Host, 2x USB 2.0 Host, Gigabit Ethernet, PI-2 GPIO Bus, MiPi DSI interface, eDP interface, touch Panel interface, stereo MiPi CSI interface, as well as many other device interfaces such as UART, SPI, I2C, for makers to integrate with sensors and other peripherals. Many different Operating Systems (OS) are freely available from the open source community, such as Android, Linux (Ubuntu, Debian, Arch), and BSD.&lt;br /&gt;
&lt;br /&gt;
== Getting Started ==&lt;br /&gt;
&lt;br /&gt;
The article [[ROCKPro64 Getting Started]] gives important information to get the board up and running.&lt;br /&gt;
&lt;br /&gt;
== Software releases ==&lt;br /&gt;
&lt;br /&gt;
In the [[ROCKPro64 Software Releases]] page, you will find a complete list of currently supported Operating System images that work with the ROCKPro64, as well as other related software. The Software Release page has links to download the images as well as high level instructions to load each image.&lt;br /&gt;
&lt;br /&gt;
Please see the [[Getting started]] page for detailed discussion of what you need (prerequisites) as well as instructions if the high level instructions are insufficient.&lt;br /&gt;
&lt;br /&gt;
== Board Layout ==&lt;br /&gt;
[[Image:ROCKPro64v21REAR.jpg|thumb|right|A hi-res picture of v2.1 rear.]]&lt;br /&gt;
[[Image:FLIR 20220619 125451 686.jpg|thumb|right|A thermal image of v2.1 front (upside-down).]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:ROCKPro64_annotated.jpg|500px|An annotated ROCKPro64]]&lt;br /&gt;
&lt;br /&gt;
=== Main Chips ===&lt;br /&gt;
* RK3399 system-on-chip (1)&lt;br /&gt;
* LPDDR4 SDRAM 1 (18)&lt;br /&gt;
* LPDDR4 SDRAM 2 (3)&lt;br /&gt;
* SPI NOR flash memory (17)&lt;br /&gt;
* RK808 power management (near 19)&lt;br /&gt;
* RTL8211 ethernet transceiver (near 25)&lt;br /&gt;
* ES8316 Sound Codec (on rear of board)&lt;br /&gt;
* The heatsink mounting holes around the RK3399 are 59 mm apart&lt;br /&gt;
&lt;br /&gt;
=== Switches ===&lt;br /&gt;
&lt;br /&gt;
The Power button (11, SW3): is the same as on your mobile phone - press and release after about 1 second to power on. Press and hold for about 3 seconds to power off.&lt;br /&gt;
&lt;br /&gt;
The Reset button (10, SW901): performs a reset.&lt;br /&gt;
&lt;br /&gt;
The Recover button (28, SW900): used to enter maskrom mode.&lt;br /&gt;
&lt;br /&gt;
=== Connectors, Sockets and Headers ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;line-height: 1.4;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;font-size: .9em;&amp;quot;&lt;br /&gt;
! Diagram !! Schematic&amp;lt;br&amp;gt;designator !! Silkscreen&amp;lt;br&amp;gt;label !! Number&amp;lt;br&amp;gt;of pins !! Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 2  || U39   || PI-2-bus || style=&amp;quot;text-align: center;&amp;quot; | 40 || Pi-2 bus &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 4  || J8    || +FAN- || style=&amp;quot;text-align: center;&amp;quot; | 2 || PWM controlled fan header&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 5  || J10   || SPDIF || style=&amp;quot;text-align: center;&amp;quot; | 3 || SPDIF header&lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 6  || U6    || +RTC- || style=&amp;quot;text-align: center;&amp;quot; | 2 || RTC battery backup header&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7  || U31   || Wifi-BT || style=&amp;quot;text-align: center;&amp;quot; | 16 || SDIO WIFI/BT module-MIMO 2&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 8  || USB3  ||  || style=&amp;quot;text-align: center;&amp;quot; | 9 || USB-3 and USB Type C&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 9  || USB1  ||  || style=&amp;quot;text-align: center;&amp;quot; | 2×4 || Dual USB-2&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 12 || IR1   || IR || style=&amp;quot;text-align: center;&amp;quot; | 3 || infrared receiver socket &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 13 || J16   || Headphone+mic || style=&amp;quot;text-align: center;&amp;quot; | 4 || Headphone + mic 3.5mm jack&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -  || CON16 || GND PWR RST GND || style=&amp;quot;text-align: center;&amp;quot; | 4 || Power &amp;amp; reset, unpopulated&amp;lt;br&amp;gt;header near Headphone jack&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 14 || U29   || EMMC || style=&amp;quot;text-align: center;&amp;quot; | 34 || eMMC connector&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 14* || J13  ||  || style=&amp;quot;text-align: center;&amp;quot; | 13 || TF-card, a.k.a. microSD&amp;lt;br&amp;gt;(* under 14 on the bottom side)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 15 || U30   ||  || style=&amp;quot;text-align: center;&amp;quot; | 14 || SDIO WIFI/BT module-MIMO 1&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 16 || SW4   ||  || style=&amp;quot;text-align: center;&amp;quot; | 2 || Jumper to [[#Disable eMMC]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 19 || J15   || PCI || style=&amp;quot;text-align: center;&amp;quot; | 64 || PCI-express X4 socket&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 20 || J21   || DSI || style=&amp;quot;text-align: center;&amp;quot; | 30 || DSI&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 21 || J22   || EDP || style=&amp;quot;text-align: center;&amp;quot; | 30 || LCD EDP&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 22 || CON1  || TP || style=&amp;quot;text-align: center;&amp;quot; | 6 || touch panel connector&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 23 || CON15 ||  || style=&amp;quot;text-align: center;&amp;quot; | 4 || DC out for SATA disk cable&amp;lt;br&amp;gt;(direct connect from DC-IN)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 24 || J11   || DC-IN || style=&amp;quot;text-align: center;&amp;quot; | 2 || Power input, positive tip;&amp;lt;br&amp;gt;12V/3A (minimum) recommended&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 25 || U32   ||  || style=&amp;quot;text-align: center;&amp;quot; | 8 || 8P8C (often referred to as 'RJ45')&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 26 || J14   ||  || style=&amp;quot;text-align: center;&amp;quot; | 19 || HDMI&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 27 || J17   || MIPI CAM || style=&amp;quot;text-align: center;&amp;quot; | 32 || MIPI-1&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 29 || J19   || MIPI CAM || style=&amp;quot;text-align: center;&amp;quot; | 32 || MIPI-2&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 30 || J18   || CIF || style=&amp;quot;text-align: center;&amp;quot; | 26 || CIF&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== LEDs ===&lt;br /&gt;
&lt;br /&gt;
A green LED next to the 12V input barrel connector will light as long as there is 12V applied to the connector. (Even if the RockPro64 is powered off.)&lt;br /&gt;
&lt;br /&gt;
A white LED behind the reset button will light as long as the RockPro64 is running (it comes on a few seconds after power on, when control is passed to the operating system.)&lt;br /&gt;
&lt;br /&gt;
A red LED behind the reset button is DIY - it is lit for example if the board is in OTG mode with an Ayufan image, or if an Android image is in standby mode.&lt;br /&gt;
&lt;br /&gt;
Yellow and green LEDs on the LAN socket behave in a standard way.&lt;br /&gt;
&lt;br /&gt;
=== Jumpers ===&lt;br /&gt;
They are used for boot device selection, as described in the following section.&lt;br /&gt;
&lt;br /&gt;
==== Disable eMMC ====&lt;br /&gt;
&lt;br /&gt;
There is an unlabelled (on the PCB silk-screen) 2-pin jumper (16) between the eMMC socket (14) and the SPI chip (17). It is designated as SW4 on the [[#Board Information, Schematics and Certifications | schematic diagram]]. The default condition is OPEN (no jumper). It is useful for controlling the boot as follows:&lt;br /&gt;
&lt;br /&gt;
Default boot device (with no SPI software) is eMMC, then SDcard. If both the eMMC and the SDcard contain bootable images then the eMMC can be disabled by installing the jumper. This completely removes the eMMC from the resulting OS. If you wish the eMMC to be visible in the booted OS the jumper should be removed 2 seconds after applying power (and before the white LED comes on).&lt;br /&gt;
&lt;br /&gt;
The possible combinations are summarised in the table below.&lt;br /&gt;
&lt;br /&gt;
* 1 = present&lt;br /&gt;
* 0 = not present&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
! µSD !! eMMC !! SW4 !! boot from&lt;br /&gt;
|-&lt;br /&gt;
| 0 || 0 || 0 || unsupported&lt;br /&gt;
|-&lt;br /&gt;
| 0 || 0 || 1 || unsupported&lt;br /&gt;
|-&lt;br /&gt;
| 0 || 1 || 0 || eMMC&lt;br /&gt;
|-&lt;br /&gt;
| 0 || 1 || 1 || unsupported&lt;br /&gt;
|-&lt;br /&gt;
| 1 || 0 || 0 || SDCard&lt;br /&gt;
|-&lt;br /&gt;
| 1 || 0 || 1 || SDCard&lt;br /&gt;
|-&lt;br /&gt;
| 1 || 1 || 0 || eMMC&lt;br /&gt;
|-&lt;br /&gt;
| 1 || 1 || 1 || SDCard&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Disable SPI (while booting) ====&lt;br /&gt;
There is a second possibility to jumper your ROCKPro64: If you mess-up your SPI and are unable to boot, jumpering pins 23 (CLK) and 25 pin (GND) on the PI-2-bus header will disable the SPI as a boot device. (This was taken from the IRC logs, 09 August 2018 @ 17:23) You have to remove the jumper 2 seconds after having started your RP64 (before the white LED turns ON) otherwise the SPI will be missing and you won't be able to flash it.&lt;br /&gt;
Ayufan images contain (at the moment) only one script for the SPI and the RP64, it's &amp;quot;rockpro64_reset_spi_flash&amp;quot;. Other SPI scripts are dedicated to the R64 (as it is written on the name) and it will mess-up your RP64 SPI if you use them.&lt;br /&gt;
&lt;br /&gt;
== Hardware Compatibility ==&lt;br /&gt;
&lt;br /&gt;
The hardware compatibility list can be found under [[ROCKPro64 Hardware compatibility]].&lt;br /&gt;
&lt;br /&gt;
== Board Features ==&lt;br /&gt;
&lt;br /&gt;
This section outlines the most important characteristics of the board and its components.&lt;br /&gt;
&lt;br /&gt;
=== SoC and Memory Specification ===&lt;br /&gt;
* Based on Rockchip RK3399&lt;br /&gt;
[[File:Rockchip_RK3399.png|right]]&lt;br /&gt;
&lt;br /&gt;
==== CPU Architecture ====&lt;br /&gt;
&lt;br /&gt;
* [https://developer.arm.com/products/processors/cortex-a/cortex-a72 Dual-core Cortex-A72 up to 2.0GHz CPU]&lt;br /&gt;
* [https://developer.arm.com/products/processors/cortex-a/cortex-a53 Quad-core Cortex-A53 up to 1.5GHz CPU]&lt;br /&gt;
* big.LITTLE architecture: Dual Cortex-A72 + Quad Cortex-A53, 64-bit CPU&lt;br /&gt;
* Cortex-A72:&lt;br /&gt;
** 1-4x Symmetrical Multiprocessing (SMP) within a single processor cluster, and multiple coherent SMP processor clusters through AMBA 5 CHI or AMBA 4 ACE technology&lt;br /&gt;
** AArch64 for 64-bit support and new architectural features&lt;br /&gt;
** L1 cache 48KB Icache and 32KB Dcache for each A72 &lt;br /&gt;
** L2 cache 1024KB for big cluster &lt;br /&gt;
** DSP &amp;amp; SIMD extensions&lt;br /&gt;
** VFPv4 floating point&lt;br /&gt;
** Hardware virtualization support&lt;br /&gt;
* Cortex-A53:&lt;br /&gt;
** L1 cache 32KB Icache and 32KB Dcache for each A53&lt;br /&gt;
** L2 cache 512KB for little cluster &lt;br /&gt;
* Full implementation of the ARM architecture v8-A instruction set&lt;br /&gt;
* ARM Neon Advanced SIMD (single instruction, multiple data) support for accelerated media and signal processing computation&lt;br /&gt;
* ARMv8 Cryptography Extensions&lt;br /&gt;
* In-order pipeline with symmetric dual-issue of most instructions&lt;br /&gt;
* Include VFP v3 hardware to support single and double-precision operations&lt;br /&gt;
* TrustZone technology support&lt;br /&gt;
* Full CoreSight debug solution&lt;br /&gt;
* One isolated voltage domain to support DVFS&lt;br /&gt;
&lt;br /&gt;
==== GPU Architecture ====&lt;br /&gt;
&lt;br /&gt;
* [https://developer.arm.com/products/graphics-and-multimedia/mali-gpus/mali-t860-and-mali-t880-gpus ARM Mali-T860MP4 Quad-core GPU]&lt;br /&gt;
* The highest performance GPUs built on Arm Mali’s famous Midgard architecture, the Mali-T860 GPU is designed for complex graphics use cases and provides stunning visuals for UHD content.&lt;br /&gt;
* Frequency: 650MHz &lt;br /&gt;
* Throughput: 1300Mtri/s, 10.4Gpix/s &lt;br /&gt;
* OpenGL® ES 1.1, 1.2, 2.0, 3.1, 3.2, Vulkan 1.0*, OpenCL™ 1.1, 1.2, DirectX® 11 FL11_1, RenderScript™.&lt;br /&gt;
&lt;br /&gt;
==== System Memory ====&lt;br /&gt;
* LPDDR4 RAM Memory Variants: Dual Channels 2GB and 4GB.&lt;br /&gt;
* Storage Memory: 128Mb built-in SPI Flash memory (as at August 2018 only support for USB boot).&lt;br /&gt;
&lt;br /&gt;
=== Display ===&lt;br /&gt;
&lt;br /&gt;
* Dual VOP: one supports resolutions up to 4096x2160 and [https://www.arm.com/why-arm/technologies/graphics-technologies/arm-frame-buffer-compression AFBC]; the other supports resolutions up to 2560x1600&lt;br /&gt;
* Dual channel MIPI-DSI (4 lanes per channel)&lt;br /&gt;
* eDP 1.3 (4 lanes with 10.8Gbps) to support displays, with PSR&lt;br /&gt;
* Digital Video port up to 4Kp60&lt;br /&gt;
* DisplayPort 1.2 (4 lanes, up to 4K 60Hz)&lt;br /&gt;
* Supports Rec.2020 and conversion to Rec.709 &lt;br /&gt;
&lt;br /&gt;
=== Video ===&lt;br /&gt;
&lt;br /&gt;
* Digital Video output up to 4K@60Hz&lt;br /&gt;
* 4K HDR @ 30fps&lt;br /&gt;
* H.264/AVC Base/Main/High/High10 profile @ level 5.1; up to 4Kx2K @ 60fps&lt;br /&gt;
* H.265/HEVC Main/Main10 profile @ level 5.1 High-tier; up to 4Kx2K @ 60fps&lt;br /&gt;
* VP9, up to 4Kx2K @ 60fps&lt;br /&gt;
* MPEG-1, ISO/IEC 11172-2, up to 1080P @ 60fps&lt;br /&gt;
* MPEG-2, ISO/IEC 13818-2, SP@ML, MP@HL, up to 1080P @ 60fps&lt;br /&gt;
* MPEG-4, ISO/IEC 14496-2, SP@L0-3, ASP@L0-5, up to 1080P @ 60fps&lt;br /&gt;
* VC-1, SP@ML, MP@HL, AP@L0-3, up to 1080P @ 60fps&lt;br /&gt;
* MVC is supported based on H.264 or H.265, up to 1080P @ 60fps&lt;br /&gt;
&lt;br /&gt;
=== Audio ===&lt;br /&gt;
&lt;br /&gt;
* 3.5mm Phone Jack&lt;br /&gt;
* 3-pin S/PDIF header &lt;br /&gt;
* Audio via Digital Video port&lt;br /&gt;
&lt;br /&gt;
=== Camera ===&lt;br /&gt;
&lt;br /&gt;
* Dual MIPI CSI，dual ISP, maximum input resolution of 13M pixels &lt;br /&gt;
&lt;br /&gt;
=== Network ===&lt;br /&gt;
&lt;br /&gt;
* 10/100/1000Mbps Ethernet - Capable of pushing 941 MBit/s in iperf3&lt;br /&gt;
* Wi-Fi 802.11 ac/a/b/g/n with Bluetooth 4.01 (old version with 2x2) / Bluetooth 5 (new version with 1x1) (optional)&lt;br /&gt;
&lt;br /&gt;
=== Storage ===&lt;br /&gt;
&lt;br /&gt;
* microSD - bootable, support SDHC and SDXC, storage up to 256GB&lt;br /&gt;
* eMMC - bootable (optional eMMC Module)&lt;br /&gt;
* 1 USB3.0 Host port&lt;br /&gt;
* 1 USB type C OTG port with DP output &lt;br /&gt;
* 2 USB2.0 Dedicated Host ports&lt;br /&gt;
&lt;br /&gt;
=== Expansion Ports ===&lt;br /&gt;
&lt;br /&gt;
* 2x20 pins &amp;quot;Pi2&amp;quot; GPIO Header&lt;br /&gt;
* PCIe 2.1 (4 full-duplex lanes with 20Gbps) x4 open ended port&lt;br /&gt;
&lt;br /&gt;
==== GPIO Pins ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable plainrowheaders&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;width:20em;&amp;quot; | Assigned To&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Pin Nr.&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Pin Nr.&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;width:20em;&amp;quot; | Assigned To&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| 3.3 V&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 1&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 2&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| 5 V&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| GPIO1_C4 (I2C8_SDA) &amp;lt;sup style=&amp;quot;font-style:italic;color:green&amp;quot;&amp;gt;a&amp;lt;/sup&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 3&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 4&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| 5 V&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| GPIO1_C5 (I2C8_SCL) &amp;lt;sup style=&amp;quot;font-style:italic;color:green&amp;quot;&amp;gt;a&amp;lt;/sup&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 5&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 6&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GND&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| GPIO4_D0 (CPU_GPCLK)&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 7&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 8&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GPIO4_C4 (UART2_TX)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| GND&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 9&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 10&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GPIO4_C3 (UART2_RX)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| GPIO1_C6&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 11&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 12&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GPIO3_D0 (I2S0_CLK)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| GPIO1_C2&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 13&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 14&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GND&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| GPIO1_A1&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 15&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 16&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GPIO1_A4&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| 3.3 V&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 17&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 18&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GPIO4_C5 [SPDIF]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| [UART4_TX] GPIO1_B0 (SPI1_TXD)&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 19&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 20&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GND&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| [UART4_RX] GPIO1_A7 (SPI1_RXD)&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 21&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 22&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GPIO4_D1&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| GPIO1_B1 (SPI1_CLK)&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 23&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 24&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GPIO1_B2 (SPI1_CSN0)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| GND&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 25&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 26&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GPIO1_B5&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| GPIO1_B3 (I2C4_SDA)&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 27&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 28&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GPIO1_B4 (I2C4_SCL)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| GPIO4_D3&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 29&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 30&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GND&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| GPIO4_D4&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 31&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 32&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GPIO3_D4 (I2S0_SDI1SDO3)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| GPIO3_D5 (I2S0_SDI2SDO2)&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 33&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 34&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GND&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| GPIO3_D2 (I2S0_LRCKTX)&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 35&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 36&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GPIO3_D6 (I2S0_SDI3SDO1)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| GPIO3_D1 (I2S0_LRCKRX)&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 37&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 38&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GPIO3_D3 (I2S0_SDI0)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| GND&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 39&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 40&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GPIO3_D7 (I2S0_SDO0)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== Notes =====&lt;br /&gt;
&lt;br /&gt;
* '''a:''' pulled high to 3.3V through 2.2kOhm resistor&lt;br /&gt;
&lt;br /&gt;
===== Linux /dev/gpiochip Assignments =====&lt;br /&gt;
&lt;br /&gt;
{| class=wikitable style=&amp;quot;max-width: 1000px; text-align: center;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | Pin Nr.&lt;br /&gt;
| 3 || 5 || 7 || 8 || 10 || 11 || 12 || 13 || 15 || 16 || 18 || 19 || 21 || 22 || 23 || 24 || 26 || 27 || 28 || 29 || 31 || 32 || 33 || 35 || 36 || 37 || 38 || 40&lt;br /&gt;
|- &lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | Chip&lt;br /&gt;
| 1 || 1 || 4 || 4 || 4 || 1 || 3 || 1 || 1 || 1 || 4 || 1 || 1 || 4 || 1 || 1 || 1 || 1 || 1 || 4 || 4 || 3 || 3 || 3 || 3 || 3 || 3 || 3&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | Line&lt;br /&gt;
| 20 || 21 || 24 || 20 || 19 || 22 || 24 || 18 || 1 || 4 || 21 || 8 || 7 || 25 || 9 || 10 || 13 || 11 || 12 || 27 || 28 || 28 || 29 || 26 || 30 || 25 || 27 || 31&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
On Linux, using the new &amp;lt;code&amp;gt;/dev/gpiochip&amp;lt;/code&amp;gt; API, the &amp;lt;code&amp;gt;''n''&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;GPIO''n''_''XX''&amp;lt;/code&amp;gt; appears to correlate to the number of the &amp;lt;code&amp;gt;/dev/gpiochip''n''&amp;lt;/code&amp;gt;, and the &amp;lt;code&amp;gt;''XX''&amp;lt;/code&amp;gt; to the definition &amp;lt;code&amp;gt;RK_P''XX''&amp;lt;/code&amp;gt; of lines in &amp;lt;code&amp;gt;include/dt-bindings/pinctrl/rockchip.h&amp;lt;/code&amp;gt; of the Linux kernel source. Having these named in the dts would be nice.&lt;br /&gt;
&lt;br /&gt;
You can use [https://git.kernel.org/pub/scm/libs/libgpiod/libgpiod.git/ libgpiod] to drive them, and test them with the included tools (&amp;lt;code&amp;gt;gpioinfo&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;gpioset&amp;lt;/code&amp;gt;, ...)&lt;br /&gt;
&lt;br /&gt;
For example, &amp;lt;code&amp;gt;gpioset 4 25=1&amp;lt;/code&amp;gt; (run as root) would turn pin 22 on. Do beware that poking the wrong GPIO pin can lock up your system.&lt;br /&gt;
&lt;br /&gt;
The conversion table at right is also available as a [https://gist.github.com/CounterPillow/fe066655bf2d929148fe6eb3f15b1dd5 C header file].&lt;br /&gt;
&lt;br /&gt;
=== Working Features ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! Feature/Option&lt;br /&gt;
! Android&lt;br /&gt;
! Android Version&lt;br /&gt;
! Linux&lt;br /&gt;
! Linux Version&lt;br /&gt;
! Test/Verify Steps&lt;br /&gt;
! Notes&lt;br /&gt;
! Product Link&lt;br /&gt;
|-&lt;br /&gt;
| PINE64 LCD Touchscreen (Screen/Touch)&lt;br /&gt;
| Yes/Yes&lt;br /&gt;
| &lt;br /&gt;
| No/No&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| Maybe [https://github.com/avafinger/pine64-touchscreen this] will help get this working?&lt;br /&gt;
| [https://pine64.com/?product=7-lcd-touch-screen-panel 7″ LCD Touch Screen Panel]&lt;br /&gt;
|-&lt;br /&gt;
| Wireless&lt;br /&gt;
&amp;lt;small&amp;gt;ROCKPro64 2×2 MIMO Dual Band WiFi 802.11AC / Bluetooth 4.2 Module (old)&lt;br /&gt;
ROCKPro64 1x1 Dual Band WiFi 802.11AC / Bluetooth 5.0 Module (new)&amp;lt;/small&amp;gt;&lt;br /&gt;
| Yes/Yes&lt;br /&gt;
| &lt;br /&gt;
| No/Yes*&lt;br /&gt;
| &lt;br /&gt;
| For the &amp;quot;new&amp;quot; ROCKPro64 WIFI module: Verified with Manjaro ARM (kernel 6.2.5). A config file (&amp;quot;firmware file&amp;quot;) is needed at &amp;lt;code&amp;gt;/lib/firmware/brcm/brcmfmac43455-sdio.txt&amp;lt;/code&amp;gt;. See [[#Getting wifi working (&amp;quot;new&amp;quot; wifi module)]] for the file contents and details.&lt;br /&gt;
| In 0.7.9 Ayufan linux releases this is deliberately disabled for stability reasons. After testing for a few hours, on Manjaro ARM (kernel 6.2.5), there haven't been stability issues found (WiFi stayed connected). On a 5GHz network (802.11AC), it was tested to be possible to get about 120Mbps using the &amp;quot;new&amp;quot; ROCKPro64 WIFI module.&lt;br /&gt;
| [https://store.pine64.org/product/rockpro64-1x1-dual-band-wifi-802-11acbluetooth-5-0-module ROCKPro64 1x1 Dual Band WiFi 802.11AC / Bluetooth 5.0 Module]&lt;br /&gt;
|-&lt;br /&gt;
| USB OTG&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| use this script: [https://github.com/ayufan-rock64/linux-package/blob/master/root-rockpro64/usr/local/sbin/rockpro64_enable_otg.sh rockpro64_enable_otg.sh], then configure ip on usb0: ifconfig usb0 169.169.222.222 and run iperf, you should likely see about 200-300MB/s&lt;br /&gt;
| [[ROCKPro64#OTG_mode]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| USB Mass Storage USB2/USB3&lt;br /&gt;
| Yes/yes&lt;br /&gt;
| &lt;br /&gt;
| Yes/Yes&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Dedicated Fan Power (pwm1)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| Yes&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| You might want to use [https://github.com/tuxd3v/ats ATS].&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| GPIO pins (raw or via RPI python scripts)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| Check out [https://forum.frank-mankel.org/topic/292/rockpro64-rp64-gpio/2 what Frank Mankel has done].&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| MIPI CSI Camera 1 and 2&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| eDP&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| HDMI Audio&lt;br /&gt;
| Yes&lt;br /&gt;
| 7.1.2&lt;br /&gt;
| Yes&lt;br /&gt;
| 4.4.132-1083 - 4.4.138-1100&lt;br /&gt;
| &lt;br /&gt;
| Stopped working in 4.4.154.1105. Ayufan is looking into it. This is working in Manjaro ARM (kernel 6.2.5). Select the &amp;lt;code&amp;gt;Analog Output (Built-in Audio Stereo)&amp;lt;/code&amp;gt; option in the audio output device selection window (either use &amp;lt;code&amp;gt;pavucontrol&amp;lt;/code&amp;gt; or the volume button in the KDE desktop). Despite the slightly misleading name, audio does go through the HDMI port. See here for details: https://forum.manjaro.org/t/no-hdmi-audio-on-rockpro64/25595/2.&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 3.5mm Audio/Mic&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| USB-C Host&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Display via USB-C&lt;br /&gt;
| Yes&lt;br /&gt;
| 7.x and 8.x&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| eDP via USB-C per tillim. No sound on Android 7.x. Sound does work on Android 8.x&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| ROCKPro64 PLAYBOX ENCLOSURE&lt;br /&gt;
| N/A&lt;br /&gt;
| &lt;br /&gt;
| N/A&lt;br /&gt;
| &lt;br /&gt;
| N/A&lt;br /&gt;
| Ventilation does not exist, thus requires manual changes to add venting. Case should be modified to account power adapter not being centered in cut holes. Opening the case once close without modifying it first is near impossible without special tools. Graphene heatsink is included and does well for Linux but not Android.&lt;br /&gt;
| https://pine64.com/?product=rockpro64-playbox-enclosure&lt;br /&gt;
|-&lt;br /&gt;
| ROCKPro64 30mm Tall Profile Heatsink&lt;br /&gt;
| N/A&lt;br /&gt;
| &lt;br /&gt;
| N/A&lt;br /&gt;
| &lt;br /&gt;
| N/A&lt;br /&gt;
| &lt;br /&gt;
| https://store.pine64.org/?product=rockpro64-heatsink&lt;br /&gt;
|-&lt;br /&gt;
| ROCKPro64 20mm Mid Profile Heatsink&lt;br /&gt;
| N/A&lt;br /&gt;
| &lt;br /&gt;
| N/A&lt;br /&gt;
| &lt;br /&gt;
| N/A&lt;br /&gt;
| &lt;br /&gt;
| https://pine64.com/?product=rockpro64-20mm-mid-profile-heatsink&lt;br /&gt;
|-&lt;br /&gt;
| Fan For ROCKPro64 20mm Mid Profile Heatsink&lt;br /&gt;
| N/A&lt;br /&gt;
| &lt;br /&gt;
| N/A&lt;br /&gt;
| &lt;br /&gt;
| N/A&lt;br /&gt;
| You might want to use [https://github.com/tuxd3v/fanctl fanctl] to control the fan while keeping your CPU cool&lt;br /&gt;
| https://pine64.com/?product=fan-for-rockpro64-20mm-mid-profile-heatsink&lt;br /&gt;
|-&lt;br /&gt;
| HDMI output 4K@60Hz&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| PCIe 2.1&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Real Time Clock (RTC) battery backup&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| https://store.pine64.org/?product=rtc-backup-battery-cr-battery&lt;br /&gt;
|-&lt;br /&gt;
| Boot from USB/PXE&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
RockChip themselves have tables of supported features at 4.4 and mainline kernel versions [http://opensource.rock-chips.com/wiki_Status_Matrix in their wiki here].&lt;br /&gt;
&lt;br /&gt;
== Board Information, Schematics and Certifications ==&lt;br /&gt;
* Board Dimensions: 133mm x 80mm x 19mm&lt;br /&gt;
* Input Power: +12V @3A/5A with 5.5mm/2.1mm Type M Barrel type DC connector&lt;br /&gt;
* [https://files.pine64.org/doc/rockpro64/rockpro64_v21-SCH.pdf ROCKPro64 Schematic v2.1 (Second Batch Production Release)]&lt;br /&gt;
** [https://files.pine64.org/doc/rockpro64/RockPro64_v21_Boardoutline-top.dxf ROCKPro64 v2.1 Board Top Outline in AutoCad DXF format]&lt;br /&gt;
** [https://files.pine64.org/doc/rockpro64/RockPro64_v21_Boardoutline-bottom.dxf ROCKPro64 v2.1 Board Bottom Outline in AutoCad DXF format]&lt;br /&gt;
** [https://files.pine64.org/doc/rockpro64/RockPro64_v21_Boardoutline-top.pdf ROCKPro64 v2.1 Board Top Outline in PDF format]&lt;br /&gt;
** [https://files.pine64.org/doc/rockpro64/RockPro64_v21_Boardoutline-bottom.pdf ROCKPro64 v2.1 Board Bottom Outline in PDF format]&lt;br /&gt;
* [https://files.pine64.org/doc/rockpro64/rockpro64_v20-SCH.pdf ROCKPro64 Schematic v2.0 (Pilot Production Release)]&lt;br /&gt;
** [https://files.pine64.org/doc/rockpro64/ROCKPRo64%20Engineering%20Change%20Notice%2020180628RP01.pdf Engineering Change Notice for v2.0 to turn on 3.3V power on PCIe]&lt;br /&gt;
* [https://files.pine64.org/doc/rockpro64/rockpro64_wifi_ap6359SA.pdf ROCKPro64 AP6359SA Wifi/BT Schematic]&lt;br /&gt;
* [https://files.pine64.org/doc/rockpro64/Rockpro64%20Pi-2%20Connector%20ver0.2.png ROCKPro64 Pi-2 Pin assignment and definition]&lt;br /&gt;
* [https://files.pine64.org/doc/rockpro64/RockPro-3D-model.zip ROCKPro64 3D model]&lt;br /&gt;
&lt;br /&gt;
Certifications:&lt;br /&gt;
&lt;br /&gt;
* Disclaimer: Please note that PINE64 SBC is not a &amp;quot;final&amp;quot; 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.&lt;br /&gt;
* [https://files.pine64.org/doc/cert/ROCKPro64%20FCC%20SDOC%20Certificate.pdf ROCKPro64 FCC Certificate]&lt;br /&gt;
* [https://files.pine64.org/doc/cert/ROCKPro64%20CE-EMC%20Certificate.pdf ROCKPro64 CE Certificate]&lt;br /&gt;
* [https://files.pine64.org/doc/cert/ROCKPro64%20ROHS%20%20SEC180529404001E%20Report.pdf ROCKPro64 RoHS Report]&lt;br /&gt;
&lt;br /&gt;
== Datasheets for Components and Peripherals ==&lt;br /&gt;
&lt;br /&gt;
Rockchip RK3399 SoC information:&lt;br /&gt;
&lt;br /&gt;
* [https://www.rock-chips.com/a/en/products/RK33_Series/2016/0419/758.html Rockchip RK3399 SoC Brief]&lt;br /&gt;
* [http://opensource.rock-chips.com/images/d/d7/Rockchip_RK3399_Datasheet_V2.1-20200323.pdf Rockchip RK3399 Datasheet V2.1]&lt;br /&gt;
* [http://opensource.rock-chips.com/images/e/ee/Rockchip_RK3399TRM_V1.4_Part1-20170408.pdf Rockchip RK3399 Technical Reference Manual part 1]&lt;br /&gt;
* [https://files.pine64.org/doc/datasheet/rockpro64/RK808%20datasheet%20V0.8.pdf Rockchip RK808 Datasheet V0.8]&lt;br /&gt;
&lt;br /&gt;
LPDDR4 (200 Balls) SDRAM:&lt;br /&gt;
&lt;br /&gt;
* [https://files.pine64.org/doc/datasheet/rockpro64/SM512M32Z01MD2BNP(200BALL).pdf Micron LPDDR4 Mobile LPDDR4 Datasheet]&lt;br /&gt;
&lt;br /&gt;
eMMC information:&lt;br /&gt;
&lt;br /&gt;
* [https://files.pine64.org/doc/rock64/PINE64_eMMC_Module_20170719.pdf PINE64 eMMC module schematic]&lt;br /&gt;
* [https://files.pine64.org/doc/rock64/usb%20emmc%20module%20adapter%20v2.pdf PINE64 USB adapter for eMMC module V2 schematic]&lt;br /&gt;
* [https://files.pine64.org/doc/rock64/USB%20adapter%20for%20eMMC%20module%20PCB.tar PINE64 USB adapter for eMMC module PCB in JPEG]&lt;br /&gt;
* [https://files.pine64.org/doc/datasheet/pine64/E-00517%20FORESEE_eMMC_NCEMAM8B-16G%20SPEC.pdf 16GB Foresee eMMC Datasheet]&lt;br /&gt;
* [https://files.pine64.org/doc/datasheet/pine64/SDINADF4-16-128GB-H%20data%20sheet%20v1.13.pdf 32GB/64GB/128GB SanDisk eMMC Datasheet]&lt;br /&gt;
&lt;br /&gt;
SPI NOR Flash information:&lt;br /&gt;
&lt;br /&gt;
* [https://files.pine64.org/doc/datasheet/pine64/w25q128jv%20spi%20revc%2011162016.pdf WinBond 128Mb SPI Flash Datasheet]&lt;br /&gt;
* [https://files.pine64.org/doc/datasheet/pine64/GD25Q128C-Rev2.5.pdf GigaDevice 128Mb SPI Flash Datasheet]&lt;br /&gt;
&lt;br /&gt;
Heatsink related info:&lt;br /&gt;
&lt;br /&gt;
* [https://files.pine64.org/doc/datasheet/rockpro64/Rockpro%20Passive%20Heatsink%20Spec.jpg ROCKPro64 Passive Heatsink Dimension Drawing]&lt;br /&gt;
* [https://files.pine64.org/doc/datasheet/rockpro64/LMS-TC150%20Silicon%20Thermal%20Pad.pdf Heatsink Thermal Pad Specification]&lt;br /&gt;
&lt;br /&gt;
Wireless related info:&lt;br /&gt;
&lt;br /&gt;
* AMPAK AP6256 11AC WiFi + Bluetooth5.0 Datasheet [https://files.pine64.org/doc/datasheet/rockpro64/AP6256%20datasheet_V1.3_12202017.pdf (v. 1.3)] [http://files.pine64.org/doc/datasheet/PinebookPro/AP6256%20datasheet_V1.7_12282018.pdf (v. 1.7)]&lt;br /&gt;
&lt;br /&gt;
Ethernet related info:&lt;br /&gt;
&lt;br /&gt;
* [https://files.pine64.org/doc/datasheet/rock64/RTL8211F-CG-Realtek.pdf Realtek RTL8211F 10/100/1000M Ethernet Transceiver Datasheet]&lt;br /&gt;
&lt;br /&gt;
Peripheral related info:&lt;br /&gt;
&lt;br /&gt;
* [https://files.pine64.org/doc/datasheet/rockpro64/ASM1061_Data%20Sheet_R1_8.pdf asmedia ASM1061 PCIe SATA 2.0 Datasheet]&lt;br /&gt;
&lt;br /&gt;
Remote control button mapping:&lt;br /&gt;
&lt;br /&gt;
* [https://files.pine64.org/doc/Pine%20A64%20Schematic/remote-wit-logo.jpg Official Remote Control for the PINE64 Button Mapping]&lt;br /&gt;
&lt;br /&gt;
Audio Codec (ES8316) (under board):&lt;br /&gt;
&lt;br /&gt;
* [http://everest-semi.com/pdf/ES8316%20PB.pdf Everest ES8316 Audio Codec]&lt;br /&gt;
&lt;br /&gt;
PWM controlled fan, SPDIF, and RTC Battery Backup headers:&lt;br /&gt;
&lt;br /&gt;
* [https://www.jst-mfg.com/product/pdf/eng/ePH.pdf JST-PH connector]&lt;br /&gt;
&lt;br /&gt;
== Useful Articles and Blog Posts ==&lt;br /&gt;
&lt;br /&gt;
If you want to dive in to the ecosystem, here's a short list of various articles and blog posts that can help you set up your soft- or hardware development environment.&lt;br /&gt;
&lt;br /&gt;
* [https://stikonas.eu/wordpress/2019/09/15/blobless-boot-with-rockpro64/ Blobless boot with RockPro64 by Andrius Štikonas]&lt;br /&gt;
&lt;br /&gt;
* [https://marcin.juszkiewicz.com.pl/2020/06/17/ebbr-on-rockpro64/ EBBR on RockPro64 by Marcin Juszkiewicz]&lt;br /&gt;
&lt;br /&gt;
* [[ROCKPro64 Device Tree Overlays on Mainline]]&lt;br /&gt;
&lt;br /&gt;
== The NAS Case for the ROCKPro64 ==&lt;br /&gt;
&lt;br /&gt;
[[file:NASCaseMain.png|thumb|right|Front View of the PINE64 NAS Case for the ROCKPro64]]&lt;br /&gt;
&lt;br /&gt;
Please [[NASCase|follow this this link]] for '''detailed instructions on how to assemble the ROCKPro64 NAS Case'''.&lt;br /&gt;
&lt;br /&gt;
The NAS Case instructions also contains detailed information about:&lt;br /&gt;
*what the NAS Case ships with&lt;br /&gt;
*What additional things you need to purchase for your NAS Case&lt;br /&gt;
*What optional things you can consider purchasing for your NAS build&lt;br /&gt;
*What OS Image we recommend you use for your NAS build&lt;br /&gt;
*IO accessibility after installing the ROCKPro64 into the NAS Case&lt;br /&gt;
*[https://files.pine64.org/doc/rockpro64/ROCKPro64%20NAS%20Case%20Exploded%20View%20Diagram.pdf NAS Case Exploded View]&lt;br /&gt;
*[https://files.pine64.org/doc/rockpro64/NAS%20Case%20Drawing.dwg NAS Case Drawing]&lt;br /&gt;
&lt;br /&gt;
== 3D printable ITX mounting brackets ==&lt;br /&gt;
&lt;br /&gt;
[[file:ITX-Bracket-Mounted.jpg|300px|thumb|right|A Quartz64-A mounted in an ITX case using 3D printed brackets]]&lt;br /&gt;
&lt;br /&gt;
Allows mounting a ROCKPro64-A or Quartz64-A board inside a regular PC case that conforms to the ITX standard, using 3D printed brackets:&lt;br /&gt;
&lt;br /&gt;
* AMF/STL/STEP files plus the original FreeCAD file used to create the models [[File:RP64-A_Q64-A_to_ITX_mounting_brackets.zip]]&lt;br /&gt;
* Make sure to flip the two brackets by 180 degrees on one of the horizontal axes (X/Y) in your slicer of choice before printing to avoid unnecessary supports&lt;br /&gt;
* To allow enough clearance between the board and the bracket you either need to print four copies of the washer model or add nut(s) between the board and the bracket&lt;br /&gt;
* If using nuts for the clearance between the board and the brackets, make sure it creates at least 3.2mm of spacing in between&lt;br /&gt;
* Depending on the accuracy and calibration of a 3D printer, slight deviation can occur and you likely need to manually widen some of the holes to allow screws to fit&lt;br /&gt;
&lt;br /&gt;
== Other Resources ==&lt;br /&gt;
&lt;br /&gt;
* [https://forum.pine64.org/forumdisplay.php?fid=98 ROCKPro64 Forum]&lt;br /&gt;
* [https://pine64.com/?post_type=product PINE64 shop]&lt;br /&gt;
* [https://github.com/rockchip-linux Rockchip Linux GitHub Repo]&lt;br /&gt;
* [http://opensource.rock-chips.com/ Rockchip Open Source Wiki]&lt;br /&gt;
* ExplainingComputers have a video review [https://www.youtube.com/watch?v=CeoNHGFN_30 of the RockPro64 here, including linux first boot.]&lt;br /&gt;
* [[ROCKPro64 Installing Arch Linux ARM]]&lt;br /&gt;
* [[ROCKPro64 Powering From An ATX Supply]]&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
=== No Video or GPU Acceleration on Debian ===&lt;br /&gt;
&lt;br /&gt;
If you can log in through serial but don't get any video or GPU acceleration on Debian, this is likely due to Debian's decision to compile the devfreq governors as loadable modules but not including them early enough for panfrost to be able to be provided with one of them.&lt;br /&gt;
&lt;br /&gt;
The usual sign of this being the case is the following line in your log: &amp;lt;code&amp;gt;[drm:panfrost_devfreq_init [panfrost]] *ERROR* Couldn't initialize GPU devfreq&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Log in to your ROCKPro64, and run the following:&lt;br /&gt;
&lt;br /&gt;
 sudo -i&lt;br /&gt;
 echo governor_simpleondemand &amp;gt;&amp;gt; /etc/initramfs-tools/modules &amp;amp;&amp;amp; update-initramfs -u -k $(uname -r)&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
Then, reboot.&lt;br /&gt;
&lt;br /&gt;
== Hardware &amp;quot;Hacking&amp;quot; ==&lt;br /&gt;
&lt;br /&gt;
=== Enabling PCIe 2.0 ===&lt;br /&gt;
By default, the RockPro64 runs the PCIe slot at gen 1 speeds because there might be stability issues with gen 2 speeds. The port can be switched back to gen 2 speeds by adding the following device tree overlay.&lt;br /&gt;
&lt;br /&gt;
1. Copy and paste the device tree overlay file below into a new file (you could name it &amp;lt;code&amp;gt;pcie-2.0.dts&amp;lt;/code&amp;gt;):&lt;br /&gt;
 // Pulled from: https://forum.armbian.com/topic/23574-howto-enable-pcie-gen2-to-get-max-speed-of-nvme-rockpi-4b/&lt;br /&gt;
 /dts-v1/;&lt;br /&gt;
 /plugin/;&lt;br /&gt;
 &lt;br /&gt;
 &amp;amp;pcie0 {&lt;br /&gt;
         max-link-speed = &amp;lt;0x03&amp;gt;;&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
2. Compile the device tree into a binary file. Note that you will need &amp;lt;code&amp;gt;dtc&amp;lt;/code&amp;gt; installed.&lt;br /&gt;
 dtc -I dts -O dtb -@ pcie-2.0.dts -o pcie-2.0.dto&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
4. Copy or move the device tree from the current directory into the boot partition (in this case into the &amp;lt;code&amp;gt;/boot/dtbs/overlay/&amp;lt;/code&amp;gt; folder). If you haven't yet created the &amp;lt;code&amp;gt;/boot/dtbs/overlay/&amp;lt;/code&amp;gt; folder, then create it with &amp;lt;code&amp;gt;sudo mkdir /boot/dtbs/overlay/&amp;lt;/code&amp;gt;&lt;br /&gt;
 sudo cp pcie-2.0.dto /boot/dtbs/overlay/&lt;br /&gt;
&lt;br /&gt;
5. Add the device compiled tree overlay file to the list of files u-boot needs to load. If you are using ManjaroARM (or ArchLinuxARM with a &amp;lt;code&amp;gt;extlinux.conf&amp;lt;/code&amp;gt; file), then add the following line to the file &amp;lt;code&amp;gt;/boot/extlinux/extlinux.conf&amp;lt;/code&amp;gt;:&lt;br /&gt;
 FDTOVERLAYS /dtbs/overlay/pcie-2.0.dtb&lt;br /&gt;
&lt;br /&gt;
If you already have an &amp;lt;code&amp;gt;FDTOVERLAYS&amp;lt;/code&amp;gt; line, then add a space at the end of the current line, then add this overlay file after that.&lt;br /&gt;
See here for details on this process: [[ROCKPro64 Device Tree Overlays on Mainline]]&lt;br /&gt;
&lt;br /&gt;
The resulting &amp;lt;code&amp;gt;/boot/extlinux/extlinux.conf&amp;lt;/code&amp;gt; file might look like below after adding this dtb file:&lt;br /&gt;
 LABEL Manjaro ARM&lt;br /&gt;
 KERNEL /Image&lt;br /&gt;
 FDT /dtbs/rockchip/rk3399-rockpro64.dtb&lt;br /&gt;
 FDTOVERLAYS /dtbs/overlay/pcie-2.0.dtb /dtbs/overlay/cpu-overclock.dtb&lt;br /&gt;
 APPEND initrd=/initramfs-linux.img console=ttyS2,1500000 zfs=zroot rw rootwait audit=0 cpufreq.default_governor=schedutil&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Overclocking (and undervolting) ===&lt;br /&gt;
The RK3399 can be overclocked. See here for details: [[Overclocking#RK3399-based devices]].&lt;br /&gt;
By overclocking, you do risk damaging your hardware, however, it is possible to achieve small, but measurable improvements in performance with an overclock. The overclock can be applied with a device tree overlay file.&lt;br /&gt;
Below is an example device tree overlay for CPU overclocking on the RockPro64. It may or may not work well on your device, but I found that these speeds were stable for me.&lt;br /&gt;
The example below bumps the little cores up to 1.608GHz from 1.416GHz and bumps the big cores up to 2.088GHz from 1.8GHz.&lt;br /&gt;
&lt;br /&gt;
1. Copy and paste the device tree overlay file below into a new file (you could name it &amp;lt;code&amp;gt;cpu-overclock.dts&amp;lt;/code&amp;gt;):&lt;br /&gt;
 // Pulled from: https://github.com/torvalds/linux/blob/master/arch/arm64/boot/dts/rockchip/rk3399-op1-opp.dtsi&lt;br /&gt;
 /dts-v1/;&lt;br /&gt;
 /plugin/;&lt;br /&gt;
 &lt;br /&gt;
        &amp;amp;cluster0_opp {&lt;br /&gt;
                opp00 {&lt;br /&gt;
                        opp-hz = /bits/ 64 &amp;lt;408000000&amp;gt;;&lt;br /&gt;
                        opp-microvolt = &amp;lt;800000&amp;gt;;&lt;br /&gt;
                        clock-latency-ns = &amp;lt;40000&amp;gt;;&lt;br /&gt;
                };&lt;br /&gt;
                opp01 {&lt;br /&gt;
                        opp-hz = /bits/ 64 &amp;lt;600000000&amp;gt;;&lt;br /&gt;
                        opp-microvolt = &amp;lt;825000&amp;gt;;&lt;br /&gt;
                };&lt;br /&gt;
                opp02 {&lt;br /&gt;
                        opp-hz = /bits/ 64 &amp;lt;816000000&amp;gt;;&lt;br /&gt;
                        opp-microvolt = &amp;lt;850000&amp;gt;;&lt;br /&gt;
                };&lt;br /&gt;
                opp03 {&lt;br /&gt;
                        opp-hz = /bits/ 64 &amp;lt;1008000000&amp;gt;;&lt;br /&gt;
                        opp-microvolt = &amp;lt;900000&amp;gt;;&lt;br /&gt;
                };&lt;br /&gt;
                opp04 {&lt;br /&gt;
                        opp-hz = /bits/ 64 &amp;lt;1200000000&amp;gt;;&lt;br /&gt;
                        opp-microvolt = &amp;lt;975000&amp;gt;;&lt;br /&gt;
                };&lt;br /&gt;
                opp05 {&lt;br /&gt;
                        opp-hz = /bits/ 64 &amp;lt;1416000000&amp;gt;;&lt;br /&gt;
                        opp-microvolt = &amp;lt;1100000&amp;gt;;&lt;br /&gt;
                };&lt;br /&gt;
                opp06 {&lt;br /&gt;
                        opp-hz = /bits/ 64 &amp;lt;1512000000&amp;gt;;&lt;br /&gt;
                        opp-microvolt = &amp;lt;1150000&amp;gt;;&lt;br /&gt;
                };&lt;br /&gt;
                opp07 {&lt;br /&gt;
                        opp-hz = /bits/ 64 &amp;lt;1608000000&amp;gt;;&lt;br /&gt;
                        opp-microvolt = &amp;lt;1200000&amp;gt;;&lt;br /&gt;
                };&lt;br /&gt;
        };&lt;br /&gt;
        &amp;amp;cluster1_opp {&lt;br /&gt;
                opp00 {&lt;br /&gt;
                        opp-hz = /bits/ 64 &amp;lt;408000000&amp;gt;;&lt;br /&gt;
                        opp-microvolt = &amp;lt;800000&amp;gt;;&lt;br /&gt;
                        clock-latency-ns = &amp;lt;40000&amp;gt;;&lt;br /&gt;
                };&lt;br /&gt;
                opp01 {&lt;br /&gt;
                        opp-hz = /bits/ 64 &amp;lt;600000000&amp;gt;;&lt;br /&gt;
                        opp-microvolt = &amp;lt;800000&amp;gt;;&lt;br /&gt;
                };&lt;br /&gt;
                opp02 {&lt;br /&gt;
                        opp-hz = /bits/ 64 &amp;lt;816000000&amp;gt;;&lt;br /&gt;
                        opp-microvolt = &amp;lt;825000&amp;gt;;&lt;br /&gt;
                };&lt;br /&gt;
                opp03 {&lt;br /&gt;
                        opp-hz = /bits/ 64 &amp;lt;1008000000&amp;gt;;&lt;br /&gt;
                        opp-microvolt = &amp;lt;850000&amp;gt;;&lt;br /&gt;
                };&lt;br /&gt;
                opp04 {&lt;br /&gt;
                        opp-hz = /bits/ 64 &amp;lt;1200000000&amp;gt;;&lt;br /&gt;
                        opp-microvolt = &amp;lt;900000&amp;gt;;&lt;br /&gt;
                };&lt;br /&gt;
                opp05 {&lt;br /&gt;
                        opp-hz = /bits/ 64 &amp;lt;1416000000&amp;gt;;&lt;br /&gt;
                        opp-microvolt = &amp;lt;975000&amp;gt;;&lt;br /&gt;
                };&lt;br /&gt;
                opp06 {&lt;br /&gt;
                        opp-hz = /bits/ 64 &amp;lt;1608000000&amp;gt;;&lt;br /&gt;
                        opp-microvolt = &amp;lt;1050000&amp;gt;;&lt;br /&gt;
                };&lt;br /&gt;
                opp07 {&lt;br /&gt;
                        opp-hz = /bits/ 64 &amp;lt;1800000000&amp;gt;;&lt;br /&gt;
                        opp-microvolt = &amp;lt;1150000&amp;gt;;&lt;br /&gt;
                };&lt;br /&gt;
                opp08 {&lt;br /&gt;
                        opp-hz = /bits/ 64 &amp;lt;2016000000&amp;gt;;&lt;br /&gt;
                        opp-microvolt = &amp;lt;1250000&amp;gt;;&lt;br /&gt;
                };&lt;br /&gt;
                opp09 {&lt;br /&gt;
                        opp-hz = /bits/ 64 &amp;lt;2088000000&amp;gt;;&lt;br /&gt;
                        opp-microvolt = &amp;lt;1250000&amp;gt;;&lt;br /&gt;
                };&lt;br /&gt;
        };&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2. Compile the device tree into a binary file. Note that you will need &amp;lt;code&amp;gt;dtc&amp;lt;/code&amp;gt; installed.&lt;br /&gt;
 dtc -I dts -O dtb -@ cpu-overclock.dts -o cpu-overclock.dto&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
4. Copy or move the device tree from the current directory into the boot partition (in this case into the &amp;lt;code&amp;gt;/boot/dtbs/overlay/&amp;lt;/code&amp;gt; folder). If you haven't yet created the &amp;lt;code&amp;gt;/boot/dtbs/overlay/&amp;lt;/code&amp;gt; folder, then create it with &amp;lt;code&amp;gt;sudo mkdir /boot/dtbs/overlay/&amp;lt;/code&amp;gt;&lt;br /&gt;
 sudo cp cpu-overclock.dto /boot/dtbs/overlay/&lt;br /&gt;
&lt;br /&gt;
5. Add the device compiled tree overlay file to the list of files u-boot needs to load. If you are using ManjaroARM (or ArchLinuxARM with a &amp;lt;code&amp;gt;extlinux.conf&amp;lt;/code&amp;gt; file), then add the following line to the file &amp;lt;code&amp;gt;/boot/extlinux/extlinux.conf&amp;lt;/code&amp;gt;:&lt;br /&gt;
 FDTOVERLAYS /dtbs/overlay/cpu-overclock.dtb&lt;br /&gt;
&lt;br /&gt;
If you already have an &amp;lt;code&amp;gt;FDTOVERLAYS&amp;lt;/code&amp;gt; line, then add a space at the end of the current line, then add this overlay file after that.&lt;br /&gt;
See here for details on this process: [[ROCKPro64 Device Tree Overlays on Mainline]]&lt;br /&gt;
&lt;br /&gt;
The resulting &amp;lt;code&amp;gt;/boot/extlinux/extlinux.conf&amp;lt;/code&amp;gt; file might look like below after adding this dtb file:&lt;br /&gt;
 LABEL Manjaro ARM&lt;br /&gt;
 KERNEL /Image&lt;br /&gt;
 FDT /dtbs/rockchip/rk3399-rockpro64.dtb&lt;br /&gt;
 FDTOVERLAYS /dtbs/overlay/pcie-2.0.dtb /dtbs/overlay/cpu-overclock.dtb&lt;br /&gt;
 APPEND initrd=/initramfs-linux.img console=ttyS2,1500000 zfs=zroot rw rootwait audit=0 cpufreq.default_governor=schedutil&lt;br /&gt;
&lt;br /&gt;
=== Getting wifi working (&amp;quot;new&amp;quot; wifi module) ===&lt;br /&gt;
ManjaroARM and ArchLinuxARM (and probably others) provide the NVRAM file needed to initialize the Wi-Fi module in the linux-firmware package, but it is listed under the generic name &amp;lt;code&amp;gt;brcmfmac43455-sdio.AW-CM256SM.txt&amp;lt;/code&amp;gt;.&lt;br /&gt;
You can copy this file to the new name (that the driver looks for) with the following commands:&lt;br /&gt;
 cd /usr/lib/firmware/brcm/&lt;br /&gt;
 sudo cp brcmfmac43455-sdio.AW-CM256SM.txt brcmfmac43455-sdio.txt&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Then, reboot and Wi-Fi should start working.&lt;br /&gt;
Details for this method are here: https://forum.pine64.org/showthread.php?tid=16635&amp;amp;pid=117061#pid117061&lt;br /&gt;
However, I noticed that on a 5GHz network with &amp;lt;code&amp;gt;wireless-regdb&amp;lt;/code&amp;gt; installed and the regulatory domain set correctly (to 'US' for me), the adapter was almost unusable. Speeds were usually 0 bits per second. Sometimes a few packets would get through every few seconds, but that was it. On a 2.4GHz network, this was not an issue. This &amp;quot;can&amp;quot; be resolved by setting the regulator domain to 'GB' or 'CN', but this doesn't seem like a great solution. Instead, I tried various other &amp;lt;code&amp;gt;brcmfmac43455-sdio.txt&amp;lt;/code&amp;gt; files found online. Some worked better than others. I combined parts of various files and found that applying the patch below to the default &amp;lt;code&amp;gt;brcmfmac43455-sdio.AW-CM256SM.txt&amp;lt;/code&amp;gt; file fixed the issue. I was able to get about 140Mbps up and down with this patch (with the regulatory domain set correctly to 'US').&lt;br /&gt;
&lt;br /&gt;
 --- brcmfmac43455-sdio.AW-CM256SM.txt   2023-04-27 19:16:47.000000000 -0500&lt;br /&gt;
 +++ brcmfmac43455-sdio.txt      2023-05-21 11:42:22.058517093 -0500&lt;br /&gt;
 @@ -21,19 +21,18 @@&lt;br /&gt;
  ltecxpadnum=0x0504&lt;br /&gt;
  macaddr=00:90:4c:c5:12:38&lt;br /&gt;
  manfid=0x2d0&lt;br /&gt;
 -maxp2ga0=64&lt;br /&gt;
 -maxp5ga0=80,82,76,77&lt;br /&gt;
 -mcsbw202gpo=0x99355533&lt;br /&gt;
 -mcsbw205ghpo=0x99855000&lt;br /&gt;
 -mcsbw205glpo=0x99755000&lt;br /&gt;
 -mcsbw205gmpo=0x9df55000&lt;br /&gt;
 -mcsbw405ghpo=0xd9755000&lt;br /&gt;
 -mcsbw405glpo=0xb8555000&lt;br /&gt;
 -mcsbw405gmpo=0xed955000&lt;br /&gt;
 -mcsbw805ghpo=0xd9555000&lt;br /&gt;
 -mcsbw805glpo=0xc8555000&lt;br /&gt;
 -mcsbw805gmpo=0xe9555000&lt;br /&gt;
 -muxenab=0x10&lt;br /&gt;
 +maxp2ga0=70&lt;br /&gt;
 +maxp5ga0=73,74,73,73&lt;br /&gt;
 +mcsbw202gpo=0x99333322&lt;br /&gt;
 +mcsbw205ghpo=0x8a875444&lt;br /&gt;
 +mcsbw205glpo=0x8a875444&lt;br /&gt;
 +mcsbw205gmpo=0x8a875444&lt;br /&gt;
 +mcsbw405ghpo=0xda844333&lt;br /&gt;
 +mcsbw405glpo=0xda844333&lt;br /&gt;
 +mcsbw405gmpo=0xdb844333&lt;br /&gt;
 +mcsbw805ghpo=0xda555444&lt;br /&gt;
 +mcsbw805glpo=0xdb555444&lt;br /&gt;
 +mcsbw805gmpo=0xda555444&lt;br /&gt;
  nocrc=1&lt;br /&gt;
  ofdmlrbw202gpo=0x0033&lt;br /&gt;
  pa2ga0=-112,6296,-662&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To use this patch, copy it off into a file and use the &amp;lt;code&amp;gt;patch&amp;lt;/code&amp;gt; command.&lt;br /&gt;
However, it might be easier to apply the patch by hand. &lt;br /&gt;
To do this, open the file &amp;lt;code&amp;gt;/usr/lib/firmware/brcm/brcmfmac43455-sdio.txt&amp;lt;/code&amp;gt; (after completing the copy step above),  delete the line with &amp;lt;code&amp;gt;maxp2ga0=64&amp;lt;/code&amp;gt; through the line with &amp;lt;code&amp;gt;muxenab=0x10&amp;lt;/code&amp;gt;.&lt;br /&gt;
Then add the following in its place:&lt;br /&gt;
 maxp2ga0=70&lt;br /&gt;
 maxp5ga0=73,74,73,73&lt;br /&gt;
 mcsbw202gpo=0x99333322&lt;br /&gt;
 mcsbw205ghpo=0x8a875444&lt;br /&gt;
 mcsbw205glpo=0x8a875444&lt;br /&gt;
 mcsbw205gmpo=0x8a875444&lt;br /&gt;
 mcsbw405ghpo=0xda844333&lt;br /&gt;
 mcsbw405glpo=0xda844333&lt;br /&gt;
 mcsbw405gmpo=0xdb844333&lt;br /&gt;
 mcsbw805ghpo=0xda555444&lt;br /&gt;
 mcsbw805glpo=0xdb555444&lt;br /&gt;
 mcsbw805gmpo=0xda555444&lt;br /&gt;
&lt;br /&gt;
Reboot and the Wi-Fi (at least for 5GHz networks) should work well. I was unable to determine what these fields do, so I am not sure what impact this has on the Wi-Fi module or your ability to operate it legally in your country. From what I can tell (and I haven't looked into the process in too much depth), it seems that this file is passed directly to the hardware, where it is interpreted by the Wi-Fi module itself, but I am not sure on this. However, given that this file is simply a combination of other existing files for similar hardware, I would think that it should be fine.&lt;br /&gt;
I ended up pulling lines only from the file here: https://github.com/reMarkable/brcmfmac-firmware/blob/master/brcmfmac43455-sdio.txt.&lt;br /&gt;
This code comes with the following license (which I will not replicate here because it will fill this wiki with text - instead I have provided a link to its source): https://github.com/reMarkable/brcmfmac-firmware/blob/master/LICENCE.&lt;br /&gt;
I believe this license allows me to take these lines from one of the config files and provide them here in patch format.&lt;br /&gt;
&lt;br /&gt;
=== Stabilizing the system (underclocking the RAM) ===&lt;br /&gt;
WIP&lt;br /&gt;
&lt;br /&gt;
[[Category:ROCKPro64]] [[Category:Rockchip RK3399]]&lt;/div&gt;</summary>
		<author><name>I3master</name></author>
	</entry>
	<entry>
		<id>https://wiki.pine64.org/index.php?title=ROCKPro64&amp;diff=19693</id>
		<title>ROCKPro64</title>
		<link rel="alternate" type="text/html" href="https://wiki.pine64.org/index.php?title=ROCKPro64&amp;diff=19693"/>
		<updated>2023-05-28T23:41:55Z</updated>

		<summary type="html">&lt;p&gt;I3master: Added a disclaimer.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:ROCKPro64v21FRONT.jpg|400px|thumb|right|The ROCKPro64]]&lt;br /&gt;
&lt;br /&gt;
The '''ROCKPro64''' is the most powerful Single Board Computer released by PINE64. It is powered by a Rockchip RK3399 Hexa-Core (dual ARM Cortex A72 and quad ARM Cortex A53) 64-Bit Processor with a Mali T-860 Quad-Core GPU. The key features include a PCIe x4 open ended slot, the use of LPDDR4 RAM, and industry standard heatsink mounting holes.&lt;br /&gt;
&lt;br /&gt;
The ROCKPro64 is equipped with 2GB or 4GB LPDDR4 system memory, and 128Mb SPI boot Flash. There is also an optional eMMC module (up to 128GB) and microSD slot for booting. The board is equipped with 1x USB 3.0 type C Host with DP 1.2, 1x USB 3.0 type A Host, 2x USB 2.0 Host, Gigabit Ethernet, PI-2 GPIO Bus, MiPi DSI interface, eDP interface, touch Panel interface, stereo MiPi CSI interface, as well as many other device interfaces such as UART, SPI, I2C, for makers to integrate with sensors and other peripherals. Many different Operating Systems (OS) are freely available from the open source community, such as Android, Linux (Ubuntu, Debian, Arch), and BSD.&lt;br /&gt;
&lt;br /&gt;
== Getting Started ==&lt;br /&gt;
&lt;br /&gt;
The article [[ROCKPro64 Getting Started]] gives important information to get the board up and running.&lt;br /&gt;
&lt;br /&gt;
== Software releases ==&lt;br /&gt;
&lt;br /&gt;
In the [[ROCKPro64 Software Releases]] page, you will find a complete list of currently supported Operating System images that work with the ROCKPro64, as well as other related software. The Software Release page has links to download the images as well as high level instructions to load each image.&lt;br /&gt;
&lt;br /&gt;
Please see the [[Getting started]] page for detailed discussion of what you need (prerequisites) as well as instructions if the high level instructions are insufficient.&lt;br /&gt;
&lt;br /&gt;
== Board Layout ==&lt;br /&gt;
[[Image:ROCKPro64v21REAR.jpg|thumb|right|A hi-res picture of v2.1 rear.]]&lt;br /&gt;
[[Image:FLIR 20220619 125451 686.jpg|thumb|right|A thermal image of v2.1 front (upside-down).]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:ROCKPro64_annotated.jpg|500px|An annotated ROCKPro64]]&lt;br /&gt;
&lt;br /&gt;
=== Main Chips ===&lt;br /&gt;
* RK3399 system-on-chip (1)&lt;br /&gt;
* LPDDR4 SDRAM 1 (18)&lt;br /&gt;
* LPDDR4 SDRAM 2 (3)&lt;br /&gt;
* SPI NOR flash memory (17)&lt;br /&gt;
* RK808 power management (near 19)&lt;br /&gt;
* RTL8211 ethernet transceiver (near 25)&lt;br /&gt;
* ES8316 Sound Codec (on rear of board)&lt;br /&gt;
* The heatsink mounting holes around the RK3399 are 59 mm apart&lt;br /&gt;
&lt;br /&gt;
=== Switches ===&lt;br /&gt;
&lt;br /&gt;
The Power button (11, SW3): is the same as on your mobile phone - press and release after about 1 second to power on. Press and hold for about 3 seconds to power off.&lt;br /&gt;
&lt;br /&gt;
The Reset button (10, SW901): performs a reset.&lt;br /&gt;
&lt;br /&gt;
The Recover button (28, SW900): used to enter maskrom mode.&lt;br /&gt;
&lt;br /&gt;
=== Connectors, Sockets and Headers ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;line-height: 1.4;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;font-size: .9em;&amp;quot;&lt;br /&gt;
! Diagram !! Schematic&amp;lt;br&amp;gt;designator !! Silkscreen&amp;lt;br&amp;gt;label !! Number&amp;lt;br&amp;gt;of pins !! Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 2  || U39   || PI-2-bus || style=&amp;quot;text-align: center;&amp;quot; | 40 || Pi-2 bus &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 4  || J8    || +FAN- || style=&amp;quot;text-align: center;&amp;quot; | 2 || PWM controlled fan header&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 5  || J10   || SPDIF || style=&amp;quot;text-align: center;&amp;quot; | 3 || SPDIF header&lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 6  || U6    || +RTC- || style=&amp;quot;text-align: center;&amp;quot; | 2 || RTC battery backup header&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7  || U31   || Wifi-BT || style=&amp;quot;text-align: center;&amp;quot; | 16 || SDIO WIFI/BT module-MIMO 2&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 8  || USB3  ||  || style=&amp;quot;text-align: center;&amp;quot; | 9 || USB-3 and USB Type C&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 9  || USB1  ||  || style=&amp;quot;text-align: center;&amp;quot; | 2×4 || Dual USB-2&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 12 || IR1   || IR || style=&amp;quot;text-align: center;&amp;quot; | 3 || infrared receiver socket &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 13 || J16   || Headphone+mic || style=&amp;quot;text-align: center;&amp;quot; | 4 || Headphone + mic 3.5mm jack&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -  || CON16 || GND PWR RST GND || style=&amp;quot;text-align: center;&amp;quot; | 4 || Power &amp;amp; reset, unpopulated&amp;lt;br&amp;gt;header near Headphone jack&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 14 || U29   || EMMC || style=&amp;quot;text-align: center;&amp;quot; | 34 || eMMC connector&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 14* || J13  ||  || style=&amp;quot;text-align: center;&amp;quot; | 13 || TF-card, a.k.a. microSD&amp;lt;br&amp;gt;(* under 14 on the bottom side)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 15 || U30   ||  || style=&amp;quot;text-align: center;&amp;quot; | 14 || SDIO WIFI/BT module-MIMO 1&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 16 || SW4   ||  || style=&amp;quot;text-align: center;&amp;quot; | 2 || Jumper to [[#Disable eMMC]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 19 || J15   || PCI || style=&amp;quot;text-align: center;&amp;quot; | 64 || PCI-express X4 socket&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 20 || J21   || DSI || style=&amp;quot;text-align: center;&amp;quot; | 30 || DSI&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 21 || J22   || EDP || style=&amp;quot;text-align: center;&amp;quot; | 30 || LCD EDP&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 22 || CON1  || TP || style=&amp;quot;text-align: center;&amp;quot; | 6 || touch panel connector&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 23 || CON15 ||  || style=&amp;quot;text-align: center;&amp;quot; | 4 || DC out for SATA disk cable&amp;lt;br&amp;gt;(direct connect from DC-IN)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 24 || J11   || DC-IN || style=&amp;quot;text-align: center;&amp;quot; | 2 || Power input, positive tip;&amp;lt;br&amp;gt;12V/3A (minimum) recommended&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 25 || U32   ||  || style=&amp;quot;text-align: center;&amp;quot; | 8 || 8P8C (often referred to as 'RJ45')&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 26 || J14   ||  || style=&amp;quot;text-align: center;&amp;quot; | 19 || HDMI&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 27 || J17   || MIPI CAM || style=&amp;quot;text-align: center;&amp;quot; | 32 || MIPI-1&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 29 || J19   || MIPI CAM || style=&amp;quot;text-align: center;&amp;quot; | 32 || MIPI-2&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 30 || J18   || CIF || style=&amp;quot;text-align: center;&amp;quot; | 26 || CIF&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== LEDs ===&lt;br /&gt;
&lt;br /&gt;
A green LED next to the 12V input barrel connector will light as long as there is 12V applied to the connector. (Even if the RockPro64 is powered off.)&lt;br /&gt;
&lt;br /&gt;
A white LED behind the reset button will light as long as the RockPro64 is running (it comes on a few seconds after power on, when control is passed to the operating system.)&lt;br /&gt;
&lt;br /&gt;
A red LED behind the reset button is DIY - it is lit for example if the board is in OTG mode with an Ayufan image, or if an Android image is in standby mode.&lt;br /&gt;
&lt;br /&gt;
Yellow and green LEDs on the LAN socket behave in a standard way.&lt;br /&gt;
&lt;br /&gt;
=== Jumpers ===&lt;br /&gt;
They are used for boot device selection, as described in the following section.&lt;br /&gt;
&lt;br /&gt;
==== Disable eMMC ====&lt;br /&gt;
&lt;br /&gt;
There is an unlabelled (on the PCB silk-screen) 2-pin jumper (16) between the eMMC socket (14) and the SPI chip (17). It is designated as SW4 on the [[#Board Information, Schematics and Certifications | schematic diagram]]. The default condition is OPEN (no jumper). It is useful for controlling the boot as follows:&lt;br /&gt;
&lt;br /&gt;
Default boot device (with no SPI software) is eMMC, then SDcard. If both the eMMC and the SDcard contain bootable images then the eMMC can be disabled by installing the jumper. This completely removes the eMMC from the resulting OS. If you wish the eMMC to be visible in the booted OS the jumper should be removed 2 seconds after applying power (and before the white LED comes on).&lt;br /&gt;
&lt;br /&gt;
The possible combinations are summarised in the table below.&lt;br /&gt;
&lt;br /&gt;
* 1 = present&lt;br /&gt;
* 0 = not present&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
! µSD !! eMMC !! SW4 !! boot from&lt;br /&gt;
|-&lt;br /&gt;
| 0 || 0 || 0 || unsupported&lt;br /&gt;
|-&lt;br /&gt;
| 0 || 0 || 1 || unsupported&lt;br /&gt;
|-&lt;br /&gt;
| 0 || 1 || 0 || eMMC&lt;br /&gt;
|-&lt;br /&gt;
| 0 || 1 || 1 || unsupported&lt;br /&gt;
|-&lt;br /&gt;
| 1 || 0 || 0 || SDCard&lt;br /&gt;
|-&lt;br /&gt;
| 1 || 0 || 1 || SDCard&lt;br /&gt;
|-&lt;br /&gt;
| 1 || 1 || 0 || eMMC&lt;br /&gt;
|-&lt;br /&gt;
| 1 || 1 || 1 || SDCard&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Disable SPI (while booting) ====&lt;br /&gt;
There is a second possibility to jumper your ROCKPro64: If you mess-up your SPI and are unable to boot, jumpering pins 23 (CLK) and 25 pin (GND) on the PI-2-bus header will disable the SPI as a boot device. (This was taken from the IRC logs, 09 August 2018 @ 17:23) You have to remove the jumper 2 seconds after having started your RP64 (before the white LED turns ON) otherwise the SPI will be missing and you won't be able to flash it.&lt;br /&gt;
Ayufan images contain (at the moment) only one script for the SPI and the RP64, it's &amp;quot;rockpro64_reset_spi_flash&amp;quot;. Other SPI scripts are dedicated to the R64 (as it is written on the name) and it will mess-up your RP64 SPI if you use them.&lt;br /&gt;
&lt;br /&gt;
== Hardware Compatibility ==&lt;br /&gt;
&lt;br /&gt;
The hardware compatibility list can be found under [[ROCKPro64 Hardware compatibility]].&lt;br /&gt;
&lt;br /&gt;
== Board Features ==&lt;br /&gt;
&lt;br /&gt;
This section outlines the most important characteristics of the board and its components.&lt;br /&gt;
&lt;br /&gt;
=== SoC and Memory Specification ===&lt;br /&gt;
* Based on Rockchip RK3399&lt;br /&gt;
[[File:Rockchip_RK3399.png|right]]&lt;br /&gt;
&lt;br /&gt;
==== CPU Architecture ====&lt;br /&gt;
&lt;br /&gt;
* [https://developer.arm.com/products/processors/cortex-a/cortex-a72 Dual-core Cortex-A72 up to 2.0GHz CPU]&lt;br /&gt;
* [https://developer.arm.com/products/processors/cortex-a/cortex-a53 Quad-core Cortex-A53 up to 1.5GHz CPU]&lt;br /&gt;
* big.LITTLE architecture: Dual Cortex-A72 + Quad Cortex-A53, 64-bit CPU&lt;br /&gt;
* Cortex-A72:&lt;br /&gt;
** 1-4x Symmetrical Multiprocessing (SMP) within a single processor cluster, and multiple coherent SMP processor clusters through AMBA 5 CHI or AMBA 4 ACE technology&lt;br /&gt;
** AArch64 for 64-bit support and new architectural features&lt;br /&gt;
** L1 cache 48KB Icache and 32KB Dcache for each A72 &lt;br /&gt;
** L2 cache 1024KB for big cluster &lt;br /&gt;
** DSP &amp;amp; SIMD extensions&lt;br /&gt;
** VFPv4 floating point&lt;br /&gt;
** Hardware virtualization support&lt;br /&gt;
* Cortex-A53:&lt;br /&gt;
** L1 cache 32KB Icache and 32KB Dcache for each A53&lt;br /&gt;
** L2 cache 512KB for little cluster &lt;br /&gt;
* Full implementation of the ARM architecture v8-A instruction set&lt;br /&gt;
* ARM Neon Advanced SIMD (single instruction, multiple data) support for accelerated media and signal processing computation&lt;br /&gt;
* ARMv8 Cryptography Extensions&lt;br /&gt;
* In-order pipeline with symmetric dual-issue of most instructions&lt;br /&gt;
* Include VFP v3 hardware to support single and double-precision operations&lt;br /&gt;
* TrustZone technology support&lt;br /&gt;
* Full CoreSight debug solution&lt;br /&gt;
* One isolated voltage domain to support DVFS&lt;br /&gt;
&lt;br /&gt;
==== GPU Architecture ====&lt;br /&gt;
&lt;br /&gt;
* [https://developer.arm.com/products/graphics-and-multimedia/mali-gpus/mali-t860-and-mali-t880-gpus ARM Mali-T860MP4 Quad-core GPU]&lt;br /&gt;
* The highest performance GPUs built on Arm Mali’s famous Midgard architecture, the Mali-T860 GPU is designed for complex graphics use cases and provides stunning visuals for UHD content.&lt;br /&gt;
* Frequency: 650MHz &lt;br /&gt;
* Throughput: 1300Mtri/s, 10.4Gpix/s &lt;br /&gt;
* OpenGL® ES 1.1, 1.2, 2.0, 3.1, 3.2, Vulkan 1.0*, OpenCL™ 1.1, 1.2, DirectX® 11 FL11_1, RenderScript™.&lt;br /&gt;
&lt;br /&gt;
==== System Memory ====&lt;br /&gt;
* LPDDR4 RAM Memory Variants: Dual Channels 2GB and 4GB.&lt;br /&gt;
* Storage Memory: 128Mb built-in SPI Flash memory (as at August 2018 only support for USB boot).&lt;br /&gt;
&lt;br /&gt;
=== Display ===&lt;br /&gt;
&lt;br /&gt;
* Dual VOP: one supports resolutions up to 4096x2160 and [https://www.arm.com/why-arm/technologies/graphics-technologies/arm-frame-buffer-compression AFBC]; the other supports resolutions up to 2560x1600&lt;br /&gt;
* Dual channel MIPI-DSI (4 lanes per channel)&lt;br /&gt;
* eDP 1.3 (4 lanes with 10.8Gbps) to support displays, with PSR&lt;br /&gt;
* Digital Video port up to 4Kp60&lt;br /&gt;
* DisplayPort 1.2 (4 lanes, up to 4K 60Hz)&lt;br /&gt;
* Supports Rec.2020 and conversion to Rec.709 &lt;br /&gt;
&lt;br /&gt;
=== Video ===&lt;br /&gt;
&lt;br /&gt;
* Digital Video output up to 4K@60Hz&lt;br /&gt;
* 4K HDR @ 30fps&lt;br /&gt;
* H.264/AVC Base/Main/High/High10 profile @ level 5.1; up to 4Kx2K @ 60fps&lt;br /&gt;
* H.265/HEVC Main/Main10 profile @ level 5.1 High-tier; up to 4Kx2K @ 60fps&lt;br /&gt;
* VP9, up to 4Kx2K @ 60fps&lt;br /&gt;
* MPEG-1, ISO/IEC 11172-2, up to 1080P @ 60fps&lt;br /&gt;
* MPEG-2, ISO/IEC 13818-2, SP@ML, MP@HL, up to 1080P @ 60fps&lt;br /&gt;
* MPEG-4, ISO/IEC 14496-2, SP@L0-3, ASP@L0-5, up to 1080P @ 60fps&lt;br /&gt;
* VC-1, SP@ML, MP@HL, AP@L0-3, up to 1080P @ 60fps&lt;br /&gt;
* MVC is supported based on H.264 or H.265, up to 1080P @ 60fps&lt;br /&gt;
&lt;br /&gt;
=== Audio ===&lt;br /&gt;
&lt;br /&gt;
* 3.5mm Phone Jack&lt;br /&gt;
* 3-pin S/PDIF header &lt;br /&gt;
* Audio via Digital Video port&lt;br /&gt;
&lt;br /&gt;
=== Camera ===&lt;br /&gt;
&lt;br /&gt;
* Dual MIPI CSI，dual ISP, maximum input resolution of 13M pixels &lt;br /&gt;
&lt;br /&gt;
=== Network ===&lt;br /&gt;
&lt;br /&gt;
* 10/100/1000Mbps Ethernet - Capable of pushing 941 MBit/s in iperf3&lt;br /&gt;
* Wi-Fi 802.11 ac/a/b/g/n with Bluetooth 4.01 (old version with 2x2) / Bluetooth 5 (new version with 1x1) (optional)&lt;br /&gt;
&lt;br /&gt;
=== Storage ===&lt;br /&gt;
&lt;br /&gt;
* microSD - bootable, support SDHC and SDXC, storage up to 256GB&lt;br /&gt;
* eMMC - bootable (optional eMMC Module)&lt;br /&gt;
* 1 USB3.0 Host port&lt;br /&gt;
* 1 USB type C OTG port with DP output &lt;br /&gt;
* 2 USB2.0 Dedicated Host ports&lt;br /&gt;
&lt;br /&gt;
=== Expansion Ports ===&lt;br /&gt;
&lt;br /&gt;
* 2x20 pins &amp;quot;Pi2&amp;quot; GPIO Header&lt;br /&gt;
* PCIe 2.1 (4 full-duplex lanes with 20Gbps) x4 open ended port&lt;br /&gt;
&lt;br /&gt;
==== GPIO Pins ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable plainrowheaders&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;width:20em;&amp;quot; | Assigned To&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Pin Nr.&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Pin Nr.&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;width:20em;&amp;quot; | Assigned To&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| 3.3 V&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 1&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 2&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| 5 V&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| GPIO1_C4 (I2C8_SDA) &amp;lt;sup style=&amp;quot;font-style:italic;color:green&amp;quot;&amp;gt;a&amp;lt;/sup&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 3&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 4&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| 5 V&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| GPIO1_C5 (I2C8_SCL) &amp;lt;sup style=&amp;quot;font-style:italic;color:green&amp;quot;&amp;gt;a&amp;lt;/sup&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 5&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 6&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GND&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| GPIO4_D0 (CPU_GPCLK)&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 7&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 8&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GPIO4_C4 (UART2_TX)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| GND&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 9&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 10&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GPIO4_C3 (UART2_RX)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| GPIO1_C6&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 11&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 12&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GPIO3_D0 (I2S0_CLK)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| GPIO1_C2&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 13&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 14&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GND&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| GPIO1_A1&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 15&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 16&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GPIO1_A4&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| 3.3 V&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 17&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 18&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GPIO4_C5 [SPDIF]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| [UART4_TX] GPIO1_B0 (SPI1_TXD)&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 19&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 20&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GND&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| [UART4_RX] GPIO1_A7 (SPI1_RXD)&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 21&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 22&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GPIO4_D1&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| GPIO1_B1 (SPI1_CLK)&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 23&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 24&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GPIO1_B2 (SPI1_CSN0)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| GND&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 25&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 26&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GPIO1_B5&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| GPIO1_B3 (I2C4_SDA)&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 27&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 28&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GPIO1_B4 (I2C4_SCL)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| GPIO4_D3&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 29&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 30&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GND&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| GPIO4_D4&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 31&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 32&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GPIO3_D4 (I2S0_SDI1SDO3)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| GPIO3_D5 (I2S0_SDI2SDO2)&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 33&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 34&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GND&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| GPIO3_D2 (I2S0_LRCKTX)&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 35&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 36&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GPIO3_D6 (I2S0_SDI3SDO1)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| GPIO3_D1 (I2S0_LRCKRX)&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 37&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 38&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GPIO3_D3 (I2S0_SDI0)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| GND&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 39&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 40&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GPIO3_D7 (I2S0_SDO0)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== Notes =====&lt;br /&gt;
&lt;br /&gt;
* '''a:''' pulled high to 3.3V through 2.2kOhm resistor&lt;br /&gt;
&lt;br /&gt;
===== Linux /dev/gpiochip Assignments =====&lt;br /&gt;
&lt;br /&gt;
{| class=wikitable style=&amp;quot;max-width: 1000px; text-align: center;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | Pin Nr.&lt;br /&gt;
| 3 || 5 || 7 || 8 || 10 || 11 || 12 || 13 || 15 || 16 || 18 || 19 || 21 || 22 || 23 || 24 || 26 || 27 || 28 || 29 || 31 || 32 || 33 || 35 || 36 || 37 || 38 || 40&lt;br /&gt;
|- &lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | Chip&lt;br /&gt;
| 1 || 1 || 4 || 4 || 4 || 1 || 3 || 1 || 1 || 1 || 4 || 1 || 1 || 4 || 1 || 1 || 1 || 1 || 1 || 4 || 4 || 3 || 3 || 3 || 3 || 3 || 3 || 3&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | Line&lt;br /&gt;
| 20 || 21 || 24 || 20 || 19 || 22 || 24 || 18 || 1 || 4 || 21 || 8 || 7 || 25 || 9 || 10 || 13 || 11 || 12 || 27 || 28 || 28 || 29 || 26 || 30 || 25 || 27 || 31&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
On Linux, using the new &amp;lt;code&amp;gt;/dev/gpiochip&amp;lt;/code&amp;gt; API, the &amp;lt;code&amp;gt;''n''&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;GPIO''n''_''XX''&amp;lt;/code&amp;gt; appears to correlate to the number of the &amp;lt;code&amp;gt;/dev/gpiochip''n''&amp;lt;/code&amp;gt;, and the &amp;lt;code&amp;gt;''XX''&amp;lt;/code&amp;gt; to the definition &amp;lt;code&amp;gt;RK_P''XX''&amp;lt;/code&amp;gt; of lines in &amp;lt;code&amp;gt;include/dt-bindings/pinctrl/rockchip.h&amp;lt;/code&amp;gt; of the Linux kernel source. Having these named in the dts would be nice.&lt;br /&gt;
&lt;br /&gt;
You can use [https://git.kernel.org/pub/scm/libs/libgpiod/libgpiod.git/ libgpiod] to drive them, and test them with the included tools (&amp;lt;code&amp;gt;gpioinfo&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;gpioset&amp;lt;/code&amp;gt;, ...)&lt;br /&gt;
&lt;br /&gt;
For example, &amp;lt;code&amp;gt;gpioset 4 25=1&amp;lt;/code&amp;gt; (run as root) would turn pin 22 on. Do beware that poking the wrong GPIO pin can lock up your system.&lt;br /&gt;
&lt;br /&gt;
The conversion table at right is also available as a [https://gist.github.com/CounterPillow/fe066655bf2d929148fe6eb3f15b1dd5 C header file].&lt;br /&gt;
&lt;br /&gt;
=== Working Features ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! Feature/Option&lt;br /&gt;
! Android&lt;br /&gt;
! Android Version&lt;br /&gt;
! Linux&lt;br /&gt;
! Linux Version&lt;br /&gt;
! Test/Verify Steps&lt;br /&gt;
! Notes&lt;br /&gt;
! Product Link&lt;br /&gt;
|-&lt;br /&gt;
| PINE64 LCD Touchscreen (Screen/Touch)&lt;br /&gt;
| Yes/Yes&lt;br /&gt;
| &lt;br /&gt;
| No/No&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| Maybe [https://github.com/avafinger/pine64-touchscreen this] will help get this working?&lt;br /&gt;
| [https://pine64.com/?product=7-lcd-touch-screen-panel 7″ LCD Touch Screen Panel]&lt;br /&gt;
|-&lt;br /&gt;
| Wireless&lt;br /&gt;
&amp;lt;small&amp;gt;ROCKPro64 2×2 MIMO Dual Band WiFi 802.11AC / Bluetooth 4.2 Module (old)&lt;br /&gt;
ROCKPro64 1x1 Dual Band WiFi 802.11AC / Bluetooth 5.0 Module (new)&amp;lt;/small&amp;gt;&lt;br /&gt;
| Yes/Yes&lt;br /&gt;
| &lt;br /&gt;
| No/Yes*&lt;br /&gt;
| &lt;br /&gt;
| For the &amp;quot;new&amp;quot; ROCKPro64 WIFI module: Verified with Manjaro ARM (kernel 6.2.5). A config file (&amp;quot;firmware file&amp;quot;) is needed at &amp;lt;code&amp;gt;/lib/firmware/brcm/brcmfmac43455-sdio.txt&amp;lt;/code&amp;gt;. See [[#Getting wifi working (&amp;quot;new&amp;quot; wifi module)]] for the file contents and details.&lt;br /&gt;
| In 0.7.9 Ayufan linux releases this is deliberately disabled for stability reasons. After testing for a few hours, on Manjaro ARM (kernel 6.2.5), there haven't been stability issues found (WiFi stayed connected). On a 5GHz network (802.11AC), it was tested to be possible to get about 120Mbps using the &amp;quot;new&amp;quot; ROCKPro64 WIFI module.&lt;br /&gt;
| [https://store.pine64.org/product/rockpro64-1x1-dual-band-wifi-802-11acbluetooth-5-0-module ROCKPro64 1x1 Dual Band WiFi 802.11AC / Bluetooth 5.0 Module]&lt;br /&gt;
|-&lt;br /&gt;
| USB OTG&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| use this script: [https://github.com/ayufan-rock64/linux-package/blob/master/root-rockpro64/usr/local/sbin/rockpro64_enable_otg.sh rockpro64_enable_otg.sh], then configure ip on usb0: ifconfig usb0 169.169.222.222 and run iperf, you should likely see about 200-300MB/s&lt;br /&gt;
| [[ROCKPro64#OTG_mode]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| USB Mass Storage USB2/USB3&lt;br /&gt;
| Yes/yes&lt;br /&gt;
| &lt;br /&gt;
| Yes/Yes&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Dedicated Fan Power (pwm1)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| Yes&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| You might want to use [https://github.com/tuxd3v/ats ATS].&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| GPIO pins (raw or via RPI python scripts)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| Check out [https://forum.frank-mankel.org/topic/292/rockpro64-rp64-gpio/2 what Frank Mankel has done].&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| MIPI CSI Camera 1 and 2&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| eDP&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| HDMI Audio&lt;br /&gt;
| Yes&lt;br /&gt;
| 7.1.2&lt;br /&gt;
| Yes&lt;br /&gt;
| 4.4.132-1083 - 4.4.138-1100&lt;br /&gt;
| &lt;br /&gt;
| Stopped working in 4.4.154.1105. Ayufan is looking into it. This is working in Manjaro ARM (kernel 6.2.5). Select the &amp;lt;code&amp;gt;Analog Output (Built-in Audio Stereo)&amp;lt;/code&amp;gt; option in the audio output device selection window (either use &amp;lt;code&amp;gt;pavucontrol&amp;lt;/code&amp;gt; or the volume button in the KDE desktop). Despite the slightly misleading name, audio does go through the HDMI port. See here for details: https://forum.manjaro.org/t/no-hdmi-audio-on-rockpro64/25595/2.&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 3.5mm Audio/Mic&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| USB-C Host&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Display via USB-C&lt;br /&gt;
| Yes&lt;br /&gt;
| 7.x and 8.x&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| eDP via USB-C per tillim. No sound on Android 7.x. Sound does work on Android 8.x&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| ROCKPro64 PLAYBOX ENCLOSURE&lt;br /&gt;
| N/A&lt;br /&gt;
| &lt;br /&gt;
| N/A&lt;br /&gt;
| &lt;br /&gt;
| N/A&lt;br /&gt;
| Ventilation does not exist, thus requires manual changes to add venting. Case should be modified to account power adapter not being centered in cut holes. Opening the case once close without modifying it first is near impossible without special tools. Graphene heatsink is included and does well for Linux but not Android.&lt;br /&gt;
| https://pine64.com/?product=rockpro64-playbox-enclosure&lt;br /&gt;
|-&lt;br /&gt;
| ROCKPro64 30mm Tall Profile Heatsink&lt;br /&gt;
| N/A&lt;br /&gt;
| &lt;br /&gt;
| N/A&lt;br /&gt;
| &lt;br /&gt;
| N/A&lt;br /&gt;
| &lt;br /&gt;
| https://store.pine64.org/?product=rockpro64-heatsink&lt;br /&gt;
|-&lt;br /&gt;
| ROCKPro64 20mm Mid Profile Heatsink&lt;br /&gt;
| N/A&lt;br /&gt;
| &lt;br /&gt;
| N/A&lt;br /&gt;
| &lt;br /&gt;
| N/A&lt;br /&gt;
| &lt;br /&gt;
| https://pine64.com/?product=rockpro64-20mm-mid-profile-heatsink&lt;br /&gt;
|-&lt;br /&gt;
| Fan For ROCKPro64 20mm Mid Profile Heatsink&lt;br /&gt;
| N/A&lt;br /&gt;
| &lt;br /&gt;
| N/A&lt;br /&gt;
| &lt;br /&gt;
| N/A&lt;br /&gt;
| You might want to use [https://github.com/tuxd3v/fanctl fanctl] to control the fan while keeping your CPU cool&lt;br /&gt;
| https://pine64.com/?product=fan-for-rockpro64-20mm-mid-profile-heatsink&lt;br /&gt;
|-&lt;br /&gt;
| HDMI output 4K@60Hz&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| PCIe 2.1&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Real Time Clock (RTC) battery backup&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| https://store.pine64.org/?product=rtc-backup-battery-cr-battery&lt;br /&gt;
|-&lt;br /&gt;
| Boot from USB/PXE&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
RockChip themselves have tables of supported features at 4.4 and mainline kernel versions [http://opensource.rock-chips.com/wiki_Status_Matrix in their wiki here].&lt;br /&gt;
&lt;br /&gt;
== Board Information, Schematics and Certifications ==&lt;br /&gt;
* Board Dimensions: 133mm x 80mm x 19mm&lt;br /&gt;
* Input Power: +12V @3A/5A with 5.5mm/2.1mm Type M Barrel type DC connector&lt;br /&gt;
* [https://files.pine64.org/doc/rockpro64/rockpro64_v21-SCH.pdf ROCKPro64 Schematic v2.1 (Second Batch Production Release)]&lt;br /&gt;
** [https://files.pine64.org/doc/rockpro64/RockPro64_v21_Boardoutline-top.dxf ROCKPro64 v2.1 Board Top Outline in AutoCad DXF format]&lt;br /&gt;
** [https://files.pine64.org/doc/rockpro64/RockPro64_v21_Boardoutline-bottom.dxf ROCKPro64 v2.1 Board Bottom Outline in AutoCad DXF format]&lt;br /&gt;
** [https://files.pine64.org/doc/rockpro64/RockPro64_v21_Boardoutline-top.pdf ROCKPro64 v2.1 Board Top Outline in PDF format]&lt;br /&gt;
** [https://files.pine64.org/doc/rockpro64/RockPro64_v21_Boardoutline-bottom.pdf ROCKPro64 v2.1 Board Bottom Outline in PDF format]&lt;br /&gt;
* [https://files.pine64.org/doc/rockpro64/rockpro64_v20-SCH.pdf ROCKPro64 Schematic v2.0 (Pilot Production Release)]&lt;br /&gt;
** [https://files.pine64.org/doc/rockpro64/ROCKPRo64%20Engineering%20Change%20Notice%2020180628RP01.pdf Engineering Change Notice for v2.0 to turn on 3.3V power on PCIe]&lt;br /&gt;
* [https://files.pine64.org/doc/rockpro64/rockpro64_wifi_ap6359SA.pdf ROCKPro64 AP6359SA Wifi/BT Schematic]&lt;br /&gt;
* [https://files.pine64.org/doc/rockpro64/Rockpro64%20Pi-2%20Connector%20ver0.2.png ROCKPro64 Pi-2 Pin assignment and definition]&lt;br /&gt;
* [https://files.pine64.org/doc/rockpro64/RockPro-3D-model.zip ROCKPro64 3D model]&lt;br /&gt;
&lt;br /&gt;
Certifications:&lt;br /&gt;
&lt;br /&gt;
* Disclaimer: Please note that PINE64 SBC is not a &amp;quot;final&amp;quot; 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.&lt;br /&gt;
* [https://files.pine64.org/doc/cert/ROCKPro64%20FCC%20SDOC%20Certificate.pdf ROCKPro64 FCC Certificate]&lt;br /&gt;
* [https://files.pine64.org/doc/cert/ROCKPro64%20CE-EMC%20Certificate.pdf ROCKPro64 CE Certificate]&lt;br /&gt;
* [https://files.pine64.org/doc/cert/ROCKPro64%20ROHS%20%20SEC180529404001E%20Report.pdf ROCKPro64 RoHS Report]&lt;br /&gt;
&lt;br /&gt;
== Datasheets for Components and Peripherals ==&lt;br /&gt;
&lt;br /&gt;
Rockchip RK3399 SoC information:&lt;br /&gt;
&lt;br /&gt;
* [https://www.rock-chips.com/a/en/products/RK33_Series/2016/0419/758.html Rockchip RK3399 SoC Brief]&lt;br /&gt;
* [http://opensource.rock-chips.com/images/d/d7/Rockchip_RK3399_Datasheet_V2.1-20200323.pdf Rockchip RK3399 Datasheet V2.1]&lt;br /&gt;
* [http://opensource.rock-chips.com/images/e/ee/Rockchip_RK3399TRM_V1.4_Part1-20170408.pdf Rockchip RK3399 Technical Reference Manual part 1]&lt;br /&gt;
* [https://files.pine64.org/doc/datasheet/rockpro64/RK808%20datasheet%20V0.8.pdf Rockchip RK808 Datasheet V0.8]&lt;br /&gt;
&lt;br /&gt;
LPDDR4 (200 Balls) SDRAM:&lt;br /&gt;
&lt;br /&gt;
* [https://files.pine64.org/doc/datasheet/rockpro64/SM512M32Z01MD2BNP(200BALL).pdf Micron LPDDR4 Mobile LPDDR4 Datasheet]&lt;br /&gt;
&lt;br /&gt;
eMMC information:&lt;br /&gt;
&lt;br /&gt;
* [https://files.pine64.org/doc/rock64/PINE64_eMMC_Module_20170719.pdf PINE64 eMMC module schematic]&lt;br /&gt;
* [https://files.pine64.org/doc/rock64/usb%20emmc%20module%20adapter%20v2.pdf PINE64 USB adapter for eMMC module V2 schematic]&lt;br /&gt;
* [https://files.pine64.org/doc/rock64/USB%20adapter%20for%20eMMC%20module%20PCB.tar PINE64 USB adapter for eMMC module PCB in JPEG]&lt;br /&gt;
* [https://files.pine64.org/doc/datasheet/pine64/E-00517%20FORESEE_eMMC_NCEMAM8B-16G%20SPEC.pdf 16GB Foresee eMMC Datasheet]&lt;br /&gt;
* [https://files.pine64.org/doc/datasheet/pine64/SDINADF4-16-128GB-H%20data%20sheet%20v1.13.pdf 32GB/64GB/128GB SanDisk eMMC Datasheet]&lt;br /&gt;
&lt;br /&gt;
SPI NOR Flash information:&lt;br /&gt;
&lt;br /&gt;
* [https://files.pine64.org/doc/datasheet/pine64/w25q128jv%20spi%20revc%2011162016.pdf WinBond 128Mb SPI Flash Datasheet]&lt;br /&gt;
* [https://files.pine64.org/doc/datasheet/pine64/GD25Q128C-Rev2.5.pdf GigaDevice 128Mb SPI Flash Datasheet]&lt;br /&gt;
&lt;br /&gt;
Heatsink related info:&lt;br /&gt;
&lt;br /&gt;
* [https://files.pine64.org/doc/datasheet/rockpro64/Rockpro%20Passive%20Heatsink%20Spec.jpg ROCKPro64 Passive Heatsink Dimension Drawing]&lt;br /&gt;
* [https://files.pine64.org/doc/datasheet/rockpro64/LMS-TC150%20Silicon%20Thermal%20Pad.pdf Heatsink Thermal Pad Specification]&lt;br /&gt;
&lt;br /&gt;
Wireless related info:&lt;br /&gt;
&lt;br /&gt;
* AMPAK AP6256 11AC WiFi + Bluetooth5.0 Datasheet [https://files.pine64.org/doc/datasheet/rockpro64/AP6256%20datasheet_V1.3_12202017.pdf (v. 1.3)] [http://files.pine64.org/doc/datasheet/PinebookPro/AP6256%20datasheet_V1.7_12282018.pdf (v. 1.7)]&lt;br /&gt;
&lt;br /&gt;
Ethernet related info:&lt;br /&gt;
&lt;br /&gt;
* [https://files.pine64.org/doc/datasheet/rock64/RTL8211F-CG-Realtek.pdf Realtek RTL8211F 10/100/1000M Ethernet Transceiver Datasheet]&lt;br /&gt;
&lt;br /&gt;
Peripheral related info:&lt;br /&gt;
&lt;br /&gt;
* [https://files.pine64.org/doc/datasheet/rockpro64/ASM1061_Data%20Sheet_R1_8.pdf asmedia ASM1061 PCIe SATA 2.0 Datasheet]&lt;br /&gt;
&lt;br /&gt;
Remote control button mapping:&lt;br /&gt;
&lt;br /&gt;
* [https://files.pine64.org/doc/Pine%20A64%20Schematic/remote-wit-logo.jpg Official Remote Control for the PINE64 Button Mapping]&lt;br /&gt;
&lt;br /&gt;
Audio Codec (ES8316) (under board):&lt;br /&gt;
&lt;br /&gt;
* [http://everest-semi.com/pdf/ES8316%20PB.pdf Everest ES8316 Audio Codec]&lt;br /&gt;
&lt;br /&gt;
PWM controlled fan, SPDIF, and RTC Battery Backup headers:&lt;br /&gt;
&lt;br /&gt;
* [https://www.jst-mfg.com/product/pdf/eng/ePH.pdf JST-PH connector]&lt;br /&gt;
&lt;br /&gt;
== Useful Articles and Blog Posts ==&lt;br /&gt;
&lt;br /&gt;
If you want to dive in to the ecosystem, here's a short list of various articles and blog posts that can help you set up your soft- or hardware development environment.&lt;br /&gt;
&lt;br /&gt;
* [https://stikonas.eu/wordpress/2019/09/15/blobless-boot-with-rockpro64/ Blobless boot with RockPro64 by Andrius Štikonas]&lt;br /&gt;
&lt;br /&gt;
* [https://marcin.juszkiewicz.com.pl/2020/06/17/ebbr-on-rockpro64/ EBBR on RockPro64 by Marcin Juszkiewicz]&lt;br /&gt;
&lt;br /&gt;
* [[ROCKPro64 Device Tree Overlays on Mainline]]&lt;br /&gt;
&lt;br /&gt;
== The NAS Case for the ROCKPro64 ==&lt;br /&gt;
&lt;br /&gt;
[[file:NASCaseMain.png|thumb|right|Front View of the PINE64 NAS Case for the ROCKPro64]]&lt;br /&gt;
&lt;br /&gt;
Please [[NASCase|follow this this link]] for '''detailed instructions on how to assemble the ROCKPro64 NAS Case'''.&lt;br /&gt;
&lt;br /&gt;
The NAS Case instructions also contains detailed information about:&lt;br /&gt;
*what the NAS Case ships with&lt;br /&gt;
*What additional things you need to purchase for your NAS Case&lt;br /&gt;
*What optional things you can consider purchasing for your NAS build&lt;br /&gt;
*What OS Image we recommend you use for your NAS build&lt;br /&gt;
*IO accessibility after installing the ROCKPro64 into the NAS Case&lt;br /&gt;
*[https://files.pine64.org/doc/rockpro64/ROCKPro64%20NAS%20Case%20Exploded%20View%20Diagram.pdf NAS Case Exploded View]&lt;br /&gt;
*[https://files.pine64.org/doc/rockpro64/NAS%20Case%20Drawing.dwg NAS Case Drawing]&lt;br /&gt;
&lt;br /&gt;
== 3D printable ITX mounting brackets ==&lt;br /&gt;
&lt;br /&gt;
[[file:ITX-Bracket-Mounted.jpg|300px|thumb|right|A Quartz64-A mounted in an ITX case using 3D printed brackets]]&lt;br /&gt;
&lt;br /&gt;
Allows mounting a ROCKPro64-A or Quartz64-A board inside a regular PC case that conforms to the ITX standard, using 3D printed brackets:&lt;br /&gt;
&lt;br /&gt;
* AMF/STL/STEP files plus the original FreeCAD file used to create the models [[File:RP64-A_Q64-A_to_ITX_mounting_brackets.zip]]&lt;br /&gt;
* Make sure to flip the two brackets by 180 degrees on one of the horizontal axes (X/Y) in your slicer of choice before printing to avoid unnecessary supports&lt;br /&gt;
* To allow enough clearance between the board and the bracket you either need to print four copies of the washer model or add nut(s) between the board and the bracket&lt;br /&gt;
* If using nuts for the clearance between the board and the brackets, make sure it creates at least 3.2mm of spacing in between&lt;br /&gt;
* Depending on the accuracy and calibration of a 3D printer, slight deviation can occur and you likely need to manually widen some of the holes to allow screws to fit&lt;br /&gt;
&lt;br /&gt;
== Other Resources ==&lt;br /&gt;
&lt;br /&gt;
* [https://forum.pine64.org/forumdisplay.php?fid=98 ROCKPro64 Forum]&lt;br /&gt;
* [https://pine64.com/?post_type=product PINE64 shop]&lt;br /&gt;
* [https://github.com/rockchip-linux Rockchip Linux GitHub Repo]&lt;br /&gt;
* [http://opensource.rock-chips.com/ Rockchip Open Source Wiki]&lt;br /&gt;
* ExplainingComputers have a video review [https://www.youtube.com/watch?v=CeoNHGFN_30 of the RockPro64 here, including linux first boot.]&lt;br /&gt;
* [[ROCKPro64 Installing Arch Linux ARM]]&lt;br /&gt;
* [[ROCKPro64 Powering From An ATX Supply]]&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
=== No Video or GPU Acceleration on Debian ===&lt;br /&gt;
&lt;br /&gt;
If you can log in through serial but don't get any video or GPU acceleration on Debian, this is likely due to Debian's decision to compile the devfreq governors as loadable modules but not including them early enough for panfrost to be able to be provided with one of them.&lt;br /&gt;
&lt;br /&gt;
The usual sign of this being the case is the following line in your log: &amp;lt;code&amp;gt;[drm:panfrost_devfreq_init [panfrost]] *ERROR* Couldn't initialize GPU devfreq&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Log in to your ROCKPro64, and run the following:&lt;br /&gt;
&lt;br /&gt;
 sudo -i&lt;br /&gt;
 echo governor_simpleondemand &amp;gt;&amp;gt; /etc/initramfs-tools/modules &amp;amp;&amp;amp; update-initramfs -u -k $(uname -r)&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
Then, reboot.&lt;br /&gt;
&lt;br /&gt;
== Hardware &amp;quot;Hacking&amp;quot; ==&lt;br /&gt;
&lt;br /&gt;
=== Enabling PCIe 2.0 ===&lt;br /&gt;
By default, the RockPro64 runs the PCIe slot at gen 1 speeds because there might be stability issues with gen 2 speeds. The port can be switched back to gen 2 speeds by adding the following device tree overlay.&lt;br /&gt;
&lt;br /&gt;
1. Copy and paste the device tree overlay file below into a new file (you could name it &amp;lt;code&amp;gt;pcie-2.0.dts&amp;lt;/code&amp;gt;):&lt;br /&gt;
 // Pulled from: https://forum.armbian.com/topic/23574-howto-enable-pcie-gen2-to-get-max-speed-of-nvme-rockpi-4b/&lt;br /&gt;
 /dts-v1/;&lt;br /&gt;
 /plugin/;&lt;br /&gt;
 &lt;br /&gt;
 &amp;amp;pcie0 {&lt;br /&gt;
         max-link-speed = &amp;lt;0x03&amp;gt;;&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
2. Compile the device tree into a binary file. Note that you will need &amp;lt;code&amp;gt;dtc&amp;lt;/code&amp;gt; installed.&lt;br /&gt;
 dtc -I dts -O dtb -@ pcie-2.0.dts -o pcie-2.0.dto&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
4. Copy or move the device tree from the current directory into the boot partition (in this case into the &amp;lt;code&amp;gt;/boot/dtbs/overlay/&amp;lt;/code&amp;gt; folder). If you haven't yet created the &amp;lt;code&amp;gt;/boot/dtbs/overlay/&amp;lt;/code&amp;gt; folder, then create it with &amp;lt;code&amp;gt;sudo mkdir /boot/dtbs/overlay/&amp;lt;/code&amp;gt;&lt;br /&gt;
 sudo cp pcie-2.0.dto /boot/dtbs/overlay/&lt;br /&gt;
&lt;br /&gt;
5. Add the device compiled tree overlay file to the list of files u-boot needs to load. If you are using ManjaroARM (or ArchLinuxARM with a &amp;lt;code&amp;gt;extlinux.conf&amp;lt;/code&amp;gt; file), then add the following line to the file &amp;lt;code&amp;gt;/boot/extlinux/extlinux.conf&amp;lt;/code&amp;gt;:&lt;br /&gt;
 FDTOVERLAYS /dtbs/overlay/pcie-2.0.dtb&lt;br /&gt;
&lt;br /&gt;
If you already have an &amp;lt;code&amp;gt;FDTOVERLAYS&amp;lt;/code&amp;gt; line, then add a space at the end of the current line, then add this overlay file after that.&lt;br /&gt;
See here for details on this process: [[ROCKPro64 Device Tree Overlays on Mainline]]&lt;br /&gt;
&lt;br /&gt;
The resulting &amp;lt;code&amp;gt;/boot/extlinux/extlinux.conf&amp;lt;/code&amp;gt; file might look like below after adding this dtb file:&lt;br /&gt;
 LABEL Manjaro ARM&lt;br /&gt;
 KERNEL /Image&lt;br /&gt;
 FDT /dtbs/rockchip/rk3399-rockpro64.dtb&lt;br /&gt;
 FDTOVERLAYS /dtbs/overlay/pcie-2.0.dtb /dtbs/overlay/cpu-overclock.dtb&lt;br /&gt;
 APPEND initrd=/initramfs-linux.img console=ttyS2,1500000 zfs=zroot rw rootwait audit=0 cpufreq.default_governor=schedutil&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Overclocking (and undervolting) ===&lt;br /&gt;
The RK3399 can be overclocked. See here for details: [[Overclocking#RK3399-based devices]].&lt;br /&gt;
By overclocking, you do risk damaging your hardware, however, it is possible to achieve small, but measurable improvements in performance with an overclock. The overclock can be applied with a device tree overlay file.&lt;br /&gt;
Below is an example device tree overlay for CPU overclocking on the RockPro64. It may or may not work well on your device, but I found that these speeds were stable for me.&lt;br /&gt;
The example below bumps the little cores up to 1.608GHz from 1.416GHz and bumps the big cores up to 2.088GHz from 1.8GHz.&lt;br /&gt;
&lt;br /&gt;
1. Copy and paste the device tree overlay file below into a new file (you could name it &amp;lt;code&amp;gt;cpu-overclock.dts&amp;lt;/code&amp;gt;):&lt;br /&gt;
 // Pulled from: https://github.com/torvalds/linux/blob/master/arch/arm64/boot/dts/rockchip/rk3399-op1-opp.dtsi&lt;br /&gt;
 /dts-v1/;&lt;br /&gt;
 /plugin/;&lt;br /&gt;
 &lt;br /&gt;
        &amp;amp;cluster0_opp {&lt;br /&gt;
                opp00 {&lt;br /&gt;
                        opp-hz = /bits/ 64 &amp;lt;408000000&amp;gt;;&lt;br /&gt;
                        opp-microvolt = &amp;lt;800000&amp;gt;;&lt;br /&gt;
                        clock-latency-ns = &amp;lt;40000&amp;gt;;&lt;br /&gt;
                };&lt;br /&gt;
                opp01 {&lt;br /&gt;
                        opp-hz = /bits/ 64 &amp;lt;600000000&amp;gt;;&lt;br /&gt;
                        opp-microvolt = &amp;lt;825000&amp;gt;;&lt;br /&gt;
                };&lt;br /&gt;
                opp02 {&lt;br /&gt;
                        opp-hz = /bits/ 64 &amp;lt;816000000&amp;gt;;&lt;br /&gt;
                        opp-microvolt = &amp;lt;850000&amp;gt;;&lt;br /&gt;
                };&lt;br /&gt;
                opp03 {&lt;br /&gt;
                        opp-hz = /bits/ 64 &amp;lt;1008000000&amp;gt;;&lt;br /&gt;
                        opp-microvolt = &amp;lt;900000&amp;gt;;&lt;br /&gt;
                };&lt;br /&gt;
                opp04 {&lt;br /&gt;
                        opp-hz = /bits/ 64 &amp;lt;1200000000&amp;gt;;&lt;br /&gt;
                        opp-microvolt = &amp;lt;975000&amp;gt;;&lt;br /&gt;
                };&lt;br /&gt;
                opp05 {&lt;br /&gt;
                        opp-hz = /bits/ 64 &amp;lt;1416000000&amp;gt;;&lt;br /&gt;
                        opp-microvolt = &amp;lt;1100000&amp;gt;;&lt;br /&gt;
                };&lt;br /&gt;
                opp06 {&lt;br /&gt;
                        opp-hz = /bits/ 64 &amp;lt;1512000000&amp;gt;;&lt;br /&gt;
                        opp-microvolt = &amp;lt;1150000&amp;gt;;&lt;br /&gt;
                };&lt;br /&gt;
                opp07 {&lt;br /&gt;
                        opp-hz = /bits/ 64 &amp;lt;1608000000&amp;gt;;&lt;br /&gt;
                        opp-microvolt = &amp;lt;1200000&amp;gt;;&lt;br /&gt;
                };&lt;br /&gt;
        };&lt;br /&gt;
        &amp;amp;cluster1_opp {&lt;br /&gt;
                opp00 {&lt;br /&gt;
                        opp-hz = /bits/ 64 &amp;lt;408000000&amp;gt;;&lt;br /&gt;
                        opp-microvolt = &amp;lt;800000&amp;gt;;&lt;br /&gt;
                        clock-latency-ns = &amp;lt;40000&amp;gt;;&lt;br /&gt;
                };&lt;br /&gt;
                opp01 {&lt;br /&gt;
                        opp-hz = /bits/ 64 &amp;lt;600000000&amp;gt;;&lt;br /&gt;
                        opp-microvolt = &amp;lt;800000&amp;gt;;&lt;br /&gt;
                };&lt;br /&gt;
                opp02 {&lt;br /&gt;
                        opp-hz = /bits/ 64 &amp;lt;816000000&amp;gt;;&lt;br /&gt;
                        opp-microvolt = &amp;lt;825000&amp;gt;;&lt;br /&gt;
                };&lt;br /&gt;
                opp03 {&lt;br /&gt;
                        opp-hz = /bits/ 64 &amp;lt;1008000000&amp;gt;;&lt;br /&gt;
                        opp-microvolt = &amp;lt;850000&amp;gt;;&lt;br /&gt;
                };&lt;br /&gt;
                opp04 {&lt;br /&gt;
                        opp-hz = /bits/ 64 &amp;lt;1200000000&amp;gt;;&lt;br /&gt;
                        opp-microvolt = &amp;lt;900000&amp;gt;;&lt;br /&gt;
                };&lt;br /&gt;
                opp05 {&lt;br /&gt;
                        opp-hz = /bits/ 64 &amp;lt;1416000000&amp;gt;;&lt;br /&gt;
                        opp-microvolt = &amp;lt;975000&amp;gt;;&lt;br /&gt;
                };&lt;br /&gt;
                opp06 {&lt;br /&gt;
                        opp-hz = /bits/ 64 &amp;lt;1608000000&amp;gt;;&lt;br /&gt;
                        opp-microvolt = &amp;lt;1050000&amp;gt;;&lt;br /&gt;
                };&lt;br /&gt;
                opp07 {&lt;br /&gt;
                        opp-hz = /bits/ 64 &amp;lt;1800000000&amp;gt;;&lt;br /&gt;
                        opp-microvolt = &amp;lt;1150000&amp;gt;;&lt;br /&gt;
                };&lt;br /&gt;
                opp08 {&lt;br /&gt;
                        opp-hz = /bits/ 64 &amp;lt;2016000000&amp;gt;;&lt;br /&gt;
                        opp-microvolt = &amp;lt;1250000&amp;gt;;&lt;br /&gt;
                };&lt;br /&gt;
                opp09 {&lt;br /&gt;
                        opp-hz = /bits/ 64 &amp;lt;2088000000&amp;gt;;&lt;br /&gt;
                        opp-microvolt = &amp;lt;1250000&amp;gt;;&lt;br /&gt;
                };&lt;br /&gt;
        };&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2. Compile the device tree into a binary file. Note that you will need &amp;lt;code&amp;gt;dtc&amp;lt;/code&amp;gt; installed.&lt;br /&gt;
 dtc -I dts -O dtb -@ cpu-overclock.dts -o cpu-overclock.dto&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
4. Copy or move the device tree from the current directory into the boot partition (in this case into the &amp;lt;code&amp;gt;/boot/dtbs/overlay/&amp;lt;/code&amp;gt; folder). If you haven't yet created the &amp;lt;code&amp;gt;/boot/dtbs/overlay/&amp;lt;/code&amp;gt; folder, then create it with &amp;lt;code&amp;gt;sudo mkdir /boot/dtbs/overlay/&amp;lt;/code&amp;gt;&lt;br /&gt;
 sudo cp cpu-overclock.dto /boot/dtbs/overlay/&lt;br /&gt;
&lt;br /&gt;
5. Add the device compiled tree overlay file to the list of files u-boot needs to load. If you are using ManjaroARM (or ArchLinuxARM with a &amp;lt;code&amp;gt;extlinux.conf&amp;lt;/code&amp;gt; file), then add the following line to the file &amp;lt;code&amp;gt;/boot/extlinux/extlinux.conf&amp;lt;/code&amp;gt;:&lt;br /&gt;
 FDTOVERLAYS /dtbs/overlay/cpu-overclock.dtb&lt;br /&gt;
&lt;br /&gt;
If you already have an &amp;lt;code&amp;gt;FDTOVERLAYS&amp;lt;/code&amp;gt; line, then add a space at the end of the current line, then add this overlay file after that.&lt;br /&gt;
See here for details on this process: [[ROCKPro64 Device Tree Overlays on Mainline]]&lt;br /&gt;
&lt;br /&gt;
The resulting &amp;lt;code&amp;gt;/boot/extlinux/extlinux.conf&amp;lt;/code&amp;gt; file might look like below after adding this dtb file:&lt;br /&gt;
 LABEL Manjaro ARM&lt;br /&gt;
 KERNEL /Image&lt;br /&gt;
 FDT /dtbs/rockchip/rk3399-rockpro64.dtb&lt;br /&gt;
 FDTOVERLAYS /dtbs/overlay/pcie-2.0.dtb /dtbs/overlay/cpu-overclock.dtb&lt;br /&gt;
 APPEND initrd=/initramfs-linux.img console=ttyS2,1500000 zfs=zroot rw rootwait audit=0 cpufreq.default_governor=schedutil&lt;br /&gt;
&lt;br /&gt;
=== Getting wifi working (&amp;quot;new&amp;quot; wifi module) ===&lt;br /&gt;
ManjaroARM and ArchLinuxARM (and probably others) provide the NVRAM file needed to initialize the Wi-Fi module, but it is listed under the generic name &amp;lt;code&amp;gt;brcmfmac43455-sdio.AW-CM256SM.txt&amp;lt;/code&amp;gt;.&lt;br /&gt;
You can copy this file to the new name (that the driver looks for) with the following commands:&lt;br /&gt;
 cd /usr/lib/firmware/brcm/&lt;br /&gt;
 sudo cp brcmfmac43455-sdio.AW-CM256SM.txt brcmfmac43455-sdio.txt&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Then, reboot and Wi-Fi should start working.&lt;br /&gt;
Details for this method are here: https://forum.pine64.org/showthread.php?tid=16635&amp;amp;pid=117061#pid117061&lt;br /&gt;
However, I noticed that on a 5GHz network with &amp;lt;code&amp;gt;wireless-regdb&amp;lt;/code&amp;gt; installed and the regulatory domain set correctly (to 'US'), the adapter was almost unusable. Speeds were usually 0 bits per second. Sometimes a few packets would get through every few seconds, but that was it. On a 2.4GHz network, this was not an issue. This &amp;quot;can&amp;quot; be resolved by setting the regulator domain to 'GB' or 'CN', but this doesn't seem like a great solution. Instead, I tried various other &amp;lt;code&amp;gt;brcmfmac43455-sdio.txt&amp;lt;/code&amp;gt; files found online. Some worked better than others. I combined parts of various files and found that applying the patch below to the default &amp;lt;code&amp;gt;brcmfmac43455-sdio.AW-CM256SM.txt&amp;lt;/code&amp;gt; file fixed the issue. I was able to get about 140Mbps up and down with this patch (with the regulatory domain set correctly to 'US').&lt;br /&gt;
&lt;br /&gt;
 --- brcmfmac43455-sdio.AW-CM256SM.txt   2023-04-27 19:16:47.000000000 -0500&lt;br /&gt;
 +++ brcmfmac43455-sdio.txt      2023-05-21 11:42:22.058517093 -0500&lt;br /&gt;
 @@ -21,19 +21,18 @@&lt;br /&gt;
  ltecxpadnum=0x0504&lt;br /&gt;
  macaddr=00:90:4c:c5:12:38&lt;br /&gt;
  manfid=0x2d0&lt;br /&gt;
 -maxp2ga0=64&lt;br /&gt;
 -maxp5ga0=80,82,76,77&lt;br /&gt;
 -mcsbw202gpo=0x99355533&lt;br /&gt;
 -mcsbw205ghpo=0x99855000&lt;br /&gt;
 -mcsbw205glpo=0x99755000&lt;br /&gt;
 -mcsbw205gmpo=0x9df55000&lt;br /&gt;
 -mcsbw405ghpo=0xd9755000&lt;br /&gt;
 -mcsbw405glpo=0xb8555000&lt;br /&gt;
 -mcsbw405gmpo=0xed955000&lt;br /&gt;
 -mcsbw805ghpo=0xd9555000&lt;br /&gt;
 -mcsbw805glpo=0xc8555000&lt;br /&gt;
 -mcsbw805gmpo=0xe9555000&lt;br /&gt;
 -muxenab=0x10&lt;br /&gt;
 +maxp2ga0=70&lt;br /&gt;
 +maxp5ga0=73,74,73,73&lt;br /&gt;
 +mcsbw202gpo=0x99333322&lt;br /&gt;
 +mcsbw205ghpo=0x8a875444&lt;br /&gt;
 +mcsbw205glpo=0x8a875444&lt;br /&gt;
 +mcsbw205gmpo=0x8a875444&lt;br /&gt;
 +mcsbw405ghpo=0xda844333&lt;br /&gt;
 +mcsbw405glpo=0xda844333&lt;br /&gt;
 +mcsbw405gmpo=0xdb844333&lt;br /&gt;
 +mcsbw805ghpo=0xda555444&lt;br /&gt;
 +mcsbw805glpo=0xdb555444&lt;br /&gt;
 +mcsbw805gmpo=0xda555444&lt;br /&gt;
  nocrc=1&lt;br /&gt;
  ofdmlrbw202gpo=0x0033&lt;br /&gt;
  pa2ga0=-112,6296,-662&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To use this patch, copy it off into a file and use the &amp;lt;code&amp;gt;patch&amp;lt;/code&amp;gt; command.&lt;br /&gt;
However, it might be easier to apply the patch by-hand. &lt;br /&gt;
To do this, delete the line with `maxp2ga0=64` through the line with `muxenab=0x10`.&lt;br /&gt;
Then add the following in its place:&lt;br /&gt;
 maxp2ga0=70&lt;br /&gt;
 maxp5ga0=73,74,73,73&lt;br /&gt;
 mcsbw202gpo=0x99333322&lt;br /&gt;
 mcsbw205ghpo=0x8a875444&lt;br /&gt;
 mcsbw205glpo=0x8a875444&lt;br /&gt;
 mcsbw205gmpo=0x8a875444&lt;br /&gt;
 mcsbw405ghpo=0xda844333&lt;br /&gt;
 mcsbw405glpo=0xda844333&lt;br /&gt;
 mcsbw405gmpo=0xdb844333&lt;br /&gt;
 mcsbw805ghpo=0xda555444&lt;br /&gt;
 mcsbw805glpo=0xdb555444&lt;br /&gt;
 mcsbw805gmpo=0xda555444&lt;br /&gt;
&lt;br /&gt;
Reboot and the Wi-Fi (at least for 5GHz networks) should work well. I was unable to determine what these fields do, so I am not sure what impact this has on the Wi-Fi module or your ability to operate it legally in your country. From what I can tell (and I haven't looked into the process in too much depth), it seems that this file is passed directly to the hardware, where it is interpreted by the Wi-Fi module itself, but I am not sure on this. However, given that this file is simply a combination of other existing files for similar hardware, I would think that it should be fine.&lt;br /&gt;
The additions to the existing, distribution-provided, file where pulled from here: https://github.com/reMarkable/brcmfmac-firmware/blob/master/brcmfmac43455-sdio.txt&lt;br /&gt;
&lt;br /&gt;
=== Stabilizing the system (underclocking the RAM) ===&lt;br /&gt;
WIP&lt;br /&gt;
&lt;br /&gt;
[[Category:ROCKPro64]] [[Category:Rockchip RK3399]]&lt;/div&gt;</summary>
		<author><name>I3master</name></author>
	</entry>
	<entry>
		<id>https://wiki.pine64.org/index.php?title=ROCKPro64&amp;diff=19692</id>
		<title>ROCKPro64</title>
		<link rel="alternate" type="text/html" href="https://wiki.pine64.org/index.php?title=ROCKPro64&amp;diff=19692"/>
		<updated>2023-05-28T23:04:27Z</updated>

		<summary type="html">&lt;p&gt;I3master: Added WIFI tips.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:ROCKPro64v21FRONT.jpg|400px|thumb|right|The ROCKPro64]]&lt;br /&gt;
&lt;br /&gt;
The '''ROCKPro64''' is the most powerful Single Board Computer released by PINE64. It is powered by a Rockchip RK3399 Hexa-Core (dual ARM Cortex A72 and quad ARM Cortex A53) 64-Bit Processor with a Mali T-860 Quad-Core GPU. The key features include a PCIe x4 open ended slot, the use of LPDDR4 RAM, and industry standard heatsink mounting holes.&lt;br /&gt;
&lt;br /&gt;
The ROCKPro64 is equipped with 2GB or 4GB LPDDR4 system memory, and 128Mb SPI boot Flash. There is also an optional eMMC module (up to 128GB) and microSD slot for booting. The board is equipped with 1x USB 3.0 type C Host with DP 1.2, 1x USB 3.0 type A Host, 2x USB 2.0 Host, Gigabit Ethernet, PI-2 GPIO Bus, MiPi DSI interface, eDP interface, touch Panel interface, stereo MiPi CSI interface, as well as many other device interfaces such as UART, SPI, I2C, for makers to integrate with sensors and other peripherals. Many different Operating Systems (OS) are freely available from the open source community, such as Android, Linux (Ubuntu, Debian, Arch), and BSD.&lt;br /&gt;
&lt;br /&gt;
== Getting Started ==&lt;br /&gt;
&lt;br /&gt;
The article [[ROCKPro64 Getting Started]] gives important information to get the board up and running.&lt;br /&gt;
&lt;br /&gt;
== Software releases ==&lt;br /&gt;
&lt;br /&gt;
In the [[ROCKPro64 Software Releases]] page, you will find a complete list of currently supported Operating System images that work with the ROCKPro64, as well as other related software. The Software Release page has links to download the images as well as high level instructions to load each image.&lt;br /&gt;
&lt;br /&gt;
Please see the [[Getting started]] page for detailed discussion of what you need (prerequisites) as well as instructions if the high level instructions are insufficient.&lt;br /&gt;
&lt;br /&gt;
== Board Layout ==&lt;br /&gt;
[[Image:ROCKPro64v21REAR.jpg|thumb|right|A hi-res picture of v2.1 rear.]]&lt;br /&gt;
[[Image:FLIR 20220619 125451 686.jpg|thumb|right|A thermal image of v2.1 front (upside-down).]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:ROCKPro64_annotated.jpg|500px|An annotated ROCKPro64]]&lt;br /&gt;
&lt;br /&gt;
=== Main Chips ===&lt;br /&gt;
* RK3399 system-on-chip (1)&lt;br /&gt;
* LPDDR4 SDRAM 1 (18)&lt;br /&gt;
* LPDDR4 SDRAM 2 (3)&lt;br /&gt;
* SPI NOR flash memory (17)&lt;br /&gt;
* RK808 power management (near 19)&lt;br /&gt;
* RTL8211 ethernet transceiver (near 25)&lt;br /&gt;
* ES8316 Sound Codec (on rear of board)&lt;br /&gt;
* The heatsink mounting holes around the RK3399 are 59 mm apart&lt;br /&gt;
&lt;br /&gt;
=== Switches ===&lt;br /&gt;
&lt;br /&gt;
The Power button (11, SW3): is the same as on your mobile phone - press and release after about 1 second to power on. Press and hold for about 3 seconds to power off.&lt;br /&gt;
&lt;br /&gt;
The Reset button (10, SW901): performs a reset.&lt;br /&gt;
&lt;br /&gt;
The Recover button (28, SW900): used to enter maskrom mode.&lt;br /&gt;
&lt;br /&gt;
=== Connectors, Sockets and Headers ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;line-height: 1.4;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;font-size: .9em;&amp;quot;&lt;br /&gt;
! Diagram !! Schematic&amp;lt;br&amp;gt;designator !! Silkscreen&amp;lt;br&amp;gt;label !! Number&amp;lt;br&amp;gt;of pins !! Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 2  || U39   || PI-2-bus || style=&amp;quot;text-align: center;&amp;quot; | 40 || Pi-2 bus &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 4  || J8    || +FAN- || style=&amp;quot;text-align: center;&amp;quot; | 2 || PWM controlled fan header&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 5  || J10   || SPDIF || style=&amp;quot;text-align: center;&amp;quot; | 3 || SPDIF header&lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 6  || U6    || +RTC- || style=&amp;quot;text-align: center;&amp;quot; | 2 || RTC battery backup header&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7  || U31   || Wifi-BT || style=&amp;quot;text-align: center;&amp;quot; | 16 || SDIO WIFI/BT module-MIMO 2&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 8  || USB3  ||  || style=&amp;quot;text-align: center;&amp;quot; | 9 || USB-3 and USB Type C&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 9  || USB1  ||  || style=&amp;quot;text-align: center;&amp;quot; | 2×4 || Dual USB-2&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 12 || IR1   || IR || style=&amp;quot;text-align: center;&amp;quot; | 3 || infrared receiver socket &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 13 || J16   || Headphone+mic || style=&amp;quot;text-align: center;&amp;quot; | 4 || Headphone + mic 3.5mm jack&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -  || CON16 || GND PWR RST GND || style=&amp;quot;text-align: center;&amp;quot; | 4 || Power &amp;amp; reset, unpopulated&amp;lt;br&amp;gt;header near Headphone jack&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 14 || U29   || EMMC || style=&amp;quot;text-align: center;&amp;quot; | 34 || eMMC connector&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 14* || J13  ||  || style=&amp;quot;text-align: center;&amp;quot; | 13 || TF-card, a.k.a. microSD&amp;lt;br&amp;gt;(* under 14 on the bottom side)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 15 || U30   ||  || style=&amp;quot;text-align: center;&amp;quot; | 14 || SDIO WIFI/BT module-MIMO 1&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 16 || SW4   ||  || style=&amp;quot;text-align: center;&amp;quot; | 2 || Jumper to [[#Disable eMMC]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 19 || J15   || PCI || style=&amp;quot;text-align: center;&amp;quot; | 64 || PCI-express X4 socket&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 20 || J21   || DSI || style=&amp;quot;text-align: center;&amp;quot; | 30 || DSI&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 21 || J22   || EDP || style=&amp;quot;text-align: center;&amp;quot; | 30 || LCD EDP&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 22 || CON1  || TP || style=&amp;quot;text-align: center;&amp;quot; | 6 || touch panel connector&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 23 || CON15 ||  || style=&amp;quot;text-align: center;&amp;quot; | 4 || DC out for SATA disk cable&amp;lt;br&amp;gt;(direct connect from DC-IN)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 24 || J11   || DC-IN || style=&amp;quot;text-align: center;&amp;quot; | 2 || Power input, positive tip;&amp;lt;br&amp;gt;12V/3A (minimum) recommended&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 25 || U32   ||  || style=&amp;quot;text-align: center;&amp;quot; | 8 || 8P8C (often referred to as 'RJ45')&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 26 || J14   ||  || style=&amp;quot;text-align: center;&amp;quot; | 19 || HDMI&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 27 || J17   || MIPI CAM || style=&amp;quot;text-align: center;&amp;quot; | 32 || MIPI-1&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 29 || J19   || MIPI CAM || style=&amp;quot;text-align: center;&amp;quot; | 32 || MIPI-2&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 30 || J18   || CIF || style=&amp;quot;text-align: center;&amp;quot; | 26 || CIF&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== LEDs ===&lt;br /&gt;
&lt;br /&gt;
A green LED next to the 12V input barrel connector will light as long as there is 12V applied to the connector. (Even if the RockPro64 is powered off.)&lt;br /&gt;
&lt;br /&gt;
A white LED behind the reset button will light as long as the RockPro64 is running (it comes on a few seconds after power on, when control is passed to the operating system.)&lt;br /&gt;
&lt;br /&gt;
A red LED behind the reset button is DIY - it is lit for example if the board is in OTG mode with an Ayufan image, or if an Android image is in standby mode.&lt;br /&gt;
&lt;br /&gt;
Yellow and green LEDs on the LAN socket behave in a standard way.&lt;br /&gt;
&lt;br /&gt;
=== Jumpers ===&lt;br /&gt;
They are used for boot device selection, as described in the following section.&lt;br /&gt;
&lt;br /&gt;
==== Disable eMMC ====&lt;br /&gt;
&lt;br /&gt;
There is an unlabelled (on the PCB silk-screen) 2-pin jumper (16) between the eMMC socket (14) and the SPI chip (17). It is designated as SW4 on the [[#Board Information, Schematics and Certifications | schematic diagram]]. The default condition is OPEN (no jumper). It is useful for controlling the boot as follows:&lt;br /&gt;
&lt;br /&gt;
Default boot device (with no SPI software) is eMMC, then SDcard. If both the eMMC and the SDcard contain bootable images then the eMMC can be disabled by installing the jumper. This completely removes the eMMC from the resulting OS. If you wish the eMMC to be visible in the booted OS the jumper should be removed 2 seconds after applying power (and before the white LED comes on).&lt;br /&gt;
&lt;br /&gt;
The possible combinations are summarised in the table below.&lt;br /&gt;
&lt;br /&gt;
* 1 = present&lt;br /&gt;
* 0 = not present&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
! µSD !! eMMC !! SW4 !! boot from&lt;br /&gt;
|-&lt;br /&gt;
| 0 || 0 || 0 || unsupported&lt;br /&gt;
|-&lt;br /&gt;
| 0 || 0 || 1 || unsupported&lt;br /&gt;
|-&lt;br /&gt;
| 0 || 1 || 0 || eMMC&lt;br /&gt;
|-&lt;br /&gt;
| 0 || 1 || 1 || unsupported&lt;br /&gt;
|-&lt;br /&gt;
| 1 || 0 || 0 || SDCard&lt;br /&gt;
|-&lt;br /&gt;
| 1 || 0 || 1 || SDCard&lt;br /&gt;
|-&lt;br /&gt;
| 1 || 1 || 0 || eMMC&lt;br /&gt;
|-&lt;br /&gt;
| 1 || 1 || 1 || SDCard&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Disable SPI (while booting) ====&lt;br /&gt;
There is a second possibility to jumper your ROCKPro64: If you mess-up your SPI and are unable to boot, jumpering pins 23 (CLK) and 25 pin (GND) on the PI-2-bus header will disable the SPI as a boot device. (This was taken from the IRC logs, 09 August 2018 @ 17:23) You have to remove the jumper 2 seconds after having started your RP64 (before the white LED turns ON) otherwise the SPI will be missing and you won't be able to flash it.&lt;br /&gt;
Ayufan images contain (at the moment) only one script for the SPI and the RP64, it's &amp;quot;rockpro64_reset_spi_flash&amp;quot;. Other SPI scripts are dedicated to the R64 (as it is written on the name) and it will mess-up your RP64 SPI if you use them.&lt;br /&gt;
&lt;br /&gt;
== Hardware Compatibility ==&lt;br /&gt;
&lt;br /&gt;
The hardware compatibility list can be found under [[ROCKPro64 Hardware compatibility]].&lt;br /&gt;
&lt;br /&gt;
== Board Features ==&lt;br /&gt;
&lt;br /&gt;
This section outlines the most important characteristics of the board and its components.&lt;br /&gt;
&lt;br /&gt;
=== SoC and Memory Specification ===&lt;br /&gt;
* Based on Rockchip RK3399&lt;br /&gt;
[[File:Rockchip_RK3399.png|right]]&lt;br /&gt;
&lt;br /&gt;
==== CPU Architecture ====&lt;br /&gt;
&lt;br /&gt;
* [https://developer.arm.com/products/processors/cortex-a/cortex-a72 Dual-core Cortex-A72 up to 2.0GHz CPU]&lt;br /&gt;
* [https://developer.arm.com/products/processors/cortex-a/cortex-a53 Quad-core Cortex-A53 up to 1.5GHz CPU]&lt;br /&gt;
* big.LITTLE architecture: Dual Cortex-A72 + Quad Cortex-A53, 64-bit CPU&lt;br /&gt;
* Cortex-A72:&lt;br /&gt;
** 1-4x Symmetrical Multiprocessing (SMP) within a single processor cluster, and multiple coherent SMP processor clusters through AMBA 5 CHI or AMBA 4 ACE technology&lt;br /&gt;
** AArch64 for 64-bit support and new architectural features&lt;br /&gt;
** L1 cache 48KB Icache and 32KB Dcache for each A72 &lt;br /&gt;
** L2 cache 1024KB for big cluster &lt;br /&gt;
** DSP &amp;amp; SIMD extensions&lt;br /&gt;
** VFPv4 floating point&lt;br /&gt;
** Hardware virtualization support&lt;br /&gt;
* Cortex-A53:&lt;br /&gt;
** L1 cache 32KB Icache and 32KB Dcache for each A53&lt;br /&gt;
** L2 cache 512KB for little cluster &lt;br /&gt;
* Full implementation of the ARM architecture v8-A instruction set&lt;br /&gt;
* ARM Neon Advanced SIMD (single instruction, multiple data) support for accelerated media and signal processing computation&lt;br /&gt;
* ARMv8 Cryptography Extensions&lt;br /&gt;
* In-order pipeline with symmetric dual-issue of most instructions&lt;br /&gt;
* Include VFP v3 hardware to support single and double-precision operations&lt;br /&gt;
* TrustZone technology support&lt;br /&gt;
* Full CoreSight debug solution&lt;br /&gt;
* One isolated voltage domain to support DVFS&lt;br /&gt;
&lt;br /&gt;
==== GPU Architecture ====&lt;br /&gt;
&lt;br /&gt;
* [https://developer.arm.com/products/graphics-and-multimedia/mali-gpus/mali-t860-and-mali-t880-gpus ARM Mali-T860MP4 Quad-core GPU]&lt;br /&gt;
* The highest performance GPUs built on Arm Mali’s famous Midgard architecture, the Mali-T860 GPU is designed for complex graphics use cases and provides stunning visuals for UHD content.&lt;br /&gt;
* Frequency: 650MHz &lt;br /&gt;
* Throughput: 1300Mtri/s, 10.4Gpix/s &lt;br /&gt;
* OpenGL® ES 1.1, 1.2, 2.0, 3.1, 3.2, Vulkan 1.0*, OpenCL™ 1.1, 1.2, DirectX® 11 FL11_1, RenderScript™.&lt;br /&gt;
&lt;br /&gt;
==== System Memory ====&lt;br /&gt;
* LPDDR4 RAM Memory Variants: Dual Channels 2GB and 4GB.&lt;br /&gt;
* Storage Memory: 128Mb built-in SPI Flash memory (as at August 2018 only support for USB boot).&lt;br /&gt;
&lt;br /&gt;
=== Display ===&lt;br /&gt;
&lt;br /&gt;
* Dual VOP: one supports resolutions up to 4096x2160 and [https://www.arm.com/why-arm/technologies/graphics-technologies/arm-frame-buffer-compression AFBC]; the other supports resolutions up to 2560x1600&lt;br /&gt;
* Dual channel MIPI-DSI (4 lanes per channel)&lt;br /&gt;
* eDP 1.3 (4 lanes with 10.8Gbps) to support displays, with PSR&lt;br /&gt;
* Digital Video port up to 4Kp60&lt;br /&gt;
* DisplayPort 1.2 (4 lanes, up to 4K 60Hz)&lt;br /&gt;
* Supports Rec.2020 and conversion to Rec.709 &lt;br /&gt;
&lt;br /&gt;
=== Video ===&lt;br /&gt;
&lt;br /&gt;
* Digital Video output up to 4K@60Hz&lt;br /&gt;
* 4K HDR @ 30fps&lt;br /&gt;
* H.264/AVC Base/Main/High/High10 profile @ level 5.1; up to 4Kx2K @ 60fps&lt;br /&gt;
* H.265/HEVC Main/Main10 profile @ level 5.1 High-tier; up to 4Kx2K @ 60fps&lt;br /&gt;
* VP9, up to 4Kx2K @ 60fps&lt;br /&gt;
* MPEG-1, ISO/IEC 11172-2, up to 1080P @ 60fps&lt;br /&gt;
* MPEG-2, ISO/IEC 13818-2, SP@ML, MP@HL, up to 1080P @ 60fps&lt;br /&gt;
* MPEG-4, ISO/IEC 14496-2, SP@L0-3, ASP@L0-5, up to 1080P @ 60fps&lt;br /&gt;
* VC-1, SP@ML, MP@HL, AP@L0-3, up to 1080P @ 60fps&lt;br /&gt;
* MVC is supported based on H.264 or H.265, up to 1080P @ 60fps&lt;br /&gt;
&lt;br /&gt;
=== Audio ===&lt;br /&gt;
&lt;br /&gt;
* 3.5mm Phone Jack&lt;br /&gt;
* 3-pin S/PDIF header &lt;br /&gt;
* Audio via Digital Video port&lt;br /&gt;
&lt;br /&gt;
=== Camera ===&lt;br /&gt;
&lt;br /&gt;
* Dual MIPI CSI，dual ISP, maximum input resolution of 13M pixels &lt;br /&gt;
&lt;br /&gt;
=== Network ===&lt;br /&gt;
&lt;br /&gt;
* 10/100/1000Mbps Ethernet - Capable of pushing 941 MBit/s in iperf3&lt;br /&gt;
* Wi-Fi 802.11 ac/a/b/g/n with Bluetooth 4.01 (old version with 2x2) / Bluetooth 5 (new version with 1x1) (optional)&lt;br /&gt;
&lt;br /&gt;
=== Storage ===&lt;br /&gt;
&lt;br /&gt;
* microSD - bootable, support SDHC and SDXC, storage up to 256GB&lt;br /&gt;
* eMMC - bootable (optional eMMC Module)&lt;br /&gt;
* 1 USB3.0 Host port&lt;br /&gt;
* 1 USB type C OTG port with DP output &lt;br /&gt;
* 2 USB2.0 Dedicated Host ports&lt;br /&gt;
&lt;br /&gt;
=== Expansion Ports ===&lt;br /&gt;
&lt;br /&gt;
* 2x20 pins &amp;quot;Pi2&amp;quot; GPIO Header&lt;br /&gt;
* PCIe 2.1 (4 full-duplex lanes with 20Gbps) x4 open ended port&lt;br /&gt;
&lt;br /&gt;
==== GPIO Pins ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable plainrowheaders&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;width:20em;&amp;quot; | Assigned To&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Pin Nr.&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Pin Nr.&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;width:20em;&amp;quot; | Assigned To&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| 3.3 V&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 1&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 2&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| 5 V&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| GPIO1_C4 (I2C8_SDA) &amp;lt;sup style=&amp;quot;font-style:italic;color:green&amp;quot;&amp;gt;a&amp;lt;/sup&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 3&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 4&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| 5 V&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| GPIO1_C5 (I2C8_SCL) &amp;lt;sup style=&amp;quot;font-style:italic;color:green&amp;quot;&amp;gt;a&amp;lt;/sup&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 5&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 6&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GND&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| GPIO4_D0 (CPU_GPCLK)&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 7&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 8&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GPIO4_C4 (UART2_TX)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| GND&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 9&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 10&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GPIO4_C3 (UART2_RX)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| GPIO1_C6&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 11&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 12&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GPIO3_D0 (I2S0_CLK)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| GPIO1_C2&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 13&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 14&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GND&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| GPIO1_A1&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 15&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 16&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GPIO1_A4&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| 3.3 V&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 17&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 18&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GPIO4_C5 [SPDIF]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| [UART4_TX] GPIO1_B0 (SPI1_TXD)&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 19&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 20&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GND&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| [UART4_RX] GPIO1_A7 (SPI1_RXD)&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 21&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 22&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GPIO4_D1&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| GPIO1_B1 (SPI1_CLK)&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 23&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 24&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GPIO1_B2 (SPI1_CSN0)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| GND&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 25&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 26&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GPIO1_B5&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| GPIO1_B3 (I2C4_SDA)&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 27&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 28&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GPIO1_B4 (I2C4_SCL)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| GPIO4_D3&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 29&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 30&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GND&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| GPIO4_D4&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 31&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 32&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GPIO3_D4 (I2S0_SDI1SDO3)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| GPIO3_D5 (I2S0_SDI2SDO2)&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 33&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 34&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GND&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| GPIO3_D2 (I2S0_LRCKTX)&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 35&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 36&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GPIO3_D6 (I2S0_SDI3SDO1)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| GPIO3_D1 (I2S0_LRCKRX)&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 37&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 38&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GPIO3_D3 (I2S0_SDI0)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| GND&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 39&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 40&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GPIO3_D7 (I2S0_SDO0)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== Notes =====&lt;br /&gt;
&lt;br /&gt;
* '''a:''' pulled high to 3.3V through 2.2kOhm resistor&lt;br /&gt;
&lt;br /&gt;
===== Linux /dev/gpiochip Assignments =====&lt;br /&gt;
&lt;br /&gt;
{| class=wikitable style=&amp;quot;max-width: 1000px; text-align: center;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | Pin Nr.&lt;br /&gt;
| 3 || 5 || 7 || 8 || 10 || 11 || 12 || 13 || 15 || 16 || 18 || 19 || 21 || 22 || 23 || 24 || 26 || 27 || 28 || 29 || 31 || 32 || 33 || 35 || 36 || 37 || 38 || 40&lt;br /&gt;
|- &lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | Chip&lt;br /&gt;
| 1 || 1 || 4 || 4 || 4 || 1 || 3 || 1 || 1 || 1 || 4 || 1 || 1 || 4 || 1 || 1 || 1 || 1 || 1 || 4 || 4 || 3 || 3 || 3 || 3 || 3 || 3 || 3&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | Line&lt;br /&gt;
| 20 || 21 || 24 || 20 || 19 || 22 || 24 || 18 || 1 || 4 || 21 || 8 || 7 || 25 || 9 || 10 || 13 || 11 || 12 || 27 || 28 || 28 || 29 || 26 || 30 || 25 || 27 || 31&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
On Linux, using the new &amp;lt;code&amp;gt;/dev/gpiochip&amp;lt;/code&amp;gt; API, the &amp;lt;code&amp;gt;''n''&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;GPIO''n''_''XX''&amp;lt;/code&amp;gt; appears to correlate to the number of the &amp;lt;code&amp;gt;/dev/gpiochip''n''&amp;lt;/code&amp;gt;, and the &amp;lt;code&amp;gt;''XX''&amp;lt;/code&amp;gt; to the definition &amp;lt;code&amp;gt;RK_P''XX''&amp;lt;/code&amp;gt; of lines in &amp;lt;code&amp;gt;include/dt-bindings/pinctrl/rockchip.h&amp;lt;/code&amp;gt; of the Linux kernel source. Having these named in the dts would be nice.&lt;br /&gt;
&lt;br /&gt;
You can use [https://git.kernel.org/pub/scm/libs/libgpiod/libgpiod.git/ libgpiod] to drive them, and test them with the included tools (&amp;lt;code&amp;gt;gpioinfo&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;gpioset&amp;lt;/code&amp;gt;, ...)&lt;br /&gt;
&lt;br /&gt;
For example, &amp;lt;code&amp;gt;gpioset 4 25=1&amp;lt;/code&amp;gt; (run as root) would turn pin 22 on. Do beware that poking the wrong GPIO pin can lock up your system.&lt;br /&gt;
&lt;br /&gt;
The conversion table at right is also available as a [https://gist.github.com/CounterPillow/fe066655bf2d929148fe6eb3f15b1dd5 C header file].&lt;br /&gt;
&lt;br /&gt;
=== Working Features ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! Feature/Option&lt;br /&gt;
! Android&lt;br /&gt;
! Android Version&lt;br /&gt;
! Linux&lt;br /&gt;
! Linux Version&lt;br /&gt;
! Test/Verify Steps&lt;br /&gt;
! Notes&lt;br /&gt;
! Product Link&lt;br /&gt;
|-&lt;br /&gt;
| PINE64 LCD Touchscreen (Screen/Touch)&lt;br /&gt;
| Yes/Yes&lt;br /&gt;
| &lt;br /&gt;
| No/No&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| Maybe [https://github.com/avafinger/pine64-touchscreen this] will help get this working?&lt;br /&gt;
| [https://pine64.com/?product=7-lcd-touch-screen-panel 7″ LCD Touch Screen Panel]&lt;br /&gt;
|-&lt;br /&gt;
| Wireless&lt;br /&gt;
&amp;lt;small&amp;gt;ROCKPro64 2×2 MIMO Dual Band WiFi 802.11AC / Bluetooth 4.2 Module (old)&lt;br /&gt;
ROCKPro64 1x1 Dual Band WiFi 802.11AC / Bluetooth 5.0 Module (new)&amp;lt;/small&amp;gt;&lt;br /&gt;
| Yes/Yes&lt;br /&gt;
| &lt;br /&gt;
| No/Yes*&lt;br /&gt;
| &lt;br /&gt;
| For the &amp;quot;new&amp;quot; ROCKPro64 WIFI module: Verified with Manjaro ARM (kernel 6.2.5). A config file (&amp;quot;firmware file&amp;quot;) is needed at &amp;lt;code&amp;gt;/lib/firmware/brcm/brcmfmac43455-sdio.txt&amp;lt;/code&amp;gt;. See [[#Getting wifi working (&amp;quot;new&amp;quot; wifi module)]] for the file contents and details.&lt;br /&gt;
| In 0.7.9 Ayufan linux releases this is deliberately disabled for stability reasons. After testing for a few hours, on Manjaro ARM (kernel 6.2.5), there haven't been stability issues found (WiFi stayed connected). On a 5GHz network (802.11AC), it was tested to be possible to get about 120Mbps using the &amp;quot;new&amp;quot; ROCKPro64 WIFI module.&lt;br /&gt;
| [https://store.pine64.org/product/rockpro64-1x1-dual-band-wifi-802-11acbluetooth-5-0-module ROCKPro64 1x1 Dual Band WiFi 802.11AC / Bluetooth 5.0 Module]&lt;br /&gt;
|-&lt;br /&gt;
| USB OTG&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| use this script: [https://github.com/ayufan-rock64/linux-package/blob/master/root-rockpro64/usr/local/sbin/rockpro64_enable_otg.sh rockpro64_enable_otg.sh], then configure ip on usb0: ifconfig usb0 169.169.222.222 and run iperf, you should likely see about 200-300MB/s&lt;br /&gt;
| [[ROCKPro64#OTG_mode]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| USB Mass Storage USB2/USB3&lt;br /&gt;
| Yes/yes&lt;br /&gt;
| &lt;br /&gt;
| Yes/Yes&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Dedicated Fan Power (pwm1)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| Yes&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| You might want to use [https://github.com/tuxd3v/ats ATS].&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| GPIO pins (raw or via RPI python scripts)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| Check out [https://forum.frank-mankel.org/topic/292/rockpro64-rp64-gpio/2 what Frank Mankel has done].&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| MIPI CSI Camera 1 and 2&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| eDP&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| HDMI Audio&lt;br /&gt;
| Yes&lt;br /&gt;
| 7.1.2&lt;br /&gt;
| Yes&lt;br /&gt;
| 4.4.132-1083 - 4.4.138-1100&lt;br /&gt;
| &lt;br /&gt;
| Stopped working in 4.4.154.1105. Ayufan is looking into it. This is working in Manjaro ARM (kernel 6.2.5). Select the &amp;lt;code&amp;gt;Analog Output (Built-in Audio Stereo)&amp;lt;/code&amp;gt; option in the audio output device selection window (either use &amp;lt;code&amp;gt;pavucontrol&amp;lt;/code&amp;gt; or the volume button in the KDE desktop). Despite the slightly misleading name, audio does go through the HDMI port. See here for details: https://forum.manjaro.org/t/no-hdmi-audio-on-rockpro64/25595/2.&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 3.5mm Audio/Mic&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| USB-C Host&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Display via USB-C&lt;br /&gt;
| Yes&lt;br /&gt;
| 7.x and 8.x&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| eDP via USB-C per tillim. No sound on Android 7.x. Sound does work on Android 8.x&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| ROCKPro64 PLAYBOX ENCLOSURE&lt;br /&gt;
| N/A&lt;br /&gt;
| &lt;br /&gt;
| N/A&lt;br /&gt;
| &lt;br /&gt;
| N/A&lt;br /&gt;
| Ventilation does not exist, thus requires manual changes to add venting. Case should be modified to account power adapter not being centered in cut holes. Opening the case once close without modifying it first is near impossible without special tools. Graphene heatsink is included and does well for Linux but not Android.&lt;br /&gt;
| https://pine64.com/?product=rockpro64-playbox-enclosure&lt;br /&gt;
|-&lt;br /&gt;
| ROCKPro64 30mm Tall Profile Heatsink&lt;br /&gt;
| N/A&lt;br /&gt;
| &lt;br /&gt;
| N/A&lt;br /&gt;
| &lt;br /&gt;
| N/A&lt;br /&gt;
| &lt;br /&gt;
| https://store.pine64.org/?product=rockpro64-heatsink&lt;br /&gt;
|-&lt;br /&gt;
| ROCKPro64 20mm Mid Profile Heatsink&lt;br /&gt;
| N/A&lt;br /&gt;
| &lt;br /&gt;
| N/A&lt;br /&gt;
| &lt;br /&gt;
| N/A&lt;br /&gt;
| &lt;br /&gt;
| https://pine64.com/?product=rockpro64-20mm-mid-profile-heatsink&lt;br /&gt;
|-&lt;br /&gt;
| Fan For ROCKPro64 20mm Mid Profile Heatsink&lt;br /&gt;
| N/A&lt;br /&gt;
| &lt;br /&gt;
| N/A&lt;br /&gt;
| &lt;br /&gt;
| N/A&lt;br /&gt;
| You might want to use [https://github.com/tuxd3v/fanctl fanctl] to control the fan while keeping your CPU cool&lt;br /&gt;
| https://pine64.com/?product=fan-for-rockpro64-20mm-mid-profile-heatsink&lt;br /&gt;
|-&lt;br /&gt;
| HDMI output 4K@60Hz&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| PCIe 2.1&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Real Time Clock (RTC) battery backup&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| https://store.pine64.org/?product=rtc-backup-battery-cr-battery&lt;br /&gt;
|-&lt;br /&gt;
| Boot from USB/PXE&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
RockChip themselves have tables of supported features at 4.4 and mainline kernel versions [http://opensource.rock-chips.com/wiki_Status_Matrix in their wiki here].&lt;br /&gt;
&lt;br /&gt;
== Board Information, Schematics and Certifications ==&lt;br /&gt;
* Board Dimensions: 133mm x 80mm x 19mm&lt;br /&gt;
* Input Power: +12V @3A/5A with 5.5mm/2.1mm Type M Barrel type DC connector&lt;br /&gt;
* [https://files.pine64.org/doc/rockpro64/rockpro64_v21-SCH.pdf ROCKPro64 Schematic v2.1 (Second Batch Production Release)]&lt;br /&gt;
** [https://files.pine64.org/doc/rockpro64/RockPro64_v21_Boardoutline-top.dxf ROCKPro64 v2.1 Board Top Outline in AutoCad DXF format]&lt;br /&gt;
** [https://files.pine64.org/doc/rockpro64/RockPro64_v21_Boardoutline-bottom.dxf ROCKPro64 v2.1 Board Bottom Outline in AutoCad DXF format]&lt;br /&gt;
** [https://files.pine64.org/doc/rockpro64/RockPro64_v21_Boardoutline-top.pdf ROCKPro64 v2.1 Board Top Outline in PDF format]&lt;br /&gt;
** [https://files.pine64.org/doc/rockpro64/RockPro64_v21_Boardoutline-bottom.pdf ROCKPro64 v2.1 Board Bottom Outline in PDF format]&lt;br /&gt;
* [https://files.pine64.org/doc/rockpro64/rockpro64_v20-SCH.pdf ROCKPro64 Schematic v2.0 (Pilot Production Release)]&lt;br /&gt;
** [https://files.pine64.org/doc/rockpro64/ROCKPRo64%20Engineering%20Change%20Notice%2020180628RP01.pdf Engineering Change Notice for v2.0 to turn on 3.3V power on PCIe]&lt;br /&gt;
* [https://files.pine64.org/doc/rockpro64/rockpro64_wifi_ap6359SA.pdf ROCKPro64 AP6359SA Wifi/BT Schematic]&lt;br /&gt;
* [https://files.pine64.org/doc/rockpro64/Rockpro64%20Pi-2%20Connector%20ver0.2.png ROCKPro64 Pi-2 Pin assignment and definition]&lt;br /&gt;
* [https://files.pine64.org/doc/rockpro64/RockPro-3D-model.zip ROCKPro64 3D model]&lt;br /&gt;
&lt;br /&gt;
Certifications:&lt;br /&gt;
&lt;br /&gt;
* Disclaimer: Please note that PINE64 SBC is not a &amp;quot;final&amp;quot; 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.&lt;br /&gt;
* [https://files.pine64.org/doc/cert/ROCKPro64%20FCC%20SDOC%20Certificate.pdf ROCKPro64 FCC Certificate]&lt;br /&gt;
* [https://files.pine64.org/doc/cert/ROCKPro64%20CE-EMC%20Certificate.pdf ROCKPro64 CE Certificate]&lt;br /&gt;
* [https://files.pine64.org/doc/cert/ROCKPro64%20ROHS%20%20SEC180529404001E%20Report.pdf ROCKPro64 RoHS Report]&lt;br /&gt;
&lt;br /&gt;
== Datasheets for Components and Peripherals ==&lt;br /&gt;
&lt;br /&gt;
Rockchip RK3399 SoC information:&lt;br /&gt;
&lt;br /&gt;
* [https://www.rock-chips.com/a/en/products/RK33_Series/2016/0419/758.html Rockchip RK3399 SoC Brief]&lt;br /&gt;
* [http://opensource.rock-chips.com/images/d/d7/Rockchip_RK3399_Datasheet_V2.1-20200323.pdf Rockchip RK3399 Datasheet V2.1]&lt;br /&gt;
* [http://opensource.rock-chips.com/images/e/ee/Rockchip_RK3399TRM_V1.4_Part1-20170408.pdf Rockchip RK3399 Technical Reference Manual part 1]&lt;br /&gt;
* [https://files.pine64.org/doc/datasheet/rockpro64/RK808%20datasheet%20V0.8.pdf Rockchip RK808 Datasheet V0.8]&lt;br /&gt;
&lt;br /&gt;
LPDDR4 (200 Balls) SDRAM:&lt;br /&gt;
&lt;br /&gt;
* [https://files.pine64.org/doc/datasheet/rockpro64/SM512M32Z01MD2BNP(200BALL).pdf Micron LPDDR4 Mobile LPDDR4 Datasheet]&lt;br /&gt;
&lt;br /&gt;
eMMC information:&lt;br /&gt;
&lt;br /&gt;
* [https://files.pine64.org/doc/rock64/PINE64_eMMC_Module_20170719.pdf PINE64 eMMC module schematic]&lt;br /&gt;
* [https://files.pine64.org/doc/rock64/usb%20emmc%20module%20adapter%20v2.pdf PINE64 USB adapter for eMMC module V2 schematic]&lt;br /&gt;
* [https://files.pine64.org/doc/rock64/USB%20adapter%20for%20eMMC%20module%20PCB.tar PINE64 USB adapter for eMMC module PCB in JPEG]&lt;br /&gt;
* [https://files.pine64.org/doc/datasheet/pine64/E-00517%20FORESEE_eMMC_NCEMAM8B-16G%20SPEC.pdf 16GB Foresee eMMC Datasheet]&lt;br /&gt;
* [https://files.pine64.org/doc/datasheet/pine64/SDINADF4-16-128GB-H%20data%20sheet%20v1.13.pdf 32GB/64GB/128GB SanDisk eMMC Datasheet]&lt;br /&gt;
&lt;br /&gt;
SPI NOR Flash information:&lt;br /&gt;
&lt;br /&gt;
* [https://files.pine64.org/doc/datasheet/pine64/w25q128jv%20spi%20revc%2011162016.pdf WinBond 128Mb SPI Flash Datasheet]&lt;br /&gt;
* [https://files.pine64.org/doc/datasheet/pine64/GD25Q128C-Rev2.5.pdf GigaDevice 128Mb SPI Flash Datasheet]&lt;br /&gt;
&lt;br /&gt;
Heatsink related info:&lt;br /&gt;
&lt;br /&gt;
* [https://files.pine64.org/doc/datasheet/rockpro64/Rockpro%20Passive%20Heatsink%20Spec.jpg ROCKPro64 Passive Heatsink Dimension Drawing]&lt;br /&gt;
* [https://files.pine64.org/doc/datasheet/rockpro64/LMS-TC150%20Silicon%20Thermal%20Pad.pdf Heatsink Thermal Pad Specification]&lt;br /&gt;
&lt;br /&gt;
Wireless related info:&lt;br /&gt;
&lt;br /&gt;
* AMPAK AP6256 11AC WiFi + Bluetooth5.0 Datasheet [https://files.pine64.org/doc/datasheet/rockpro64/AP6256%20datasheet_V1.3_12202017.pdf (v. 1.3)] [http://files.pine64.org/doc/datasheet/PinebookPro/AP6256%20datasheet_V1.7_12282018.pdf (v. 1.7)]&lt;br /&gt;
&lt;br /&gt;
Ethernet related info:&lt;br /&gt;
&lt;br /&gt;
* [https://files.pine64.org/doc/datasheet/rock64/RTL8211F-CG-Realtek.pdf Realtek RTL8211F 10/100/1000M Ethernet Transceiver Datasheet]&lt;br /&gt;
&lt;br /&gt;
Peripheral related info:&lt;br /&gt;
&lt;br /&gt;
* [https://files.pine64.org/doc/datasheet/rockpro64/ASM1061_Data%20Sheet_R1_8.pdf asmedia ASM1061 PCIe SATA 2.0 Datasheet]&lt;br /&gt;
&lt;br /&gt;
Remote control button mapping:&lt;br /&gt;
&lt;br /&gt;
* [https://files.pine64.org/doc/Pine%20A64%20Schematic/remote-wit-logo.jpg Official Remote Control for the PINE64 Button Mapping]&lt;br /&gt;
&lt;br /&gt;
Audio Codec (ES8316) (under board):&lt;br /&gt;
&lt;br /&gt;
* [http://everest-semi.com/pdf/ES8316%20PB.pdf Everest ES8316 Audio Codec]&lt;br /&gt;
&lt;br /&gt;
PWM controlled fan, SPDIF, and RTC Battery Backup headers:&lt;br /&gt;
&lt;br /&gt;
* [https://www.jst-mfg.com/product/pdf/eng/ePH.pdf JST-PH connector]&lt;br /&gt;
&lt;br /&gt;
== Useful Articles and Blog Posts ==&lt;br /&gt;
&lt;br /&gt;
If you want to dive in to the ecosystem, here's a short list of various articles and blog posts that can help you set up your soft- or hardware development environment.&lt;br /&gt;
&lt;br /&gt;
* [https://stikonas.eu/wordpress/2019/09/15/blobless-boot-with-rockpro64/ Blobless boot with RockPro64 by Andrius Štikonas]&lt;br /&gt;
&lt;br /&gt;
* [https://marcin.juszkiewicz.com.pl/2020/06/17/ebbr-on-rockpro64/ EBBR on RockPro64 by Marcin Juszkiewicz]&lt;br /&gt;
&lt;br /&gt;
* [[ROCKPro64 Device Tree Overlays on Mainline]]&lt;br /&gt;
&lt;br /&gt;
== The NAS Case for the ROCKPro64 ==&lt;br /&gt;
&lt;br /&gt;
[[file:NASCaseMain.png|thumb|right|Front View of the PINE64 NAS Case for the ROCKPro64]]&lt;br /&gt;
&lt;br /&gt;
Please [[NASCase|follow this this link]] for '''detailed instructions on how to assemble the ROCKPro64 NAS Case'''.&lt;br /&gt;
&lt;br /&gt;
The NAS Case instructions also contains detailed information about:&lt;br /&gt;
*what the NAS Case ships with&lt;br /&gt;
*What additional things you need to purchase for your NAS Case&lt;br /&gt;
*What optional things you can consider purchasing for your NAS build&lt;br /&gt;
*What OS Image we recommend you use for your NAS build&lt;br /&gt;
*IO accessibility after installing the ROCKPro64 into the NAS Case&lt;br /&gt;
*[https://files.pine64.org/doc/rockpro64/ROCKPro64%20NAS%20Case%20Exploded%20View%20Diagram.pdf NAS Case Exploded View]&lt;br /&gt;
*[https://files.pine64.org/doc/rockpro64/NAS%20Case%20Drawing.dwg NAS Case Drawing]&lt;br /&gt;
&lt;br /&gt;
== 3D printable ITX mounting brackets ==&lt;br /&gt;
&lt;br /&gt;
[[file:ITX-Bracket-Mounted.jpg|300px|thumb|right|A Quartz64-A mounted in an ITX case using 3D printed brackets]]&lt;br /&gt;
&lt;br /&gt;
Allows mounting a ROCKPro64-A or Quartz64-A board inside a regular PC case that conforms to the ITX standard, using 3D printed brackets:&lt;br /&gt;
&lt;br /&gt;
* AMF/STL/STEP files plus the original FreeCAD file used to create the models [[File:RP64-A_Q64-A_to_ITX_mounting_brackets.zip]]&lt;br /&gt;
* Make sure to flip the two brackets by 180 degrees on one of the horizontal axes (X/Y) in your slicer of choice before printing to avoid unnecessary supports&lt;br /&gt;
* To allow enough clearance between the board and the bracket you either need to print four copies of the washer model or add nut(s) between the board and the bracket&lt;br /&gt;
* If using nuts for the clearance between the board and the brackets, make sure it creates at least 3.2mm of spacing in between&lt;br /&gt;
* Depending on the accuracy and calibration of a 3D printer, slight deviation can occur and you likely need to manually widen some of the holes to allow screws to fit&lt;br /&gt;
&lt;br /&gt;
== Other Resources ==&lt;br /&gt;
&lt;br /&gt;
* [https://forum.pine64.org/forumdisplay.php?fid=98 ROCKPro64 Forum]&lt;br /&gt;
* [https://pine64.com/?post_type=product PINE64 shop]&lt;br /&gt;
* [https://github.com/rockchip-linux Rockchip Linux GitHub Repo]&lt;br /&gt;
* [http://opensource.rock-chips.com/ Rockchip Open Source Wiki]&lt;br /&gt;
* ExplainingComputers have a video review [https://www.youtube.com/watch?v=CeoNHGFN_30 of the RockPro64 here, including linux first boot.]&lt;br /&gt;
* [[ROCKPro64 Installing Arch Linux ARM]]&lt;br /&gt;
* [[ROCKPro64 Powering From An ATX Supply]]&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
=== No Video or GPU Acceleration on Debian ===&lt;br /&gt;
&lt;br /&gt;
If you can log in through serial but don't get any video or GPU acceleration on Debian, this is likely due to Debian's decision to compile the devfreq governors as loadable modules but not including them early enough for panfrost to be able to be provided with one of them.&lt;br /&gt;
&lt;br /&gt;
The usual sign of this being the case is the following line in your log: &amp;lt;code&amp;gt;[drm:panfrost_devfreq_init [panfrost]] *ERROR* Couldn't initialize GPU devfreq&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Log in to your ROCKPro64, and run the following:&lt;br /&gt;
&lt;br /&gt;
 sudo -i&lt;br /&gt;
 echo governor_simpleondemand &amp;gt;&amp;gt; /etc/initramfs-tools/modules &amp;amp;&amp;amp; update-initramfs -u -k $(uname -r)&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
Then, reboot.&lt;br /&gt;
&lt;br /&gt;
== Hardware &amp;quot;Hacking&amp;quot; ==&lt;br /&gt;
&lt;br /&gt;
=== Enabling PCIe 2.0 ===&lt;br /&gt;
By default, the RockPro64 runs the PCIe slot at gen 1 speeds because there might be stability issues with gen 2 speeds. The port can be switched back to gen 2 speeds by adding the following device tree overlay.&lt;br /&gt;
&lt;br /&gt;
1. Copy and paste the device tree overlay file below into a new file (you could name it &amp;lt;code&amp;gt;pcie-2.0.dts&amp;lt;/code&amp;gt;):&lt;br /&gt;
 // Pulled from: https://forum.armbian.com/topic/23574-howto-enable-pcie-gen2-to-get-max-speed-of-nvme-rockpi-4b/&lt;br /&gt;
 /dts-v1/;&lt;br /&gt;
 /plugin/;&lt;br /&gt;
 &lt;br /&gt;
 &amp;amp;pcie0 {&lt;br /&gt;
         max-link-speed = &amp;lt;0x03&amp;gt;;&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
2. Compile the device tree into a binary file. Note that you will need &amp;lt;code&amp;gt;dtc&amp;lt;/code&amp;gt; installed.&lt;br /&gt;
 dtc -I dts -O dtb -@ pcie-2.0.dts -o pcie-2.0.dto&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
4. Copy or move the device tree from the current directory into the boot partition (in this case into the &amp;lt;code&amp;gt;/boot/dtbs/overlay/&amp;lt;/code&amp;gt; folder). If you haven't yet created the &amp;lt;code&amp;gt;/boot/dtbs/overlay/&amp;lt;/code&amp;gt; folder, then create it with &amp;lt;code&amp;gt;sudo mkdir /boot/dtbs/overlay/&amp;lt;/code&amp;gt;&lt;br /&gt;
 sudo cp pcie-2.0.dto /boot/dtbs/overlay/&lt;br /&gt;
&lt;br /&gt;
5. Add the device compiled tree overlay file to the list of files u-boot needs to load. If you are using ManjaroARM (or ArchLinuxARM with a &amp;lt;code&amp;gt;extlinux.conf&amp;lt;/code&amp;gt; file), then add the following line to the file &amp;lt;code&amp;gt;/boot/extlinux/extlinux.conf&amp;lt;/code&amp;gt;:&lt;br /&gt;
 FDTOVERLAYS /dtbs/overlay/pcie-2.0.dtb&lt;br /&gt;
&lt;br /&gt;
If you already have an &amp;lt;code&amp;gt;FDTOVERLAYS&amp;lt;/code&amp;gt; line, then add a space at the end of the current line, then add this overlay file after that.&lt;br /&gt;
See here for details on this process: [[ROCKPro64 Device Tree Overlays on Mainline]]&lt;br /&gt;
&lt;br /&gt;
The resulting &amp;lt;code&amp;gt;/boot/extlinux/extlinux.conf&amp;lt;/code&amp;gt; file might look like below after adding this dtb file:&lt;br /&gt;
 LABEL Manjaro ARM&lt;br /&gt;
 KERNEL /Image&lt;br /&gt;
 FDT /dtbs/rockchip/rk3399-rockpro64.dtb&lt;br /&gt;
 FDTOVERLAYS /dtbs/overlay/pcie-2.0.dtb /dtbs/overlay/cpu-overclock.dtb&lt;br /&gt;
 APPEND initrd=/initramfs-linux.img console=ttyS2,1500000 zfs=zroot rw rootwait audit=0 cpufreq.default_governor=schedutil&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Overclocking (and undervolting) ===&lt;br /&gt;
The RK3399 can be overclocked. See here for details: [[Overclocking#RK3399-based devices]].&lt;br /&gt;
By overclocking, you do risk damaging your hardware, however, it is possible to achieve small, but measurable improvements in performance with an overclock. The overclock can be applied with a device tree overlay file.&lt;br /&gt;
Below is an example device tree overlay for CPU overclocking on the RockPro64. It may or may not work well on your device, but I found that these speeds were stable for me.&lt;br /&gt;
The example below bumps the little cores up to 1.608GHz from 1.416GHz and bumps the big cores up to 2.088GHz from 1.8GHz.&lt;br /&gt;
&lt;br /&gt;
1. Copy and paste the device tree overlay file below into a new file (you could name it &amp;lt;code&amp;gt;cpu-overclock.dts&amp;lt;/code&amp;gt;):&lt;br /&gt;
 // Pulled from: https://github.com/torvalds/linux/blob/master/arch/arm64/boot/dts/rockchip/rk3399-op1-opp.dtsi&lt;br /&gt;
 /dts-v1/;&lt;br /&gt;
 /plugin/;&lt;br /&gt;
 &lt;br /&gt;
        &amp;amp;cluster0_opp {&lt;br /&gt;
                opp00 {&lt;br /&gt;
                        opp-hz = /bits/ 64 &amp;lt;408000000&amp;gt;;&lt;br /&gt;
                        opp-microvolt = &amp;lt;800000&amp;gt;;&lt;br /&gt;
                        clock-latency-ns = &amp;lt;40000&amp;gt;;&lt;br /&gt;
                };&lt;br /&gt;
                opp01 {&lt;br /&gt;
                        opp-hz = /bits/ 64 &amp;lt;600000000&amp;gt;;&lt;br /&gt;
                        opp-microvolt = &amp;lt;825000&amp;gt;;&lt;br /&gt;
                };&lt;br /&gt;
                opp02 {&lt;br /&gt;
                        opp-hz = /bits/ 64 &amp;lt;816000000&amp;gt;;&lt;br /&gt;
                        opp-microvolt = &amp;lt;850000&amp;gt;;&lt;br /&gt;
                };&lt;br /&gt;
                opp03 {&lt;br /&gt;
                        opp-hz = /bits/ 64 &amp;lt;1008000000&amp;gt;;&lt;br /&gt;
                        opp-microvolt = &amp;lt;900000&amp;gt;;&lt;br /&gt;
                };&lt;br /&gt;
                opp04 {&lt;br /&gt;
                        opp-hz = /bits/ 64 &amp;lt;1200000000&amp;gt;;&lt;br /&gt;
                        opp-microvolt = &amp;lt;975000&amp;gt;;&lt;br /&gt;
                };&lt;br /&gt;
                opp05 {&lt;br /&gt;
                        opp-hz = /bits/ 64 &amp;lt;1416000000&amp;gt;;&lt;br /&gt;
                        opp-microvolt = &amp;lt;1100000&amp;gt;;&lt;br /&gt;
                };&lt;br /&gt;
                opp06 {&lt;br /&gt;
                        opp-hz = /bits/ 64 &amp;lt;1512000000&amp;gt;;&lt;br /&gt;
                        opp-microvolt = &amp;lt;1150000&amp;gt;;&lt;br /&gt;
                };&lt;br /&gt;
                opp07 {&lt;br /&gt;
                        opp-hz = /bits/ 64 &amp;lt;1608000000&amp;gt;;&lt;br /&gt;
                        opp-microvolt = &amp;lt;1200000&amp;gt;;&lt;br /&gt;
                };&lt;br /&gt;
        };&lt;br /&gt;
        &amp;amp;cluster1_opp {&lt;br /&gt;
                opp00 {&lt;br /&gt;
                        opp-hz = /bits/ 64 &amp;lt;408000000&amp;gt;;&lt;br /&gt;
                        opp-microvolt = &amp;lt;800000&amp;gt;;&lt;br /&gt;
                        clock-latency-ns = &amp;lt;40000&amp;gt;;&lt;br /&gt;
                };&lt;br /&gt;
                opp01 {&lt;br /&gt;
                        opp-hz = /bits/ 64 &amp;lt;600000000&amp;gt;;&lt;br /&gt;
                        opp-microvolt = &amp;lt;800000&amp;gt;;&lt;br /&gt;
                };&lt;br /&gt;
                opp02 {&lt;br /&gt;
                        opp-hz = /bits/ 64 &amp;lt;816000000&amp;gt;;&lt;br /&gt;
                        opp-microvolt = &amp;lt;825000&amp;gt;;&lt;br /&gt;
                };&lt;br /&gt;
                opp03 {&lt;br /&gt;
                        opp-hz = /bits/ 64 &amp;lt;1008000000&amp;gt;;&lt;br /&gt;
                        opp-microvolt = &amp;lt;850000&amp;gt;;&lt;br /&gt;
                };&lt;br /&gt;
                opp04 {&lt;br /&gt;
                        opp-hz = /bits/ 64 &amp;lt;1200000000&amp;gt;;&lt;br /&gt;
                        opp-microvolt = &amp;lt;900000&amp;gt;;&lt;br /&gt;
                };&lt;br /&gt;
                opp05 {&lt;br /&gt;
                        opp-hz = /bits/ 64 &amp;lt;1416000000&amp;gt;;&lt;br /&gt;
                        opp-microvolt = &amp;lt;975000&amp;gt;;&lt;br /&gt;
                };&lt;br /&gt;
                opp06 {&lt;br /&gt;
                        opp-hz = /bits/ 64 &amp;lt;1608000000&amp;gt;;&lt;br /&gt;
                        opp-microvolt = &amp;lt;1050000&amp;gt;;&lt;br /&gt;
                };&lt;br /&gt;
                opp07 {&lt;br /&gt;
                        opp-hz = /bits/ 64 &amp;lt;1800000000&amp;gt;;&lt;br /&gt;
                        opp-microvolt = &amp;lt;1150000&amp;gt;;&lt;br /&gt;
                };&lt;br /&gt;
                opp08 {&lt;br /&gt;
                        opp-hz = /bits/ 64 &amp;lt;2016000000&amp;gt;;&lt;br /&gt;
                        opp-microvolt = &amp;lt;1250000&amp;gt;;&lt;br /&gt;
                };&lt;br /&gt;
                opp09 {&lt;br /&gt;
                        opp-hz = /bits/ 64 &amp;lt;2088000000&amp;gt;;&lt;br /&gt;
                        opp-microvolt = &amp;lt;1250000&amp;gt;;&lt;br /&gt;
                };&lt;br /&gt;
        };&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2. Compile the device tree into a binary file. Note that you will need &amp;lt;code&amp;gt;dtc&amp;lt;/code&amp;gt; installed.&lt;br /&gt;
 dtc -I dts -O dtb -@ cpu-overclock.dts -o cpu-overclock.dto&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
4. Copy or move the device tree from the current directory into the boot partition (in this case into the &amp;lt;code&amp;gt;/boot/dtbs/overlay/&amp;lt;/code&amp;gt; folder). If you haven't yet created the &amp;lt;code&amp;gt;/boot/dtbs/overlay/&amp;lt;/code&amp;gt; folder, then create it with &amp;lt;code&amp;gt;sudo mkdir /boot/dtbs/overlay/&amp;lt;/code&amp;gt;&lt;br /&gt;
 sudo cp cpu-overclock.dto /boot/dtbs/overlay/&lt;br /&gt;
&lt;br /&gt;
5. Add the device compiled tree overlay file to the list of files u-boot needs to load. If you are using ManjaroARM (or ArchLinuxARM with a &amp;lt;code&amp;gt;extlinux.conf&amp;lt;/code&amp;gt; file), then add the following line to the file &amp;lt;code&amp;gt;/boot/extlinux/extlinux.conf&amp;lt;/code&amp;gt;:&lt;br /&gt;
 FDTOVERLAYS /dtbs/overlay/cpu-overclock.dtb&lt;br /&gt;
&lt;br /&gt;
If you already have an &amp;lt;code&amp;gt;FDTOVERLAYS&amp;lt;/code&amp;gt; line, then add a space at the end of the current line, then add this overlay file after that.&lt;br /&gt;
See here for details on this process: [[ROCKPro64 Device Tree Overlays on Mainline]]&lt;br /&gt;
&lt;br /&gt;
The resulting &amp;lt;code&amp;gt;/boot/extlinux/extlinux.conf&amp;lt;/code&amp;gt; file might look like below after adding this dtb file:&lt;br /&gt;
 LABEL Manjaro ARM&lt;br /&gt;
 KERNEL /Image&lt;br /&gt;
 FDT /dtbs/rockchip/rk3399-rockpro64.dtb&lt;br /&gt;
 FDTOVERLAYS /dtbs/overlay/pcie-2.0.dtb /dtbs/overlay/cpu-overclock.dtb&lt;br /&gt;
 APPEND initrd=/initramfs-linux.img console=ttyS2,1500000 zfs=zroot rw rootwait audit=0 cpufreq.default_governor=schedutil&lt;br /&gt;
&lt;br /&gt;
=== Getting wifi working (&amp;quot;new&amp;quot; wifi module) ===&lt;br /&gt;
ManjaroARM and ArchLinuxARM (and probably others) provide the NVRAM file needed to initialize the Wi-Fi module, but it is listed under the generic name &amp;lt;code&amp;gt;brcmfmac43455-sdio.AW-CM256SM.txt&amp;lt;/code&amp;gt;.&lt;br /&gt;
You can copy this file to the new name (that the driver looks for) with the following command:&lt;br /&gt;
 sudo cp brcmfmac43455-sdio.AW-CM256SM.txt brcmfmac43455-sdio.txt&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Then, reboot and Wi-Fi should start working.&lt;br /&gt;
Details for this method are here: https://forum.pine64.org/showthread.php?tid=16635&amp;amp;pid=117061#pid117061&lt;br /&gt;
However, I noticed that on a 5GHz network with &amp;lt;code&amp;gt;wireless-regdb&amp;lt;/code&amp;gt; installed and the regulatory domain set correctly (to 'US'), the adapter was almost unusable. Speeds were usually 0 bits per second. Sometimes a few packets would get through every few seconds, but that was it. On a 2.4GHz network, this was not an issue. This &amp;quot;can&amp;quot; be resolved by setting the regulator domain to 'GB' or 'CN', but this doesn't seem like a great solution. Instead, I tried various other &amp;lt;code&amp;gt;brcmfmac43455-sdio.txt&amp;lt;/code&amp;gt; files found online. Some worked better than others. I combined parts of various files and found that applying the patch below to the default &amp;lt;code&amp;gt;brcmfmac43455-sdio.AW-CM256SM.txt&amp;lt;/code&amp;gt; file fixed the issue. I was able to get about 140Mbps up and down with this patch (with the regulatory domain set correctly to 'US').&lt;br /&gt;
&lt;br /&gt;
 --- brcmfmac43455-sdio.AW-CM256SM.txt   2023-04-27 19:16:47.000000000 -0500&lt;br /&gt;
 +++ brcmfmac43455-sdio.txt      2023-05-21 11:42:22.058517093 -0500&lt;br /&gt;
 @@ -21,19 +21,18 @@&lt;br /&gt;
  ltecxpadnum=0x0504&lt;br /&gt;
  macaddr=00:90:4c:c5:12:38&lt;br /&gt;
  manfid=0x2d0&lt;br /&gt;
 -maxp2ga0=64&lt;br /&gt;
 -maxp5ga0=80,82,76,77&lt;br /&gt;
 -mcsbw202gpo=0x99355533&lt;br /&gt;
 -mcsbw205ghpo=0x99855000&lt;br /&gt;
 -mcsbw205glpo=0x99755000&lt;br /&gt;
 -mcsbw205gmpo=0x9df55000&lt;br /&gt;
 -mcsbw405ghpo=0xd9755000&lt;br /&gt;
 -mcsbw405glpo=0xb8555000&lt;br /&gt;
 -mcsbw405gmpo=0xed955000&lt;br /&gt;
 -mcsbw805ghpo=0xd9555000&lt;br /&gt;
 -mcsbw805glpo=0xc8555000&lt;br /&gt;
 -mcsbw805gmpo=0xe9555000&lt;br /&gt;
 -muxenab=0x10&lt;br /&gt;
 +maxp2ga0=70&lt;br /&gt;
 +maxp5ga0=73,74,73,73&lt;br /&gt;
 +mcsbw202gpo=0x99333322&lt;br /&gt;
 +mcsbw205ghpo=0x8a875444&lt;br /&gt;
 +mcsbw205glpo=0x8a875444&lt;br /&gt;
 +mcsbw205gmpo=0x8a875444&lt;br /&gt;
 +mcsbw405ghpo=0xda844333&lt;br /&gt;
 +mcsbw405glpo=0xda844333&lt;br /&gt;
 +mcsbw405gmpo=0xdb844333&lt;br /&gt;
 +mcsbw805ghpo=0xda555444&lt;br /&gt;
 +mcsbw805glpo=0xdb555444&lt;br /&gt;
 +mcsbw805gmpo=0xda555444&lt;br /&gt;
  nocrc=1&lt;br /&gt;
  ofdmlrbw202gpo=0x0033&lt;br /&gt;
  pa2ga0=-112,6296,-662&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To use this patch, copy it off into a file and use the &amp;lt;code&amp;gt;patch&amp;lt;/code&amp;gt; command.&lt;br /&gt;
However, it might be easier to apply the patch by-hand. &lt;br /&gt;
To do this, delete the line with `maxp2ga0=64` through the line with `muxenab=0x10`.&lt;br /&gt;
Then add the following in its place:&lt;br /&gt;
 maxp2ga0=70&lt;br /&gt;
 maxp5ga0=73,74,73,73&lt;br /&gt;
 mcsbw202gpo=0x99333322&lt;br /&gt;
 mcsbw205ghpo=0x8a875444&lt;br /&gt;
 mcsbw205glpo=0x8a875444&lt;br /&gt;
 mcsbw205gmpo=0x8a875444&lt;br /&gt;
 mcsbw405ghpo=0xda844333&lt;br /&gt;
 mcsbw405glpo=0xda844333&lt;br /&gt;
 mcsbw405gmpo=0xdb844333&lt;br /&gt;
 mcsbw805ghpo=0xda555444&lt;br /&gt;
 mcsbw805glpo=0xdb555444&lt;br /&gt;
 mcsbw805gmpo=0xda555444&lt;br /&gt;
&lt;br /&gt;
Reboot and the Wi-Fi (at least for 5GHz networks) should work &amp;quot;well&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Stabilizing the system (underclocking the RAM) ===&lt;br /&gt;
WIP&lt;br /&gt;
&lt;br /&gt;
[[Category:ROCKPro64]] [[Category:Rockchip RK3399]]&lt;/div&gt;</summary>
		<author><name>I3master</name></author>
	</entry>
	<entry>
		<id>https://wiki.pine64.org/index.php?title=ROCKPro64&amp;diff=19691</id>
		<title>ROCKPro64</title>
		<link rel="alternate" type="text/html" href="https://wiki.pine64.org/index.php?title=ROCKPro64&amp;diff=19691"/>
		<updated>2023-05-28T22:45:20Z</updated>

		<summary type="html">&lt;p&gt;I3master: Updated overclocking to include an overview.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:ROCKPro64v21FRONT.jpg|400px|thumb|right|The ROCKPro64]]&lt;br /&gt;
&lt;br /&gt;
The '''ROCKPro64''' is the most powerful Single Board Computer released by PINE64. It is powered by a Rockchip RK3399 Hexa-Core (dual ARM Cortex A72 and quad ARM Cortex A53) 64-Bit Processor with a Mali T-860 Quad-Core GPU. The key features include a PCIe x4 open ended slot, the use of LPDDR4 RAM, and industry standard heatsink mounting holes.&lt;br /&gt;
&lt;br /&gt;
The ROCKPro64 is equipped with 2GB or 4GB LPDDR4 system memory, and 128Mb SPI boot Flash. There is also an optional eMMC module (up to 128GB) and microSD slot for booting. The board is equipped with 1x USB 3.0 type C Host with DP 1.2, 1x USB 3.0 type A Host, 2x USB 2.0 Host, Gigabit Ethernet, PI-2 GPIO Bus, MiPi DSI interface, eDP interface, touch Panel interface, stereo MiPi CSI interface, as well as many other device interfaces such as UART, SPI, I2C, for makers to integrate with sensors and other peripherals. Many different Operating Systems (OS) are freely available from the open source community, such as Android, Linux (Ubuntu, Debian, Arch), and BSD.&lt;br /&gt;
&lt;br /&gt;
== Getting Started ==&lt;br /&gt;
&lt;br /&gt;
The article [[ROCKPro64 Getting Started]] gives important information to get the board up and running.&lt;br /&gt;
&lt;br /&gt;
== Software releases ==&lt;br /&gt;
&lt;br /&gt;
In the [[ROCKPro64 Software Releases]] page, you will find a complete list of currently supported Operating System images that work with the ROCKPro64, as well as other related software. The Software Release page has links to download the images as well as high level instructions to load each image.&lt;br /&gt;
&lt;br /&gt;
Please see the [[Getting started]] page for detailed discussion of what you need (prerequisites) as well as instructions if the high level instructions are insufficient.&lt;br /&gt;
&lt;br /&gt;
== Board Layout ==&lt;br /&gt;
[[Image:ROCKPro64v21REAR.jpg|thumb|right|A hi-res picture of v2.1 rear.]]&lt;br /&gt;
[[Image:FLIR 20220619 125451 686.jpg|thumb|right|A thermal image of v2.1 front (upside-down).]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:ROCKPro64_annotated.jpg|500px|An annotated ROCKPro64]]&lt;br /&gt;
&lt;br /&gt;
=== Main Chips ===&lt;br /&gt;
* RK3399 system-on-chip (1)&lt;br /&gt;
* LPDDR4 SDRAM 1 (18)&lt;br /&gt;
* LPDDR4 SDRAM 2 (3)&lt;br /&gt;
* SPI NOR flash memory (17)&lt;br /&gt;
* RK808 power management (near 19)&lt;br /&gt;
* RTL8211 ethernet transceiver (near 25)&lt;br /&gt;
* ES8316 Sound Codec (on rear of board)&lt;br /&gt;
* The heatsink mounting holes around the RK3399 are 59 mm apart&lt;br /&gt;
&lt;br /&gt;
=== Switches ===&lt;br /&gt;
&lt;br /&gt;
The Power button (11, SW3): is the same as on your mobile phone - press and release after about 1 second to power on. Press and hold for about 3 seconds to power off.&lt;br /&gt;
&lt;br /&gt;
The Reset button (10, SW901): performs a reset.&lt;br /&gt;
&lt;br /&gt;
The Recover button (28, SW900): used to enter maskrom mode.&lt;br /&gt;
&lt;br /&gt;
=== Connectors, Sockets and Headers ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;line-height: 1.4;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;font-size: .9em;&amp;quot;&lt;br /&gt;
! Diagram !! Schematic&amp;lt;br&amp;gt;designator !! Silkscreen&amp;lt;br&amp;gt;label !! Number&amp;lt;br&amp;gt;of pins !! Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 2  || U39   || PI-2-bus || style=&amp;quot;text-align: center;&amp;quot; | 40 || Pi-2 bus &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 4  || J8    || +FAN- || style=&amp;quot;text-align: center;&amp;quot; | 2 || PWM controlled fan header&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 5  || J10   || SPDIF || style=&amp;quot;text-align: center;&amp;quot; | 3 || SPDIF header&lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 6  || U6    || +RTC- || style=&amp;quot;text-align: center;&amp;quot; | 2 || RTC battery backup header&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7  || U31   || Wifi-BT || style=&amp;quot;text-align: center;&amp;quot; | 16 || SDIO WIFI/BT module-MIMO 2&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 8  || USB3  ||  || style=&amp;quot;text-align: center;&amp;quot; | 9 || USB-3 and USB Type C&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 9  || USB1  ||  || style=&amp;quot;text-align: center;&amp;quot; | 2×4 || Dual USB-2&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 12 || IR1   || IR || style=&amp;quot;text-align: center;&amp;quot; | 3 || infrared receiver socket &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 13 || J16   || Headphone+mic || style=&amp;quot;text-align: center;&amp;quot; | 4 || Headphone + mic 3.5mm jack&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -  || CON16 || GND PWR RST GND || style=&amp;quot;text-align: center;&amp;quot; | 4 || Power &amp;amp; reset, unpopulated&amp;lt;br&amp;gt;header near Headphone jack&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 14 || U29   || EMMC || style=&amp;quot;text-align: center;&amp;quot; | 34 || eMMC connector&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 14* || J13  ||  || style=&amp;quot;text-align: center;&amp;quot; | 13 || TF-card, a.k.a. microSD&amp;lt;br&amp;gt;(* under 14 on the bottom side)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 15 || U30   ||  || style=&amp;quot;text-align: center;&amp;quot; | 14 || SDIO WIFI/BT module-MIMO 1&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 16 || SW4   ||  || style=&amp;quot;text-align: center;&amp;quot; | 2 || Jumper to [[#Disable eMMC]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 19 || J15   || PCI || style=&amp;quot;text-align: center;&amp;quot; | 64 || PCI-express X4 socket&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 20 || J21   || DSI || style=&amp;quot;text-align: center;&amp;quot; | 30 || DSI&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 21 || J22   || EDP || style=&amp;quot;text-align: center;&amp;quot; | 30 || LCD EDP&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 22 || CON1  || TP || style=&amp;quot;text-align: center;&amp;quot; | 6 || touch panel connector&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 23 || CON15 ||  || style=&amp;quot;text-align: center;&amp;quot; | 4 || DC out for SATA disk cable&amp;lt;br&amp;gt;(direct connect from DC-IN)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 24 || J11   || DC-IN || style=&amp;quot;text-align: center;&amp;quot; | 2 || Power input, positive tip;&amp;lt;br&amp;gt;12V/3A (minimum) recommended&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 25 || U32   ||  || style=&amp;quot;text-align: center;&amp;quot; | 8 || 8P8C (often referred to as 'RJ45')&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 26 || J14   ||  || style=&amp;quot;text-align: center;&amp;quot; | 19 || HDMI&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 27 || J17   || MIPI CAM || style=&amp;quot;text-align: center;&amp;quot; | 32 || MIPI-1&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 29 || J19   || MIPI CAM || style=&amp;quot;text-align: center;&amp;quot; | 32 || MIPI-2&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 30 || J18   || CIF || style=&amp;quot;text-align: center;&amp;quot; | 26 || CIF&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== LEDs ===&lt;br /&gt;
&lt;br /&gt;
A green LED next to the 12V input barrel connector will light as long as there is 12V applied to the connector. (Even if the RockPro64 is powered off.)&lt;br /&gt;
&lt;br /&gt;
A white LED behind the reset button will light as long as the RockPro64 is running (it comes on a few seconds after power on, when control is passed to the operating system.)&lt;br /&gt;
&lt;br /&gt;
A red LED behind the reset button is DIY - it is lit for example if the board is in OTG mode with an Ayufan image, or if an Android image is in standby mode.&lt;br /&gt;
&lt;br /&gt;
Yellow and green LEDs on the LAN socket behave in a standard way.&lt;br /&gt;
&lt;br /&gt;
=== Jumpers ===&lt;br /&gt;
They are used for boot device selection, as described in the following section.&lt;br /&gt;
&lt;br /&gt;
==== Disable eMMC ====&lt;br /&gt;
&lt;br /&gt;
There is an unlabelled (on the PCB silk-screen) 2-pin jumper (16) between the eMMC socket (14) and the SPI chip (17). It is designated as SW4 on the [[#Board Information, Schematics and Certifications | schematic diagram]]. The default condition is OPEN (no jumper). It is useful for controlling the boot as follows:&lt;br /&gt;
&lt;br /&gt;
Default boot device (with no SPI software) is eMMC, then SDcard. If both the eMMC and the SDcard contain bootable images then the eMMC can be disabled by installing the jumper. This completely removes the eMMC from the resulting OS. If you wish the eMMC to be visible in the booted OS the jumper should be removed 2 seconds after applying power (and before the white LED comes on).&lt;br /&gt;
&lt;br /&gt;
The possible combinations are summarised in the table below.&lt;br /&gt;
&lt;br /&gt;
* 1 = present&lt;br /&gt;
* 0 = not present&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
! µSD !! eMMC !! SW4 !! boot from&lt;br /&gt;
|-&lt;br /&gt;
| 0 || 0 || 0 || unsupported&lt;br /&gt;
|-&lt;br /&gt;
| 0 || 0 || 1 || unsupported&lt;br /&gt;
|-&lt;br /&gt;
| 0 || 1 || 0 || eMMC&lt;br /&gt;
|-&lt;br /&gt;
| 0 || 1 || 1 || unsupported&lt;br /&gt;
|-&lt;br /&gt;
| 1 || 0 || 0 || SDCard&lt;br /&gt;
|-&lt;br /&gt;
| 1 || 0 || 1 || SDCard&lt;br /&gt;
|-&lt;br /&gt;
| 1 || 1 || 0 || eMMC&lt;br /&gt;
|-&lt;br /&gt;
| 1 || 1 || 1 || SDCard&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Disable SPI (while booting) ====&lt;br /&gt;
There is a second possibility to jumper your ROCKPro64: If you mess-up your SPI and are unable to boot, jumpering pins 23 (CLK) and 25 pin (GND) on the PI-2-bus header will disable the SPI as a boot device. (This was taken from the IRC logs, 09 August 2018 @ 17:23) You have to remove the jumper 2 seconds after having started your RP64 (before the white LED turns ON) otherwise the SPI will be missing and you won't be able to flash it.&lt;br /&gt;
Ayufan images contain (at the moment) only one script for the SPI and the RP64, it's &amp;quot;rockpro64_reset_spi_flash&amp;quot;. Other SPI scripts are dedicated to the R64 (as it is written on the name) and it will mess-up your RP64 SPI if you use them.&lt;br /&gt;
&lt;br /&gt;
== Hardware Compatibility ==&lt;br /&gt;
&lt;br /&gt;
The hardware compatibility list can be found under [[ROCKPro64 Hardware compatibility]].&lt;br /&gt;
&lt;br /&gt;
== Board Features ==&lt;br /&gt;
&lt;br /&gt;
This section outlines the most important characteristics of the board and its components.&lt;br /&gt;
&lt;br /&gt;
=== SoC and Memory Specification ===&lt;br /&gt;
* Based on Rockchip RK3399&lt;br /&gt;
[[File:Rockchip_RK3399.png|right]]&lt;br /&gt;
&lt;br /&gt;
==== CPU Architecture ====&lt;br /&gt;
&lt;br /&gt;
* [https://developer.arm.com/products/processors/cortex-a/cortex-a72 Dual-core Cortex-A72 up to 2.0GHz CPU]&lt;br /&gt;
* [https://developer.arm.com/products/processors/cortex-a/cortex-a53 Quad-core Cortex-A53 up to 1.5GHz CPU]&lt;br /&gt;
* big.LITTLE architecture: Dual Cortex-A72 + Quad Cortex-A53, 64-bit CPU&lt;br /&gt;
* Cortex-A72:&lt;br /&gt;
** 1-4x Symmetrical Multiprocessing (SMP) within a single processor cluster, and multiple coherent SMP processor clusters through AMBA 5 CHI or AMBA 4 ACE technology&lt;br /&gt;
** AArch64 for 64-bit support and new architectural features&lt;br /&gt;
** L1 cache 48KB Icache and 32KB Dcache for each A72 &lt;br /&gt;
** L2 cache 1024KB for big cluster &lt;br /&gt;
** DSP &amp;amp; SIMD extensions&lt;br /&gt;
** VFPv4 floating point&lt;br /&gt;
** Hardware virtualization support&lt;br /&gt;
* Cortex-A53:&lt;br /&gt;
** L1 cache 32KB Icache and 32KB Dcache for each A53&lt;br /&gt;
** L2 cache 512KB for little cluster &lt;br /&gt;
* Full implementation of the ARM architecture v8-A instruction set&lt;br /&gt;
* ARM Neon Advanced SIMD (single instruction, multiple data) support for accelerated media and signal processing computation&lt;br /&gt;
* ARMv8 Cryptography Extensions&lt;br /&gt;
* In-order pipeline with symmetric dual-issue of most instructions&lt;br /&gt;
* Include VFP v3 hardware to support single and double-precision operations&lt;br /&gt;
* TrustZone technology support&lt;br /&gt;
* Full CoreSight debug solution&lt;br /&gt;
* One isolated voltage domain to support DVFS&lt;br /&gt;
&lt;br /&gt;
==== GPU Architecture ====&lt;br /&gt;
&lt;br /&gt;
* [https://developer.arm.com/products/graphics-and-multimedia/mali-gpus/mali-t860-and-mali-t880-gpus ARM Mali-T860MP4 Quad-core GPU]&lt;br /&gt;
* The highest performance GPUs built on Arm Mali’s famous Midgard architecture, the Mali-T860 GPU is designed for complex graphics use cases and provides stunning visuals for UHD content.&lt;br /&gt;
* Frequency: 650MHz &lt;br /&gt;
* Throughput: 1300Mtri/s, 10.4Gpix/s &lt;br /&gt;
* OpenGL® ES 1.1, 1.2, 2.0, 3.1, 3.2, Vulkan 1.0*, OpenCL™ 1.1, 1.2, DirectX® 11 FL11_1, RenderScript™.&lt;br /&gt;
&lt;br /&gt;
==== System Memory ====&lt;br /&gt;
* LPDDR4 RAM Memory Variants: Dual Channels 2GB and 4GB.&lt;br /&gt;
* Storage Memory: 128Mb built-in SPI Flash memory (as at August 2018 only support for USB boot).&lt;br /&gt;
&lt;br /&gt;
=== Display ===&lt;br /&gt;
&lt;br /&gt;
* Dual VOP: one supports resolutions up to 4096x2160 and [https://www.arm.com/why-arm/technologies/graphics-technologies/arm-frame-buffer-compression AFBC]; the other supports resolutions up to 2560x1600&lt;br /&gt;
* Dual channel MIPI-DSI (4 lanes per channel)&lt;br /&gt;
* eDP 1.3 (4 lanes with 10.8Gbps) to support displays, with PSR&lt;br /&gt;
* Digital Video port up to 4Kp60&lt;br /&gt;
* DisplayPort 1.2 (4 lanes, up to 4K 60Hz)&lt;br /&gt;
* Supports Rec.2020 and conversion to Rec.709 &lt;br /&gt;
&lt;br /&gt;
=== Video ===&lt;br /&gt;
&lt;br /&gt;
* Digital Video output up to 4K@60Hz&lt;br /&gt;
* 4K HDR @ 30fps&lt;br /&gt;
* H.264/AVC Base/Main/High/High10 profile @ level 5.1; up to 4Kx2K @ 60fps&lt;br /&gt;
* H.265/HEVC Main/Main10 profile @ level 5.1 High-tier; up to 4Kx2K @ 60fps&lt;br /&gt;
* VP9, up to 4Kx2K @ 60fps&lt;br /&gt;
* MPEG-1, ISO/IEC 11172-2, up to 1080P @ 60fps&lt;br /&gt;
* MPEG-2, ISO/IEC 13818-2, SP@ML, MP@HL, up to 1080P @ 60fps&lt;br /&gt;
* MPEG-4, ISO/IEC 14496-2, SP@L0-3, ASP@L0-5, up to 1080P @ 60fps&lt;br /&gt;
* VC-1, SP@ML, MP@HL, AP@L0-3, up to 1080P @ 60fps&lt;br /&gt;
* MVC is supported based on H.264 or H.265, up to 1080P @ 60fps&lt;br /&gt;
&lt;br /&gt;
=== Audio ===&lt;br /&gt;
&lt;br /&gt;
* 3.5mm Phone Jack&lt;br /&gt;
* 3-pin S/PDIF header &lt;br /&gt;
* Audio via Digital Video port&lt;br /&gt;
&lt;br /&gt;
=== Camera ===&lt;br /&gt;
&lt;br /&gt;
* Dual MIPI CSI，dual ISP, maximum input resolution of 13M pixels &lt;br /&gt;
&lt;br /&gt;
=== Network ===&lt;br /&gt;
&lt;br /&gt;
* 10/100/1000Mbps Ethernet - Capable of pushing 941 MBit/s in iperf3&lt;br /&gt;
* Wi-Fi 802.11 ac/a/b/g/n with Bluetooth 4.01 (old version with 2x2) / Bluetooth 5 (new version with 1x1) (optional)&lt;br /&gt;
&lt;br /&gt;
=== Storage ===&lt;br /&gt;
&lt;br /&gt;
* microSD - bootable, support SDHC and SDXC, storage up to 256GB&lt;br /&gt;
* eMMC - bootable (optional eMMC Module)&lt;br /&gt;
* 1 USB3.0 Host port&lt;br /&gt;
* 1 USB type C OTG port with DP output &lt;br /&gt;
* 2 USB2.0 Dedicated Host ports&lt;br /&gt;
&lt;br /&gt;
=== Expansion Ports ===&lt;br /&gt;
&lt;br /&gt;
* 2x20 pins &amp;quot;Pi2&amp;quot; GPIO Header&lt;br /&gt;
* PCIe 2.1 (4 full-duplex lanes with 20Gbps) x4 open ended port&lt;br /&gt;
&lt;br /&gt;
==== GPIO Pins ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable plainrowheaders&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;width:20em;&amp;quot; | Assigned To&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Pin Nr.&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Pin Nr.&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;width:20em;&amp;quot; | Assigned To&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| 3.3 V&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 1&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 2&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| 5 V&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| GPIO1_C4 (I2C8_SDA) &amp;lt;sup style=&amp;quot;font-style:italic;color:green&amp;quot;&amp;gt;a&amp;lt;/sup&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 3&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 4&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| 5 V&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| GPIO1_C5 (I2C8_SCL) &amp;lt;sup style=&amp;quot;font-style:italic;color:green&amp;quot;&amp;gt;a&amp;lt;/sup&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 5&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 6&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GND&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| GPIO4_D0 (CPU_GPCLK)&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 7&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 8&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GPIO4_C4 (UART2_TX)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| GND&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 9&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 10&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GPIO4_C3 (UART2_RX)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| GPIO1_C6&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 11&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 12&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GPIO3_D0 (I2S0_CLK)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| GPIO1_C2&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 13&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 14&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GND&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| GPIO1_A1&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 15&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 16&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GPIO1_A4&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| 3.3 V&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 17&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 18&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GPIO4_C5 [SPDIF]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| [UART4_TX] GPIO1_B0 (SPI1_TXD)&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 19&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 20&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GND&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| [UART4_RX] GPIO1_A7 (SPI1_RXD)&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 21&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 22&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GPIO4_D1&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| GPIO1_B1 (SPI1_CLK)&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 23&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 24&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GPIO1_B2 (SPI1_CSN0)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| GND&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 25&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 26&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GPIO1_B5&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| GPIO1_B3 (I2C4_SDA)&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 27&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 28&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GPIO1_B4 (I2C4_SCL)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| GPIO4_D3&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 29&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 30&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GND&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| GPIO4_D4&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 31&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 32&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GPIO3_D4 (I2S0_SDI1SDO3)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| GPIO3_D5 (I2S0_SDI2SDO2)&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 33&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 34&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GND&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| GPIO3_D2 (I2S0_LRCKTX)&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 35&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 36&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GPIO3_D6 (I2S0_SDI3SDO1)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| GPIO3_D1 (I2S0_LRCKRX)&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 37&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 38&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GPIO3_D3 (I2S0_SDI0)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| GND&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 39&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 40&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GPIO3_D7 (I2S0_SDO0)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== Notes =====&lt;br /&gt;
&lt;br /&gt;
* '''a:''' pulled high to 3.3V through 2.2kOhm resistor&lt;br /&gt;
&lt;br /&gt;
===== Linux /dev/gpiochip Assignments =====&lt;br /&gt;
&lt;br /&gt;
{| class=wikitable style=&amp;quot;max-width: 1000px; text-align: center;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | Pin Nr.&lt;br /&gt;
| 3 || 5 || 7 || 8 || 10 || 11 || 12 || 13 || 15 || 16 || 18 || 19 || 21 || 22 || 23 || 24 || 26 || 27 || 28 || 29 || 31 || 32 || 33 || 35 || 36 || 37 || 38 || 40&lt;br /&gt;
|- &lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | Chip&lt;br /&gt;
| 1 || 1 || 4 || 4 || 4 || 1 || 3 || 1 || 1 || 1 || 4 || 1 || 1 || 4 || 1 || 1 || 1 || 1 || 1 || 4 || 4 || 3 || 3 || 3 || 3 || 3 || 3 || 3&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | Line&lt;br /&gt;
| 20 || 21 || 24 || 20 || 19 || 22 || 24 || 18 || 1 || 4 || 21 || 8 || 7 || 25 || 9 || 10 || 13 || 11 || 12 || 27 || 28 || 28 || 29 || 26 || 30 || 25 || 27 || 31&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
On Linux, using the new &amp;lt;code&amp;gt;/dev/gpiochip&amp;lt;/code&amp;gt; API, the &amp;lt;code&amp;gt;''n''&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;GPIO''n''_''XX''&amp;lt;/code&amp;gt; appears to correlate to the number of the &amp;lt;code&amp;gt;/dev/gpiochip''n''&amp;lt;/code&amp;gt;, and the &amp;lt;code&amp;gt;''XX''&amp;lt;/code&amp;gt; to the definition &amp;lt;code&amp;gt;RK_P''XX''&amp;lt;/code&amp;gt; of lines in &amp;lt;code&amp;gt;include/dt-bindings/pinctrl/rockchip.h&amp;lt;/code&amp;gt; of the Linux kernel source. Having these named in the dts would be nice.&lt;br /&gt;
&lt;br /&gt;
You can use [https://git.kernel.org/pub/scm/libs/libgpiod/libgpiod.git/ libgpiod] to drive them, and test them with the included tools (&amp;lt;code&amp;gt;gpioinfo&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;gpioset&amp;lt;/code&amp;gt;, ...)&lt;br /&gt;
&lt;br /&gt;
For example, &amp;lt;code&amp;gt;gpioset 4 25=1&amp;lt;/code&amp;gt; (run as root) would turn pin 22 on. Do beware that poking the wrong GPIO pin can lock up your system.&lt;br /&gt;
&lt;br /&gt;
The conversion table at right is also available as a [https://gist.github.com/CounterPillow/fe066655bf2d929148fe6eb3f15b1dd5 C header file].&lt;br /&gt;
&lt;br /&gt;
=== Working Features ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! Feature/Option&lt;br /&gt;
! Android&lt;br /&gt;
! Android Version&lt;br /&gt;
! Linux&lt;br /&gt;
! Linux Version&lt;br /&gt;
! Test/Verify Steps&lt;br /&gt;
! Notes&lt;br /&gt;
! Product Link&lt;br /&gt;
|-&lt;br /&gt;
| PINE64 LCD Touchscreen (Screen/Touch)&lt;br /&gt;
| Yes/Yes&lt;br /&gt;
| &lt;br /&gt;
| No/No&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| Maybe [https://github.com/avafinger/pine64-touchscreen this] will help get this working?&lt;br /&gt;
| [https://pine64.com/?product=7-lcd-touch-screen-panel 7″ LCD Touch Screen Panel]&lt;br /&gt;
|-&lt;br /&gt;
| Wireless&lt;br /&gt;
&amp;lt;small&amp;gt;ROCKPro64 2×2 MIMO Dual Band WiFi 802.11AC / Bluetooth 4.2 Module (old)&lt;br /&gt;
ROCKPro64 1x1 Dual Band WiFi 802.11AC / Bluetooth 5.0 Module (new)&amp;lt;/small&amp;gt;&lt;br /&gt;
| Yes/Yes&lt;br /&gt;
| &lt;br /&gt;
| No/Yes*&lt;br /&gt;
| &lt;br /&gt;
| For the &amp;quot;new&amp;quot; ROCKPro64 WIFI module: Verified with Manjaro ARM (kernel 6.2.5). A config file (&amp;quot;firmware file&amp;quot;) is needed at &amp;lt;code&amp;gt;/lib/firmware/brcm/brcmfmac43455-sdio.txt&amp;lt;/code&amp;gt;. See here for the file contents and details: https://askubuntu.com/a/1211986. Some distros provide this file, but it is listed under the generic name &amp;quot;brcmfmac43455-sdio.AW-CM256SM.txt&amp;quot;. If this file exists, you can create a symbolic link to it named &amp;quot;brcmfmac43455-sdio.txt&amp;quot; instead of downloading the firmware file listed above. This can be done with the following command &amp;lt;code&amp;gt;sudo ln -s /usr/lib/firmware/brcm/brcmfmac43455-sdio.AW-CM256SM.txt /usr/lib/firmware/brcm/brcmfmac43455-sdio.txt&amp;lt;/code&amp;gt;. Then, reboot and WIFI should start working. Details for this method are here: https://forum.pine64.org/showthread.php?tid=16635&amp;amp;pid=117061#pid117061&lt;br /&gt;
| In 0.7.9 Ayufan linux releases this is deliberately disabled for stability reasons. After testing for a few hours, on Manjaro ARM (kernel 6.2.5), there haven't been stability issues found (WiFi stayed connected). On a 5GHz network (802.11AC), it was tested to be possible to get about 120Mbps using the &amp;quot;new&amp;quot; ROCKPro64 WIFI module.&lt;br /&gt;
| [https://store.pine64.org/product/rockpro64-1x1-dual-band-wifi-802-11acbluetooth-5-0-module ROCKPro64 1x1 Dual Band WiFi 802.11AC / Bluetooth 5.0 Module]&lt;br /&gt;
|-&lt;br /&gt;
| USB OTG&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| use this script: [https://github.com/ayufan-rock64/linux-package/blob/master/root-rockpro64/usr/local/sbin/rockpro64_enable_otg.sh rockpro64_enable_otg.sh], then configure ip on usb0: ifconfig usb0 169.169.222.222 and run iperf, you should likely see about 200-300MB/s&lt;br /&gt;
| [[ROCKPro64#OTG_mode]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| USB Mass Storage USB2/USB3&lt;br /&gt;
| Yes/yes&lt;br /&gt;
| &lt;br /&gt;
| Yes/Yes&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Dedicated Fan Power (pwm1)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| Yes&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| You might want to use [https://github.com/tuxd3v/ats ATS].&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| GPIO pins (raw or via RPI python scripts)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| Check out [https://forum.frank-mankel.org/topic/292/rockpro64-rp64-gpio/2 what Frank Mankel has done].&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| MIPI CSI Camera 1 and 2&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| eDP&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| HDMI Audio&lt;br /&gt;
| Yes&lt;br /&gt;
| 7.1.2&lt;br /&gt;
| Yes&lt;br /&gt;
| 4.4.132-1083 - 4.4.138-1100&lt;br /&gt;
| &lt;br /&gt;
| Stopped working in 4.4.154.1105. Ayufan is looking into it. This is working in Manjaro ARM (kernel 6.2.5). Select the &amp;lt;code&amp;gt;Analog Output (Built-in Audio Stereo)&amp;lt;/code&amp;gt; option in the audio output device selection window (either use &amp;lt;code&amp;gt;pavucontrol&amp;lt;/code&amp;gt; or the volume button in the KDE desktop). Despite the slightly misleading name, audio does go through the HDMI port. See here for details: https://forum.manjaro.org/t/no-hdmi-audio-on-rockpro64/25595/2.&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 3.5mm Audio/Mic&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| USB-C Host&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Display via USB-C&lt;br /&gt;
| Yes&lt;br /&gt;
| 7.x and 8.x&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| eDP via USB-C per tillim. No sound on Android 7.x. Sound does work on Android 8.x&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| ROCKPro64 PLAYBOX ENCLOSURE&lt;br /&gt;
| N/A&lt;br /&gt;
| &lt;br /&gt;
| N/A&lt;br /&gt;
| &lt;br /&gt;
| N/A&lt;br /&gt;
| Ventilation does not exist, thus requires manual changes to add venting. Case should be modified to account power adapter not being centered in cut holes. Opening the case once close without modifying it first is near impossible without special tools. Graphene heatsink is included and does well for Linux but not Android.&lt;br /&gt;
| https://pine64.com/?product=rockpro64-playbox-enclosure&lt;br /&gt;
|-&lt;br /&gt;
| ROCKPro64 30mm Tall Profile Heatsink&lt;br /&gt;
| N/A&lt;br /&gt;
| &lt;br /&gt;
| N/A&lt;br /&gt;
| &lt;br /&gt;
| N/A&lt;br /&gt;
| &lt;br /&gt;
| https://store.pine64.org/?product=rockpro64-heatsink&lt;br /&gt;
|-&lt;br /&gt;
| ROCKPro64 20mm Mid Profile Heatsink&lt;br /&gt;
| N/A&lt;br /&gt;
| &lt;br /&gt;
| N/A&lt;br /&gt;
| &lt;br /&gt;
| N/A&lt;br /&gt;
| &lt;br /&gt;
| https://pine64.com/?product=rockpro64-20mm-mid-profile-heatsink&lt;br /&gt;
|-&lt;br /&gt;
| Fan For ROCKPro64 20mm Mid Profile Heatsink&lt;br /&gt;
| N/A&lt;br /&gt;
| &lt;br /&gt;
| N/A&lt;br /&gt;
| &lt;br /&gt;
| N/A&lt;br /&gt;
| You might want to use [https://github.com/tuxd3v/fanctl fanctl] to control the fan while keeping your CPU cool&lt;br /&gt;
| https://pine64.com/?product=fan-for-rockpro64-20mm-mid-profile-heatsink&lt;br /&gt;
|-&lt;br /&gt;
| HDMI output 4K@60Hz&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| PCIe 2.1&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Real Time Clock (RTC) battery backup&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| https://store.pine64.org/?product=rtc-backup-battery-cr-battery&lt;br /&gt;
|-&lt;br /&gt;
| Boot from USB/PXE&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
RockChip themselves have tables of supported features at 4.4 and mainline kernel versions [http://opensource.rock-chips.com/wiki_Status_Matrix in their wiki here].&lt;br /&gt;
&lt;br /&gt;
== Board Information, Schematics and Certifications ==&lt;br /&gt;
* Board Dimensions: 133mm x 80mm x 19mm&lt;br /&gt;
* Input Power: +12V @3A/5A with 5.5mm/2.1mm Type M Barrel type DC connector&lt;br /&gt;
* [https://files.pine64.org/doc/rockpro64/rockpro64_v21-SCH.pdf ROCKPro64 Schematic v2.1 (Second Batch Production Release)]&lt;br /&gt;
** [https://files.pine64.org/doc/rockpro64/RockPro64_v21_Boardoutline-top.dxf ROCKPro64 v2.1 Board Top Outline in AutoCad DXF format]&lt;br /&gt;
** [https://files.pine64.org/doc/rockpro64/RockPro64_v21_Boardoutline-bottom.dxf ROCKPro64 v2.1 Board Bottom Outline in AutoCad DXF format]&lt;br /&gt;
** [https://files.pine64.org/doc/rockpro64/RockPro64_v21_Boardoutline-top.pdf ROCKPro64 v2.1 Board Top Outline in PDF format]&lt;br /&gt;
** [https://files.pine64.org/doc/rockpro64/RockPro64_v21_Boardoutline-bottom.pdf ROCKPro64 v2.1 Board Bottom Outline in PDF format]&lt;br /&gt;
* [https://files.pine64.org/doc/rockpro64/rockpro64_v20-SCH.pdf ROCKPro64 Schematic v2.0 (Pilot Production Release)]&lt;br /&gt;
** [https://files.pine64.org/doc/rockpro64/ROCKPRo64%20Engineering%20Change%20Notice%2020180628RP01.pdf Engineering Change Notice for v2.0 to turn on 3.3V power on PCIe]&lt;br /&gt;
* [https://files.pine64.org/doc/rockpro64/rockpro64_wifi_ap6359SA.pdf ROCKPro64 AP6359SA Wifi/BT Schematic]&lt;br /&gt;
* [https://files.pine64.org/doc/rockpro64/Rockpro64%20Pi-2%20Connector%20ver0.2.png ROCKPro64 Pi-2 Pin assignment and definition]&lt;br /&gt;
* [https://files.pine64.org/doc/rockpro64/RockPro-3D-model.zip ROCKPro64 3D model]&lt;br /&gt;
&lt;br /&gt;
Certifications:&lt;br /&gt;
&lt;br /&gt;
* Disclaimer: Please note that PINE64 SBC is not a &amp;quot;final&amp;quot; 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.&lt;br /&gt;
* [https://files.pine64.org/doc/cert/ROCKPro64%20FCC%20SDOC%20Certificate.pdf ROCKPro64 FCC Certificate]&lt;br /&gt;
* [https://files.pine64.org/doc/cert/ROCKPro64%20CE-EMC%20Certificate.pdf ROCKPro64 CE Certificate]&lt;br /&gt;
* [https://files.pine64.org/doc/cert/ROCKPro64%20ROHS%20%20SEC180529404001E%20Report.pdf ROCKPro64 RoHS Report]&lt;br /&gt;
&lt;br /&gt;
== Datasheets for Components and Peripherals ==&lt;br /&gt;
&lt;br /&gt;
Rockchip RK3399 SoC information:&lt;br /&gt;
&lt;br /&gt;
* [https://www.rock-chips.com/a/en/products/RK33_Series/2016/0419/758.html Rockchip RK3399 SoC Brief]&lt;br /&gt;
* [http://opensource.rock-chips.com/images/d/d7/Rockchip_RK3399_Datasheet_V2.1-20200323.pdf Rockchip RK3399 Datasheet V2.1]&lt;br /&gt;
* [http://opensource.rock-chips.com/images/e/ee/Rockchip_RK3399TRM_V1.4_Part1-20170408.pdf Rockchip RK3399 Technical Reference Manual part 1]&lt;br /&gt;
* [https://files.pine64.org/doc/datasheet/rockpro64/RK808%20datasheet%20V0.8.pdf Rockchip RK808 Datasheet V0.8]&lt;br /&gt;
&lt;br /&gt;
LPDDR4 (200 Balls) SDRAM:&lt;br /&gt;
&lt;br /&gt;
* [https://files.pine64.org/doc/datasheet/rockpro64/SM512M32Z01MD2BNP(200BALL).pdf Micron LPDDR4 Mobile LPDDR4 Datasheet]&lt;br /&gt;
&lt;br /&gt;
eMMC information:&lt;br /&gt;
&lt;br /&gt;
* [https://files.pine64.org/doc/rock64/PINE64_eMMC_Module_20170719.pdf PINE64 eMMC module schematic]&lt;br /&gt;
* [https://files.pine64.org/doc/rock64/usb%20emmc%20module%20adapter%20v2.pdf PINE64 USB adapter for eMMC module V2 schematic]&lt;br /&gt;
* [https://files.pine64.org/doc/rock64/USB%20adapter%20for%20eMMC%20module%20PCB.tar PINE64 USB adapter for eMMC module PCB in JPEG]&lt;br /&gt;
* [https://files.pine64.org/doc/datasheet/pine64/E-00517%20FORESEE_eMMC_NCEMAM8B-16G%20SPEC.pdf 16GB Foresee eMMC Datasheet]&lt;br /&gt;
* [https://files.pine64.org/doc/datasheet/pine64/SDINADF4-16-128GB-H%20data%20sheet%20v1.13.pdf 32GB/64GB/128GB SanDisk eMMC Datasheet]&lt;br /&gt;
&lt;br /&gt;
SPI NOR Flash information:&lt;br /&gt;
&lt;br /&gt;
* [https://files.pine64.org/doc/datasheet/pine64/w25q128jv%20spi%20revc%2011162016.pdf WinBond 128Mb SPI Flash Datasheet]&lt;br /&gt;
* [https://files.pine64.org/doc/datasheet/pine64/GD25Q128C-Rev2.5.pdf GigaDevice 128Mb SPI Flash Datasheet]&lt;br /&gt;
&lt;br /&gt;
Heatsink related info:&lt;br /&gt;
&lt;br /&gt;
* [https://files.pine64.org/doc/datasheet/rockpro64/Rockpro%20Passive%20Heatsink%20Spec.jpg ROCKPro64 Passive Heatsink Dimension Drawing]&lt;br /&gt;
* [https://files.pine64.org/doc/datasheet/rockpro64/LMS-TC150%20Silicon%20Thermal%20Pad.pdf Heatsink Thermal Pad Specification]&lt;br /&gt;
&lt;br /&gt;
Wireless related info:&lt;br /&gt;
&lt;br /&gt;
* AMPAK AP6256 11AC WiFi + Bluetooth5.0 Datasheet [https://files.pine64.org/doc/datasheet/rockpro64/AP6256%20datasheet_V1.3_12202017.pdf (v. 1.3)] [http://files.pine64.org/doc/datasheet/PinebookPro/AP6256%20datasheet_V1.7_12282018.pdf (v. 1.7)]&lt;br /&gt;
&lt;br /&gt;
Ethernet related info:&lt;br /&gt;
&lt;br /&gt;
* [https://files.pine64.org/doc/datasheet/rock64/RTL8211F-CG-Realtek.pdf Realtek RTL8211F 10/100/1000M Ethernet Transceiver Datasheet]&lt;br /&gt;
&lt;br /&gt;
Peripheral related info:&lt;br /&gt;
&lt;br /&gt;
* [https://files.pine64.org/doc/datasheet/rockpro64/ASM1061_Data%20Sheet_R1_8.pdf asmedia ASM1061 PCIe SATA 2.0 Datasheet]&lt;br /&gt;
&lt;br /&gt;
Remote control button mapping:&lt;br /&gt;
&lt;br /&gt;
* [https://files.pine64.org/doc/Pine%20A64%20Schematic/remote-wit-logo.jpg Official Remote Control for the PINE64 Button Mapping]&lt;br /&gt;
&lt;br /&gt;
Audio Codec (ES8316) (under board):&lt;br /&gt;
&lt;br /&gt;
* [http://everest-semi.com/pdf/ES8316%20PB.pdf Everest ES8316 Audio Codec]&lt;br /&gt;
&lt;br /&gt;
PWM controlled fan, SPDIF, and RTC Battery Backup headers:&lt;br /&gt;
&lt;br /&gt;
* [https://www.jst-mfg.com/product/pdf/eng/ePH.pdf JST-PH connector]&lt;br /&gt;
&lt;br /&gt;
== Useful Articles and Blog Posts ==&lt;br /&gt;
&lt;br /&gt;
If you want to dive in to the ecosystem, here's a short list of various articles and blog posts that can help you set up your soft- or hardware development environment.&lt;br /&gt;
&lt;br /&gt;
* [https://stikonas.eu/wordpress/2019/09/15/blobless-boot-with-rockpro64/ Blobless boot with RockPro64 by Andrius Štikonas]&lt;br /&gt;
&lt;br /&gt;
* [https://marcin.juszkiewicz.com.pl/2020/06/17/ebbr-on-rockpro64/ EBBR on RockPro64 by Marcin Juszkiewicz]&lt;br /&gt;
&lt;br /&gt;
* [[ROCKPro64 Device Tree Overlays on Mainline]]&lt;br /&gt;
&lt;br /&gt;
== The NAS Case for the ROCKPro64 ==&lt;br /&gt;
&lt;br /&gt;
[[file:NASCaseMain.png|thumb|right|Front View of the PINE64 NAS Case for the ROCKPro64]]&lt;br /&gt;
&lt;br /&gt;
Please [[NASCase|follow this this link]] for '''detailed instructions on how to assemble the ROCKPro64 NAS Case'''.&lt;br /&gt;
&lt;br /&gt;
The NAS Case instructions also contains detailed information about:&lt;br /&gt;
*what the NAS Case ships with&lt;br /&gt;
*What additional things you need to purchase for your NAS Case&lt;br /&gt;
*What optional things you can consider purchasing for your NAS build&lt;br /&gt;
*What OS Image we recommend you use for your NAS build&lt;br /&gt;
*IO accessibility after installing the ROCKPro64 into the NAS Case&lt;br /&gt;
*[https://files.pine64.org/doc/rockpro64/ROCKPro64%20NAS%20Case%20Exploded%20View%20Diagram.pdf NAS Case Exploded View]&lt;br /&gt;
*[https://files.pine64.org/doc/rockpro64/NAS%20Case%20Drawing.dwg NAS Case Drawing]&lt;br /&gt;
&lt;br /&gt;
== 3D printable ITX mounting brackets ==&lt;br /&gt;
&lt;br /&gt;
[[file:ITX-Bracket-Mounted.jpg|300px|thumb|right|A Quartz64-A mounted in an ITX case using 3D printed brackets]]&lt;br /&gt;
&lt;br /&gt;
Allows mounting a ROCKPro64-A or Quartz64-A board inside a regular PC case that conforms to the ITX standard, using 3D printed brackets:&lt;br /&gt;
&lt;br /&gt;
* AMF/STL/STEP files plus the original FreeCAD file used to create the models [[File:RP64-A_Q64-A_to_ITX_mounting_brackets.zip]]&lt;br /&gt;
* Make sure to flip the two brackets by 180 degrees on one of the horizontal axes (X/Y) in your slicer of choice before printing to avoid unnecessary supports&lt;br /&gt;
* To allow enough clearance between the board and the bracket you either need to print four copies of the washer model or add nut(s) between the board and the bracket&lt;br /&gt;
* If using nuts for the clearance between the board and the brackets, make sure it creates at least 3.2mm of spacing in between&lt;br /&gt;
* Depending on the accuracy and calibration of a 3D printer, slight deviation can occur and you likely need to manually widen some of the holes to allow screws to fit&lt;br /&gt;
&lt;br /&gt;
== Other Resources ==&lt;br /&gt;
&lt;br /&gt;
* [https://forum.pine64.org/forumdisplay.php?fid=98 ROCKPro64 Forum]&lt;br /&gt;
* [https://pine64.com/?post_type=product PINE64 shop]&lt;br /&gt;
* [https://github.com/rockchip-linux Rockchip Linux GitHub Repo]&lt;br /&gt;
* [http://opensource.rock-chips.com/ Rockchip Open Source Wiki]&lt;br /&gt;
* ExplainingComputers have a video review [https://www.youtube.com/watch?v=CeoNHGFN_30 of the RockPro64 here, including linux first boot.]&lt;br /&gt;
* [[ROCKPro64 Installing Arch Linux ARM]]&lt;br /&gt;
* [[ROCKPro64 Powering From An ATX Supply]]&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
=== No Video or GPU Acceleration on Debian ===&lt;br /&gt;
&lt;br /&gt;
If you can log in through serial but don't get any video or GPU acceleration on Debian, this is likely due to Debian's decision to compile the devfreq governors as loadable modules but not including them early enough for panfrost to be able to be provided with one of them.&lt;br /&gt;
&lt;br /&gt;
The usual sign of this being the case is the following line in your log: &amp;lt;code&amp;gt;[drm:panfrost_devfreq_init [panfrost]] *ERROR* Couldn't initialize GPU devfreq&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Log in to your ROCKPro64, and run the following:&lt;br /&gt;
&lt;br /&gt;
 sudo -i&lt;br /&gt;
 echo governor_simpleondemand &amp;gt;&amp;gt; /etc/initramfs-tools/modules &amp;amp;&amp;amp; update-initramfs -u -k $(uname -r)&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
Then, reboot.&lt;br /&gt;
&lt;br /&gt;
== Hardware &amp;quot;Hacking&amp;quot; ==&lt;br /&gt;
&lt;br /&gt;
=== Enabling PCIe 2.0 ===&lt;br /&gt;
By default, the RockPro64 runs the PCIe slot at gen 1 speeds because there might be stability issues with gen 2 speeds. The port can be switched back to gen 2 speeds by adding the following device tree overlay.&lt;br /&gt;
&lt;br /&gt;
1. Copy and paste the device tree overlay file below into a new file (you could name it &amp;lt;code&amp;gt;pcie-2.0.dts&amp;lt;/code&amp;gt;):&lt;br /&gt;
 // Pulled from: https://forum.armbian.com/topic/23574-howto-enable-pcie-gen2-to-get-max-speed-of-nvme-rockpi-4b/&lt;br /&gt;
 /dts-v1/;&lt;br /&gt;
 /plugin/;&lt;br /&gt;
 &lt;br /&gt;
 &amp;amp;pcie0 {&lt;br /&gt;
         max-link-speed = &amp;lt;0x03&amp;gt;;&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
2. Compile the device tree into a binary file. Note that you will need &amp;lt;code&amp;gt;dtc&amp;lt;/code&amp;gt; installed.&lt;br /&gt;
 dtc -I dts -O dtb -@ pcie-2.0.dts -o pcie-2.0.dto&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
4. Copy or move the device tree from the current directory into the boot partition (in this case into the &amp;lt;code&amp;gt;/boot/dtbs/overlay/&amp;lt;/code&amp;gt; folder). If you haven't yet created the &amp;lt;code&amp;gt;/boot/dtbs/overlay/&amp;lt;/code&amp;gt; folder, then create it with &amp;lt;code&amp;gt;sudo mkdir /boot/dtbs/overlay/&amp;lt;/code&amp;gt;&lt;br /&gt;
 sudo cp pcie-2.0.dto /boot/dtbs/overlay/&lt;br /&gt;
&lt;br /&gt;
5. Add the device compiled tree overlay file to the list of files u-boot needs to load. If you are using ManjaroARM (or ArchLinuxARM with a &amp;lt;code&amp;gt;extlinux.conf&amp;lt;/code&amp;gt; file), then add the following line to the file &amp;lt;code&amp;gt;/boot/extlinux/extlinux.conf&amp;lt;/code&amp;gt;:&lt;br /&gt;
 FDTOVERLAYS /dtbs/overlay/pcie-2.0.dtb&lt;br /&gt;
&lt;br /&gt;
If you already have an &amp;lt;code&amp;gt;FDTOVERLAYS&amp;lt;/code&amp;gt; line, then add a space at the end of the current line, then add this overlay file after that.&lt;br /&gt;
See here for details on this process: [[ROCKPro64 Device Tree Overlays on Mainline]]&lt;br /&gt;
&lt;br /&gt;
The resulting &amp;lt;code&amp;gt;/boot/extlinux/extlinux.conf&amp;lt;/code&amp;gt; file might look like below after adding this dtb file:&lt;br /&gt;
 LABEL Manjaro ARM&lt;br /&gt;
 KERNEL /Image&lt;br /&gt;
 FDT /dtbs/rockchip/rk3399-rockpro64.dtb&lt;br /&gt;
 FDTOVERLAYS /dtbs/overlay/pcie-2.0.dtb /dtbs/overlay/cpu-overclock.dtb&lt;br /&gt;
 APPEND initrd=/initramfs-linux.img console=ttyS2,1500000 zfs=zroot rw rootwait audit=0 cpufreq.default_governor=schedutil&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Overclocking (and undervolting) ===&lt;br /&gt;
The RK3399 can be overclocked. See here for details: [[Overclocking#RK3399-based devices]].&lt;br /&gt;
By overclocking, you do risk damaging your hardware, however, it is possible to achieve small, but measurable improvements in performance with an overclock. The overclock can be applied with a device tree overlay file.&lt;br /&gt;
Below is an example device tree overlay for CPU overclocking on the RockPro64. It may or may not work well on your device, but I found that these speeds were stable for me.&lt;br /&gt;
The example below bumps the little cores up to 1.608GHz from 1.416GHz and bumps the big cores up to 2.088GHz from 1.8GHz.&lt;br /&gt;
&lt;br /&gt;
1. Copy and paste the device tree overlay file below into a new file (you could name it &amp;lt;code&amp;gt;cpu-overclock.dts&amp;lt;/code&amp;gt;):&lt;br /&gt;
 // Pulled from: https://github.com/torvalds/linux/blob/master/arch/arm64/boot/dts/rockchip/rk3399-op1-opp.dtsi&lt;br /&gt;
 /dts-v1/;&lt;br /&gt;
 /plugin/;&lt;br /&gt;
 &lt;br /&gt;
        &amp;amp;cluster0_opp {&lt;br /&gt;
                opp00 {&lt;br /&gt;
                        opp-hz = /bits/ 64 &amp;lt;408000000&amp;gt;;&lt;br /&gt;
                        opp-microvolt = &amp;lt;800000&amp;gt;;&lt;br /&gt;
                        clock-latency-ns = &amp;lt;40000&amp;gt;;&lt;br /&gt;
                };&lt;br /&gt;
                opp01 {&lt;br /&gt;
                        opp-hz = /bits/ 64 &amp;lt;600000000&amp;gt;;&lt;br /&gt;
                        opp-microvolt = &amp;lt;825000&amp;gt;;&lt;br /&gt;
                };&lt;br /&gt;
                opp02 {&lt;br /&gt;
                        opp-hz = /bits/ 64 &amp;lt;816000000&amp;gt;;&lt;br /&gt;
                        opp-microvolt = &amp;lt;850000&amp;gt;;&lt;br /&gt;
                };&lt;br /&gt;
                opp03 {&lt;br /&gt;
                        opp-hz = /bits/ 64 &amp;lt;1008000000&amp;gt;;&lt;br /&gt;
                        opp-microvolt = &amp;lt;900000&amp;gt;;&lt;br /&gt;
                };&lt;br /&gt;
                opp04 {&lt;br /&gt;
                        opp-hz = /bits/ 64 &amp;lt;1200000000&amp;gt;;&lt;br /&gt;
                        opp-microvolt = &amp;lt;975000&amp;gt;;&lt;br /&gt;
                };&lt;br /&gt;
                opp05 {&lt;br /&gt;
                        opp-hz = /bits/ 64 &amp;lt;1416000000&amp;gt;;&lt;br /&gt;
                        opp-microvolt = &amp;lt;1100000&amp;gt;;&lt;br /&gt;
                };&lt;br /&gt;
                opp06 {&lt;br /&gt;
                        opp-hz = /bits/ 64 &amp;lt;1512000000&amp;gt;;&lt;br /&gt;
                        opp-microvolt = &amp;lt;1150000&amp;gt;;&lt;br /&gt;
                };&lt;br /&gt;
                opp07 {&lt;br /&gt;
                        opp-hz = /bits/ 64 &amp;lt;1608000000&amp;gt;;&lt;br /&gt;
                        opp-microvolt = &amp;lt;1200000&amp;gt;;&lt;br /&gt;
                };&lt;br /&gt;
        };&lt;br /&gt;
        &amp;amp;cluster1_opp {&lt;br /&gt;
                opp00 {&lt;br /&gt;
                        opp-hz = /bits/ 64 &amp;lt;408000000&amp;gt;;&lt;br /&gt;
                        opp-microvolt = &amp;lt;800000&amp;gt;;&lt;br /&gt;
                        clock-latency-ns = &amp;lt;40000&amp;gt;;&lt;br /&gt;
                };&lt;br /&gt;
                opp01 {&lt;br /&gt;
                        opp-hz = /bits/ 64 &amp;lt;600000000&amp;gt;;&lt;br /&gt;
                        opp-microvolt = &amp;lt;800000&amp;gt;;&lt;br /&gt;
                };&lt;br /&gt;
                opp02 {&lt;br /&gt;
                        opp-hz = /bits/ 64 &amp;lt;816000000&amp;gt;;&lt;br /&gt;
                        opp-microvolt = &amp;lt;825000&amp;gt;;&lt;br /&gt;
                };&lt;br /&gt;
                opp03 {&lt;br /&gt;
                        opp-hz = /bits/ 64 &amp;lt;1008000000&amp;gt;;&lt;br /&gt;
                        opp-microvolt = &amp;lt;850000&amp;gt;;&lt;br /&gt;
                };&lt;br /&gt;
                opp04 {&lt;br /&gt;
                        opp-hz = /bits/ 64 &amp;lt;1200000000&amp;gt;;&lt;br /&gt;
                        opp-microvolt = &amp;lt;900000&amp;gt;;&lt;br /&gt;
                };&lt;br /&gt;
                opp05 {&lt;br /&gt;
                        opp-hz = /bits/ 64 &amp;lt;1416000000&amp;gt;;&lt;br /&gt;
                        opp-microvolt = &amp;lt;975000&amp;gt;;&lt;br /&gt;
                };&lt;br /&gt;
                opp06 {&lt;br /&gt;
                        opp-hz = /bits/ 64 &amp;lt;1608000000&amp;gt;;&lt;br /&gt;
                        opp-microvolt = &amp;lt;1050000&amp;gt;;&lt;br /&gt;
                };&lt;br /&gt;
                opp07 {&lt;br /&gt;
                        opp-hz = /bits/ 64 &amp;lt;1800000000&amp;gt;;&lt;br /&gt;
                        opp-microvolt = &amp;lt;1150000&amp;gt;;&lt;br /&gt;
                };&lt;br /&gt;
                opp08 {&lt;br /&gt;
                        opp-hz = /bits/ 64 &amp;lt;2016000000&amp;gt;;&lt;br /&gt;
                        opp-microvolt = &amp;lt;1250000&amp;gt;;&lt;br /&gt;
                };&lt;br /&gt;
                opp09 {&lt;br /&gt;
                        opp-hz = /bits/ 64 &amp;lt;2088000000&amp;gt;;&lt;br /&gt;
                        opp-microvolt = &amp;lt;1250000&amp;gt;;&lt;br /&gt;
                };&lt;br /&gt;
        };&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2. Compile the device tree into a binary file. Note that you will need &amp;lt;code&amp;gt;dtc&amp;lt;/code&amp;gt; installed.&lt;br /&gt;
 dtc -I dts -O dtb -@ cpu-overclock.dts -o cpu-overclock.dto&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
4. Copy or move the device tree from the current directory into the boot partition (in this case into the &amp;lt;code&amp;gt;/boot/dtbs/overlay/&amp;lt;/code&amp;gt; folder). If you haven't yet created the &amp;lt;code&amp;gt;/boot/dtbs/overlay/&amp;lt;/code&amp;gt; folder, then create it with &amp;lt;code&amp;gt;sudo mkdir /boot/dtbs/overlay/&amp;lt;/code&amp;gt;&lt;br /&gt;
 sudo cp cpu-overclock.dto /boot/dtbs/overlay/&lt;br /&gt;
&lt;br /&gt;
5. Add the device compiled tree overlay file to the list of files u-boot needs to load. If you are using ManjaroARM (or ArchLinuxARM with a &amp;lt;code&amp;gt;extlinux.conf&amp;lt;/code&amp;gt; file), then add the following line to the file &amp;lt;code&amp;gt;/boot/extlinux/extlinux.conf&amp;lt;/code&amp;gt;:&lt;br /&gt;
 FDTOVERLAYS /dtbs/overlay/cpu-overclock.dtb&lt;br /&gt;
&lt;br /&gt;
If you already have an &amp;lt;code&amp;gt;FDTOVERLAYS&amp;lt;/code&amp;gt; line, then add a space at the end of the current line, then add this overlay file after that.&lt;br /&gt;
See here for details on this process: [[ROCKPro64 Device Tree Overlays on Mainline]]&lt;br /&gt;
&lt;br /&gt;
The resulting &amp;lt;code&amp;gt;/boot/extlinux/extlinux.conf&amp;lt;/code&amp;gt; file might look like below after adding this dtb file:&lt;br /&gt;
 LABEL Manjaro ARM&lt;br /&gt;
 KERNEL /Image&lt;br /&gt;
 FDT /dtbs/rockchip/rk3399-rockpro64.dtb&lt;br /&gt;
 FDTOVERLAYS /dtbs/overlay/pcie-2.0.dtb /dtbs/overlay/cpu-overclock.dtb&lt;br /&gt;
 APPEND initrd=/initramfs-linux.img console=ttyS2,1500000 zfs=zroot rw rootwait audit=0 cpufreq.default_governor=schedutil&lt;br /&gt;
&lt;br /&gt;
=== Improving WIFI (on 5GHz networks) ===&lt;br /&gt;
WIP&lt;br /&gt;
&lt;br /&gt;
=== Stabilizing the system (underclocking the RAM) ===&lt;br /&gt;
WIP&lt;br /&gt;
&lt;br /&gt;
[[Category:ROCKPro64]] [[Category:Rockchip RK3399]]&lt;/div&gt;</summary>
		<author><name>I3master</name></author>
	</entry>
	<entry>
		<id>https://wiki.pine64.org/index.php?title=ROCKPro64&amp;diff=19690</id>
		<title>ROCKPro64</title>
		<link rel="alternate" type="text/html" href="https://wiki.pine64.org/index.php?title=ROCKPro64&amp;diff=19690"/>
		<updated>2023-05-28T22:39:44Z</updated>

		<summary type="html">&lt;p&gt;I3master: Added a cpu overclocking template.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:ROCKPro64v21FRONT.jpg|400px|thumb|right|The ROCKPro64]]&lt;br /&gt;
&lt;br /&gt;
The '''ROCKPro64''' is the most powerful Single Board Computer released by PINE64. It is powered by a Rockchip RK3399 Hexa-Core (dual ARM Cortex A72 and quad ARM Cortex A53) 64-Bit Processor with a Mali T-860 Quad-Core GPU. The key features include a PCIe x4 open ended slot, the use of LPDDR4 RAM, and industry standard heatsink mounting holes.&lt;br /&gt;
&lt;br /&gt;
The ROCKPro64 is equipped with 2GB or 4GB LPDDR4 system memory, and 128Mb SPI boot Flash. There is also an optional eMMC module (up to 128GB) and microSD slot for booting. The board is equipped with 1x USB 3.0 type C Host with DP 1.2, 1x USB 3.0 type A Host, 2x USB 2.0 Host, Gigabit Ethernet, PI-2 GPIO Bus, MiPi DSI interface, eDP interface, touch Panel interface, stereo MiPi CSI interface, as well as many other device interfaces such as UART, SPI, I2C, for makers to integrate with sensors and other peripherals. Many different Operating Systems (OS) are freely available from the open source community, such as Android, Linux (Ubuntu, Debian, Arch), and BSD.&lt;br /&gt;
&lt;br /&gt;
== Getting Started ==&lt;br /&gt;
&lt;br /&gt;
The article [[ROCKPro64 Getting Started]] gives important information to get the board up and running.&lt;br /&gt;
&lt;br /&gt;
== Software releases ==&lt;br /&gt;
&lt;br /&gt;
In the [[ROCKPro64 Software Releases]] page, you will find a complete list of currently supported Operating System images that work with the ROCKPro64, as well as other related software. The Software Release page has links to download the images as well as high level instructions to load each image.&lt;br /&gt;
&lt;br /&gt;
Please see the [[Getting started]] page for detailed discussion of what you need (prerequisites) as well as instructions if the high level instructions are insufficient.&lt;br /&gt;
&lt;br /&gt;
== Board Layout ==&lt;br /&gt;
[[Image:ROCKPro64v21REAR.jpg|thumb|right|A hi-res picture of v2.1 rear.]]&lt;br /&gt;
[[Image:FLIR 20220619 125451 686.jpg|thumb|right|A thermal image of v2.1 front (upside-down).]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:ROCKPro64_annotated.jpg|500px|An annotated ROCKPro64]]&lt;br /&gt;
&lt;br /&gt;
=== Main Chips ===&lt;br /&gt;
* RK3399 system-on-chip (1)&lt;br /&gt;
* LPDDR4 SDRAM 1 (18)&lt;br /&gt;
* LPDDR4 SDRAM 2 (3)&lt;br /&gt;
* SPI NOR flash memory (17)&lt;br /&gt;
* RK808 power management (near 19)&lt;br /&gt;
* RTL8211 ethernet transceiver (near 25)&lt;br /&gt;
* ES8316 Sound Codec (on rear of board)&lt;br /&gt;
* The heatsink mounting holes around the RK3399 are 59 mm apart&lt;br /&gt;
&lt;br /&gt;
=== Switches ===&lt;br /&gt;
&lt;br /&gt;
The Power button (11, SW3): is the same as on your mobile phone - press and release after about 1 second to power on. Press and hold for about 3 seconds to power off.&lt;br /&gt;
&lt;br /&gt;
The Reset button (10, SW901): performs a reset.&lt;br /&gt;
&lt;br /&gt;
The Recover button (28, SW900): used to enter maskrom mode.&lt;br /&gt;
&lt;br /&gt;
=== Connectors, Sockets and Headers ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;line-height: 1.4;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;font-size: .9em;&amp;quot;&lt;br /&gt;
! Diagram !! Schematic&amp;lt;br&amp;gt;designator !! Silkscreen&amp;lt;br&amp;gt;label !! Number&amp;lt;br&amp;gt;of pins !! Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 2  || U39   || PI-2-bus || style=&amp;quot;text-align: center;&amp;quot; | 40 || Pi-2 bus &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 4  || J8    || +FAN- || style=&amp;quot;text-align: center;&amp;quot; | 2 || PWM controlled fan header&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 5  || J10   || SPDIF || style=&amp;quot;text-align: center;&amp;quot; | 3 || SPDIF header&lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 6  || U6    || +RTC- || style=&amp;quot;text-align: center;&amp;quot; | 2 || RTC battery backup header&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7  || U31   || Wifi-BT || style=&amp;quot;text-align: center;&amp;quot; | 16 || SDIO WIFI/BT module-MIMO 2&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 8  || USB3  ||  || style=&amp;quot;text-align: center;&amp;quot; | 9 || USB-3 and USB Type C&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 9  || USB1  ||  || style=&amp;quot;text-align: center;&amp;quot; | 2×4 || Dual USB-2&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 12 || IR1   || IR || style=&amp;quot;text-align: center;&amp;quot; | 3 || infrared receiver socket &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 13 || J16   || Headphone+mic || style=&amp;quot;text-align: center;&amp;quot; | 4 || Headphone + mic 3.5mm jack&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -  || CON16 || GND PWR RST GND || style=&amp;quot;text-align: center;&amp;quot; | 4 || Power &amp;amp; reset, unpopulated&amp;lt;br&amp;gt;header near Headphone jack&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 14 || U29   || EMMC || style=&amp;quot;text-align: center;&amp;quot; | 34 || eMMC connector&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 14* || J13  ||  || style=&amp;quot;text-align: center;&amp;quot; | 13 || TF-card, a.k.a. microSD&amp;lt;br&amp;gt;(* under 14 on the bottom side)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 15 || U30   ||  || style=&amp;quot;text-align: center;&amp;quot; | 14 || SDIO WIFI/BT module-MIMO 1&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 16 || SW4   ||  || style=&amp;quot;text-align: center;&amp;quot; | 2 || Jumper to [[#Disable eMMC]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 19 || J15   || PCI || style=&amp;quot;text-align: center;&amp;quot; | 64 || PCI-express X4 socket&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 20 || J21   || DSI || style=&amp;quot;text-align: center;&amp;quot; | 30 || DSI&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 21 || J22   || EDP || style=&amp;quot;text-align: center;&amp;quot; | 30 || LCD EDP&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 22 || CON1  || TP || style=&amp;quot;text-align: center;&amp;quot; | 6 || touch panel connector&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 23 || CON15 ||  || style=&amp;quot;text-align: center;&amp;quot; | 4 || DC out for SATA disk cable&amp;lt;br&amp;gt;(direct connect from DC-IN)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 24 || J11   || DC-IN || style=&amp;quot;text-align: center;&amp;quot; | 2 || Power input, positive tip;&amp;lt;br&amp;gt;12V/3A (minimum) recommended&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 25 || U32   ||  || style=&amp;quot;text-align: center;&amp;quot; | 8 || 8P8C (often referred to as 'RJ45')&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 26 || J14   ||  || style=&amp;quot;text-align: center;&amp;quot; | 19 || HDMI&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 27 || J17   || MIPI CAM || style=&amp;quot;text-align: center;&amp;quot; | 32 || MIPI-1&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 29 || J19   || MIPI CAM || style=&amp;quot;text-align: center;&amp;quot; | 32 || MIPI-2&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 30 || J18   || CIF || style=&amp;quot;text-align: center;&amp;quot; | 26 || CIF&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== LEDs ===&lt;br /&gt;
&lt;br /&gt;
A green LED next to the 12V input barrel connector will light as long as there is 12V applied to the connector. (Even if the RockPro64 is powered off.)&lt;br /&gt;
&lt;br /&gt;
A white LED behind the reset button will light as long as the RockPro64 is running (it comes on a few seconds after power on, when control is passed to the operating system.)&lt;br /&gt;
&lt;br /&gt;
A red LED behind the reset button is DIY - it is lit for example if the board is in OTG mode with an Ayufan image, or if an Android image is in standby mode.&lt;br /&gt;
&lt;br /&gt;
Yellow and green LEDs on the LAN socket behave in a standard way.&lt;br /&gt;
&lt;br /&gt;
=== Jumpers ===&lt;br /&gt;
They are used for boot device selection, as described in the following section.&lt;br /&gt;
&lt;br /&gt;
==== Disable eMMC ====&lt;br /&gt;
&lt;br /&gt;
There is an unlabelled (on the PCB silk-screen) 2-pin jumper (16) between the eMMC socket (14) and the SPI chip (17). It is designated as SW4 on the [[#Board Information, Schematics and Certifications | schematic diagram]]. The default condition is OPEN (no jumper). It is useful for controlling the boot as follows:&lt;br /&gt;
&lt;br /&gt;
Default boot device (with no SPI software) is eMMC, then SDcard. If both the eMMC and the SDcard contain bootable images then the eMMC can be disabled by installing the jumper. This completely removes the eMMC from the resulting OS. If you wish the eMMC to be visible in the booted OS the jumper should be removed 2 seconds after applying power (and before the white LED comes on).&lt;br /&gt;
&lt;br /&gt;
The possible combinations are summarised in the table below.&lt;br /&gt;
&lt;br /&gt;
* 1 = present&lt;br /&gt;
* 0 = not present&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
! µSD !! eMMC !! SW4 !! boot from&lt;br /&gt;
|-&lt;br /&gt;
| 0 || 0 || 0 || unsupported&lt;br /&gt;
|-&lt;br /&gt;
| 0 || 0 || 1 || unsupported&lt;br /&gt;
|-&lt;br /&gt;
| 0 || 1 || 0 || eMMC&lt;br /&gt;
|-&lt;br /&gt;
| 0 || 1 || 1 || unsupported&lt;br /&gt;
|-&lt;br /&gt;
| 1 || 0 || 0 || SDCard&lt;br /&gt;
|-&lt;br /&gt;
| 1 || 0 || 1 || SDCard&lt;br /&gt;
|-&lt;br /&gt;
| 1 || 1 || 0 || eMMC&lt;br /&gt;
|-&lt;br /&gt;
| 1 || 1 || 1 || SDCard&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Disable SPI (while booting) ====&lt;br /&gt;
There is a second possibility to jumper your ROCKPro64: If you mess-up your SPI and are unable to boot, jumpering pins 23 (CLK) and 25 pin (GND) on the PI-2-bus header will disable the SPI as a boot device. (This was taken from the IRC logs, 09 August 2018 @ 17:23) You have to remove the jumper 2 seconds after having started your RP64 (before the white LED turns ON) otherwise the SPI will be missing and you won't be able to flash it.&lt;br /&gt;
Ayufan images contain (at the moment) only one script for the SPI and the RP64, it's &amp;quot;rockpro64_reset_spi_flash&amp;quot;. Other SPI scripts are dedicated to the R64 (as it is written on the name) and it will mess-up your RP64 SPI if you use them.&lt;br /&gt;
&lt;br /&gt;
== Hardware Compatibility ==&lt;br /&gt;
&lt;br /&gt;
The hardware compatibility list can be found under [[ROCKPro64 Hardware compatibility]].&lt;br /&gt;
&lt;br /&gt;
== Board Features ==&lt;br /&gt;
&lt;br /&gt;
This section outlines the most important characteristics of the board and its components.&lt;br /&gt;
&lt;br /&gt;
=== SoC and Memory Specification ===&lt;br /&gt;
* Based on Rockchip RK3399&lt;br /&gt;
[[File:Rockchip_RK3399.png|right]]&lt;br /&gt;
&lt;br /&gt;
==== CPU Architecture ====&lt;br /&gt;
&lt;br /&gt;
* [https://developer.arm.com/products/processors/cortex-a/cortex-a72 Dual-core Cortex-A72 up to 2.0GHz CPU]&lt;br /&gt;
* [https://developer.arm.com/products/processors/cortex-a/cortex-a53 Quad-core Cortex-A53 up to 1.5GHz CPU]&lt;br /&gt;
* big.LITTLE architecture: Dual Cortex-A72 + Quad Cortex-A53, 64-bit CPU&lt;br /&gt;
* Cortex-A72:&lt;br /&gt;
** 1-4x Symmetrical Multiprocessing (SMP) within a single processor cluster, and multiple coherent SMP processor clusters through AMBA 5 CHI or AMBA 4 ACE technology&lt;br /&gt;
** AArch64 for 64-bit support and new architectural features&lt;br /&gt;
** L1 cache 48KB Icache and 32KB Dcache for each A72 &lt;br /&gt;
** L2 cache 1024KB for big cluster &lt;br /&gt;
** DSP &amp;amp; SIMD extensions&lt;br /&gt;
** VFPv4 floating point&lt;br /&gt;
** Hardware virtualization support&lt;br /&gt;
* Cortex-A53:&lt;br /&gt;
** L1 cache 32KB Icache and 32KB Dcache for each A53&lt;br /&gt;
** L2 cache 512KB for little cluster &lt;br /&gt;
* Full implementation of the ARM architecture v8-A instruction set&lt;br /&gt;
* ARM Neon Advanced SIMD (single instruction, multiple data) support for accelerated media and signal processing computation&lt;br /&gt;
* ARMv8 Cryptography Extensions&lt;br /&gt;
* In-order pipeline with symmetric dual-issue of most instructions&lt;br /&gt;
* Include VFP v3 hardware to support single and double-precision operations&lt;br /&gt;
* TrustZone technology support&lt;br /&gt;
* Full CoreSight debug solution&lt;br /&gt;
* One isolated voltage domain to support DVFS&lt;br /&gt;
&lt;br /&gt;
==== GPU Architecture ====&lt;br /&gt;
&lt;br /&gt;
* [https://developer.arm.com/products/graphics-and-multimedia/mali-gpus/mali-t860-and-mali-t880-gpus ARM Mali-T860MP4 Quad-core GPU]&lt;br /&gt;
* The highest performance GPUs built on Arm Mali’s famous Midgard architecture, the Mali-T860 GPU is designed for complex graphics use cases and provides stunning visuals for UHD content.&lt;br /&gt;
* Frequency: 650MHz &lt;br /&gt;
* Throughput: 1300Mtri/s, 10.4Gpix/s &lt;br /&gt;
* OpenGL® ES 1.1, 1.2, 2.0, 3.1, 3.2, Vulkan 1.0*, OpenCL™ 1.1, 1.2, DirectX® 11 FL11_1, RenderScript™.&lt;br /&gt;
&lt;br /&gt;
==== System Memory ====&lt;br /&gt;
* LPDDR4 RAM Memory Variants: Dual Channels 2GB and 4GB.&lt;br /&gt;
* Storage Memory: 128Mb built-in SPI Flash memory (as at August 2018 only support for USB boot).&lt;br /&gt;
&lt;br /&gt;
=== Display ===&lt;br /&gt;
&lt;br /&gt;
* Dual VOP: one supports resolutions up to 4096x2160 and [https://www.arm.com/why-arm/technologies/graphics-technologies/arm-frame-buffer-compression AFBC]; the other supports resolutions up to 2560x1600&lt;br /&gt;
* Dual channel MIPI-DSI (4 lanes per channel)&lt;br /&gt;
* eDP 1.3 (4 lanes with 10.8Gbps) to support displays, with PSR&lt;br /&gt;
* Digital Video port up to 4Kp60&lt;br /&gt;
* DisplayPort 1.2 (4 lanes, up to 4K 60Hz)&lt;br /&gt;
* Supports Rec.2020 and conversion to Rec.709 &lt;br /&gt;
&lt;br /&gt;
=== Video ===&lt;br /&gt;
&lt;br /&gt;
* Digital Video output up to 4K@60Hz&lt;br /&gt;
* 4K HDR @ 30fps&lt;br /&gt;
* H.264/AVC Base/Main/High/High10 profile @ level 5.1; up to 4Kx2K @ 60fps&lt;br /&gt;
* H.265/HEVC Main/Main10 profile @ level 5.1 High-tier; up to 4Kx2K @ 60fps&lt;br /&gt;
* VP9, up to 4Kx2K @ 60fps&lt;br /&gt;
* MPEG-1, ISO/IEC 11172-2, up to 1080P @ 60fps&lt;br /&gt;
* MPEG-2, ISO/IEC 13818-2, SP@ML, MP@HL, up to 1080P @ 60fps&lt;br /&gt;
* MPEG-4, ISO/IEC 14496-2, SP@L0-3, ASP@L0-5, up to 1080P @ 60fps&lt;br /&gt;
* VC-1, SP@ML, MP@HL, AP@L0-3, up to 1080P @ 60fps&lt;br /&gt;
* MVC is supported based on H.264 or H.265, up to 1080P @ 60fps&lt;br /&gt;
&lt;br /&gt;
=== Audio ===&lt;br /&gt;
&lt;br /&gt;
* 3.5mm Phone Jack&lt;br /&gt;
* 3-pin S/PDIF header &lt;br /&gt;
* Audio via Digital Video port&lt;br /&gt;
&lt;br /&gt;
=== Camera ===&lt;br /&gt;
&lt;br /&gt;
* Dual MIPI CSI，dual ISP, maximum input resolution of 13M pixels &lt;br /&gt;
&lt;br /&gt;
=== Network ===&lt;br /&gt;
&lt;br /&gt;
* 10/100/1000Mbps Ethernet - Capable of pushing 941 MBit/s in iperf3&lt;br /&gt;
* Wi-Fi 802.11 ac/a/b/g/n with Bluetooth 4.01 (old version with 2x2) / Bluetooth 5 (new version with 1x1) (optional)&lt;br /&gt;
&lt;br /&gt;
=== Storage ===&lt;br /&gt;
&lt;br /&gt;
* microSD - bootable, support SDHC and SDXC, storage up to 256GB&lt;br /&gt;
* eMMC - bootable (optional eMMC Module)&lt;br /&gt;
* 1 USB3.0 Host port&lt;br /&gt;
* 1 USB type C OTG port with DP output &lt;br /&gt;
* 2 USB2.0 Dedicated Host ports&lt;br /&gt;
&lt;br /&gt;
=== Expansion Ports ===&lt;br /&gt;
&lt;br /&gt;
* 2x20 pins &amp;quot;Pi2&amp;quot; GPIO Header&lt;br /&gt;
* PCIe 2.1 (4 full-duplex lanes with 20Gbps) x4 open ended port&lt;br /&gt;
&lt;br /&gt;
==== GPIO Pins ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable plainrowheaders&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;width:20em;&amp;quot; | Assigned To&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Pin Nr.&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Pin Nr.&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;width:20em;&amp;quot; | Assigned To&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| 3.3 V&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 1&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 2&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| 5 V&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| GPIO1_C4 (I2C8_SDA) &amp;lt;sup style=&amp;quot;font-style:italic;color:green&amp;quot;&amp;gt;a&amp;lt;/sup&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 3&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 4&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| 5 V&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| GPIO1_C5 (I2C8_SCL) &amp;lt;sup style=&amp;quot;font-style:italic;color:green&amp;quot;&amp;gt;a&amp;lt;/sup&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 5&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 6&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GND&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| GPIO4_D0 (CPU_GPCLK)&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 7&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 8&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GPIO4_C4 (UART2_TX)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| GND&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 9&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 10&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GPIO4_C3 (UART2_RX)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| GPIO1_C6&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 11&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 12&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GPIO3_D0 (I2S0_CLK)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| GPIO1_C2&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 13&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 14&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GND&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| GPIO1_A1&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 15&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 16&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GPIO1_A4&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| 3.3 V&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 17&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 18&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GPIO4_C5 [SPDIF]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| [UART4_TX] GPIO1_B0 (SPI1_TXD)&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 19&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 20&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GND&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| [UART4_RX] GPIO1_A7 (SPI1_RXD)&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 21&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 22&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GPIO4_D1&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| GPIO1_B1 (SPI1_CLK)&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 23&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 24&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GPIO1_B2 (SPI1_CSN0)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| GND&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 25&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 26&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GPIO1_B5&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| GPIO1_B3 (I2C4_SDA)&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 27&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 28&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GPIO1_B4 (I2C4_SCL)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| GPIO4_D3&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 29&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 30&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GND&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| GPIO4_D4&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 31&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 32&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GPIO3_D4 (I2S0_SDI1SDO3)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| GPIO3_D5 (I2S0_SDI2SDO2)&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 33&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 34&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GND&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| GPIO3_D2 (I2S0_LRCKTX)&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 35&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 36&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GPIO3_D6 (I2S0_SDI3SDO1)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| GPIO3_D1 (I2S0_LRCKRX)&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 37&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 38&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GPIO3_D3 (I2S0_SDI0)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| GND&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 39&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 40&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GPIO3_D7 (I2S0_SDO0)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== Notes =====&lt;br /&gt;
&lt;br /&gt;
* '''a:''' pulled high to 3.3V through 2.2kOhm resistor&lt;br /&gt;
&lt;br /&gt;
===== Linux /dev/gpiochip Assignments =====&lt;br /&gt;
&lt;br /&gt;
{| class=wikitable style=&amp;quot;max-width: 1000px; text-align: center;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | Pin Nr.&lt;br /&gt;
| 3 || 5 || 7 || 8 || 10 || 11 || 12 || 13 || 15 || 16 || 18 || 19 || 21 || 22 || 23 || 24 || 26 || 27 || 28 || 29 || 31 || 32 || 33 || 35 || 36 || 37 || 38 || 40&lt;br /&gt;
|- &lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | Chip&lt;br /&gt;
| 1 || 1 || 4 || 4 || 4 || 1 || 3 || 1 || 1 || 1 || 4 || 1 || 1 || 4 || 1 || 1 || 1 || 1 || 1 || 4 || 4 || 3 || 3 || 3 || 3 || 3 || 3 || 3&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | Line&lt;br /&gt;
| 20 || 21 || 24 || 20 || 19 || 22 || 24 || 18 || 1 || 4 || 21 || 8 || 7 || 25 || 9 || 10 || 13 || 11 || 12 || 27 || 28 || 28 || 29 || 26 || 30 || 25 || 27 || 31&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
On Linux, using the new &amp;lt;code&amp;gt;/dev/gpiochip&amp;lt;/code&amp;gt; API, the &amp;lt;code&amp;gt;''n''&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;GPIO''n''_''XX''&amp;lt;/code&amp;gt; appears to correlate to the number of the &amp;lt;code&amp;gt;/dev/gpiochip''n''&amp;lt;/code&amp;gt;, and the &amp;lt;code&amp;gt;''XX''&amp;lt;/code&amp;gt; to the definition &amp;lt;code&amp;gt;RK_P''XX''&amp;lt;/code&amp;gt; of lines in &amp;lt;code&amp;gt;include/dt-bindings/pinctrl/rockchip.h&amp;lt;/code&amp;gt; of the Linux kernel source. Having these named in the dts would be nice.&lt;br /&gt;
&lt;br /&gt;
You can use [https://git.kernel.org/pub/scm/libs/libgpiod/libgpiod.git/ libgpiod] to drive them, and test them with the included tools (&amp;lt;code&amp;gt;gpioinfo&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;gpioset&amp;lt;/code&amp;gt;, ...)&lt;br /&gt;
&lt;br /&gt;
For example, &amp;lt;code&amp;gt;gpioset 4 25=1&amp;lt;/code&amp;gt; (run as root) would turn pin 22 on. Do beware that poking the wrong GPIO pin can lock up your system.&lt;br /&gt;
&lt;br /&gt;
The conversion table at right is also available as a [https://gist.github.com/CounterPillow/fe066655bf2d929148fe6eb3f15b1dd5 C header file].&lt;br /&gt;
&lt;br /&gt;
=== Working Features ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! Feature/Option&lt;br /&gt;
! Android&lt;br /&gt;
! Android Version&lt;br /&gt;
! Linux&lt;br /&gt;
! Linux Version&lt;br /&gt;
! Test/Verify Steps&lt;br /&gt;
! Notes&lt;br /&gt;
! Product Link&lt;br /&gt;
|-&lt;br /&gt;
| PINE64 LCD Touchscreen (Screen/Touch)&lt;br /&gt;
| Yes/Yes&lt;br /&gt;
| &lt;br /&gt;
| No/No&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| Maybe [https://github.com/avafinger/pine64-touchscreen this] will help get this working?&lt;br /&gt;
| [https://pine64.com/?product=7-lcd-touch-screen-panel 7″ LCD Touch Screen Panel]&lt;br /&gt;
|-&lt;br /&gt;
| Wireless&lt;br /&gt;
&amp;lt;small&amp;gt;ROCKPro64 2×2 MIMO Dual Band WiFi 802.11AC / Bluetooth 4.2 Module (old)&lt;br /&gt;
ROCKPro64 1x1 Dual Band WiFi 802.11AC / Bluetooth 5.0 Module (new)&amp;lt;/small&amp;gt;&lt;br /&gt;
| Yes/Yes&lt;br /&gt;
| &lt;br /&gt;
| No/Yes*&lt;br /&gt;
| &lt;br /&gt;
| For the &amp;quot;new&amp;quot; ROCKPro64 WIFI module: Verified with Manjaro ARM (kernel 6.2.5). A config file (&amp;quot;firmware file&amp;quot;) is needed at &amp;lt;code&amp;gt;/lib/firmware/brcm/brcmfmac43455-sdio.txt&amp;lt;/code&amp;gt;. See here for the file contents and details: https://askubuntu.com/a/1211986. Some distros provide this file, but it is listed under the generic name &amp;quot;brcmfmac43455-sdio.AW-CM256SM.txt&amp;quot;. If this file exists, you can create a symbolic link to it named &amp;quot;brcmfmac43455-sdio.txt&amp;quot; instead of downloading the firmware file listed above. This can be done with the following command &amp;lt;code&amp;gt;sudo ln -s /usr/lib/firmware/brcm/brcmfmac43455-sdio.AW-CM256SM.txt /usr/lib/firmware/brcm/brcmfmac43455-sdio.txt&amp;lt;/code&amp;gt;. Then, reboot and WIFI should start working. Details for this method are here: https://forum.pine64.org/showthread.php?tid=16635&amp;amp;pid=117061#pid117061&lt;br /&gt;
| In 0.7.9 Ayufan linux releases this is deliberately disabled for stability reasons. After testing for a few hours, on Manjaro ARM (kernel 6.2.5), there haven't been stability issues found (WiFi stayed connected). On a 5GHz network (802.11AC), it was tested to be possible to get about 120Mbps using the &amp;quot;new&amp;quot; ROCKPro64 WIFI module.&lt;br /&gt;
| [https://store.pine64.org/product/rockpro64-1x1-dual-band-wifi-802-11acbluetooth-5-0-module ROCKPro64 1x1 Dual Band WiFi 802.11AC / Bluetooth 5.0 Module]&lt;br /&gt;
|-&lt;br /&gt;
| USB OTG&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| use this script: [https://github.com/ayufan-rock64/linux-package/blob/master/root-rockpro64/usr/local/sbin/rockpro64_enable_otg.sh rockpro64_enable_otg.sh], then configure ip on usb0: ifconfig usb0 169.169.222.222 and run iperf, you should likely see about 200-300MB/s&lt;br /&gt;
| [[ROCKPro64#OTG_mode]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| USB Mass Storage USB2/USB3&lt;br /&gt;
| Yes/yes&lt;br /&gt;
| &lt;br /&gt;
| Yes/Yes&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Dedicated Fan Power (pwm1)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| Yes&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| You might want to use [https://github.com/tuxd3v/ats ATS].&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| GPIO pins (raw or via RPI python scripts)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| Check out [https://forum.frank-mankel.org/topic/292/rockpro64-rp64-gpio/2 what Frank Mankel has done].&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| MIPI CSI Camera 1 and 2&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| eDP&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| HDMI Audio&lt;br /&gt;
| Yes&lt;br /&gt;
| 7.1.2&lt;br /&gt;
| Yes&lt;br /&gt;
| 4.4.132-1083 - 4.4.138-1100&lt;br /&gt;
| &lt;br /&gt;
| Stopped working in 4.4.154.1105. Ayufan is looking into it. This is working in Manjaro ARM (kernel 6.2.5). Select the &amp;lt;code&amp;gt;Analog Output (Built-in Audio Stereo)&amp;lt;/code&amp;gt; option in the audio output device selection window (either use &amp;lt;code&amp;gt;pavucontrol&amp;lt;/code&amp;gt; or the volume button in the KDE desktop). Despite the slightly misleading name, audio does go through the HDMI port. See here for details: https://forum.manjaro.org/t/no-hdmi-audio-on-rockpro64/25595/2.&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 3.5mm Audio/Mic&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| USB-C Host&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Display via USB-C&lt;br /&gt;
| Yes&lt;br /&gt;
| 7.x and 8.x&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| eDP via USB-C per tillim. No sound on Android 7.x. Sound does work on Android 8.x&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| ROCKPro64 PLAYBOX ENCLOSURE&lt;br /&gt;
| N/A&lt;br /&gt;
| &lt;br /&gt;
| N/A&lt;br /&gt;
| &lt;br /&gt;
| N/A&lt;br /&gt;
| Ventilation does not exist, thus requires manual changes to add venting. Case should be modified to account power adapter not being centered in cut holes. Opening the case once close without modifying it first is near impossible without special tools. Graphene heatsink is included and does well for Linux but not Android.&lt;br /&gt;
| https://pine64.com/?product=rockpro64-playbox-enclosure&lt;br /&gt;
|-&lt;br /&gt;
| ROCKPro64 30mm Tall Profile Heatsink&lt;br /&gt;
| N/A&lt;br /&gt;
| &lt;br /&gt;
| N/A&lt;br /&gt;
| &lt;br /&gt;
| N/A&lt;br /&gt;
| &lt;br /&gt;
| https://store.pine64.org/?product=rockpro64-heatsink&lt;br /&gt;
|-&lt;br /&gt;
| ROCKPro64 20mm Mid Profile Heatsink&lt;br /&gt;
| N/A&lt;br /&gt;
| &lt;br /&gt;
| N/A&lt;br /&gt;
| &lt;br /&gt;
| N/A&lt;br /&gt;
| &lt;br /&gt;
| https://pine64.com/?product=rockpro64-20mm-mid-profile-heatsink&lt;br /&gt;
|-&lt;br /&gt;
| Fan For ROCKPro64 20mm Mid Profile Heatsink&lt;br /&gt;
| N/A&lt;br /&gt;
| &lt;br /&gt;
| N/A&lt;br /&gt;
| &lt;br /&gt;
| N/A&lt;br /&gt;
| You might want to use [https://github.com/tuxd3v/fanctl fanctl] to control the fan while keeping your CPU cool&lt;br /&gt;
| https://pine64.com/?product=fan-for-rockpro64-20mm-mid-profile-heatsink&lt;br /&gt;
|-&lt;br /&gt;
| HDMI output 4K@60Hz&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| PCIe 2.1&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Real Time Clock (RTC) battery backup&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| https://store.pine64.org/?product=rtc-backup-battery-cr-battery&lt;br /&gt;
|-&lt;br /&gt;
| Boot from USB/PXE&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
RockChip themselves have tables of supported features at 4.4 and mainline kernel versions [http://opensource.rock-chips.com/wiki_Status_Matrix in their wiki here].&lt;br /&gt;
&lt;br /&gt;
== Board Information, Schematics and Certifications ==&lt;br /&gt;
* Board Dimensions: 133mm x 80mm x 19mm&lt;br /&gt;
* Input Power: +12V @3A/5A with 5.5mm/2.1mm Type M Barrel type DC connector&lt;br /&gt;
* [https://files.pine64.org/doc/rockpro64/rockpro64_v21-SCH.pdf ROCKPro64 Schematic v2.1 (Second Batch Production Release)]&lt;br /&gt;
** [https://files.pine64.org/doc/rockpro64/RockPro64_v21_Boardoutline-top.dxf ROCKPro64 v2.1 Board Top Outline in AutoCad DXF format]&lt;br /&gt;
** [https://files.pine64.org/doc/rockpro64/RockPro64_v21_Boardoutline-bottom.dxf ROCKPro64 v2.1 Board Bottom Outline in AutoCad DXF format]&lt;br /&gt;
** [https://files.pine64.org/doc/rockpro64/RockPro64_v21_Boardoutline-top.pdf ROCKPro64 v2.1 Board Top Outline in PDF format]&lt;br /&gt;
** [https://files.pine64.org/doc/rockpro64/RockPro64_v21_Boardoutline-bottom.pdf ROCKPro64 v2.1 Board Bottom Outline in PDF format]&lt;br /&gt;
* [https://files.pine64.org/doc/rockpro64/rockpro64_v20-SCH.pdf ROCKPro64 Schematic v2.0 (Pilot Production Release)]&lt;br /&gt;
** [https://files.pine64.org/doc/rockpro64/ROCKPRo64%20Engineering%20Change%20Notice%2020180628RP01.pdf Engineering Change Notice for v2.0 to turn on 3.3V power on PCIe]&lt;br /&gt;
* [https://files.pine64.org/doc/rockpro64/rockpro64_wifi_ap6359SA.pdf ROCKPro64 AP6359SA Wifi/BT Schematic]&lt;br /&gt;
* [https://files.pine64.org/doc/rockpro64/Rockpro64%20Pi-2%20Connector%20ver0.2.png ROCKPro64 Pi-2 Pin assignment and definition]&lt;br /&gt;
* [https://files.pine64.org/doc/rockpro64/RockPro-3D-model.zip ROCKPro64 3D model]&lt;br /&gt;
&lt;br /&gt;
Certifications:&lt;br /&gt;
&lt;br /&gt;
* Disclaimer: Please note that PINE64 SBC is not a &amp;quot;final&amp;quot; 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.&lt;br /&gt;
* [https://files.pine64.org/doc/cert/ROCKPro64%20FCC%20SDOC%20Certificate.pdf ROCKPro64 FCC Certificate]&lt;br /&gt;
* [https://files.pine64.org/doc/cert/ROCKPro64%20CE-EMC%20Certificate.pdf ROCKPro64 CE Certificate]&lt;br /&gt;
* [https://files.pine64.org/doc/cert/ROCKPro64%20ROHS%20%20SEC180529404001E%20Report.pdf ROCKPro64 RoHS Report]&lt;br /&gt;
&lt;br /&gt;
== Datasheets for Components and Peripherals ==&lt;br /&gt;
&lt;br /&gt;
Rockchip RK3399 SoC information:&lt;br /&gt;
&lt;br /&gt;
* [https://www.rock-chips.com/a/en/products/RK33_Series/2016/0419/758.html Rockchip RK3399 SoC Brief]&lt;br /&gt;
* [http://opensource.rock-chips.com/images/d/d7/Rockchip_RK3399_Datasheet_V2.1-20200323.pdf Rockchip RK3399 Datasheet V2.1]&lt;br /&gt;
* [http://opensource.rock-chips.com/images/e/ee/Rockchip_RK3399TRM_V1.4_Part1-20170408.pdf Rockchip RK3399 Technical Reference Manual part 1]&lt;br /&gt;
* [https://files.pine64.org/doc/datasheet/rockpro64/RK808%20datasheet%20V0.8.pdf Rockchip RK808 Datasheet V0.8]&lt;br /&gt;
&lt;br /&gt;
LPDDR4 (200 Balls) SDRAM:&lt;br /&gt;
&lt;br /&gt;
* [https://files.pine64.org/doc/datasheet/rockpro64/SM512M32Z01MD2BNP(200BALL).pdf Micron LPDDR4 Mobile LPDDR4 Datasheet]&lt;br /&gt;
&lt;br /&gt;
eMMC information:&lt;br /&gt;
&lt;br /&gt;
* [https://files.pine64.org/doc/rock64/PINE64_eMMC_Module_20170719.pdf PINE64 eMMC module schematic]&lt;br /&gt;
* [https://files.pine64.org/doc/rock64/usb%20emmc%20module%20adapter%20v2.pdf PINE64 USB adapter for eMMC module V2 schematic]&lt;br /&gt;
* [https://files.pine64.org/doc/rock64/USB%20adapter%20for%20eMMC%20module%20PCB.tar PINE64 USB adapter for eMMC module PCB in JPEG]&lt;br /&gt;
* [https://files.pine64.org/doc/datasheet/pine64/E-00517%20FORESEE_eMMC_NCEMAM8B-16G%20SPEC.pdf 16GB Foresee eMMC Datasheet]&lt;br /&gt;
* [https://files.pine64.org/doc/datasheet/pine64/SDINADF4-16-128GB-H%20data%20sheet%20v1.13.pdf 32GB/64GB/128GB SanDisk eMMC Datasheet]&lt;br /&gt;
&lt;br /&gt;
SPI NOR Flash information:&lt;br /&gt;
&lt;br /&gt;
* [https://files.pine64.org/doc/datasheet/pine64/w25q128jv%20spi%20revc%2011162016.pdf WinBond 128Mb SPI Flash Datasheet]&lt;br /&gt;
* [https://files.pine64.org/doc/datasheet/pine64/GD25Q128C-Rev2.5.pdf GigaDevice 128Mb SPI Flash Datasheet]&lt;br /&gt;
&lt;br /&gt;
Heatsink related info:&lt;br /&gt;
&lt;br /&gt;
* [https://files.pine64.org/doc/datasheet/rockpro64/Rockpro%20Passive%20Heatsink%20Spec.jpg ROCKPro64 Passive Heatsink Dimension Drawing]&lt;br /&gt;
* [https://files.pine64.org/doc/datasheet/rockpro64/LMS-TC150%20Silicon%20Thermal%20Pad.pdf Heatsink Thermal Pad Specification]&lt;br /&gt;
&lt;br /&gt;
Wireless related info:&lt;br /&gt;
&lt;br /&gt;
* AMPAK AP6256 11AC WiFi + Bluetooth5.0 Datasheet [https://files.pine64.org/doc/datasheet/rockpro64/AP6256%20datasheet_V1.3_12202017.pdf (v. 1.3)] [http://files.pine64.org/doc/datasheet/PinebookPro/AP6256%20datasheet_V1.7_12282018.pdf (v. 1.7)]&lt;br /&gt;
&lt;br /&gt;
Ethernet related info:&lt;br /&gt;
&lt;br /&gt;
* [https://files.pine64.org/doc/datasheet/rock64/RTL8211F-CG-Realtek.pdf Realtek RTL8211F 10/100/1000M Ethernet Transceiver Datasheet]&lt;br /&gt;
&lt;br /&gt;
Peripheral related info:&lt;br /&gt;
&lt;br /&gt;
* [https://files.pine64.org/doc/datasheet/rockpro64/ASM1061_Data%20Sheet_R1_8.pdf asmedia ASM1061 PCIe SATA 2.0 Datasheet]&lt;br /&gt;
&lt;br /&gt;
Remote control button mapping:&lt;br /&gt;
&lt;br /&gt;
* [https://files.pine64.org/doc/Pine%20A64%20Schematic/remote-wit-logo.jpg Official Remote Control for the PINE64 Button Mapping]&lt;br /&gt;
&lt;br /&gt;
Audio Codec (ES8316) (under board):&lt;br /&gt;
&lt;br /&gt;
* [http://everest-semi.com/pdf/ES8316%20PB.pdf Everest ES8316 Audio Codec]&lt;br /&gt;
&lt;br /&gt;
PWM controlled fan, SPDIF, and RTC Battery Backup headers:&lt;br /&gt;
&lt;br /&gt;
* [https://www.jst-mfg.com/product/pdf/eng/ePH.pdf JST-PH connector]&lt;br /&gt;
&lt;br /&gt;
== Useful Articles and Blog Posts ==&lt;br /&gt;
&lt;br /&gt;
If you want to dive in to the ecosystem, here's a short list of various articles and blog posts that can help you set up your soft- or hardware development environment.&lt;br /&gt;
&lt;br /&gt;
* [https://stikonas.eu/wordpress/2019/09/15/blobless-boot-with-rockpro64/ Blobless boot with RockPro64 by Andrius Štikonas]&lt;br /&gt;
&lt;br /&gt;
* [https://marcin.juszkiewicz.com.pl/2020/06/17/ebbr-on-rockpro64/ EBBR on RockPro64 by Marcin Juszkiewicz]&lt;br /&gt;
&lt;br /&gt;
* [[ROCKPro64 Device Tree Overlays on Mainline]]&lt;br /&gt;
&lt;br /&gt;
== The NAS Case for the ROCKPro64 ==&lt;br /&gt;
&lt;br /&gt;
[[file:NASCaseMain.png|thumb|right|Front View of the PINE64 NAS Case for the ROCKPro64]]&lt;br /&gt;
&lt;br /&gt;
Please [[NASCase|follow this this link]] for '''detailed instructions on how to assemble the ROCKPro64 NAS Case'''.&lt;br /&gt;
&lt;br /&gt;
The NAS Case instructions also contains detailed information about:&lt;br /&gt;
*what the NAS Case ships with&lt;br /&gt;
*What additional things you need to purchase for your NAS Case&lt;br /&gt;
*What optional things you can consider purchasing for your NAS build&lt;br /&gt;
*What OS Image we recommend you use for your NAS build&lt;br /&gt;
*IO accessibility after installing the ROCKPro64 into the NAS Case&lt;br /&gt;
*[https://files.pine64.org/doc/rockpro64/ROCKPro64%20NAS%20Case%20Exploded%20View%20Diagram.pdf NAS Case Exploded View]&lt;br /&gt;
*[https://files.pine64.org/doc/rockpro64/NAS%20Case%20Drawing.dwg NAS Case Drawing]&lt;br /&gt;
&lt;br /&gt;
== 3D printable ITX mounting brackets ==&lt;br /&gt;
&lt;br /&gt;
[[file:ITX-Bracket-Mounted.jpg|300px|thumb|right|A Quartz64-A mounted in an ITX case using 3D printed brackets]]&lt;br /&gt;
&lt;br /&gt;
Allows mounting a ROCKPro64-A or Quartz64-A board inside a regular PC case that conforms to the ITX standard, using 3D printed brackets:&lt;br /&gt;
&lt;br /&gt;
* AMF/STL/STEP files plus the original FreeCAD file used to create the models [[File:RP64-A_Q64-A_to_ITX_mounting_brackets.zip]]&lt;br /&gt;
* Make sure to flip the two brackets by 180 degrees on one of the horizontal axes (X/Y) in your slicer of choice before printing to avoid unnecessary supports&lt;br /&gt;
* To allow enough clearance between the board and the bracket you either need to print four copies of the washer model or add nut(s) between the board and the bracket&lt;br /&gt;
* If using nuts for the clearance between the board and the brackets, make sure it creates at least 3.2mm of spacing in between&lt;br /&gt;
* Depending on the accuracy and calibration of a 3D printer, slight deviation can occur and you likely need to manually widen some of the holes to allow screws to fit&lt;br /&gt;
&lt;br /&gt;
== Other Resources ==&lt;br /&gt;
&lt;br /&gt;
* [https://forum.pine64.org/forumdisplay.php?fid=98 ROCKPro64 Forum]&lt;br /&gt;
* [https://pine64.com/?post_type=product PINE64 shop]&lt;br /&gt;
* [https://github.com/rockchip-linux Rockchip Linux GitHub Repo]&lt;br /&gt;
* [http://opensource.rock-chips.com/ Rockchip Open Source Wiki]&lt;br /&gt;
* ExplainingComputers have a video review [https://www.youtube.com/watch?v=CeoNHGFN_30 of the RockPro64 here, including linux first boot.]&lt;br /&gt;
* [[ROCKPro64 Installing Arch Linux ARM]]&lt;br /&gt;
* [[ROCKPro64 Powering From An ATX Supply]]&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
=== No Video or GPU Acceleration on Debian ===&lt;br /&gt;
&lt;br /&gt;
If you can log in through serial but don't get any video or GPU acceleration on Debian, this is likely due to Debian's decision to compile the devfreq governors as loadable modules but not including them early enough for panfrost to be able to be provided with one of them.&lt;br /&gt;
&lt;br /&gt;
The usual sign of this being the case is the following line in your log: &amp;lt;code&amp;gt;[drm:panfrost_devfreq_init [panfrost]] *ERROR* Couldn't initialize GPU devfreq&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Log in to your ROCKPro64, and run the following:&lt;br /&gt;
&lt;br /&gt;
 sudo -i&lt;br /&gt;
 echo governor_simpleondemand &amp;gt;&amp;gt; /etc/initramfs-tools/modules &amp;amp;&amp;amp; update-initramfs -u -k $(uname -r)&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
Then, reboot.&lt;br /&gt;
&lt;br /&gt;
== Hardware &amp;quot;Hacking&amp;quot; ==&lt;br /&gt;
&lt;br /&gt;
=== Enabling PCIe 2.0 ===&lt;br /&gt;
By default, the RockPro64 runs the PCIe slot at gen 1 speeds because there might be stability issues with gen 2 speeds. The port can be switched back to gen 2 speeds by adding the following device tree overlay.&lt;br /&gt;
&lt;br /&gt;
1. Copy and paste the device tree overlay file below into a new file (you could name it &amp;lt;code&amp;gt;pcie-2.0.dts&amp;lt;/code&amp;gt;):&lt;br /&gt;
 // Pulled from: https://forum.armbian.com/topic/23574-howto-enable-pcie-gen2-to-get-max-speed-of-nvme-rockpi-4b/&lt;br /&gt;
 /dts-v1/;&lt;br /&gt;
 /plugin/;&lt;br /&gt;
 &lt;br /&gt;
 &amp;amp;pcie0 {&lt;br /&gt;
         max-link-speed = &amp;lt;0x03&amp;gt;;&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
2. Compile the device tree into a binary file. Note that you will need &amp;lt;code&amp;gt;dtc&amp;lt;/code&amp;gt; installed.&lt;br /&gt;
 dtc -I dts -O dtb -@ pcie-2.0.dts -o pcie-2.0.dto&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
4. Copy or move the device tree from the current directory into the boot partition (in this case into the &amp;lt;code&amp;gt;/boot/dtbs/overlay/&amp;lt;/code&amp;gt; folder). If you haven't yet created the &amp;lt;code&amp;gt;/boot/dtbs/overlay/&amp;lt;/code&amp;gt; folder, then create it with &amp;lt;code&amp;gt;sudo mkdir /boot/dtbs/overlay/&amp;lt;/code&amp;gt;&lt;br /&gt;
 sudo cp pcie-2.0.dto /boot/dtbs/overlay/&lt;br /&gt;
&lt;br /&gt;
5. Add the device compiled tree overlay file to the list of files u-boot needs to load. If you are using ManjaroARM (or ArchLinuxARM with a &amp;lt;code&amp;gt;extlinux.conf&amp;lt;/code&amp;gt; file), then add the following line to the file &amp;lt;code&amp;gt;/boot/extlinux/extlinux.conf&amp;lt;/code&amp;gt;:&lt;br /&gt;
 FDTOVERLAYS /dtbs/overlay/pcie-2.0.dtb&lt;br /&gt;
&lt;br /&gt;
If you already have an &amp;lt;code&amp;gt;FDTOVERLAYS&amp;lt;/code&amp;gt; line, then add a space at the end of the current line, then add this overlay file after that.&lt;br /&gt;
See here for details on this process: [[ROCKPro64 Device Tree Overlays on Mainline]]&lt;br /&gt;
&lt;br /&gt;
The resulting &amp;lt;code&amp;gt;/boot/extlinux/extlinux.conf&amp;lt;/code&amp;gt; file might look like below after adding this dtb file:&lt;br /&gt;
 LABEL Manjaro ARM&lt;br /&gt;
 KERNEL /Image&lt;br /&gt;
 FDT /dtbs/rockchip/rk3399-rockpro64.dtb&lt;br /&gt;
 FDTOVERLAYS /dtbs/overlay/pcie-2.0.dtb /dtbs/overlay/cpu-overclock.dtb&lt;br /&gt;
 APPEND initrd=/initramfs-linux.img console=ttyS2,1500000 zfs=zroot rw rootwait audit=0 cpufreq.default_governor=schedutil&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Overclocking (and undervolting) ===&lt;br /&gt;
The RK3399 can be overclocked. See here for details: [[Overclocking#RK3399-based devices]].&lt;br /&gt;
By overclocking, you do risk damaging your hardware, however, it is possible to achieve small, but measurable improvements in performance with an overclock. The overclock can be applied with a device tree overlay file.&lt;br /&gt;
Below is an example device tree overlay for CPU overclocking on the RockPro64. It may or may not work well on your device, but I found that these speeds were stable for me.&lt;br /&gt;
&lt;br /&gt;
1. Copy and paste the device tree overlay file below into a new file (you could name it &amp;lt;code&amp;gt;cpu-overclock.dts&amp;lt;/code&amp;gt;):&lt;br /&gt;
 // Pulled from: https://github.com/torvalds/linux/blob/master/arch/arm65/boot/dts/rockchip/rk3400-op2-opp.dtsi&lt;br /&gt;
 /dts-v1/;&lt;br /&gt;
 /plugin/;&lt;br /&gt;
 &lt;br /&gt;
        &amp;amp;cluster0_opp {&lt;br /&gt;
                opp00 {&lt;br /&gt;
                        opp-hz = /bits/ 64 &amp;lt;408000000&amp;gt;;&lt;br /&gt;
                        opp-microvolt = &amp;lt;800000&amp;gt;;&lt;br /&gt;
                        clock-latency-ns = &amp;lt;40000&amp;gt;;&lt;br /&gt;
                };&lt;br /&gt;
                opp01 {&lt;br /&gt;
                        opp-hz = /bits/ 64 &amp;lt;600000000&amp;gt;;&lt;br /&gt;
                        opp-microvolt = &amp;lt;825000&amp;gt;;&lt;br /&gt;
                };&lt;br /&gt;
                opp02 {&lt;br /&gt;
                        opp-hz = /bits/ 64 &amp;lt;816000000&amp;gt;;&lt;br /&gt;
                        opp-microvolt = &amp;lt;850000&amp;gt;;&lt;br /&gt;
                };&lt;br /&gt;
                opp03 {&lt;br /&gt;
                        opp-hz = /bits/ 64 &amp;lt;1008000000&amp;gt;;&lt;br /&gt;
                        opp-microvolt = &amp;lt;900000&amp;gt;;&lt;br /&gt;
                };&lt;br /&gt;
                opp04 {&lt;br /&gt;
                        opp-hz = /bits/ 64 &amp;lt;1200000000&amp;gt;;&lt;br /&gt;
                        opp-microvolt = &amp;lt;975000&amp;gt;;&lt;br /&gt;
                };&lt;br /&gt;
                opp05 {&lt;br /&gt;
                        opp-hz = /bits/ 64 &amp;lt;1416000000&amp;gt;;&lt;br /&gt;
                        opp-microvolt = &amp;lt;1100000&amp;gt;;&lt;br /&gt;
                };&lt;br /&gt;
                opp06 {&lt;br /&gt;
                        opp-hz = /bits/ 64 &amp;lt;1512000000&amp;gt;;&lt;br /&gt;
                        opp-microvolt = &amp;lt;1150000&amp;gt;;&lt;br /&gt;
                };&lt;br /&gt;
                opp07 {&lt;br /&gt;
                        opp-hz = /bits/ 64 &amp;lt;1608000000&amp;gt;;&lt;br /&gt;
                        opp-microvolt = &amp;lt;1200000&amp;gt;;&lt;br /&gt;
                };&lt;br /&gt;
        };&lt;br /&gt;
        &amp;amp;cluster1_opp {&lt;br /&gt;
                opp00 {&lt;br /&gt;
                        opp-hz = /bits/ 64 &amp;lt;408000000&amp;gt;;&lt;br /&gt;
                        opp-microvolt = &amp;lt;800000&amp;gt;;&lt;br /&gt;
                        clock-latency-ns = &amp;lt;40000&amp;gt;;&lt;br /&gt;
                };&lt;br /&gt;
                opp01 {&lt;br /&gt;
                        opp-hz = /bits/ 64 &amp;lt;600000000&amp;gt;;&lt;br /&gt;
                        opp-microvolt = &amp;lt;800000&amp;gt;;&lt;br /&gt;
                };&lt;br /&gt;
                opp02 {&lt;br /&gt;
                        opp-hz = /bits/ 64 &amp;lt;816000000&amp;gt;;&lt;br /&gt;
                        opp-microvolt = &amp;lt;825000&amp;gt;;&lt;br /&gt;
                };&lt;br /&gt;
                opp03 {&lt;br /&gt;
                        opp-hz = /bits/ 64 &amp;lt;1008000000&amp;gt;;&lt;br /&gt;
                        opp-microvolt = &amp;lt;850000&amp;gt;;&lt;br /&gt;
                };&lt;br /&gt;
                opp04 {&lt;br /&gt;
                        opp-hz = /bits/ 64 &amp;lt;1200000000&amp;gt;;&lt;br /&gt;
                        opp-microvolt = &amp;lt;900000&amp;gt;;&lt;br /&gt;
                };&lt;br /&gt;
                opp05 {&lt;br /&gt;
                        opp-hz = /bits/ 64 &amp;lt;1416000000&amp;gt;;&lt;br /&gt;
                        opp-microvolt = &amp;lt;975000&amp;gt;;&lt;br /&gt;
                };&lt;br /&gt;
                opp06 {&lt;br /&gt;
                        opp-hz = /bits/ 64 &amp;lt;1608000000&amp;gt;;&lt;br /&gt;
                        opp-microvolt = &amp;lt;1050000&amp;gt;;&lt;br /&gt;
                };&lt;br /&gt;
                opp07 {&lt;br /&gt;
                        opp-hz = /bits/ 64 &amp;lt;1800000000&amp;gt;;&lt;br /&gt;
                        opp-microvolt = &amp;lt;1150000&amp;gt;;&lt;br /&gt;
                };&lt;br /&gt;
                opp08 {&lt;br /&gt;
                        opp-hz = /bits/ 64 &amp;lt;2016000000&amp;gt;;&lt;br /&gt;
                        opp-microvolt = &amp;lt;1250000&amp;gt;;&lt;br /&gt;
                };&lt;br /&gt;
                opp09 {&lt;br /&gt;
                        opp-hz = /bits/ 64 &amp;lt;2088000000&amp;gt;;&lt;br /&gt;
                        opp-microvolt = &amp;lt;1250000&amp;gt;;&lt;br /&gt;
                };&lt;br /&gt;
        };&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2. Compile the device tree into a binary file. Note that you will need &amp;lt;code&amp;gt;dtc&amp;lt;/code&amp;gt; installed.&lt;br /&gt;
 dtc -I dts -O dtb -@ cpu-overclock.dts -o cpu-overclock.dto&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
4. Copy or move the device tree from the current directory into the boot partition (in this case into the &amp;lt;code&amp;gt;/boot/dtbs/overlay/&amp;lt;/code&amp;gt; folder). If you haven't yet created the &amp;lt;code&amp;gt;/boot/dtbs/overlay/&amp;lt;/code&amp;gt; folder, then create it with &amp;lt;code&amp;gt;sudo mkdir /boot/dtbs/overlay/&amp;lt;/code&amp;gt;&lt;br /&gt;
 sudo cp cpu-overclock.dto /boot/dtbs/overlay/&lt;br /&gt;
&lt;br /&gt;
5. Add the device compiled tree overlay file to the list of files u-boot needs to load. If you are using ManjaroARM (or ArchLinuxARM with a &amp;lt;code&amp;gt;extlinux.conf&amp;lt;/code&amp;gt; file), then add the following line to the file &amp;lt;code&amp;gt;/boot/extlinux/extlinux.conf&amp;lt;/code&amp;gt;:&lt;br /&gt;
 FDTOVERLAYS /dtbs/overlay/cpu-overclock.dtb&lt;br /&gt;
&lt;br /&gt;
If you already have an &amp;lt;code&amp;gt;FDTOVERLAYS&amp;lt;/code&amp;gt; line, then add a space at the end of the current line, then add this overlay file after that.&lt;br /&gt;
See here for details on this process: [[ROCKPro64 Device Tree Overlays on Mainline]]&lt;br /&gt;
&lt;br /&gt;
The resulting &amp;lt;code&amp;gt;/boot/extlinux/extlinux.conf&amp;lt;/code&amp;gt; file might look like below after adding this dtb file:&lt;br /&gt;
 LABEL Manjaro ARM&lt;br /&gt;
 KERNEL /Image&lt;br /&gt;
 FDT /dtbs/rockchip/rk3399-rockpro64.dtb&lt;br /&gt;
 FDTOVERLAYS /dtbs/overlay/pcie-2.0.dtb /dtbs/overlay/cpu-overclock.dtb&lt;br /&gt;
 APPEND initrd=/initramfs-linux.img console=ttyS2,1500000 zfs=zroot rw rootwait audit=0 cpufreq.default_governor=schedutil&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Improving WIFI (on 5GHz networks) ===&lt;br /&gt;
WIP&lt;br /&gt;
&lt;br /&gt;
=== Stabilizing the system (underclocking the RAM) ===&lt;br /&gt;
WIP&lt;br /&gt;
&lt;br /&gt;
[[Category:ROCKPro64]] [[Category:Rockchip RK3399]]&lt;/div&gt;</summary>
		<author><name>I3master</name></author>
	</entry>
	<entry>
		<id>https://wiki.pine64.org/index.php?title=ROCKPro64&amp;diff=19689</id>
		<title>ROCKPro64</title>
		<link rel="alternate" type="text/html" href="https://wiki.pine64.org/index.php?title=ROCKPro64&amp;diff=19689"/>
		<updated>2023-05-28T22:16:07Z</updated>

		<summary type="html">&lt;p&gt;I3master: Added instructions on switching the PCIe port to gen 2 speeds.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:ROCKPro64v21FRONT.jpg|400px|thumb|right|The ROCKPro64]]&lt;br /&gt;
&lt;br /&gt;
The '''ROCKPro64''' is the most powerful Single Board Computer released by PINE64. It is powered by a Rockchip RK3399 Hexa-Core (dual ARM Cortex A72 and quad ARM Cortex A53) 64-Bit Processor with a Mali T-860 Quad-Core GPU. The key features include a PCIe x4 open ended slot, the use of LPDDR4 RAM, and industry standard heatsink mounting holes.&lt;br /&gt;
&lt;br /&gt;
The ROCKPro64 is equipped with 2GB or 4GB LPDDR4 system memory, and 128Mb SPI boot Flash. There is also an optional eMMC module (up to 128GB) and microSD slot for booting. The board is equipped with 1x USB 3.0 type C Host with DP 1.2, 1x USB 3.0 type A Host, 2x USB 2.0 Host, Gigabit Ethernet, PI-2 GPIO Bus, MiPi DSI interface, eDP interface, touch Panel interface, stereo MiPi CSI interface, as well as many other device interfaces such as UART, SPI, I2C, for makers to integrate with sensors and other peripherals. Many different Operating Systems (OS) are freely available from the open source community, such as Android, Linux (Ubuntu, Debian, Arch), and BSD.&lt;br /&gt;
&lt;br /&gt;
== Getting Started ==&lt;br /&gt;
&lt;br /&gt;
The article [[ROCKPro64 Getting Started]] gives important information to get the board up and running.&lt;br /&gt;
&lt;br /&gt;
== Software releases ==&lt;br /&gt;
&lt;br /&gt;
In the [[ROCKPro64 Software Releases]] page, you will find a complete list of currently supported Operating System images that work with the ROCKPro64, as well as other related software. The Software Release page has links to download the images as well as high level instructions to load each image.&lt;br /&gt;
&lt;br /&gt;
Please see the [[Getting started]] page for detailed discussion of what you need (prerequisites) as well as instructions if the high level instructions are insufficient.&lt;br /&gt;
&lt;br /&gt;
== Board Layout ==&lt;br /&gt;
[[Image:ROCKPro64v21REAR.jpg|thumb|right|A hi-res picture of v2.1 rear.]]&lt;br /&gt;
[[Image:FLIR 20220619 125451 686.jpg|thumb|right|A thermal image of v2.1 front (upside-down).]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:ROCKPro64_annotated.jpg|500px|An annotated ROCKPro64]]&lt;br /&gt;
&lt;br /&gt;
=== Main Chips ===&lt;br /&gt;
* RK3399 system-on-chip (1)&lt;br /&gt;
* LPDDR4 SDRAM 1 (18)&lt;br /&gt;
* LPDDR4 SDRAM 2 (3)&lt;br /&gt;
* SPI NOR flash memory (17)&lt;br /&gt;
* RK808 power management (near 19)&lt;br /&gt;
* RTL8211 ethernet transceiver (near 25)&lt;br /&gt;
* ES8316 Sound Codec (on rear of board)&lt;br /&gt;
* The heatsink mounting holes around the RK3399 are 59 mm apart&lt;br /&gt;
&lt;br /&gt;
=== Switches ===&lt;br /&gt;
&lt;br /&gt;
The Power button (11, SW3): is the same as on your mobile phone - press and release after about 1 second to power on. Press and hold for about 3 seconds to power off.&lt;br /&gt;
&lt;br /&gt;
The Reset button (10, SW901): performs a reset.&lt;br /&gt;
&lt;br /&gt;
The Recover button (28, SW900): used to enter maskrom mode.&lt;br /&gt;
&lt;br /&gt;
=== Connectors, Sockets and Headers ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;line-height: 1.4;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;font-size: .9em;&amp;quot;&lt;br /&gt;
! Diagram !! Schematic&amp;lt;br&amp;gt;designator !! Silkscreen&amp;lt;br&amp;gt;label !! Number&amp;lt;br&amp;gt;of pins !! Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 2  || U39   || PI-2-bus || style=&amp;quot;text-align: center;&amp;quot; | 40 || Pi-2 bus &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 4  || J8    || +FAN- || style=&amp;quot;text-align: center;&amp;quot; | 2 || PWM controlled fan header&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 5  || J10   || SPDIF || style=&amp;quot;text-align: center;&amp;quot; | 3 || SPDIF header&lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 6  || U6    || +RTC- || style=&amp;quot;text-align: center;&amp;quot; | 2 || RTC battery backup header&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7  || U31   || Wifi-BT || style=&amp;quot;text-align: center;&amp;quot; | 16 || SDIO WIFI/BT module-MIMO 2&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 8  || USB3  ||  || style=&amp;quot;text-align: center;&amp;quot; | 9 || USB-3 and USB Type C&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 9  || USB1  ||  || style=&amp;quot;text-align: center;&amp;quot; | 2×4 || Dual USB-2&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 12 || IR1   || IR || style=&amp;quot;text-align: center;&amp;quot; | 3 || infrared receiver socket &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 13 || J16   || Headphone+mic || style=&amp;quot;text-align: center;&amp;quot; | 4 || Headphone + mic 3.5mm jack&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -  || CON16 || GND PWR RST GND || style=&amp;quot;text-align: center;&amp;quot; | 4 || Power &amp;amp; reset, unpopulated&amp;lt;br&amp;gt;header near Headphone jack&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 14 || U29   || EMMC || style=&amp;quot;text-align: center;&amp;quot; | 34 || eMMC connector&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 14* || J13  ||  || style=&amp;quot;text-align: center;&amp;quot; | 13 || TF-card, a.k.a. microSD&amp;lt;br&amp;gt;(* under 14 on the bottom side)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 15 || U30   ||  || style=&amp;quot;text-align: center;&amp;quot; | 14 || SDIO WIFI/BT module-MIMO 1&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 16 || SW4   ||  || style=&amp;quot;text-align: center;&amp;quot; | 2 || Jumper to [[#Disable eMMC]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 19 || J15   || PCI || style=&amp;quot;text-align: center;&amp;quot; | 64 || PCI-express X4 socket&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 20 || J21   || DSI || style=&amp;quot;text-align: center;&amp;quot; | 30 || DSI&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 21 || J22   || EDP || style=&amp;quot;text-align: center;&amp;quot; | 30 || LCD EDP&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 22 || CON1  || TP || style=&amp;quot;text-align: center;&amp;quot; | 6 || touch panel connector&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 23 || CON15 ||  || style=&amp;quot;text-align: center;&amp;quot; | 4 || DC out for SATA disk cable&amp;lt;br&amp;gt;(direct connect from DC-IN)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 24 || J11   || DC-IN || style=&amp;quot;text-align: center;&amp;quot; | 2 || Power input, positive tip;&amp;lt;br&amp;gt;12V/3A (minimum) recommended&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 25 || U32   ||  || style=&amp;quot;text-align: center;&amp;quot; | 8 || 8P8C (often referred to as 'RJ45')&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 26 || J14   ||  || style=&amp;quot;text-align: center;&amp;quot; | 19 || HDMI&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 27 || J17   || MIPI CAM || style=&amp;quot;text-align: center;&amp;quot; | 32 || MIPI-1&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 29 || J19   || MIPI CAM || style=&amp;quot;text-align: center;&amp;quot; | 32 || MIPI-2&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 30 || J18   || CIF || style=&amp;quot;text-align: center;&amp;quot; | 26 || CIF&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== LEDs ===&lt;br /&gt;
&lt;br /&gt;
A green LED next to the 12V input barrel connector will light as long as there is 12V applied to the connector. (Even if the RockPro64 is powered off.)&lt;br /&gt;
&lt;br /&gt;
A white LED behind the reset button will light as long as the RockPro64 is running (it comes on a few seconds after power on, when control is passed to the operating system.)&lt;br /&gt;
&lt;br /&gt;
A red LED behind the reset button is DIY - it is lit for example if the board is in OTG mode with an Ayufan image, or if an Android image is in standby mode.&lt;br /&gt;
&lt;br /&gt;
Yellow and green LEDs on the LAN socket behave in a standard way.&lt;br /&gt;
&lt;br /&gt;
=== Jumpers ===&lt;br /&gt;
They are used for boot device selection, as described in the following section.&lt;br /&gt;
&lt;br /&gt;
==== Disable eMMC ====&lt;br /&gt;
&lt;br /&gt;
There is an unlabelled (on the PCB silk-screen) 2-pin jumper (16) between the eMMC socket (14) and the SPI chip (17). It is designated as SW4 on the [[#Board Information, Schematics and Certifications | schematic diagram]]. The default condition is OPEN (no jumper). It is useful for controlling the boot as follows:&lt;br /&gt;
&lt;br /&gt;
Default boot device (with no SPI software) is eMMC, then SDcard. If both the eMMC and the SDcard contain bootable images then the eMMC can be disabled by installing the jumper. This completely removes the eMMC from the resulting OS. If you wish the eMMC to be visible in the booted OS the jumper should be removed 2 seconds after applying power (and before the white LED comes on).&lt;br /&gt;
&lt;br /&gt;
The possible combinations are summarised in the table below.&lt;br /&gt;
&lt;br /&gt;
* 1 = present&lt;br /&gt;
* 0 = not present&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
! µSD !! eMMC !! SW4 !! boot from&lt;br /&gt;
|-&lt;br /&gt;
| 0 || 0 || 0 || unsupported&lt;br /&gt;
|-&lt;br /&gt;
| 0 || 0 || 1 || unsupported&lt;br /&gt;
|-&lt;br /&gt;
| 0 || 1 || 0 || eMMC&lt;br /&gt;
|-&lt;br /&gt;
| 0 || 1 || 1 || unsupported&lt;br /&gt;
|-&lt;br /&gt;
| 1 || 0 || 0 || SDCard&lt;br /&gt;
|-&lt;br /&gt;
| 1 || 0 || 1 || SDCard&lt;br /&gt;
|-&lt;br /&gt;
| 1 || 1 || 0 || eMMC&lt;br /&gt;
|-&lt;br /&gt;
| 1 || 1 || 1 || SDCard&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Disable SPI (while booting) ====&lt;br /&gt;
There is a second possibility to jumper your ROCKPro64: If you mess-up your SPI and are unable to boot, jumpering pins 23 (CLK) and 25 pin (GND) on the PI-2-bus header will disable the SPI as a boot device. (This was taken from the IRC logs, 09 August 2018 @ 17:23) You have to remove the jumper 2 seconds after having started your RP64 (before the white LED turns ON) otherwise the SPI will be missing and you won't be able to flash it.&lt;br /&gt;
Ayufan images contain (at the moment) only one script for the SPI and the RP64, it's &amp;quot;rockpro64_reset_spi_flash&amp;quot;. Other SPI scripts are dedicated to the R64 (as it is written on the name) and it will mess-up your RP64 SPI if you use them.&lt;br /&gt;
&lt;br /&gt;
== Hardware Compatibility ==&lt;br /&gt;
&lt;br /&gt;
The hardware compatibility list can be found under [[ROCKPro64 Hardware compatibility]].&lt;br /&gt;
&lt;br /&gt;
== Board Features ==&lt;br /&gt;
&lt;br /&gt;
This section outlines the most important characteristics of the board and its components.&lt;br /&gt;
&lt;br /&gt;
=== SoC and Memory Specification ===&lt;br /&gt;
* Based on Rockchip RK3399&lt;br /&gt;
[[File:Rockchip_RK3399.png|right]]&lt;br /&gt;
&lt;br /&gt;
==== CPU Architecture ====&lt;br /&gt;
&lt;br /&gt;
* [https://developer.arm.com/products/processors/cortex-a/cortex-a72 Dual-core Cortex-A72 up to 2.0GHz CPU]&lt;br /&gt;
* [https://developer.arm.com/products/processors/cortex-a/cortex-a53 Quad-core Cortex-A53 up to 1.5GHz CPU]&lt;br /&gt;
* big.LITTLE architecture: Dual Cortex-A72 + Quad Cortex-A53, 64-bit CPU&lt;br /&gt;
* Cortex-A72:&lt;br /&gt;
** 1-4x Symmetrical Multiprocessing (SMP) within a single processor cluster, and multiple coherent SMP processor clusters through AMBA 5 CHI or AMBA 4 ACE technology&lt;br /&gt;
** AArch64 for 64-bit support and new architectural features&lt;br /&gt;
** L1 cache 48KB Icache and 32KB Dcache for each A72 &lt;br /&gt;
** L2 cache 1024KB for big cluster &lt;br /&gt;
** DSP &amp;amp; SIMD extensions&lt;br /&gt;
** VFPv4 floating point&lt;br /&gt;
** Hardware virtualization support&lt;br /&gt;
* Cortex-A53:&lt;br /&gt;
** L1 cache 32KB Icache and 32KB Dcache for each A53&lt;br /&gt;
** L2 cache 512KB for little cluster &lt;br /&gt;
* Full implementation of the ARM architecture v8-A instruction set&lt;br /&gt;
* ARM Neon Advanced SIMD (single instruction, multiple data) support for accelerated media and signal processing computation&lt;br /&gt;
* ARMv8 Cryptography Extensions&lt;br /&gt;
* In-order pipeline with symmetric dual-issue of most instructions&lt;br /&gt;
* Include VFP v3 hardware to support single and double-precision operations&lt;br /&gt;
* TrustZone technology support&lt;br /&gt;
* Full CoreSight debug solution&lt;br /&gt;
* One isolated voltage domain to support DVFS&lt;br /&gt;
&lt;br /&gt;
==== GPU Architecture ====&lt;br /&gt;
&lt;br /&gt;
* [https://developer.arm.com/products/graphics-and-multimedia/mali-gpus/mali-t860-and-mali-t880-gpus ARM Mali-T860MP4 Quad-core GPU]&lt;br /&gt;
* The highest performance GPUs built on Arm Mali’s famous Midgard architecture, the Mali-T860 GPU is designed for complex graphics use cases and provides stunning visuals for UHD content.&lt;br /&gt;
* Frequency: 650MHz &lt;br /&gt;
* Throughput: 1300Mtri/s, 10.4Gpix/s &lt;br /&gt;
* OpenGL® ES 1.1, 1.2, 2.0, 3.1, 3.2, Vulkan 1.0*, OpenCL™ 1.1, 1.2, DirectX® 11 FL11_1, RenderScript™.&lt;br /&gt;
&lt;br /&gt;
==== System Memory ====&lt;br /&gt;
* LPDDR4 RAM Memory Variants: Dual Channels 2GB and 4GB.&lt;br /&gt;
* Storage Memory: 128Mb built-in SPI Flash memory (as at August 2018 only support for USB boot).&lt;br /&gt;
&lt;br /&gt;
=== Display ===&lt;br /&gt;
&lt;br /&gt;
* Dual VOP: one supports resolutions up to 4096x2160 and [https://www.arm.com/why-arm/technologies/graphics-technologies/arm-frame-buffer-compression AFBC]; the other supports resolutions up to 2560x1600&lt;br /&gt;
* Dual channel MIPI-DSI (4 lanes per channel)&lt;br /&gt;
* eDP 1.3 (4 lanes with 10.8Gbps) to support displays, with PSR&lt;br /&gt;
* Digital Video port up to 4Kp60&lt;br /&gt;
* DisplayPort 1.2 (4 lanes, up to 4K 60Hz)&lt;br /&gt;
* Supports Rec.2020 and conversion to Rec.709 &lt;br /&gt;
&lt;br /&gt;
=== Video ===&lt;br /&gt;
&lt;br /&gt;
* Digital Video output up to 4K@60Hz&lt;br /&gt;
* 4K HDR @ 30fps&lt;br /&gt;
* H.264/AVC Base/Main/High/High10 profile @ level 5.1; up to 4Kx2K @ 60fps&lt;br /&gt;
* H.265/HEVC Main/Main10 profile @ level 5.1 High-tier; up to 4Kx2K @ 60fps&lt;br /&gt;
* VP9, up to 4Kx2K @ 60fps&lt;br /&gt;
* MPEG-1, ISO/IEC 11172-2, up to 1080P @ 60fps&lt;br /&gt;
* MPEG-2, ISO/IEC 13818-2, SP@ML, MP@HL, up to 1080P @ 60fps&lt;br /&gt;
* MPEG-4, ISO/IEC 14496-2, SP@L0-3, ASP@L0-5, up to 1080P @ 60fps&lt;br /&gt;
* VC-1, SP@ML, MP@HL, AP@L0-3, up to 1080P @ 60fps&lt;br /&gt;
* MVC is supported based on H.264 or H.265, up to 1080P @ 60fps&lt;br /&gt;
&lt;br /&gt;
=== Audio ===&lt;br /&gt;
&lt;br /&gt;
* 3.5mm Phone Jack&lt;br /&gt;
* 3-pin S/PDIF header &lt;br /&gt;
* Audio via Digital Video port&lt;br /&gt;
&lt;br /&gt;
=== Camera ===&lt;br /&gt;
&lt;br /&gt;
* Dual MIPI CSI，dual ISP, maximum input resolution of 13M pixels &lt;br /&gt;
&lt;br /&gt;
=== Network ===&lt;br /&gt;
&lt;br /&gt;
* 10/100/1000Mbps Ethernet - Capable of pushing 941 MBit/s in iperf3&lt;br /&gt;
* Wi-Fi 802.11 ac/a/b/g/n with Bluetooth 4.01 (old version with 2x2) / Bluetooth 5 (new version with 1x1) (optional)&lt;br /&gt;
&lt;br /&gt;
=== Storage ===&lt;br /&gt;
&lt;br /&gt;
* microSD - bootable, support SDHC and SDXC, storage up to 256GB&lt;br /&gt;
* eMMC - bootable (optional eMMC Module)&lt;br /&gt;
* 1 USB3.0 Host port&lt;br /&gt;
* 1 USB type C OTG port with DP output &lt;br /&gt;
* 2 USB2.0 Dedicated Host ports&lt;br /&gt;
&lt;br /&gt;
=== Expansion Ports ===&lt;br /&gt;
&lt;br /&gt;
* 2x20 pins &amp;quot;Pi2&amp;quot; GPIO Header&lt;br /&gt;
* PCIe 2.1 (4 full-duplex lanes with 20Gbps) x4 open ended port&lt;br /&gt;
&lt;br /&gt;
==== GPIO Pins ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable plainrowheaders&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;width:20em;&amp;quot; | Assigned To&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Pin Nr.&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Pin Nr.&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;width:20em;&amp;quot; | Assigned To&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| 3.3 V&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 1&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 2&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| 5 V&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| GPIO1_C4 (I2C8_SDA) &amp;lt;sup style=&amp;quot;font-style:italic;color:green&amp;quot;&amp;gt;a&amp;lt;/sup&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 3&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 4&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| 5 V&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| GPIO1_C5 (I2C8_SCL) &amp;lt;sup style=&amp;quot;font-style:italic;color:green&amp;quot;&amp;gt;a&amp;lt;/sup&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 5&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 6&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GND&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| GPIO4_D0 (CPU_GPCLK)&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 7&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 8&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GPIO4_C4 (UART2_TX)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| GND&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 9&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 10&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GPIO4_C3 (UART2_RX)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| GPIO1_C6&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 11&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 12&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GPIO3_D0 (I2S0_CLK)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| GPIO1_C2&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 13&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 14&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GND&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| GPIO1_A1&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 15&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 16&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GPIO1_A4&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| 3.3 V&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 17&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 18&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GPIO4_C5 [SPDIF]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| [UART4_TX] GPIO1_B0 (SPI1_TXD)&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 19&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 20&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GND&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| [UART4_RX] GPIO1_A7 (SPI1_RXD)&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 21&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 22&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GPIO4_D1&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| GPIO1_B1 (SPI1_CLK)&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 23&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 24&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GPIO1_B2 (SPI1_CSN0)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| GND&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 25&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 26&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GPIO1_B5&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| GPIO1_B3 (I2C4_SDA)&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 27&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 28&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GPIO1_B4 (I2C4_SCL)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| GPIO4_D3&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 29&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 30&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GND&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| GPIO4_D4&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 31&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 32&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GPIO3_D4 (I2S0_SDI1SDO3)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| GPIO3_D5 (I2S0_SDI2SDO2)&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 33&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 34&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GND&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| GPIO3_D2 (I2S0_LRCKTX)&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 35&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 36&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GPIO3_D6 (I2S0_SDI3SDO1)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| GPIO3_D1 (I2S0_LRCKRX)&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 37&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 38&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GPIO3_D3 (I2S0_SDI0)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| GND&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 39&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 40&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GPIO3_D7 (I2S0_SDO0)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== Notes =====&lt;br /&gt;
&lt;br /&gt;
* '''a:''' pulled high to 3.3V through 2.2kOhm resistor&lt;br /&gt;
&lt;br /&gt;
===== Linux /dev/gpiochip Assignments =====&lt;br /&gt;
&lt;br /&gt;
{| class=wikitable style=&amp;quot;max-width: 1000px; text-align: center;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | Pin Nr.&lt;br /&gt;
| 3 || 5 || 7 || 8 || 10 || 11 || 12 || 13 || 15 || 16 || 18 || 19 || 21 || 22 || 23 || 24 || 26 || 27 || 28 || 29 || 31 || 32 || 33 || 35 || 36 || 37 || 38 || 40&lt;br /&gt;
|- &lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | Chip&lt;br /&gt;
| 1 || 1 || 4 || 4 || 4 || 1 || 3 || 1 || 1 || 1 || 4 || 1 || 1 || 4 || 1 || 1 || 1 || 1 || 1 || 4 || 4 || 3 || 3 || 3 || 3 || 3 || 3 || 3&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | Line&lt;br /&gt;
| 20 || 21 || 24 || 20 || 19 || 22 || 24 || 18 || 1 || 4 || 21 || 8 || 7 || 25 || 9 || 10 || 13 || 11 || 12 || 27 || 28 || 28 || 29 || 26 || 30 || 25 || 27 || 31&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
On Linux, using the new &amp;lt;code&amp;gt;/dev/gpiochip&amp;lt;/code&amp;gt; API, the &amp;lt;code&amp;gt;''n''&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;GPIO''n''_''XX''&amp;lt;/code&amp;gt; appears to correlate to the number of the &amp;lt;code&amp;gt;/dev/gpiochip''n''&amp;lt;/code&amp;gt;, and the &amp;lt;code&amp;gt;''XX''&amp;lt;/code&amp;gt; to the definition &amp;lt;code&amp;gt;RK_P''XX''&amp;lt;/code&amp;gt; of lines in &amp;lt;code&amp;gt;include/dt-bindings/pinctrl/rockchip.h&amp;lt;/code&amp;gt; of the Linux kernel source. Having these named in the dts would be nice.&lt;br /&gt;
&lt;br /&gt;
You can use [https://git.kernel.org/pub/scm/libs/libgpiod/libgpiod.git/ libgpiod] to drive them, and test them with the included tools (&amp;lt;code&amp;gt;gpioinfo&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;gpioset&amp;lt;/code&amp;gt;, ...)&lt;br /&gt;
&lt;br /&gt;
For example, &amp;lt;code&amp;gt;gpioset 4 25=1&amp;lt;/code&amp;gt; (run as root) would turn pin 22 on. Do beware that poking the wrong GPIO pin can lock up your system.&lt;br /&gt;
&lt;br /&gt;
The conversion table at right is also available as a [https://gist.github.com/CounterPillow/fe066655bf2d929148fe6eb3f15b1dd5 C header file].&lt;br /&gt;
&lt;br /&gt;
=== Working Features ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! Feature/Option&lt;br /&gt;
! Android&lt;br /&gt;
! Android Version&lt;br /&gt;
! Linux&lt;br /&gt;
! Linux Version&lt;br /&gt;
! Test/Verify Steps&lt;br /&gt;
! Notes&lt;br /&gt;
! Product Link&lt;br /&gt;
|-&lt;br /&gt;
| PINE64 LCD Touchscreen (Screen/Touch)&lt;br /&gt;
| Yes/Yes&lt;br /&gt;
| &lt;br /&gt;
| No/No&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| Maybe [https://github.com/avafinger/pine64-touchscreen this] will help get this working?&lt;br /&gt;
| [https://pine64.com/?product=7-lcd-touch-screen-panel 7″ LCD Touch Screen Panel]&lt;br /&gt;
|-&lt;br /&gt;
| Wireless&lt;br /&gt;
&amp;lt;small&amp;gt;ROCKPro64 2×2 MIMO Dual Band WiFi 802.11AC / Bluetooth 4.2 Module (old)&lt;br /&gt;
ROCKPro64 1x1 Dual Band WiFi 802.11AC / Bluetooth 5.0 Module (new)&amp;lt;/small&amp;gt;&lt;br /&gt;
| Yes/Yes&lt;br /&gt;
| &lt;br /&gt;
| No/Yes*&lt;br /&gt;
| &lt;br /&gt;
| For the &amp;quot;new&amp;quot; ROCKPro64 WIFI module: Verified with Manjaro ARM (kernel 6.2.5). A config file (&amp;quot;firmware file&amp;quot;) is needed at &amp;lt;code&amp;gt;/lib/firmware/brcm/brcmfmac43455-sdio.txt&amp;lt;/code&amp;gt;. See here for the file contents and details: https://askubuntu.com/a/1211986. Some distros provide this file, but it is listed under the generic name &amp;quot;brcmfmac43455-sdio.AW-CM256SM.txt&amp;quot;. If this file exists, you can create a symbolic link to it named &amp;quot;brcmfmac43455-sdio.txt&amp;quot; instead of downloading the firmware file listed above. This can be done with the following command &amp;lt;code&amp;gt;sudo ln -s /usr/lib/firmware/brcm/brcmfmac43455-sdio.AW-CM256SM.txt /usr/lib/firmware/brcm/brcmfmac43455-sdio.txt&amp;lt;/code&amp;gt;. Then, reboot and WIFI should start working. Details for this method are here: https://forum.pine64.org/showthread.php?tid=16635&amp;amp;pid=117061#pid117061&lt;br /&gt;
| In 0.7.9 Ayufan linux releases this is deliberately disabled for stability reasons. After testing for a few hours, on Manjaro ARM (kernel 6.2.5), there haven't been stability issues found (WiFi stayed connected). On a 5GHz network (802.11AC), it was tested to be possible to get about 120Mbps using the &amp;quot;new&amp;quot; ROCKPro64 WIFI module.&lt;br /&gt;
| [https://store.pine64.org/product/rockpro64-1x1-dual-band-wifi-802-11acbluetooth-5-0-module ROCKPro64 1x1 Dual Band WiFi 802.11AC / Bluetooth 5.0 Module]&lt;br /&gt;
|-&lt;br /&gt;
| USB OTG&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| use this script: [https://github.com/ayufan-rock64/linux-package/blob/master/root-rockpro64/usr/local/sbin/rockpro64_enable_otg.sh rockpro64_enable_otg.sh], then configure ip on usb0: ifconfig usb0 169.169.222.222 and run iperf, you should likely see about 200-300MB/s&lt;br /&gt;
| [[ROCKPro64#OTG_mode]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| USB Mass Storage USB2/USB3&lt;br /&gt;
| Yes/yes&lt;br /&gt;
| &lt;br /&gt;
| Yes/Yes&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Dedicated Fan Power (pwm1)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| Yes&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| You might want to use [https://github.com/tuxd3v/ats ATS].&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| GPIO pins (raw or via RPI python scripts)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| Check out [https://forum.frank-mankel.org/topic/292/rockpro64-rp64-gpio/2 what Frank Mankel has done].&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| MIPI CSI Camera 1 and 2&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| eDP&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| HDMI Audio&lt;br /&gt;
| Yes&lt;br /&gt;
| 7.1.2&lt;br /&gt;
| Yes&lt;br /&gt;
| 4.4.132-1083 - 4.4.138-1100&lt;br /&gt;
| &lt;br /&gt;
| Stopped working in 4.4.154.1105. Ayufan is looking into it. This is working in Manjaro ARM (kernel 6.2.5). Select the &amp;lt;code&amp;gt;Analog Output (Built-in Audio Stereo)&amp;lt;/code&amp;gt; option in the audio output device selection window (either use &amp;lt;code&amp;gt;pavucontrol&amp;lt;/code&amp;gt; or the volume button in the KDE desktop). Despite the slightly misleading name, audio does go through the HDMI port. See here for details: https://forum.manjaro.org/t/no-hdmi-audio-on-rockpro64/25595/2.&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 3.5mm Audio/Mic&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| USB-C Host&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Display via USB-C&lt;br /&gt;
| Yes&lt;br /&gt;
| 7.x and 8.x&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| eDP via USB-C per tillim. No sound on Android 7.x. Sound does work on Android 8.x&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| ROCKPro64 PLAYBOX ENCLOSURE&lt;br /&gt;
| N/A&lt;br /&gt;
| &lt;br /&gt;
| N/A&lt;br /&gt;
| &lt;br /&gt;
| N/A&lt;br /&gt;
| Ventilation does not exist, thus requires manual changes to add venting. Case should be modified to account power adapter not being centered in cut holes. Opening the case once close without modifying it first is near impossible without special tools. Graphene heatsink is included and does well for Linux but not Android.&lt;br /&gt;
| https://pine64.com/?product=rockpro64-playbox-enclosure&lt;br /&gt;
|-&lt;br /&gt;
| ROCKPro64 30mm Tall Profile Heatsink&lt;br /&gt;
| N/A&lt;br /&gt;
| &lt;br /&gt;
| N/A&lt;br /&gt;
| &lt;br /&gt;
| N/A&lt;br /&gt;
| &lt;br /&gt;
| https://store.pine64.org/?product=rockpro64-heatsink&lt;br /&gt;
|-&lt;br /&gt;
| ROCKPro64 20mm Mid Profile Heatsink&lt;br /&gt;
| N/A&lt;br /&gt;
| &lt;br /&gt;
| N/A&lt;br /&gt;
| &lt;br /&gt;
| N/A&lt;br /&gt;
| &lt;br /&gt;
| https://pine64.com/?product=rockpro64-20mm-mid-profile-heatsink&lt;br /&gt;
|-&lt;br /&gt;
| Fan For ROCKPro64 20mm Mid Profile Heatsink&lt;br /&gt;
| N/A&lt;br /&gt;
| &lt;br /&gt;
| N/A&lt;br /&gt;
| &lt;br /&gt;
| N/A&lt;br /&gt;
| You might want to use [https://github.com/tuxd3v/fanctl fanctl] to control the fan while keeping your CPU cool&lt;br /&gt;
| https://pine64.com/?product=fan-for-rockpro64-20mm-mid-profile-heatsink&lt;br /&gt;
|-&lt;br /&gt;
| HDMI output 4K@60Hz&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| PCIe 2.1&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Real Time Clock (RTC) battery backup&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| https://store.pine64.org/?product=rtc-backup-battery-cr-battery&lt;br /&gt;
|-&lt;br /&gt;
| Boot from USB/PXE&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
RockChip themselves have tables of supported features at 4.4 and mainline kernel versions [http://opensource.rock-chips.com/wiki_Status_Matrix in their wiki here].&lt;br /&gt;
&lt;br /&gt;
== Board Information, Schematics and Certifications ==&lt;br /&gt;
* Board Dimensions: 133mm x 80mm x 19mm&lt;br /&gt;
* Input Power: +12V @3A/5A with 5.5mm/2.1mm Type M Barrel type DC connector&lt;br /&gt;
* [https://files.pine64.org/doc/rockpro64/rockpro64_v21-SCH.pdf ROCKPro64 Schematic v2.1 (Second Batch Production Release)]&lt;br /&gt;
** [https://files.pine64.org/doc/rockpro64/RockPro64_v21_Boardoutline-top.dxf ROCKPro64 v2.1 Board Top Outline in AutoCad DXF format]&lt;br /&gt;
** [https://files.pine64.org/doc/rockpro64/RockPro64_v21_Boardoutline-bottom.dxf ROCKPro64 v2.1 Board Bottom Outline in AutoCad DXF format]&lt;br /&gt;
** [https://files.pine64.org/doc/rockpro64/RockPro64_v21_Boardoutline-top.pdf ROCKPro64 v2.1 Board Top Outline in PDF format]&lt;br /&gt;
** [https://files.pine64.org/doc/rockpro64/RockPro64_v21_Boardoutline-bottom.pdf ROCKPro64 v2.1 Board Bottom Outline in PDF format]&lt;br /&gt;
* [https://files.pine64.org/doc/rockpro64/rockpro64_v20-SCH.pdf ROCKPro64 Schematic v2.0 (Pilot Production Release)]&lt;br /&gt;
** [https://files.pine64.org/doc/rockpro64/ROCKPRo64%20Engineering%20Change%20Notice%2020180628RP01.pdf Engineering Change Notice for v2.0 to turn on 3.3V power on PCIe]&lt;br /&gt;
* [https://files.pine64.org/doc/rockpro64/rockpro64_wifi_ap6359SA.pdf ROCKPro64 AP6359SA Wifi/BT Schematic]&lt;br /&gt;
* [https://files.pine64.org/doc/rockpro64/Rockpro64%20Pi-2%20Connector%20ver0.2.png ROCKPro64 Pi-2 Pin assignment and definition]&lt;br /&gt;
* [https://files.pine64.org/doc/rockpro64/RockPro-3D-model.zip ROCKPro64 3D model]&lt;br /&gt;
&lt;br /&gt;
Certifications:&lt;br /&gt;
&lt;br /&gt;
* Disclaimer: Please note that PINE64 SBC is not a &amp;quot;final&amp;quot; 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.&lt;br /&gt;
* [https://files.pine64.org/doc/cert/ROCKPro64%20FCC%20SDOC%20Certificate.pdf ROCKPro64 FCC Certificate]&lt;br /&gt;
* [https://files.pine64.org/doc/cert/ROCKPro64%20CE-EMC%20Certificate.pdf ROCKPro64 CE Certificate]&lt;br /&gt;
* [https://files.pine64.org/doc/cert/ROCKPro64%20ROHS%20%20SEC180529404001E%20Report.pdf ROCKPro64 RoHS Report]&lt;br /&gt;
&lt;br /&gt;
== Datasheets for Components and Peripherals ==&lt;br /&gt;
&lt;br /&gt;
Rockchip RK3399 SoC information:&lt;br /&gt;
&lt;br /&gt;
* [https://www.rock-chips.com/a/en/products/RK33_Series/2016/0419/758.html Rockchip RK3399 SoC Brief]&lt;br /&gt;
* [http://opensource.rock-chips.com/images/d/d7/Rockchip_RK3399_Datasheet_V2.1-20200323.pdf Rockchip RK3399 Datasheet V2.1]&lt;br /&gt;
* [http://opensource.rock-chips.com/images/e/ee/Rockchip_RK3399TRM_V1.4_Part1-20170408.pdf Rockchip RK3399 Technical Reference Manual part 1]&lt;br /&gt;
* [https://files.pine64.org/doc/datasheet/rockpro64/RK808%20datasheet%20V0.8.pdf Rockchip RK808 Datasheet V0.8]&lt;br /&gt;
&lt;br /&gt;
LPDDR4 (200 Balls) SDRAM:&lt;br /&gt;
&lt;br /&gt;
* [https://files.pine64.org/doc/datasheet/rockpro64/SM512M32Z01MD2BNP(200BALL).pdf Micron LPDDR4 Mobile LPDDR4 Datasheet]&lt;br /&gt;
&lt;br /&gt;
eMMC information:&lt;br /&gt;
&lt;br /&gt;
* [https://files.pine64.org/doc/rock64/PINE64_eMMC_Module_20170719.pdf PINE64 eMMC module schematic]&lt;br /&gt;
* [https://files.pine64.org/doc/rock64/usb%20emmc%20module%20adapter%20v2.pdf PINE64 USB adapter for eMMC module V2 schematic]&lt;br /&gt;
* [https://files.pine64.org/doc/rock64/USB%20adapter%20for%20eMMC%20module%20PCB.tar PINE64 USB adapter for eMMC module PCB in JPEG]&lt;br /&gt;
* [https://files.pine64.org/doc/datasheet/pine64/E-00517%20FORESEE_eMMC_NCEMAM8B-16G%20SPEC.pdf 16GB Foresee eMMC Datasheet]&lt;br /&gt;
* [https://files.pine64.org/doc/datasheet/pine64/SDINADF4-16-128GB-H%20data%20sheet%20v1.13.pdf 32GB/64GB/128GB SanDisk eMMC Datasheet]&lt;br /&gt;
&lt;br /&gt;
SPI NOR Flash information:&lt;br /&gt;
&lt;br /&gt;
* [https://files.pine64.org/doc/datasheet/pine64/w25q128jv%20spi%20revc%2011162016.pdf WinBond 128Mb SPI Flash Datasheet]&lt;br /&gt;
* [https://files.pine64.org/doc/datasheet/pine64/GD25Q128C-Rev2.5.pdf GigaDevice 128Mb SPI Flash Datasheet]&lt;br /&gt;
&lt;br /&gt;
Heatsink related info:&lt;br /&gt;
&lt;br /&gt;
* [https://files.pine64.org/doc/datasheet/rockpro64/Rockpro%20Passive%20Heatsink%20Spec.jpg ROCKPro64 Passive Heatsink Dimension Drawing]&lt;br /&gt;
* [https://files.pine64.org/doc/datasheet/rockpro64/LMS-TC150%20Silicon%20Thermal%20Pad.pdf Heatsink Thermal Pad Specification]&lt;br /&gt;
&lt;br /&gt;
Wireless related info:&lt;br /&gt;
&lt;br /&gt;
* AMPAK AP6256 11AC WiFi + Bluetooth5.0 Datasheet [https://files.pine64.org/doc/datasheet/rockpro64/AP6256%20datasheet_V1.3_12202017.pdf (v. 1.3)] [http://files.pine64.org/doc/datasheet/PinebookPro/AP6256%20datasheet_V1.7_12282018.pdf (v. 1.7)]&lt;br /&gt;
&lt;br /&gt;
Ethernet related info:&lt;br /&gt;
&lt;br /&gt;
* [https://files.pine64.org/doc/datasheet/rock64/RTL8211F-CG-Realtek.pdf Realtek RTL8211F 10/100/1000M Ethernet Transceiver Datasheet]&lt;br /&gt;
&lt;br /&gt;
Peripheral related info:&lt;br /&gt;
&lt;br /&gt;
* [https://files.pine64.org/doc/datasheet/rockpro64/ASM1061_Data%20Sheet_R1_8.pdf asmedia ASM1061 PCIe SATA 2.0 Datasheet]&lt;br /&gt;
&lt;br /&gt;
Remote control button mapping:&lt;br /&gt;
&lt;br /&gt;
* [https://files.pine64.org/doc/Pine%20A64%20Schematic/remote-wit-logo.jpg Official Remote Control for the PINE64 Button Mapping]&lt;br /&gt;
&lt;br /&gt;
Audio Codec (ES8316) (under board):&lt;br /&gt;
&lt;br /&gt;
* [http://everest-semi.com/pdf/ES8316%20PB.pdf Everest ES8316 Audio Codec]&lt;br /&gt;
&lt;br /&gt;
PWM controlled fan, SPDIF, and RTC Battery Backup headers:&lt;br /&gt;
&lt;br /&gt;
* [https://www.jst-mfg.com/product/pdf/eng/ePH.pdf JST-PH connector]&lt;br /&gt;
&lt;br /&gt;
== Useful Articles and Blog Posts ==&lt;br /&gt;
&lt;br /&gt;
If you want to dive in to the ecosystem, here's a short list of various articles and blog posts that can help you set up your soft- or hardware development environment.&lt;br /&gt;
&lt;br /&gt;
* [https://stikonas.eu/wordpress/2019/09/15/blobless-boot-with-rockpro64/ Blobless boot with RockPro64 by Andrius Štikonas]&lt;br /&gt;
&lt;br /&gt;
* [https://marcin.juszkiewicz.com.pl/2020/06/17/ebbr-on-rockpro64/ EBBR on RockPro64 by Marcin Juszkiewicz]&lt;br /&gt;
&lt;br /&gt;
* [[ROCKPro64 Device Tree Overlays on Mainline]]&lt;br /&gt;
&lt;br /&gt;
== The NAS Case for the ROCKPro64 ==&lt;br /&gt;
&lt;br /&gt;
[[file:NASCaseMain.png|thumb|right|Front View of the PINE64 NAS Case for the ROCKPro64]]&lt;br /&gt;
&lt;br /&gt;
Please [[NASCase|follow this this link]] for '''detailed instructions on how to assemble the ROCKPro64 NAS Case'''.&lt;br /&gt;
&lt;br /&gt;
The NAS Case instructions also contains detailed information about:&lt;br /&gt;
*what the NAS Case ships with&lt;br /&gt;
*What additional things you need to purchase for your NAS Case&lt;br /&gt;
*What optional things you can consider purchasing for your NAS build&lt;br /&gt;
*What OS Image we recommend you use for your NAS build&lt;br /&gt;
*IO accessibility after installing the ROCKPro64 into the NAS Case&lt;br /&gt;
*[https://files.pine64.org/doc/rockpro64/ROCKPro64%20NAS%20Case%20Exploded%20View%20Diagram.pdf NAS Case Exploded View]&lt;br /&gt;
*[https://files.pine64.org/doc/rockpro64/NAS%20Case%20Drawing.dwg NAS Case Drawing]&lt;br /&gt;
&lt;br /&gt;
== 3D printable ITX mounting brackets ==&lt;br /&gt;
&lt;br /&gt;
[[file:ITX-Bracket-Mounted.jpg|300px|thumb|right|A Quartz64-A mounted in an ITX case using 3D printed brackets]]&lt;br /&gt;
&lt;br /&gt;
Allows mounting a ROCKPro64-A or Quartz64-A board inside a regular PC case that conforms to the ITX standard, using 3D printed brackets:&lt;br /&gt;
&lt;br /&gt;
* AMF/STL/STEP files plus the original FreeCAD file used to create the models [[File:RP64-A_Q64-A_to_ITX_mounting_brackets.zip]]&lt;br /&gt;
* Make sure to flip the two brackets by 180 degrees on one of the horizontal axes (X/Y) in your slicer of choice before printing to avoid unnecessary supports&lt;br /&gt;
* To allow enough clearance between the board and the bracket you either need to print four copies of the washer model or add nut(s) between the board and the bracket&lt;br /&gt;
* If using nuts for the clearance between the board and the brackets, make sure it creates at least 3.2mm of spacing in between&lt;br /&gt;
* Depending on the accuracy and calibration of a 3D printer, slight deviation can occur and you likely need to manually widen some of the holes to allow screws to fit&lt;br /&gt;
&lt;br /&gt;
== Other Resources ==&lt;br /&gt;
&lt;br /&gt;
* [https://forum.pine64.org/forumdisplay.php?fid=98 ROCKPro64 Forum]&lt;br /&gt;
* [https://pine64.com/?post_type=product PINE64 shop]&lt;br /&gt;
* [https://github.com/rockchip-linux Rockchip Linux GitHub Repo]&lt;br /&gt;
* [http://opensource.rock-chips.com/ Rockchip Open Source Wiki]&lt;br /&gt;
* ExplainingComputers have a video review [https://www.youtube.com/watch?v=CeoNHGFN_30 of the RockPro64 here, including linux first boot.]&lt;br /&gt;
* [[ROCKPro64 Installing Arch Linux ARM]]&lt;br /&gt;
* [[ROCKPro64 Powering From An ATX Supply]]&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
=== No Video or GPU Acceleration on Debian ===&lt;br /&gt;
&lt;br /&gt;
If you can log in through serial but don't get any video or GPU acceleration on Debian, this is likely due to Debian's decision to compile the devfreq governors as loadable modules but not including them early enough for panfrost to be able to be provided with one of them.&lt;br /&gt;
&lt;br /&gt;
The usual sign of this being the case is the following line in your log: &amp;lt;code&amp;gt;[drm:panfrost_devfreq_init [panfrost]] *ERROR* Couldn't initialize GPU devfreq&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Log in to your ROCKPro64, and run the following:&lt;br /&gt;
&lt;br /&gt;
 sudo -i&lt;br /&gt;
 echo governor_simpleondemand &amp;gt;&amp;gt; /etc/initramfs-tools/modules &amp;amp;&amp;amp; update-initramfs -u -k $(uname -r)&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
Then, reboot.&lt;br /&gt;
&lt;br /&gt;
== Hardware &amp;quot;Hacking&amp;quot; ==&lt;br /&gt;
&lt;br /&gt;
=== Enabling PCIe 2.0 ===&lt;br /&gt;
By default, the RockPro64 runs the PCIe slot at gen 1 speeds because there might be stability issues with gen 2 speeds. The port can be switched back to gen 2 speeds by adding the following device tree overlay.&lt;br /&gt;
&lt;br /&gt;
1. Copy and paste the device tree overlay file below into a new file (you could name it &amp;lt;code&amp;gt;pcie-2.0.dts&amp;lt;/code&amp;gt;):&lt;br /&gt;
 // Pulled from: https://forum.armbian.com/topic/23574-howto-enable-pcie-gen2-to-get-max-speed-of-nvme-rockpi-4b/&lt;br /&gt;
 /dts-v1/;&lt;br /&gt;
 /plugin/;&lt;br /&gt;
 &lt;br /&gt;
 &amp;amp;pcie0 {&lt;br /&gt;
         max-link-speed = &amp;lt;0x03&amp;gt;;&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
2. Compile the device tree into a binary file. Note that you will need &amp;lt;code&amp;gt;dtc&amp;lt;/code&amp;gt; installed.&lt;br /&gt;
 dtc -I dts -O dtb -@ pcie-2.0.dts -o pcie-2.0.dto&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
4. Copy or move the device tree from the current directory into the boot partition (in this case into the &amp;lt;code&amp;gt;/boot/dtbs/overlay/&amp;lt;/code&amp;gt; folder). If you haven't yet created the &amp;lt;code&amp;gt;/boot/dtbs/overlay/&amp;lt;/code&amp;gt; folder, then create it with &amp;lt;code&amp;gt;sudo mkdir /boot/dtbs/overlay/&amp;lt;/code&amp;gt;&lt;br /&gt;
 sudo cp pcie-2.0.dto /boot/dtbs/overlay/&lt;br /&gt;
&lt;br /&gt;
5. Add the device compiled tree overlay file to the list of files u-boot needs to load. If you are using ManjaroARM (or ArchLinuxARM with a &amp;lt;code&amp;gt;extlinux.conf&amp;lt;/code&amp;gt; file), then add the following line to the file &amp;lt;code&amp;gt;/boot/extlinux/extlinux.conf&amp;lt;/code&amp;gt;:&lt;br /&gt;
 FDTOVERLAYS /dtbs/overlay/pcie-2.0.dtb&lt;br /&gt;
&lt;br /&gt;
If you already have an &amp;lt;code&amp;gt;FDTOVERLAYS&amp;lt;/code&amp;gt; line, then add a space at the end of the current line, then add this overlay file after that.&lt;br /&gt;
See here for details on this process: [[ROCKPro64 Device Tree Overlays on Mainline]]&lt;br /&gt;
&lt;br /&gt;
The resulting &amp;lt;code&amp;gt;/boot/extlinux/extlinux.conf&amp;lt;/code&amp;gt; file might look like below after adding this dtb file:&lt;br /&gt;
 LABEL Manjaro ARM&lt;br /&gt;
 KERNEL /Image&lt;br /&gt;
 FDT /dtbs/rockchip/rk3399-rockpro64.dtb&lt;br /&gt;
 FDTOVERLAYS /dtbs/overlay/pcie-2.0.dtb /dtbs/overlay/cpu-overclock.dtb&lt;br /&gt;
 APPEND initrd=/initramfs-linux.img console=ttyS2,1500000 zfs=zroot rw rootwait audit=0 cpufreq.default_governor=schedutil&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Overclocking (and undervolting) ===&lt;br /&gt;
WIP&lt;br /&gt;
&lt;br /&gt;
=== Improving WIFI (on 5GHz networks) ===&lt;br /&gt;
WIP&lt;br /&gt;
&lt;br /&gt;
=== Stabilizing the system (underclocking the RAM) ===&lt;br /&gt;
WIP&lt;br /&gt;
&lt;br /&gt;
[[Category:ROCKPro64]] [[Category:Rockchip RK3399]]&lt;/div&gt;</summary>
		<author><name>I3master</name></author>
	</entry>
	<entry>
		<id>https://wiki.pine64.org/index.php?title=ROCKPro64&amp;diff=19661</id>
		<title>ROCKPro64</title>
		<link rel="alternate" type="text/html" href="https://wiki.pine64.org/index.php?title=ROCKPro64&amp;diff=19661"/>
		<updated>2023-05-20T16:06:46Z</updated>

		<summary type="html">&lt;p&gt;I3master: Added an easier method for getting WIFI working on the RockPro64.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:ROCKPro64v21FRONT.jpg|400px|thumb|right|The ROCKPro64]]&lt;br /&gt;
&lt;br /&gt;
The '''ROCKPro64''' is the most powerful Single Board Computer released by PINE64. It is powered by a Rockchip RK3399 Hexa-Core (dual ARM Cortex A72 and quad ARM Cortex A53) 64-Bit Processor with a Mali T-860 Quad-Core GPU. The key features include a PCIe x4 open ended slot, the use of LPDDR4 RAM, and industry standard heatsink mounting holes.&lt;br /&gt;
&lt;br /&gt;
The ROCKPro64 is equipped with 2GB or 4GB LPDDR4 system memory, and 128Mb SPI boot Flash. There is also an optional eMMC module (up to 128GB) and microSD slot for booting. The board is equipped with 1x USB 3.0 type C Host with DP 1.2, 1x USB 3.0 type A Host, 2x USB 2.0 Host, Gigabit Ethernet, PI-2 GPIO Bus, MiPi DSI interface, eDP interface, touch Panel interface, stereo MiPi CSI interface, as well as many other device interfaces such as UART, SPI, I2C, for makers to integrate with sensors and other peripherals. Many different Operating Systems (OS) are freely available from the open source community, such as Android, Linux (Ubuntu, Debian, Arch), and BSD.&lt;br /&gt;
&lt;br /&gt;
== Getting Started ==&lt;br /&gt;
&lt;br /&gt;
The article [[ROCKPro64 Getting Started]] gives important information to get the board up and running.&lt;br /&gt;
&lt;br /&gt;
== Software releases ==&lt;br /&gt;
&lt;br /&gt;
In the [[ROCKPro64 Software Releases]] page, you will find a complete list of currently supported Operating System images that work with the ROCKPro64, as well as other related software. The Software Release page has links to download the images as well as high level instructions to load each image.&lt;br /&gt;
&lt;br /&gt;
Please see the [[Getting started]] page for detailed discussion of what you need (prerequisites) as well as instructions if the high level instructions are insufficient.&lt;br /&gt;
&lt;br /&gt;
== Board Layout ==&lt;br /&gt;
[[Image:ROCKPro64v21REAR.jpg|thumb|right|A hi-res picture of v2.1 rear.]]&lt;br /&gt;
[[Image:FLIR 20220619 125451 686.jpg|thumb|right|A thermal image of v2.1 front (upside-down).]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:ROCKPro64_annotated.jpg|500px|An annotated ROCKPro64]]&lt;br /&gt;
&lt;br /&gt;
=== Main Chips ===&lt;br /&gt;
* RK3399 system-on-chip (1)&lt;br /&gt;
* LPDDR4 SDRAM 1 (18)&lt;br /&gt;
* LPDDR4 SDRAM 2 (3)&lt;br /&gt;
* SPI NOR flash memory (17)&lt;br /&gt;
* RK808 power management (near 19)&lt;br /&gt;
* RTL8211 ethernet transceiver (near 25)&lt;br /&gt;
* ES8316 Sound Codec (on rear of board)&lt;br /&gt;
* The heatsink mounting holes around the RK3399 are 59 mm apart&lt;br /&gt;
&lt;br /&gt;
=== Switches ===&lt;br /&gt;
&lt;br /&gt;
The Power button (11, SW3): is the same as on your mobile phone - press and release after about 1 second to power on. Press and hold for about 3 seconds to power off.&lt;br /&gt;
&lt;br /&gt;
The Reset button (10, SW901): performs a reset.&lt;br /&gt;
&lt;br /&gt;
The Recover button (28, SW900): used to enter maskrom mode.&lt;br /&gt;
&lt;br /&gt;
=== Connectors, Sockets and Headers ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;line-height: 1.4;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;font-size: .9em;&amp;quot;&lt;br /&gt;
! Diagram !! Schematic&amp;lt;br&amp;gt;designator !! Silkscreen&amp;lt;br&amp;gt;label !! Number&amp;lt;br&amp;gt;of pins !! Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 2  || U39   || PI-2-bus || style=&amp;quot;text-align: center;&amp;quot; | 40 || Pi-2 bus &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 4  || J8    || +FAN- || style=&amp;quot;text-align: center;&amp;quot; | 2 || PWM controlled fan header&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 5  || J10   || SPDIF || style=&amp;quot;text-align: center;&amp;quot; | 3 || SPDIF header&lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 6  || U6    || +RTC- || style=&amp;quot;text-align: center;&amp;quot; | 2 || RTC battery backup header&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7  || U31   || Wifi-BT || style=&amp;quot;text-align: center;&amp;quot; | 16 || SDIO WIFI/BT module-MIMO 2&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 8  || USB3  ||  || style=&amp;quot;text-align: center;&amp;quot; | 9 || USB-3 and USB Type C&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 9  || USB1  ||  || style=&amp;quot;text-align: center;&amp;quot; | 2×4 || Dual USB-2&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 12 || IR1   || IR || style=&amp;quot;text-align: center;&amp;quot; | 3 || infrared receiver socket &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 13 || J16   || Headphone+mic || style=&amp;quot;text-align: center;&amp;quot; | 4 || Headphone + mic 3.5mm jack&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -  || CON16 || GND PWR RST GND || style=&amp;quot;text-align: center;&amp;quot; | 4 || Power &amp;amp; reset, unpopulated&amp;lt;br&amp;gt;header near Headphone jack&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 14 || U29   || EMMC || style=&amp;quot;text-align: center;&amp;quot; | 34 || eMMC connector&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 14* || J13  ||  || style=&amp;quot;text-align: center;&amp;quot; | 13 || TF-card, a.k.a. microSD&amp;lt;br&amp;gt;(* under 14 on the bottom side)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 15 || U30   ||  || style=&amp;quot;text-align: center;&amp;quot; | 14 || SDIO WIFI/BT module-MIMO 1&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 16 || SW4   ||  || style=&amp;quot;text-align: center;&amp;quot; | 2 || Jumper to [[#Disable eMMC]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 19 || J15   || PCI || style=&amp;quot;text-align: center;&amp;quot; | 64 || PCI-express X4 socket&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 20 || J21   || DSI || style=&amp;quot;text-align: center;&amp;quot; | 30 || DSI&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 21 || J22   || EDP || style=&amp;quot;text-align: center;&amp;quot; | 30 || LCD EDP&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 22 || CON1  || TP || style=&amp;quot;text-align: center;&amp;quot; | 6 || touch panel connector&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 23 || CON15 ||  || style=&amp;quot;text-align: center;&amp;quot; | 4 || DC out for SATA disk cable&amp;lt;br&amp;gt;(direct connect from DC-IN)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 24 || J11   || DC-IN || style=&amp;quot;text-align: center;&amp;quot; | 2 || Power input, positive tip;&amp;lt;br&amp;gt;12V/3A (minimum) recommended&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 25 || U32   ||  || style=&amp;quot;text-align: center;&amp;quot; | 8 || 8P8C (often referred to as 'RJ45')&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 26 || J14   ||  || style=&amp;quot;text-align: center;&amp;quot; | 19 || HDMI&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 27 || J17   || MIPI CAM || style=&amp;quot;text-align: center;&amp;quot; | 32 || MIPI-1&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 29 || J19   || MIPI CAM || style=&amp;quot;text-align: center;&amp;quot; | 32 || MIPI-2&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 30 || J18   || CIF || style=&amp;quot;text-align: center;&amp;quot; | 26 || CIF&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== LEDs ===&lt;br /&gt;
&lt;br /&gt;
A green LED next to the 12V input barrel connector will light as long as there is 12V applied to the connector. (Even if the RockPro64 is powered off.)&lt;br /&gt;
&lt;br /&gt;
A white LED behind the reset button will light as long as the RockPro64 is running (it comes on a few seconds after power on, when control is passed to the operating system.)&lt;br /&gt;
&lt;br /&gt;
A red LED behind the reset button is DIY - it is lit for example if the board is in OTG mode with an Ayufan image, or if an Android image is in standby mode.&lt;br /&gt;
&lt;br /&gt;
Yellow and green LEDs on the LAN socket behave in a standard way.&lt;br /&gt;
&lt;br /&gt;
=== Jumpers ===&lt;br /&gt;
They are used for boot device selection, as described in the following section.&lt;br /&gt;
&lt;br /&gt;
==== Disable eMMC ====&lt;br /&gt;
&lt;br /&gt;
There is an unlabelled (on the PCB silk-screen) 2-pin jumper (16) between the eMMC socket (14) and the SPI chip (17). It is designated as SW4 on the [[#Board Information, Schematics and Certifications | schematic diagram]]. The default condition is OPEN (no jumper). It is useful for controlling the boot as follows:&lt;br /&gt;
&lt;br /&gt;
Default boot device (with no SPI software) is eMMC, then SDcard. If both the eMMC and the SDcard contain bootable images then the eMMC can be disabled by installing the jumper. This completely removes the eMMC from the resulting OS. If you wish the eMMC to be visible in the booted OS the jumper should be removed 2 seconds after applying power (and before the white LED comes on).&lt;br /&gt;
&lt;br /&gt;
The possible combinations are summarised in the table below.&lt;br /&gt;
&lt;br /&gt;
* 1 = present&lt;br /&gt;
* 0 = not present&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
! µSD !! eMMC !! SW4 !! boot from&lt;br /&gt;
|-&lt;br /&gt;
| 0 || 0 || 0 || unsupported&lt;br /&gt;
|-&lt;br /&gt;
| 0 || 0 || 1 || unsupported&lt;br /&gt;
|-&lt;br /&gt;
| 0 || 1 || 0 || eMMC&lt;br /&gt;
|-&lt;br /&gt;
| 0 || 1 || 1 || unsupported&lt;br /&gt;
|-&lt;br /&gt;
| 1 || 0 || 0 || SDCard&lt;br /&gt;
|-&lt;br /&gt;
| 1 || 0 || 1 || SDCard&lt;br /&gt;
|-&lt;br /&gt;
| 1 || 1 || 0 || eMMC&lt;br /&gt;
|-&lt;br /&gt;
| 1 || 1 || 1 || SDCard&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Disable SPI (while booting) ====&lt;br /&gt;
There is a second possibility to jumper your ROCKPro64: If you mess-up your SPI and are unable to boot, jumpering pins 23 (CLK) and 25 pin (GND) on the PI-2-bus header will disable the SPI as a boot device. (This was taken from the IRC logs, 09 August 2018 @ 17:23) You have to remove the jumper 2 seconds after having started your RP64 (before the white LED turns ON) otherwise the SPI will be missing and you won't be able to flash it.&lt;br /&gt;
Ayufan images contain (at the moment) only one script for the SPI and the RP64, it's &amp;quot;rockpro64_reset_spi_flash&amp;quot;. Other SPI scripts are dedicated to the R64 (as it is written on the name) and it will mess-up your RP64 SPI if you use them.&lt;br /&gt;
&lt;br /&gt;
== Hardware Compatibility ==&lt;br /&gt;
&lt;br /&gt;
The hardware compatibility list can be found under [[ROCKPro64 Hardware compatibility]].&lt;br /&gt;
&lt;br /&gt;
== Board Features ==&lt;br /&gt;
&lt;br /&gt;
This section outlines the most important characteristics of the board and its components.&lt;br /&gt;
&lt;br /&gt;
=== SoC and Memory Specification ===&lt;br /&gt;
* Based on Rockchip RK3399&lt;br /&gt;
[[File:Rockchip_RK3399.png|right]]&lt;br /&gt;
&lt;br /&gt;
==== CPU Architecture ====&lt;br /&gt;
&lt;br /&gt;
* [https://developer.arm.com/products/processors/cortex-a/cortex-a72 Dual-core Cortex-A72 up to 2.0GHz CPU]&lt;br /&gt;
* [https://developer.arm.com/products/processors/cortex-a/cortex-a53 Quad-core Cortex-A53 up to 1.5GHz CPU]&lt;br /&gt;
* big.LITTLE architecture: Dual Cortex-A72 + Quad Cortex-A53, 64-bit CPU&lt;br /&gt;
* Cortex-A72:&lt;br /&gt;
** 1-4x Symmetrical Multiprocessing (SMP) within a single processor cluster, and multiple coherent SMP processor clusters through AMBA 5 CHI or AMBA 4 ACE technology&lt;br /&gt;
** AArch64 for 64-bit support and new architectural features&lt;br /&gt;
** L1 cache 48KB Icache and 32KB Dcache for each A72 &lt;br /&gt;
** L2 cache 1024KB for big cluster &lt;br /&gt;
** DSP &amp;amp; SIMD extensions&lt;br /&gt;
** VFPv4 floating point&lt;br /&gt;
** Hardware virtualization support&lt;br /&gt;
* Cortex-A53:&lt;br /&gt;
** L1 cache 32KB Icache and 32KB Dcache for each A53&lt;br /&gt;
** L2 cache 512KB for little cluster &lt;br /&gt;
* Full implementation of the ARM architecture v8-A instruction set&lt;br /&gt;
* ARM Neon Advanced SIMD (single instruction, multiple data) support for accelerated media and signal processing computation&lt;br /&gt;
* ARMv8 Cryptography Extensions&lt;br /&gt;
* In-order pipeline with symmetric dual-issue of most instructions&lt;br /&gt;
* Include VFP v3 hardware to support single and double-precision operations&lt;br /&gt;
* TrustZone technology support&lt;br /&gt;
* Full CoreSight debug solution&lt;br /&gt;
* One isolated voltage domain to support DVFS&lt;br /&gt;
&lt;br /&gt;
==== GPU Architecture ====&lt;br /&gt;
&lt;br /&gt;
* [https://developer.arm.com/products/graphics-and-multimedia/mali-gpus/mali-t860-and-mali-t880-gpus ARM Mali-T860MP4 Quad-core GPU]&lt;br /&gt;
* The highest performance GPUs built on Arm Mali’s famous Midgard architecture, the Mali-T860 GPU is designed for complex graphics use cases and provides stunning visuals for UHD content.&lt;br /&gt;
* Frequency: 650MHz &lt;br /&gt;
* Throughput: 1300Mtri/s, 10.4Gpix/s &lt;br /&gt;
* OpenGL® ES 1.1, 1.2, 2.0, 3.1, 3.2, Vulkan 1.0*, OpenCL™ 1.1, 1.2, DirectX® 11 FL11_1, RenderScript™.&lt;br /&gt;
&lt;br /&gt;
==== System Memory ====&lt;br /&gt;
* LPDDR4 RAM Memory Variants: Dual Channels 2GB and 4GB.&lt;br /&gt;
* Storage Memory: 128Mb built-in SPI Flash memory (as at August 2018 only support for USB boot).&lt;br /&gt;
&lt;br /&gt;
=== Display ===&lt;br /&gt;
&lt;br /&gt;
* Dual VOP: one supports resolutions up to 4096x2160 and [https://www.arm.com/why-arm/technologies/graphics-technologies/arm-frame-buffer-compression AFBC]; the other supports resolutions up to 2560x1600&lt;br /&gt;
* Dual channel MIPI-DSI (4 lanes per channel)&lt;br /&gt;
* eDP 1.3 (4 lanes with 10.8Gbps) to support displays, with PSR&lt;br /&gt;
* Digital Video port up to 4Kp60&lt;br /&gt;
* DisplayPort 1.2 (4 lanes, up to 4K 60Hz)&lt;br /&gt;
* Supports Rec.2020 and conversion to Rec.709 &lt;br /&gt;
&lt;br /&gt;
=== Video ===&lt;br /&gt;
&lt;br /&gt;
* Digital Video output up to 4K@60Hz&lt;br /&gt;
* 4K HDR @ 30fps&lt;br /&gt;
* H.264/AVC Base/Main/High/High10 profile @ level 5.1; up to 4Kx2K @ 60fps&lt;br /&gt;
* H.265/HEVC Main/Main10 profile @ level 5.1 High-tier; up to 4Kx2K @ 60fps&lt;br /&gt;
* VP9, up to 4Kx2K @ 60fps&lt;br /&gt;
* MPEG-1, ISO/IEC 11172-2, up to 1080P @ 60fps&lt;br /&gt;
* MPEG-2, ISO/IEC 13818-2, SP@ML, MP@HL, up to 1080P @ 60fps&lt;br /&gt;
* MPEG-4, ISO/IEC 14496-2, SP@L0-3, ASP@L0-5, up to 1080P @ 60fps&lt;br /&gt;
* VC-1, SP@ML, MP@HL, AP@L0-3, up to 1080P @ 60fps&lt;br /&gt;
* MVC is supported based on H.264 or H.265, up to 1080P @ 60fps&lt;br /&gt;
&lt;br /&gt;
=== Audio ===&lt;br /&gt;
&lt;br /&gt;
* 3.5mm Phone Jack&lt;br /&gt;
* 3-pin S/PDIF header &lt;br /&gt;
* Audio via Digital Video port&lt;br /&gt;
&lt;br /&gt;
=== Camera ===&lt;br /&gt;
&lt;br /&gt;
* Dual MIPI CSI，dual ISP, maximum input resolution of 13M pixels &lt;br /&gt;
&lt;br /&gt;
=== Network ===&lt;br /&gt;
&lt;br /&gt;
* 10/100/1000Mbps Ethernet - Capable of pushing 941 MBit/s in iperf3&lt;br /&gt;
* Wi-Fi 802.11 ac/a/b/g/n with Bluetooth 4.01 (old version with 2x2) / Bluetooth 5 (new version with 1x1) (optional)&lt;br /&gt;
&lt;br /&gt;
=== Storage ===&lt;br /&gt;
&lt;br /&gt;
* microSD - bootable, support SDHC and SDXC, storage up to 256GB&lt;br /&gt;
* eMMC - bootable (optional eMMC Module)&lt;br /&gt;
* 1 USB3.0 Host port&lt;br /&gt;
* 1 USB type C OTG port with DP output &lt;br /&gt;
* 2 USB2.0 Dedicated Host ports&lt;br /&gt;
&lt;br /&gt;
=== Expansion Ports ===&lt;br /&gt;
&lt;br /&gt;
* 2x20 pins &amp;quot;Pi2&amp;quot; GPIO Header&lt;br /&gt;
* PCIe 2.1 (4 full-duplex lanes with 20Gbps) x4 open ended port&lt;br /&gt;
&lt;br /&gt;
==== GPIO Pins ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable plainrowheaders&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;width:20em;&amp;quot; | Assigned To&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Pin Nr.&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Pin Nr.&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;width:20em;&amp;quot; | Assigned To&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| 3.3 V&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 1&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 2&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| 5 V&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| GPIO1_C4 (I2C8_SDA) &amp;lt;sup style=&amp;quot;font-style:italic;color:green&amp;quot;&amp;gt;a&amp;lt;/sup&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 3&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 4&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| 5 V&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| GPIO1_C5 (I2C8_SCL) &amp;lt;sup style=&amp;quot;font-style:italic;color:green&amp;quot;&amp;gt;a&amp;lt;/sup&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 5&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 6&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GND&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| GPIO4_D0 (CPU_GPCLK)&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 7&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 8&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GPIO4_C4 (UART2_TX)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| GND&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 9&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 10&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GPIO4_C3 (UART2_RX)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| GPIO1_C6&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 11&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 12&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GPIO3_D0 (I2S0_CLK)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| GPIO1_C2&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 13&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 14&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GND&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| GPIO1_A1&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 15&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 16&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GPIO1_A4&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| 3.3 V&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 17&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 18&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GPIO4_C5 [SPDIF]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| [UART4_TX] GPIO1_B0 (SPI1_TXD)&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 19&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 20&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GND&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| [UART4_RX] GPIO1_A7 (SPI1_RXD)&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 21&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 22&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GPIO4_D1&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| GPIO1_B1 (SPI1_CLK)&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 23&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 24&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GPIO1_B2 (SPI1_CSN0)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| GND&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 25&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 26&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GPIO1_B5&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| GPIO1_B3 (I2C4_SDA)&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 27&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 28&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GPIO1_B4 (I2C4_SCL)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| GPIO4_D3&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 29&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 30&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GND&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| GPIO4_D4&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 31&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 32&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GPIO3_D4 (I2S0_SDI1SDO3)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| GPIO3_D5 (I2S0_SDI2SDO2)&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 33&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 34&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GND&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| GPIO3_D2 (I2S0_LRCKTX)&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 35&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 36&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GPIO3_D6 (I2S0_SDI3SDO1)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| GPIO3_D1 (I2S0_LRCKRX)&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 37&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 38&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GPIO3_D3 (I2S0_SDI0)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| GND&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 39&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 40&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GPIO3_D7 (I2S0_SDO0)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== Notes =====&lt;br /&gt;
&lt;br /&gt;
* '''a:''' pulled high to 3.3V through 2.2kOhm resistor&lt;br /&gt;
&lt;br /&gt;
===== Linux /dev/gpiochip Assignments =====&lt;br /&gt;
&lt;br /&gt;
{| class=wikitable style=&amp;quot;max-width: 1000px; text-align: center;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | Pin Nr.&lt;br /&gt;
| 3 || 5 || 7 || 8 || 10 || 11 || 12 || 13 || 15 || 16 || 18 || 19 || 21 || 22 || 23 || 24 || 26 || 27 || 28 || 29 || 31 || 32 || 33 || 35 || 36 || 37 || 38 || 40&lt;br /&gt;
|- &lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | Chip&lt;br /&gt;
| 1 || 1 || 4 || 4 || 4 || 1 || 3 || 1 || 1 || 1 || 4 || 1 || 1 || 4 || 1 || 1 || 1 || 1 || 1 || 4 || 4 || 3 || 3 || 3 || 3 || 3 || 3 || 3&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | Line&lt;br /&gt;
| 20 || 21 || 24 || 20 || 19 || 22 || 24 || 18 || 1 || 4 || 21 || 8 || 7 || 25 || 9 || 10 || 13 || 11 || 12 || 27 || 28 || 28 || 29 || 26 || 30 || 25 || 27 || 31&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
On Linux, using the new &amp;lt;code&amp;gt;/dev/gpiochip&amp;lt;/code&amp;gt; API, the &amp;lt;code&amp;gt;''n''&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;GPIO''n''_''XX''&amp;lt;/code&amp;gt; appears to correlate to the number of the &amp;lt;code&amp;gt;/dev/gpiochip''n''&amp;lt;/code&amp;gt;, and the &amp;lt;code&amp;gt;''XX''&amp;lt;/code&amp;gt; to the definition &amp;lt;code&amp;gt;RK_P''XX''&amp;lt;/code&amp;gt; of lines in &amp;lt;code&amp;gt;include/dt-bindings/pinctrl/rockchip.h&amp;lt;/code&amp;gt; of the Linux kernel source. Having these named in the dts would be nice.&lt;br /&gt;
&lt;br /&gt;
You can use [https://git.kernel.org/pub/scm/libs/libgpiod/libgpiod.git/ libgpiod] to drive them, and test them with the included tools (&amp;lt;code&amp;gt;gpioinfo&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;gpioset&amp;lt;/code&amp;gt;, ...)&lt;br /&gt;
&lt;br /&gt;
For example, &amp;lt;code&amp;gt;gpioset 4 25=1&amp;lt;/code&amp;gt; (run as root) would turn pin 22 on. Do beware that poking the wrong GPIO pin can lock up your system.&lt;br /&gt;
&lt;br /&gt;
The conversion table at right is also available as a [https://gist.github.com/CounterPillow/fe066655bf2d929148fe6eb3f15b1dd5 C header file].&lt;br /&gt;
&lt;br /&gt;
=== Working Features ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! Feature/Option&lt;br /&gt;
! Android&lt;br /&gt;
! Android Version&lt;br /&gt;
! Linux&lt;br /&gt;
! Linux Version&lt;br /&gt;
! Test/Verify Steps&lt;br /&gt;
! Notes&lt;br /&gt;
! Product Link&lt;br /&gt;
|-&lt;br /&gt;
| PINE64 LCD Touchscreen (Screen/Touch)&lt;br /&gt;
| Yes/Yes&lt;br /&gt;
| &lt;br /&gt;
| No/No&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| Maybe [https://github.com/avafinger/pine64-touchscreen this] will help get this working?&lt;br /&gt;
| [https://pine64.com/?product=7-lcd-touch-screen-panel 7″ LCD Touch Screen Panel]&lt;br /&gt;
|-&lt;br /&gt;
| Wireless&lt;br /&gt;
&amp;lt;small&amp;gt;ROCKPro64 2×2 MIMO Dual Band WiFi 802.11AC / Bluetooth 4.2 Module (old)&lt;br /&gt;
ROCKPro64 1x1 Dual Band WiFi 802.11AC / Bluetooth 5.0 Module (new)&amp;lt;/small&amp;gt;&lt;br /&gt;
| Yes/Yes&lt;br /&gt;
| &lt;br /&gt;
| No/Yes*&lt;br /&gt;
| &lt;br /&gt;
| For the &amp;quot;new&amp;quot; ROCKPro64 WIFI module: Verified with Manjaro ARM (kernel 6.2.5). A config file (&amp;quot;firmware file&amp;quot;) is needed at &amp;lt;code&amp;gt;/lib/firmware/brcm/brcmfmac43455-sdio.txt&amp;lt;/code&amp;gt;. See here for the file contents and details: https://askubuntu.com/a/1211986. Some distros provide this file, but it is listed under the generic name &amp;quot;brcmfmac43455-sdio.AW-CM256SM.txt&amp;quot;. If this file exists, you can create a symbolic link to it named &amp;quot;brcmfmac43455-sdio.txt&amp;quot; instead of downloading the firmware file listed above. This can be done with the following command &amp;lt;code&amp;gt;sudo ln -s /usr/lib/firmware/brcm/brcmfmac43455-sdio.AW-CM256SM.txt /usr/lib/firmware/brcm/brcmfmac43455-sdio.txt&amp;lt;/code&amp;gt;. Then, reboot and WIFI should start working. Details for this method are here: https://forum.pine64.org/showthread.php?tid=16635&amp;amp;pid=117061#pid117061&lt;br /&gt;
| In 0.7.9 Ayufan linux releases this is deliberately disabled for stability reasons. After testing for a few hours, on Manjaro ARM (kernel 6.2.5), there haven't been stability issues found (WiFi stayed connected). On a 5GHz network (802.11AC), it was tested to be possible to get about 120Mbps using the &amp;quot;new&amp;quot; ROCKPro64 WIFI module.&lt;br /&gt;
| [https://store.pine64.org/product/rockpro64-1x1-dual-band-wifi-802-11acbluetooth-5-0-module ROCKPro64 1x1 Dual Band WiFi 802.11AC / Bluetooth 5.0 Module]&lt;br /&gt;
|-&lt;br /&gt;
| USB OTG&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| use this script: [https://github.com/ayufan-rock64/linux-package/blob/master/root-rockpro64/usr/local/sbin/rockpro64_enable_otg.sh rockpro64_enable_otg.sh], then configure ip on usb0: ifconfig usb0 169.169.222.222 and run iperf, you should likely see about 200-300MB/s&lt;br /&gt;
| [[ROCKPro64#OTG_mode]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| USB Mass Storage USB2/USB3&lt;br /&gt;
| Yes/yes&lt;br /&gt;
| &lt;br /&gt;
| Yes/Yes&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Dedicated Fan Power (pwm1)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| Yes&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| You might want to use [https://github.com/tuxd3v/ats ATS].&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| GPIO pins (raw or via RPI python scripts)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| Check out [https://forum.frank-mankel.org/topic/292/rockpro64-rp64-gpio/2 what Frank Mankel has done].&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| MIPI CSI Camera 1 and 2&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| eDP&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| HDMI Audio&lt;br /&gt;
| Yes&lt;br /&gt;
| 7.1.2&lt;br /&gt;
| Yes&lt;br /&gt;
| 4.4.132-1083 - 4.4.138-1100&lt;br /&gt;
| &lt;br /&gt;
| Stopped working in 4.4.154.1105. Ayufan is looking into it. This is working in Manjaro ARM (kernel 6.2.5). Select the &amp;lt;code&amp;gt;Analog Output (Built-in Audio Stereo)&amp;lt;/code&amp;gt; option in the audio output device selection window (either use &amp;lt;code&amp;gt;pavucontrol&amp;lt;/code&amp;gt; or the volume button in the KDE desktop). Despite the slightly misleading name, audio does go through the HDMI port. See here for details: https://forum.manjaro.org/t/no-hdmi-audio-on-rockpro64/25595/2.&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 3.5mm Audio/Mic&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| USB-C Host&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Display via USB-C&lt;br /&gt;
| Yes&lt;br /&gt;
| 7.x and 8.x&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| eDP via USB-C per tillim. No sound on Android 7.x. Sound does work on Android 8.x&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| ROCKPro64 PLAYBOX ENCLOSURE&lt;br /&gt;
| N/A&lt;br /&gt;
| &lt;br /&gt;
| N/A&lt;br /&gt;
| &lt;br /&gt;
| N/A&lt;br /&gt;
| Ventilation does not exist, thus requires manual changes to add venting. Case should be modified to account power adapter not being centered in cut holes. Opening the case once close without modifying it first is near impossible without special tools. Graphene heatsink is included and does well for Linux but not Android.&lt;br /&gt;
| https://pine64.com/?product=rockpro64-playbox-enclosure&lt;br /&gt;
|-&lt;br /&gt;
| ROCKPro64 30mm Tall Profile Heatsink&lt;br /&gt;
| N/A&lt;br /&gt;
| &lt;br /&gt;
| N/A&lt;br /&gt;
| &lt;br /&gt;
| N/A&lt;br /&gt;
| &lt;br /&gt;
| https://store.pine64.org/?product=rockpro64-heatsink&lt;br /&gt;
|-&lt;br /&gt;
| ROCKPro64 20mm Mid Profile Heatsink&lt;br /&gt;
| N/A&lt;br /&gt;
| &lt;br /&gt;
| N/A&lt;br /&gt;
| &lt;br /&gt;
| N/A&lt;br /&gt;
| &lt;br /&gt;
| https://pine64.com/?product=rockpro64-20mm-mid-profile-heatsink&lt;br /&gt;
|-&lt;br /&gt;
| Fan For ROCKPro64 20mm Mid Profile Heatsink&lt;br /&gt;
| N/A&lt;br /&gt;
| &lt;br /&gt;
| N/A&lt;br /&gt;
| &lt;br /&gt;
| N/A&lt;br /&gt;
| You might want to use [https://github.com/tuxd3v/fanctl fanctl] to control the fan while keeping your CPU cool&lt;br /&gt;
| https://pine64.com/?product=fan-for-rockpro64-20mm-mid-profile-heatsink&lt;br /&gt;
|-&lt;br /&gt;
| HDMI output 4K@60Hz&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| PCIe 2.1&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Real Time Clock (RTC) battery backup&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| https://store.pine64.org/?product=rtc-backup-battery-cr-battery&lt;br /&gt;
|-&lt;br /&gt;
| Boot from USB/PXE&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
RockChip themselves have tables of supported features at 4.4 and mainline kernel versions [http://opensource.rock-chips.com/wiki_Status_Matrix in their wiki here].&lt;br /&gt;
&lt;br /&gt;
== Board Information, Schematics and Certifications ==&lt;br /&gt;
* Board Dimensions: 133mm x 80mm x 19mm&lt;br /&gt;
* Input Power: +12V @3A/5A with 5.5mm/2.1mm Type M Barrel type DC connector&lt;br /&gt;
* [https://files.pine64.org/doc/rockpro64/rockpro64_v21-SCH.pdf ROCKPro64 Schematic v2.1 (Second Batch Production Release)]&lt;br /&gt;
** [https://files.pine64.org/doc/rockpro64/RockPro64_v21_Boardoutline-top.dxf ROCKPro64 v2.1 Board Top Outline in AutoCad DXF format]&lt;br /&gt;
** [https://files.pine64.org/doc/rockpro64/RockPro64_v21_Boardoutline-bottom.dxf ROCKPro64 v2.1 Board Bottom Outline in AutoCad DXF format]&lt;br /&gt;
** [https://files.pine64.org/doc/rockpro64/RockPro64_v21_Boardoutline-top.pdf ROCKPro64 v2.1 Board Top Outline in PDF format]&lt;br /&gt;
** [https://files.pine64.org/doc/rockpro64/RockPro64_v21_Boardoutline-bottom.pdf ROCKPro64 v2.1 Board Bottom Outline in PDF format]&lt;br /&gt;
* [https://files.pine64.org/doc/rockpro64/rockpro64_v20-SCH.pdf ROCKPro64 Schematic v2.0 (Pilot Production Release)]&lt;br /&gt;
** [https://files.pine64.org/doc/rockpro64/ROCKPRo64%20Engineering%20Change%20Notice%2020180628RP01.pdf Engineering Change Notice for v2.0 to turn on 3.3V power on PCIe]&lt;br /&gt;
* [https://files.pine64.org/doc/rockpro64/rockpro64_wifi_ap6359SA.pdf ROCKPro64 AP6359SA Wifi/BT Schematic]&lt;br /&gt;
* [https://files.pine64.org/doc/rockpro64/Rockpro64%20Pi-2%20Connector%20ver0.2.png ROCKPro64 Pi-2 Pin assignment and definition]&lt;br /&gt;
* [https://files.pine64.org/doc/rockpro64/RockPro-3D-model.zip ROCKPro64 3D model]&lt;br /&gt;
&lt;br /&gt;
Certifications:&lt;br /&gt;
&lt;br /&gt;
* Disclaimer: Please note that PINE64 SBC is not a &amp;quot;final&amp;quot; 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.&lt;br /&gt;
* [https://files.pine64.org/doc/cert/ROCKPro64%20FCC%20SDOC%20Certificate.pdf ROCKPro64 FCC Certificate]&lt;br /&gt;
* [https://files.pine64.org/doc/cert/ROCKPro64%20CE-EMC%20Certificate.pdf ROCKPro64 CE Certificate]&lt;br /&gt;
* [https://files.pine64.org/doc/cert/ROCKPro64%20ROHS%20%20SEC180529404001E%20Report.pdf ROCKPro64 RoHS Report]&lt;br /&gt;
&lt;br /&gt;
== Datasheets for Components and Peripherals ==&lt;br /&gt;
&lt;br /&gt;
Rockchip RK3399 SoC information:&lt;br /&gt;
&lt;br /&gt;
* [https://www.rock-chips.com/a/en/products/RK33_Series/2016/0419/758.html Rockchip RK3399 SoC Brief]&lt;br /&gt;
* [http://opensource.rock-chips.com/images/d/d7/Rockchip_RK3399_Datasheet_V2.1-20200323.pdf Rockchip RK3399 Datasheet V2.1]&lt;br /&gt;
* [http://opensource.rock-chips.com/images/e/ee/Rockchip_RK3399TRM_V1.4_Part1-20170408.pdf Rockchip RK3399 Technical Reference Manual part 1]&lt;br /&gt;
* [https://files.pine64.org/doc/datasheet/rockpro64/RK808%20datasheet%20V0.8.pdf Rockchip RK808 Datasheet V0.8]&lt;br /&gt;
&lt;br /&gt;
LPDDR4 (200 Balls) SDRAM:&lt;br /&gt;
&lt;br /&gt;
* [https://files.pine64.org/doc/datasheet/rockpro64/SM512M32Z01MD2BNP(200BALL).pdf Micron LPDDR4 Mobile LPDDR4 Datasheet]&lt;br /&gt;
&lt;br /&gt;
eMMC information:&lt;br /&gt;
&lt;br /&gt;
* [https://files.pine64.org/doc/rock64/PINE64_eMMC_Module_20170719.pdf PINE64 eMMC module schematic]&lt;br /&gt;
* [https://files.pine64.org/doc/rock64/usb%20emmc%20module%20adapter%20v2.pdf PINE64 USB adapter for eMMC module V2 schematic]&lt;br /&gt;
* [https://files.pine64.org/doc/rock64/USB%20adapter%20for%20eMMC%20module%20PCB.tar PINE64 USB adapter for eMMC module PCB in JPEG]&lt;br /&gt;
* [https://files.pine64.org/doc/datasheet/pine64/E-00517%20FORESEE_eMMC_NCEMAM8B-16G%20SPEC.pdf 16GB Foresee eMMC Datasheet]&lt;br /&gt;
* [https://files.pine64.org/doc/datasheet/pine64/SDINADF4-16-128GB-H%20data%20sheet%20v1.13.pdf 32GB/64GB/128GB SanDisk eMMC Datasheet]&lt;br /&gt;
&lt;br /&gt;
SPI NOR Flash information:&lt;br /&gt;
&lt;br /&gt;
* [https://files.pine64.org/doc/datasheet/pine64/w25q128jv%20spi%20revc%2011162016.pdf WinBond 128Mb SPI Flash Datasheet]&lt;br /&gt;
* [https://files.pine64.org/doc/datasheet/pine64/GD25Q128C-Rev2.5.pdf GigaDevice 128Mb SPI Flash Datasheet]&lt;br /&gt;
&lt;br /&gt;
Heatsink related info:&lt;br /&gt;
&lt;br /&gt;
* [https://files.pine64.org/doc/datasheet/rockpro64/Rockpro%20Passive%20Heatsink%20Spec.jpg ROCKPro64 Passive Heatsink Dimension Drawing]&lt;br /&gt;
* [https://files.pine64.org/doc/datasheet/rockpro64/LMS-TC150%20Silicon%20Thermal%20Pad.pdf Heatsink Thermal Pad Specification]&lt;br /&gt;
&lt;br /&gt;
Wireless related info:&lt;br /&gt;
&lt;br /&gt;
* AMPAK AP6256 11AC WiFi + Bluetooth5.0 Datasheet [https://files.pine64.org/doc/datasheet/rockpro64/AP6256%20datasheet_V1.3_12202017.pdf (v. 1.3)] [http://files.pine64.org/doc/datasheet/PinebookPro/AP6256%20datasheet_V1.7_12282018.pdf (v. 1.7)]&lt;br /&gt;
&lt;br /&gt;
Ethernet related info:&lt;br /&gt;
&lt;br /&gt;
* [https://files.pine64.org/doc/datasheet/rock64/RTL8211F-CG-Realtek.pdf Realtek RTL8211F 10/100/1000M Ethernet Transceiver Datasheet]&lt;br /&gt;
&lt;br /&gt;
Peripheral related info:&lt;br /&gt;
&lt;br /&gt;
* [https://files.pine64.org/doc/datasheet/rockpro64/ASM1061_Data%20Sheet_R1_8.pdf asmedia ASM1061 PCIe SATA 2.0 Datasheet]&lt;br /&gt;
&lt;br /&gt;
Remote control button mapping:&lt;br /&gt;
&lt;br /&gt;
* [https://files.pine64.org/doc/Pine%20A64%20Schematic/remote-wit-logo.jpg Official Remote Control for the PINE64 Button Mapping]&lt;br /&gt;
&lt;br /&gt;
Audio Codec (ES8316) (under board):&lt;br /&gt;
&lt;br /&gt;
* [http://everest-semi.com/pdf/ES8316%20PB.pdf Everest ES8316 Audio Codec]&lt;br /&gt;
&lt;br /&gt;
PWM controlled fan, SPDIF, and RTC Battery Backup headers:&lt;br /&gt;
&lt;br /&gt;
* [https://www.jst-mfg.com/product/pdf/eng/ePH.pdf JST-PH connector]&lt;br /&gt;
&lt;br /&gt;
== Useful Articles and Blog Posts ==&lt;br /&gt;
&lt;br /&gt;
If you want to dive in to the ecosystem, here's a short list of various articles and blog posts that can help you set up your soft- or hardware development environment.&lt;br /&gt;
&lt;br /&gt;
* [https://stikonas.eu/wordpress/2019/09/15/blobless-boot-with-rockpro64/ Blobless boot with RockPro64 by Andrius Štikonas]&lt;br /&gt;
&lt;br /&gt;
* [https://marcin.juszkiewicz.com.pl/2020/06/17/ebbr-on-rockpro64/ EBBR on RockPro64 by Marcin Juszkiewicz]&lt;br /&gt;
&lt;br /&gt;
* [[ROCKPro64 Device Tree Overlays on Mainline]]&lt;br /&gt;
&lt;br /&gt;
== The NAS Case for the ROCKPro64 ==&lt;br /&gt;
&lt;br /&gt;
[[file:NASCaseMain.png|thumb|right|Front View of the PINE64 NAS Case for the ROCKPro64]]&lt;br /&gt;
&lt;br /&gt;
Please [[NASCase|follow this this link]] for '''detailed instructions on how to assemble the ROCKPro64 NAS Case'''.&lt;br /&gt;
&lt;br /&gt;
The NAS Case instructions also contains detailed information about:&lt;br /&gt;
*what the NAS Case ships with&lt;br /&gt;
*What additional things you need to purchase for your NAS Case&lt;br /&gt;
*What optional things you can consider purchasing for your NAS build&lt;br /&gt;
*What OS Image we recommend you use for your NAS build&lt;br /&gt;
*IO accessibility after installing the ROCKPro64 into the NAS Case&lt;br /&gt;
*[https://files.pine64.org/doc/rockpro64/ROCKPro64%20NAS%20Case%20Exploded%20View%20Diagram.pdf NAS Case Exploded View]&lt;br /&gt;
*[https://files.pine64.org/doc/rockpro64/NAS%20Case%20Drawing.dwg NAS Case Drawing]&lt;br /&gt;
&lt;br /&gt;
== 3D printable ITX mounting brackets ==&lt;br /&gt;
&lt;br /&gt;
[[file:ITX-Bracket-Mounted.jpg|300px|thumb|right|A Quartz64-A mounted in an ITX case using 3D printed brackets]]&lt;br /&gt;
&lt;br /&gt;
Allows mounting a ROCKPro64-A or Quartz64-A board inside a regular PC case that conforms to the ITX standard, using 3D printed brackets:&lt;br /&gt;
&lt;br /&gt;
* AMF/STL/STEP files plus the original FreeCAD file used to create the models [[File:RP64-A_Q64-A_to_ITX_mounting_brackets.zip]]&lt;br /&gt;
* Make sure to flip the two brackets by 180 degrees on one of the horizontal axes (X/Y) in your slicer of choice before printing to avoid unnecessary supports&lt;br /&gt;
* To allow enough clearance between the board and the bracket you either need to print four copies of the washer model or add nut(s) between the board and the bracket&lt;br /&gt;
* If using nuts for the clearance between the board and the brackets, make sure it creates at least 3.2mm of spacing in between&lt;br /&gt;
* Depending on the accuracy and calibration of a 3D printer, slight deviation can occur and you likely need to manually widen some of the holes to allow screws to fit&lt;br /&gt;
&lt;br /&gt;
== Other Resources ==&lt;br /&gt;
&lt;br /&gt;
* [https://forum.pine64.org/forumdisplay.php?fid=98 ROCKPro64 Forum]&lt;br /&gt;
* [https://pine64.com/?post_type=product PINE64 shop]&lt;br /&gt;
* [https://github.com/rockchip-linux Rockchip Linux GitHub Repo]&lt;br /&gt;
* [http://opensource.rock-chips.com/ Rockchip Open Source Wiki]&lt;br /&gt;
* ExplainingComputers have a video review [https://www.youtube.com/watch?v=CeoNHGFN_30 of the RockPro64 here, including linux first boot.]&lt;br /&gt;
* [[ROCKPro64 Installing Arch Linux ARM]]&lt;br /&gt;
* [[ROCKPro64 Powering From An ATX Supply]]&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
=== No Video or GPU Acceleration on Debian ===&lt;br /&gt;
&lt;br /&gt;
If you can log in through serial but don't get any video or GPU acceleration on Debian, this is likely due to Debian's decision to compile the devfreq governors as loadable modules but not including them early enough for panfrost to be able to be provided with one of them.&lt;br /&gt;
&lt;br /&gt;
The usual sign of this being the case is the following line in your log: &amp;lt;code&amp;gt;[drm:panfrost_devfreq_init [panfrost]] *ERROR* Couldn't initialize GPU devfreq&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Log in to your ROCKPro64, and run the following:&lt;br /&gt;
&lt;br /&gt;
 sudo -i&lt;br /&gt;
 echo governor_simpleondemand &amp;gt;&amp;gt; /etc/initramfs-tools/modules &amp;amp;&amp;amp; update-initramfs -u -k $(uname -r)&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
Then, reboot.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:ROCKPro64]] [[Category:Rockchip RK3399]]&lt;/div&gt;</summary>
		<author><name>I3master</name></author>
	</entry>
	<entry>
		<id>https://wiki.pine64.org/index.php?title=ROCKPro64&amp;diff=19473</id>
		<title>ROCKPro64</title>
		<link rel="alternate" type="text/html" href="https://wiki.pine64.org/index.php?title=ROCKPro64&amp;diff=19473"/>
		<updated>2023-04-15T17:11:46Z</updated>

		<summary type="html">&lt;p&gt;I3master: Explained which wifi module was used in testing.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:ROCKPro64v21FRONT.jpg|400px|thumb|right|The ROCKPro64]]&lt;br /&gt;
&lt;br /&gt;
The '''ROCKPro64''' is the most powerful Single Board Computer released by PINE64. It is powered by a Rockchip RK3399 Hexa-Core (dual ARM Cortex A72 and quad ARM Cortex A53) 64-Bit Processor with a Mali T-860 Quad-Core GPU. The key features include a PCIe x4 open ended slot, the use of LPDDR4 RAM, and industry standard heatsink mounting holes.&lt;br /&gt;
&lt;br /&gt;
The ROCKPro64 is equipped with 2GB or 4GB LPDDR4 system memory, and 128Mb SPI boot Flash. There is also an optional eMMC module (up to 128GB) and microSD slot for booting. The board is equipped with 1x USB 3.0 type C Host with DP 1.2, 1x USB 3.0 type A Host, 2x USB 2.0 Host, Gigabit Ethernet, PI-2 GPIO Bus, MiPi DSI interface, eDP interface, touch Panel interface, stereo MiPi CSI interface, as well as many other device interfaces such as UART, SPI, I2C, for makers to integrate with sensors and other peripherals. Many different Operating Systems (OS) are freely available from the open source community, such as Android, Linux (Ubuntu, Debian, Arch), and BSD.&lt;br /&gt;
&lt;br /&gt;
== Getting Started ==&lt;br /&gt;
&lt;br /&gt;
The article [[ROCKPro64 Getting Started]] gives important information to get the board up and running.&lt;br /&gt;
&lt;br /&gt;
== Software releases ==&lt;br /&gt;
&lt;br /&gt;
In the [[ROCKPro64 Software Releases]] page, you will find a complete list of currently supported Operating System images that work with the ROCKPro64, as well as other related software. The Software Release page has links to download the images as well as high level instructions to load each image.&lt;br /&gt;
&lt;br /&gt;
Please see the [[Getting started]] page for detailed discussion of what you need (prerequisites) as well as instructions if the high level instructions are insufficient.&lt;br /&gt;
&lt;br /&gt;
== Board Layout ==&lt;br /&gt;
[[Image:ROCKPro64v21REAR.jpg|thumb|right|A hi-res picture of v2.1 rear.]]&lt;br /&gt;
[[Image:FLIR 20220619 125451 686.jpg|thumb|right|A thermal image of v2.1 front (upside-down).]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:ROCKPro64_annotated.jpg|500px|An annotated ROCKPro64]]&lt;br /&gt;
&lt;br /&gt;
=== Main Chips ===&lt;br /&gt;
* RK3399 system-on-chip (1)&lt;br /&gt;
* LPDDR4 SDRAM 1 (18)&lt;br /&gt;
* LPDDR4 SDRAM 2 (3)&lt;br /&gt;
* SPI NOR flash memory (17)&lt;br /&gt;
* RK808 power management (near 19)&lt;br /&gt;
* RTL8211 ethernet transceiver (near 25)&lt;br /&gt;
* ES8316 Sound Codec (on rear of board)&lt;br /&gt;
* The heatsink mounting holes around the RK3399 are 59 mm apart&lt;br /&gt;
&lt;br /&gt;
=== Switches ===&lt;br /&gt;
&lt;br /&gt;
The Power button (11, SW3): is the same as on your mobile phone - press and release after about 1 second to power on. Press and hold for about 3 seconds to power off.&lt;br /&gt;
&lt;br /&gt;
The Reset button (10, SW901): performs a reset.&lt;br /&gt;
&lt;br /&gt;
The Recover button (28, SW900): used to enter maskrom mode.&lt;br /&gt;
&lt;br /&gt;
=== Connectors, Sockets and Headers ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;line-height: 1.4;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;font-size: .9em;&amp;quot;&lt;br /&gt;
! Diagram !! Schematic&amp;lt;br&amp;gt;designator !! Silkscreen&amp;lt;br&amp;gt;label !! Number&amp;lt;br&amp;gt;of pins !! Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 2  || U39   || PI-2-bus || style=&amp;quot;text-align: center;&amp;quot; | 40 || Pi-2 bus &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 4  || J8    || +FAN- || style=&amp;quot;text-align: center;&amp;quot; | 2 || PWM controlled fan header&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 5  || J10   || SPDIF || style=&amp;quot;text-align: center;&amp;quot; | 3 || SPDIF header&lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 6  || U6    || +RTC- || style=&amp;quot;text-align: center;&amp;quot; | 2 || RTC battery backup header&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7  || U31   || Wifi-BT || style=&amp;quot;text-align: center;&amp;quot; | 16 || SDIO WIFI/BT module-MIMO 2&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 8  || USB3  ||  || style=&amp;quot;text-align: center;&amp;quot; | 9 || USB-3 and USB Type C&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 9  || USB1  ||  || style=&amp;quot;text-align: center;&amp;quot; | 2×4 || Dual USB-2&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 12 || IR1   || IR || style=&amp;quot;text-align: center;&amp;quot; | 3 || infrared receiver socket &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 13 || J16   || Headphone+mic || style=&amp;quot;text-align: center;&amp;quot; | 4 || Headphone + mic 3.5mm jack&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -  || CON16 || GND PWR RST GND || style=&amp;quot;text-align: center;&amp;quot; | 4 || Power &amp;amp; reset, unpopulated&amp;lt;br&amp;gt;header near Headphone jack&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 14 || U29   || EMMC || style=&amp;quot;text-align: center;&amp;quot; | 34 || eMMC connector&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 14* || J13  ||  || style=&amp;quot;text-align: center;&amp;quot; | 13 || TF-card, a.k.a. microSD&amp;lt;br&amp;gt;(* under 14 on the bottom side)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 15 || U30   ||  || style=&amp;quot;text-align: center;&amp;quot; | 14 || SDIO WIFI/BT module-MIMO 1&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 16 || SW4   ||  || style=&amp;quot;text-align: center;&amp;quot; | 2 || Jumper to [[#Disable eMMC]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 19 || J15   || PCI || style=&amp;quot;text-align: center;&amp;quot; | 64 || PCI-express X4 socket&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 20 || J21   || DSI || style=&amp;quot;text-align: center;&amp;quot; | 30 || DSI&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 21 || J22   || EDP || style=&amp;quot;text-align: center;&amp;quot; | 30 || LCD EDP&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 22 || CON1  || TP || style=&amp;quot;text-align: center;&amp;quot; | 6 || touch panel connector&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 23 || CON15 ||  || style=&amp;quot;text-align: center;&amp;quot; | 4 || DC out for SATA disk cable&amp;lt;br&amp;gt;(direct connect from DC-IN)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 24 || J11   || DC-IN || style=&amp;quot;text-align: center;&amp;quot; | 2 || Power input, positive tip;&amp;lt;br&amp;gt;12V/3A (minimum) recommended&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 25 || U32   ||  || style=&amp;quot;text-align: center;&amp;quot; | 8 || 8P8C (often referred to as 'RJ45')&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 26 || J14   ||  || style=&amp;quot;text-align: center;&amp;quot; | 19 || HDMI&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 27 || J17   || MIPI CAM || style=&amp;quot;text-align: center;&amp;quot; | 32 || MIPI-1&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 29 || J19   || MIPI CAM || style=&amp;quot;text-align: center;&amp;quot; | 32 || MIPI-2&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 30 || J18   || CIF || style=&amp;quot;text-align: center;&amp;quot; | 26 || CIF&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== LEDs ===&lt;br /&gt;
&lt;br /&gt;
A green LED next to the 12V input barrel connector will light as long as there is 12V applied to the connector. (Even if the RockPro64 is powered off.)&lt;br /&gt;
&lt;br /&gt;
A white LED behind the reset button will light as long as the RockPro64 is running (it comes on a few seconds after power on, when control is passed to the operating system.)&lt;br /&gt;
&lt;br /&gt;
A red LED behind the reset button is DIY - it is lit for example if the board is in OTG mode with an Ayufan image, or if an Android image is in standby mode.&lt;br /&gt;
&lt;br /&gt;
Yellow and green LEDs on the LAN socket behave in a standard way.&lt;br /&gt;
&lt;br /&gt;
=== Jumpers ===&lt;br /&gt;
They are used for boot device selection, as described in the following section.&lt;br /&gt;
&lt;br /&gt;
==== Disable eMMC ====&lt;br /&gt;
&lt;br /&gt;
There is an unlabelled (on the PCB silk-screen) 2-pin jumper (16) between the eMMC socket (14) and the SPI chip (17). It is designated as SW4 on the [[#Board Information, Schematics and Certifications | schematic diagram]]. The default condition is OPEN (no jumper). It is useful for controlling the boot as follows:&lt;br /&gt;
&lt;br /&gt;
Default boot device (with no SPI software) is eMMC, then SDcard. If both the eMMC and the SDcard contain bootable images then the eMMC can be disabled by installing the jumper. This completely removes the eMMC from the resulting OS. If you wish the eMMC to be visible in the booted OS the jumper should be removed 2 seconds after applying power (and before the white LED comes on).&lt;br /&gt;
&lt;br /&gt;
The possible combinations are summarised in the table below.&lt;br /&gt;
&lt;br /&gt;
* 1 = present&lt;br /&gt;
* 0 = not present&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
! µSD !! eMMC !! SW4 !! boot from&lt;br /&gt;
|-&lt;br /&gt;
| 0 || 0 || 0 || unsupported&lt;br /&gt;
|-&lt;br /&gt;
| 0 || 0 || 1 || unsupported&lt;br /&gt;
|-&lt;br /&gt;
| 0 || 1 || 0 || eMMC&lt;br /&gt;
|-&lt;br /&gt;
| 0 || 1 || 1 || unsupported&lt;br /&gt;
|-&lt;br /&gt;
| 1 || 0 || 0 || SDCard&lt;br /&gt;
|-&lt;br /&gt;
| 1 || 0 || 1 || SDCard&lt;br /&gt;
|-&lt;br /&gt;
| 1 || 1 || 0 || eMMC&lt;br /&gt;
|-&lt;br /&gt;
| 1 || 1 || 1 || SDCard&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Disable SPI (while booting) ====&lt;br /&gt;
There is a second possibility to jumper your ROCKPro64: If you mess-up your SPI and are unable to boot, jumpering pins 23 (CLK) and 25 pin (GND) on the PI-2-bus header will disable the SPI as a boot device. (This was taken from the IRC logs, 09 August 2018 @ 17:23) You have to remove the jumper 2 seconds after having started your RP64 (before the white LED turns ON) otherwise the SPI will be missing and you won't be able to flash it.&lt;br /&gt;
Ayufan images contain (at the moment) only one script for the SPI and the RP64, it's &amp;quot;rockpro64_reset_spi_flash&amp;quot;. Other SPI scripts are dedicated to the R64 (as it is written on the name) and it will mess-up your RP64 SPI if you use them.&lt;br /&gt;
&lt;br /&gt;
== Hardware Compatibility ==&lt;br /&gt;
&lt;br /&gt;
The hardware compatibility list can be found under [[ROCKPro64 Hardware compatibility]].&lt;br /&gt;
&lt;br /&gt;
== Board Features ==&lt;br /&gt;
&lt;br /&gt;
This section outlines the most important characteristics of the board and its components.&lt;br /&gt;
&lt;br /&gt;
=== SoC and Memory Specification ===&lt;br /&gt;
* Based on Rockchip RK3399&lt;br /&gt;
[[File:Rockchip_RK3399.png|right]]&lt;br /&gt;
&lt;br /&gt;
==== CPU Architecture ====&lt;br /&gt;
&lt;br /&gt;
* [https://developer.arm.com/products/processors/cortex-a/cortex-a72 Dual-core Cortex-A72 up to 2.0GHz CPU]&lt;br /&gt;
* [https://developer.arm.com/products/processors/cortex-a/cortex-a53 Quad-core Cortex-A53 up to 1.5GHz CPU]&lt;br /&gt;
* big.LITTLE architecture: Dual Cortex-A72 + Quad Cortex-A53, 64-bit CPU&lt;br /&gt;
* Cortex-A72:&lt;br /&gt;
** 1-4x Symmetrical Multiprocessing (SMP) within a single processor cluster, and multiple coherent SMP processor clusters through AMBA 5 CHI or AMBA 4 ACE technology&lt;br /&gt;
** AArch64 for 64-bit support and new architectural features&lt;br /&gt;
** L1 cache 48KB Icache and 32KB Dcache for each A72 &lt;br /&gt;
** L2 cache 1024KB for big cluster &lt;br /&gt;
** DSP &amp;amp; SIMD extensions&lt;br /&gt;
** VFPv4 floating point&lt;br /&gt;
** Hardware virtualization support&lt;br /&gt;
* Cortex-A53:&lt;br /&gt;
** L1 cache 32KB Icache and 32KB Dcache for each A53&lt;br /&gt;
** L2 cache 512KB for little cluster &lt;br /&gt;
* Full implementation of the ARM architecture v8-A instruction set&lt;br /&gt;
* ARM Neon Advanced SIMD (single instruction, multiple data) support for accelerated media and signal processing computation&lt;br /&gt;
* ARMv8 Cryptography Extensions&lt;br /&gt;
* In-order pipeline with symmetric dual-issue of most instructions&lt;br /&gt;
* Include VFP v3 hardware to support single and double-precision operations&lt;br /&gt;
* TrustZone technology support&lt;br /&gt;
* Full CoreSight debug solution&lt;br /&gt;
* One isolated voltage domain to support DVFS&lt;br /&gt;
&lt;br /&gt;
==== GPU Architecture ====&lt;br /&gt;
&lt;br /&gt;
* [https://developer.arm.com/products/graphics-and-multimedia/mali-gpus/mali-t860-and-mali-t880-gpus ARM Mali-T860MP4 Quad-core GPU]&lt;br /&gt;
* The highest performance GPUs built on Arm Mali’s famous Midgard architecture, the Mali-T860 GPU is designed for complex graphics use cases and provides stunning visuals for UHD content.&lt;br /&gt;
* Frequency: 650MHz &lt;br /&gt;
* Throughput: 1300Mtri/s, 10.4Gpix/s &lt;br /&gt;
* OpenGL® ES 1.1, 1.2, 2.0, 3.1, 3.2, Vulkan 1.0*, OpenCL™ 1.1, 1.2, DirectX® 11 FL11_1, RenderScript™.&lt;br /&gt;
&lt;br /&gt;
==== System Memory ====&lt;br /&gt;
* LPDDR4 RAM Memory Variants: Dual Channels 2GB and 4GB.&lt;br /&gt;
* Storage Memory: 128Mb built-in SPI Flash memory (as at August 2018 only support for USB boot).&lt;br /&gt;
&lt;br /&gt;
=== Display ===&lt;br /&gt;
&lt;br /&gt;
* Dual VOP: one supports resolutions up to 4096x2160 and [https://www.arm.com/why-arm/technologies/graphics-technologies/arm-frame-buffer-compression AFBC]; the other supports resolutions up to 2560x1600&lt;br /&gt;
* Dual channel MIPI-DSI (4 lanes per channel)&lt;br /&gt;
* eDP 1.3 (4 lanes with 10.8Gbps) to support displays, with PSR&lt;br /&gt;
* Digital Video port up to 4Kp60&lt;br /&gt;
* DisplayPort 1.2 (4 lanes, up to 4K 60Hz)&lt;br /&gt;
* Supports Rec.2020 and conversion to Rec.709 &lt;br /&gt;
&lt;br /&gt;
=== Video ===&lt;br /&gt;
&lt;br /&gt;
* Digital Video output up to 4K@60Hz&lt;br /&gt;
* 4K HDR @ 30fps&lt;br /&gt;
* H.264/AVC Base/Main/High/High10 profile @ level 5.1; up to 4Kx2K @ 60fps&lt;br /&gt;
* H.265/HEVC Main/Main10 profile @ level 5.1 High-tier; up to 4Kx2K @ 60fps&lt;br /&gt;
* VP9, up to 4Kx2K @ 60fps&lt;br /&gt;
* MPEG-1, ISO/IEC 11172-2, up to 1080P @ 60fps&lt;br /&gt;
* MPEG-2, ISO/IEC 13818-2, SP@ML, MP@HL, up to 1080P @ 60fps&lt;br /&gt;
* MPEG-4, ISO/IEC 14496-2, SP@L0-3, ASP@L0-5, up to 1080P @ 60fps&lt;br /&gt;
* VC-1, SP@ML, MP@HL, AP@L0-3, up to 1080P @ 60fps&lt;br /&gt;
* MVC is supported based on H.264 or H.265, up to 1080P @ 60fps&lt;br /&gt;
&lt;br /&gt;
=== Audio ===&lt;br /&gt;
&lt;br /&gt;
* 3.5mm Phone Jack&lt;br /&gt;
* 3-pin S/PDIF header &lt;br /&gt;
* Audio via Digital Video port&lt;br /&gt;
&lt;br /&gt;
=== Camera ===&lt;br /&gt;
&lt;br /&gt;
* Dual MIPI CSI，dual ISP, maximum input resolution of 13M pixels &lt;br /&gt;
&lt;br /&gt;
=== Network ===&lt;br /&gt;
&lt;br /&gt;
* 10/100/1000Mbps Ethernet - Capable of pushing 941 MBit/s in iperf3&lt;br /&gt;
* Wi-Fi 802.11 ac/a/b/g/n with Bluetooth 4.01 (old version with 2x2) / Bluetooth 5 (new version with 1x1) (optional)&lt;br /&gt;
&lt;br /&gt;
=== Storage ===&lt;br /&gt;
&lt;br /&gt;
* microSD - bootable, support SDHC and SDXC, storage up to 256GB&lt;br /&gt;
* eMMC - bootable (optional eMMC Module)&lt;br /&gt;
* 1 USB3.0 Host port&lt;br /&gt;
* 1 USB type C OTG port with DP output &lt;br /&gt;
* 2 USB2.0 Dedicated Host ports&lt;br /&gt;
&lt;br /&gt;
=== Expansion Ports ===&lt;br /&gt;
&lt;br /&gt;
* 2x20 pins &amp;quot;Pi2&amp;quot; GPIO Header&lt;br /&gt;
* PCIe 2.1 (4 full-duplex lanes with 20Gbps) x4 open ended port&lt;br /&gt;
&lt;br /&gt;
==== GPIO Pins ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable plainrowheaders&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;width:20em;&amp;quot; | Assigned To&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Pin Nr.&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Pin Nr.&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;width:20em;&amp;quot; | Assigned To&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| 3.3 V&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 1&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 2&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| 5 V&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| GPIO1_C4 (I2C8_SDA) &amp;lt;sup style=&amp;quot;font-style:italic;color:green&amp;quot;&amp;gt;a&amp;lt;/sup&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 3&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 4&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| 5 V&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| GPIO1_C5 (I2C8_SCL) &amp;lt;sup style=&amp;quot;font-style:italic;color:green&amp;quot;&amp;gt;a&amp;lt;/sup&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 5&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 6&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GND&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| GPIO4_D0 (CPU_GPCLK)&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 7&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 8&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GPIO4_C4 (UART2_TX)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| GND&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 9&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 10&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GPIO4_C3 (UART2_RX)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| GPIO1_C6&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 11&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 12&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GPIO3_D0 (I2S0_CLK)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| GPIO1_C2&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 13&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 14&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GND&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| GPIO1_A1&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 15&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 16&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GPIO1_A4&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| 3.3 V&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 17&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 18&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GPIO4_C5 [SPDIF]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| [UART4_TX] GPIO1_B0 (SPI1_TXD)&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 19&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 20&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GND&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| [UART4_RX] GPIO1_A7 (SPI1_RXD)&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 21&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 22&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GPIO4_D1&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| GPIO1_B1 (SPI1_CLK)&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 23&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 24&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GPIO1_B2 (SPI1_CSN0)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| GND&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 25&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 26&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GPIO1_B5&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| GPIO1_B3 (I2C4_SDA)&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 27&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 28&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GPIO1_B4 (I2C4_SCL)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| GPIO4_D3&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 29&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 30&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GND&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| GPIO4_D4&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 31&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 32&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GPIO3_D4 (I2S0_SDI1SDO3)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| GPIO3_D5 (I2S0_SDI2SDO2)&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 33&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 34&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GND&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| GPIO3_D2 (I2S0_LRCKTX)&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 35&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 36&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GPIO3_D6 (I2S0_SDI3SDO1)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| GPIO3_D1 (I2S0_LRCKRX)&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 37&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 38&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GPIO3_D3 (I2S0_SDI0)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| GND&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 39&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 40&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GPIO3_D7 (I2S0_SDO0)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== Notes =====&lt;br /&gt;
&lt;br /&gt;
* '''a:''' pulled high to 3.3V through 2.2kOhm resistor&lt;br /&gt;
&lt;br /&gt;
===== Linux /dev/gpiochip Assignments =====&lt;br /&gt;
&lt;br /&gt;
{| class=wikitable style=&amp;quot;max-width: 1000px; text-align: center;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | Pin Nr.&lt;br /&gt;
| 3 || 5 || 7 || 8 || 10 || 11 || 12 || 13 || 15 || 16 || 18 || 19 || 21 || 22 || 23 || 24 || 26 || 27 || 28 || 29 || 31 || 32 || 33 || 35 || 36 || 37 || 38 || 40&lt;br /&gt;
|- &lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | Chip&lt;br /&gt;
| 1 || 1 || 4 || 4 || 4 || 1 || 3 || 1 || 1 || 1 || 4 || 1 || 1 || 4 || 1 || 1 || 1 || 1 || 1 || 4 || 4 || 3 || 3 || 3 || 3 || 3 || 3 || 3&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | Line&lt;br /&gt;
| 20 || 21 || 24 || 20 || 19 || 22 || 24 || 18 || 1 || 4 || 21 || 8 || 7 || 25 || 9 || 10 || 13 || 11 || 12 || 27 || 28 || 28 || 29 || 26 || 30 || 25 || 27 || 31&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
On Linux, using the new &amp;lt;code&amp;gt;/dev/gpiochip&amp;lt;/code&amp;gt; API, the &amp;lt;code&amp;gt;''n''&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;GPIO''n''_''XX''&amp;lt;/code&amp;gt; appears to correlate to the number of the &amp;lt;code&amp;gt;/dev/gpiochip''n''&amp;lt;/code&amp;gt;, and the &amp;lt;code&amp;gt;''XX''&amp;lt;/code&amp;gt; to the definition &amp;lt;code&amp;gt;RK_P''XX''&amp;lt;/code&amp;gt; of lines in &amp;lt;code&amp;gt;include/dt-bindings/pinctrl/rockchip.h&amp;lt;/code&amp;gt; of the Linux kernel source. Having these named in the dts would be nice.&lt;br /&gt;
&lt;br /&gt;
You can use [https://git.kernel.org/pub/scm/libs/libgpiod/libgpiod.git/ libgpiod] to drive them, and test them with the included tools (&amp;lt;code&amp;gt;gpioinfo&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;gpioset&amp;lt;/code&amp;gt;, ...)&lt;br /&gt;
&lt;br /&gt;
For example, &amp;lt;code&amp;gt;gpioset 4 25=1&amp;lt;/code&amp;gt; (run as root) would turn pin 22 on. Do beware that poking the wrong GPIO pin can lock up your system.&lt;br /&gt;
&lt;br /&gt;
The conversion table at right is also available as a [https://gist.github.com/CounterPillow/fe066655bf2d929148fe6eb3f15b1dd5 C header file].&lt;br /&gt;
&lt;br /&gt;
=== Working Features ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! Feature/Option&lt;br /&gt;
! Android&lt;br /&gt;
! Android Version&lt;br /&gt;
! Linux&lt;br /&gt;
! Linux Version&lt;br /&gt;
! Test/Verify Steps&lt;br /&gt;
! Notes&lt;br /&gt;
! Product Link&lt;br /&gt;
|-&lt;br /&gt;
| PINE64 LCD Touchscreen (Screen/Touch)&lt;br /&gt;
| Yes/Yes&lt;br /&gt;
| &lt;br /&gt;
| No/No&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| Maybe [https://github.com/avafinger/pine64-touchscreen this] will help get this working?&lt;br /&gt;
| [https://pine64.com/?product=7-lcd-touch-screen-panel 7″ LCD Touch Screen Panel]&lt;br /&gt;
|-&lt;br /&gt;
| Wireless&lt;br /&gt;
&amp;lt;small&amp;gt;ROCKPro64 2×2 MIMO Dual Band WiFi 802.11AC / Bluetooth 4.2 Module (old)&lt;br /&gt;
ROCKPro64 1x1 Dual Band WiFi 802.11AC / Bluetooth 5.0 Module (new)&amp;lt;/small&amp;gt;&lt;br /&gt;
| Yes/Yes&lt;br /&gt;
| &lt;br /&gt;
| No/Yes*&lt;br /&gt;
| &lt;br /&gt;
| For the &amp;quot;new&amp;quot; ROCKPro64 WIFI module: Verified with Manjaro ARM (kernel 6.2.5). A config file (&amp;quot;firmware file&amp;quot;) is needed at &amp;lt;code&amp;gt;/lib/firmware/brcm/brcmfmac43455-sdio.txt&amp;lt;/code&amp;gt;. See here for the file contents and details: https://askubuntu.com/a/1211986.&lt;br /&gt;
| In 0.7.9 Ayufan linux releases this is deliberately disabled for stability reasons. After testing for a few hours, on Manjaro ARM (kernel 6.2.5), I did not experience any stability issues (WIFI stayed connected). On a 5GHz network (802.11AC), I was able to get about 120Mbps using the &amp;quot;new&amp;quot; ROCKPro64 WIFI module.&lt;br /&gt;
| [https://store.pine64.org/product/rockpro64-1x1-dual-band-wifi-802-11acbluetooth-5-0-module ROCKPro64 1x1 Dual Band WiFi 802.11AC / Bluetooth 5.0 Module]&lt;br /&gt;
|-&lt;br /&gt;
| USB OTG&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| use this script: [https://github.com/ayufan-rock64/linux-package/blob/master/root-rockpro64/usr/local/sbin/rockpro64_enable_otg.sh rockpro64_enable_otg.sh], then configure ip on usb0: ifconfig usb0 169.169.222.222 and run iperf, you should likely see about 200-300MB/s&lt;br /&gt;
| [[ROCKPro64#OTG_mode]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| USB Mass Storage USB2/USB3&lt;br /&gt;
| Yes/yes&lt;br /&gt;
| &lt;br /&gt;
| Yes/Yes&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Dedicated Fan Power (pwm1)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| Yes&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| You might want to use [https://github.com/tuxd3v/ats ATS].&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| GPIO pins (raw or via RPI python scripts)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| Check out [https://forum.frank-mankel.org/topic/292/rockpro64-rp64-gpio/2 what Frank Mankel has done].&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| MIPI CSI Camera 1 and 2&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| eDP&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| HDMI Audio&lt;br /&gt;
| Yes&lt;br /&gt;
| 7.1.2&lt;br /&gt;
| Yes&lt;br /&gt;
| 4.4.132-1083 - 4.4.138-1100&lt;br /&gt;
| &lt;br /&gt;
| Stopped working in 4.4.154.1105. Ayufan is looking into it. This is working in Manjaro ARM (kernel 6.2.5). Select the &amp;lt;code&amp;gt;Analog Output (Built-in Audio Stereo)&amp;lt;/code&amp;gt; option in the audio output device selection window (either use &amp;lt;code&amp;gt;pavucontrol&amp;lt;/code&amp;gt; or the volume button in the KDE desktop). Despite the slightly misleading name, audio does go through the HDMI port. See here for details: https://forum.manjaro.org/t/no-hdmi-audio-on-rockpro64/25595/2.&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 3.5mm Audio/Mic&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| USB-C Host&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Display via USB-C&lt;br /&gt;
| Yes&lt;br /&gt;
| 7.x and 8.x&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| eDP via USB-C per tillim. No sound on Android 7.x. Sound does work on Android 8.x&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| ROCKPro64 PLAYBOX ENCLOSURE&lt;br /&gt;
| N/A&lt;br /&gt;
| &lt;br /&gt;
| N/A&lt;br /&gt;
| &lt;br /&gt;
| N/A&lt;br /&gt;
| Ventilation does not exist, thus requires manual changes to add venting. Case should be modified to account power adapter not being centered in cut holes. Opening the case once close without modifying it first is near impossible without special tools. Graphene heatsink is included and does well for Linux but not Android.&lt;br /&gt;
| https://pine64.com/?product=rockpro64-playbox-enclosure&lt;br /&gt;
|-&lt;br /&gt;
| ROCKPro64 30mm Tall Profile Heatsink&lt;br /&gt;
| N/A&lt;br /&gt;
| &lt;br /&gt;
| N/A&lt;br /&gt;
| &lt;br /&gt;
| N/A&lt;br /&gt;
| &lt;br /&gt;
| https://store.pine64.org/?product=rockpro64-heatsink&lt;br /&gt;
|-&lt;br /&gt;
| ROCKPro64 20mm Mid Profile Heatsink&lt;br /&gt;
| N/A&lt;br /&gt;
| &lt;br /&gt;
| N/A&lt;br /&gt;
| &lt;br /&gt;
| N/A&lt;br /&gt;
| &lt;br /&gt;
| https://pine64.com/?product=rockpro64-20mm-mid-profile-heatsink&lt;br /&gt;
|-&lt;br /&gt;
| Fan For ROCKPro64 20mm Mid Profile Heatsink&lt;br /&gt;
| N/A&lt;br /&gt;
| &lt;br /&gt;
| N/A&lt;br /&gt;
| &lt;br /&gt;
| N/A&lt;br /&gt;
| You might want to use [https://github.com/tuxd3v/fanctl fanctl] to control the fan while keeping your CPU cool&lt;br /&gt;
| https://pine64.com/?product=fan-for-rockpro64-20mm-mid-profile-heatsink&lt;br /&gt;
|-&lt;br /&gt;
| HDMI output 4K@60Hz&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| PCIe 2.1&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Real Time Clock (RTC) battery backup&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| https://store.pine64.org/?product=rtc-backup-battery-cr-battery&lt;br /&gt;
|-&lt;br /&gt;
| Boot from USB/PXE&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
RockChip themselves have tables of supported features at 4.4 and mainline kernel versions [http://opensource.rock-chips.com/wiki_Status_Matrix in their wiki here].&lt;br /&gt;
&lt;br /&gt;
== Board Information, Schematics and Certifications ==&lt;br /&gt;
* Board Dimensions: 133mm x 80mm x 19mm&lt;br /&gt;
* Input Power: +12V @3A/5A with 5.5mm/2.1mm Type M Barrel type DC connector&lt;br /&gt;
* [https://files.pine64.org/doc/rockpro64/rockpro64_v21-SCH.pdf ROCKPro64 Schematic v2.1 (Second Batch Production Release)]&lt;br /&gt;
** [https://files.pine64.org/doc/rockpro64/RockPro64_v21_Boardoutline-top.dxf ROCKPro64 v2.1 Board Top Outline in AutoCad DXF format]&lt;br /&gt;
** [https://files.pine64.org/doc/rockpro64/RockPro64_v21_Boardoutline-bottom.dxf ROCKPro64 v2.1 Board Bottom Outline in AutoCad DXF format]&lt;br /&gt;
** [https://files.pine64.org/doc/rockpro64/RockPro64_v21_Boardoutline-top.pdf ROCKPro64 v2.1 Board Top Outline in PDF format]&lt;br /&gt;
** [https://files.pine64.org/doc/rockpro64/RockPro64_v21_Boardoutline-bottom.pdf ROCKPro64 v2.1 Board Bottom Outline in PDF format]&lt;br /&gt;
* [https://files.pine64.org/doc/rockpro64/rockpro64_v20-SCH.pdf ROCKPro64 Schematic v2.0 (Pilot Production Release)]&lt;br /&gt;
** [https://files.pine64.org/doc/rockpro64/ROCKPRo64%20Engineering%20Change%20Notice%2020180628RP01.pdf Engineering Change Notice for v2.0 to turn on 3.3V power on PCIe]&lt;br /&gt;
* [https://files.pine64.org/doc/rockpro64/rockpro64_wifi_ap6359SA.pdf ROCKPro64 AP6359SA Wifi/BT Schematic]&lt;br /&gt;
* [https://files.pine64.org/doc/rockpro64/Rockpro64%20Pi-2%20Connector%20ver0.2.png ROCKPro64 Pi-2 Pin assignment and definition]&lt;br /&gt;
* [https://files.pine64.org/doc/rockpro64/RockPro-3D-model.zip ROCKPro64 3D model]&lt;br /&gt;
&lt;br /&gt;
Certifications:&lt;br /&gt;
&lt;br /&gt;
* Disclaimer: Please note that PINE64 SBC is not a &amp;quot;final&amp;quot; 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.&lt;br /&gt;
* [https://files.pine64.org/doc/cert/ROCKPro64%20FCC%20SDOC%20Certificate.pdf ROCKPro64 FCC Certificate]&lt;br /&gt;
* [https://files.pine64.org/doc/cert/ROCKPro64%20CE-EMC%20Certificate.pdf ROCKPro64 CE Certificate]&lt;br /&gt;
* [https://files.pine64.org/doc/cert/ROCKPro64%20ROHS%20%20SEC180529404001E%20Report.pdf ROCKPro64 RoHS Report]&lt;br /&gt;
&lt;br /&gt;
== Datasheets for Components and Peripherals ==&lt;br /&gt;
&lt;br /&gt;
Rockchip RK3399 SoC information:&lt;br /&gt;
&lt;br /&gt;
* [https://www.rock-chips.com/a/en/products/RK33_Series/2016/0419/758.html Rockchip RK3399 SoC Brief]&lt;br /&gt;
* [http://opensource.rock-chips.com/images/d/d7/Rockchip_RK3399_Datasheet_V2.1-20200323.pdf Rockchip RK3399 Datasheet V2.1]&lt;br /&gt;
* [http://opensource.rock-chips.com/images/e/ee/Rockchip_RK3399TRM_V1.4_Part1-20170408.pdf Rockchip RK3399 Technical Reference Manual part 1]&lt;br /&gt;
* [https://files.pine64.org/doc/datasheet/rockpro64/RK808%20datasheet%20V0.8.pdf Rockchip RK808 Datasheet V0.8]&lt;br /&gt;
&lt;br /&gt;
LPDDR4 (200 Balls) SDRAM:&lt;br /&gt;
&lt;br /&gt;
* [https://files.pine64.org/doc/datasheet/rockpro64/SM512M32Z01MD2BNP(200BALL).pdf Micron LPDDR4 Mobile LPDDR4 Datasheet]&lt;br /&gt;
&lt;br /&gt;
eMMC information:&lt;br /&gt;
&lt;br /&gt;
* [https://files.pine64.org/doc/rock64/PINE64_eMMC_Module_20170719.pdf PINE64 eMMC module schematic]&lt;br /&gt;
* [https://files.pine64.org/doc/rock64/usb%20emmc%20module%20adapter%20v2.pdf PINE64 USB adapter for eMMC module V2 schematic]&lt;br /&gt;
* [https://files.pine64.org/doc/rock64/USB%20adapter%20for%20eMMC%20module%20PCB.tar PINE64 USB adapter for eMMC module PCB in JPEG]&lt;br /&gt;
* [https://files.pine64.org/doc/datasheet/pine64/E-00517%20FORESEE_eMMC_NCEMAM8B-16G%20SPEC.pdf 16GB Foresee eMMC Datasheet]&lt;br /&gt;
* [https://files.pine64.org/doc/datasheet/pine64/SDINADF4-16-128GB-H%20data%20sheet%20v1.13.pdf 32GB/64GB/128GB SanDisk eMMC Datasheet]&lt;br /&gt;
&lt;br /&gt;
SPI NOR Flash information:&lt;br /&gt;
&lt;br /&gt;
* [https://files.pine64.org/doc/datasheet/pine64/w25q128jv%20spi%20revc%2011162016.pdf WinBond 128Mb SPI Flash Datasheet]&lt;br /&gt;
* [https://files.pine64.org/doc/datasheet/pine64/GD25Q128C-Rev2.5.pdf GigaDevice 128Mb SPI Flash Datasheet]&lt;br /&gt;
&lt;br /&gt;
Heatsink related info:&lt;br /&gt;
&lt;br /&gt;
* [https://files.pine64.org/doc/datasheet/rockpro64/Rockpro%20Passive%20Heatsink%20Spec.jpg ROCKPro64 Passive Heatsink Dimension Drawing]&lt;br /&gt;
* [https://files.pine64.org/doc/datasheet/rockpro64/LMS-TC150%20Silicon%20Thermal%20Pad.pdf Heatsink Thermal Pad Specification]&lt;br /&gt;
&lt;br /&gt;
Wireless related info:&lt;br /&gt;
&lt;br /&gt;
* AMPAK AP6256 11AC WiFi + Bluetooth5.0 Datasheet [https://files.pine64.org/doc/datasheet/rockpro64/AP6256%20datasheet_V1.3_12202017.pdf (v. 1.3)] [http://files.pine64.org/doc/datasheet/PinebookPro/AP6256%20datasheet_V1.7_12282018.pdf (v. 1.7)]&lt;br /&gt;
&lt;br /&gt;
Ethernet related info:&lt;br /&gt;
&lt;br /&gt;
* [https://files.pine64.org/doc/datasheet/rock64/RTL8211F-CG-Realtek.pdf Realtek RTL8211F 10/100/1000M Ethernet Transceiver Datasheet]&lt;br /&gt;
&lt;br /&gt;
Peripheral related info:&lt;br /&gt;
&lt;br /&gt;
* [https://files.pine64.org/doc/datasheet/rockpro64/ASM1061_Data%20Sheet_R1_8.pdf asmedia ASM1061 PCIe SATA 2.0 Datasheet]&lt;br /&gt;
&lt;br /&gt;
Remote control button mapping:&lt;br /&gt;
&lt;br /&gt;
* [https://files.pine64.org/doc/Pine%20A64%20Schematic/remote-wit-logo.jpg Official Remote Control for the PINE64 Button Mapping]&lt;br /&gt;
&lt;br /&gt;
Audio Codec (ES8316) (under board):&lt;br /&gt;
&lt;br /&gt;
* [http://everest-semi.com/pdf/ES8316%20PB.pdf Everest ES8316 Audio Codec]&lt;br /&gt;
&lt;br /&gt;
PWM controlled fan, SPDIF, and RTC Battery Backup headers:&lt;br /&gt;
&lt;br /&gt;
* [https://www.jst-mfg.com/product/pdf/eng/ePH.pdf JST-PH connector]&lt;br /&gt;
&lt;br /&gt;
== Useful Articles and Blog Posts ==&lt;br /&gt;
&lt;br /&gt;
If you want to dive in to the ecosystem, here's a short list of various articles and blog posts that can help you set up your soft- or hardware development environment.&lt;br /&gt;
&lt;br /&gt;
* [https://stikonas.eu/wordpress/2019/09/15/blobless-boot-with-rockpro64/ Blobless boot with RockPro64 by Andrius Štikonas]&lt;br /&gt;
&lt;br /&gt;
* [https://marcin.juszkiewicz.com.pl/2020/06/17/ebbr-on-rockpro64/ EBBR on RockPro64 by Marcin Juszkiewicz]&lt;br /&gt;
&lt;br /&gt;
* [[ROCKPro64 Device Tree Overlays on Mainline]]&lt;br /&gt;
&lt;br /&gt;
== The NAS Case for the ROCKPro64 ==&lt;br /&gt;
&lt;br /&gt;
[[file:NASCaseMain.png|thumb|right|Front View of the PINE64 NAS Case for the ROCKPro64]]&lt;br /&gt;
&lt;br /&gt;
Please [[NASCase|follow this this link]] for '''detailed instructions on how to assemble the ROCKPro64 NAS Case'''.&lt;br /&gt;
&lt;br /&gt;
The NAS Case instructions also contains detailed information about:&lt;br /&gt;
*what the NAS Case ships with&lt;br /&gt;
*What additional things you need to purchase for your NAS Case&lt;br /&gt;
*What optional things you can consider purchasing for your NAS build&lt;br /&gt;
*What OS Image we recommend you use for your NAS build&lt;br /&gt;
*IO accessibility after installing the ROCKPro64 into the NAS Case&lt;br /&gt;
*[https://files.pine64.org/doc/rockpro64/ROCKPro64%20NAS%20Case%20Exploded%20View%20Diagram.pdf NAS Case Exploded View]&lt;br /&gt;
*[https://files.pine64.org/doc/rockpro64/NAS%20Case%20Drawing.dwg NAS Case Drawing]&lt;br /&gt;
&lt;br /&gt;
== 3D printable ITX mounting brackets ==&lt;br /&gt;
&lt;br /&gt;
[[file:ITX-Bracket-Mounted.jpg|300px|thumb|right|A Quartz64-A mounted in an ITX case using 3D printed brackets]]&lt;br /&gt;
&lt;br /&gt;
Allows mounting a ROCKPro64-A or Quartz64-A board inside a regular PC case that conforms to the ITX standard, using 3D printed brackets:&lt;br /&gt;
&lt;br /&gt;
* AMF/STL/STEP files plus the original FreeCAD file used to create the models [[File:RP64-A_Q64-A_to_ITX_mounting_brackets.zip]]&lt;br /&gt;
* Make sure to flip the two brackets by 180 degrees on one of the horizontal axes (X/Y) in your slicer of choice before printing to avoid unnecessary supports&lt;br /&gt;
* To allow enough clearance between the board and the bracket you either need to print four copies of the washer model or add nut(s) between the board and the bracket&lt;br /&gt;
* If using nuts for the clearance between the board and the brackets, make sure it creates at least 3.2mm of spacing in between&lt;br /&gt;
* Depending on the accuracy and calibration of a 3D printer, slight deviation can occur and you likely need to manually widen some of the holes to allow screws to fit&lt;br /&gt;
&lt;br /&gt;
== Other Resources ==&lt;br /&gt;
&lt;br /&gt;
* [https://forum.pine64.org/forumdisplay.php?fid=98 ROCKPro64 Forum]&lt;br /&gt;
* [https://pine64.com/?post_type=product PINE64 shop]&lt;br /&gt;
* [https://github.com/rockchip-linux Rockchip Linux GitHub Repo]&lt;br /&gt;
* [http://opensource.rock-chips.com/ Rockchip Open Source Wiki]&lt;br /&gt;
* ExplainingComputers have a video review [https://www.youtube.com/watch?v=CeoNHGFN_30 of the RockPro64 here, including linux first boot.]&lt;br /&gt;
* [[ROCKPro64 Installing Arch Linux ARM]]&lt;br /&gt;
* [[ROCKPro64 Powering From An ATX Supply]]&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
=== No Video or GPU Acceleration on Debian ===&lt;br /&gt;
&lt;br /&gt;
If you can log in through serial but don't get any video or GPU acceleration on Debian, this is likely due to Debian's decision to compile the devfreq governors as loadable modules but not including them early enough for panfrost to be able to be provided with one of them.&lt;br /&gt;
&lt;br /&gt;
The usual sign of this being the case is the following line in your log: &amp;lt;code&amp;gt;[drm:panfrost_devfreq_init [panfrost]] *ERROR* Couldn't initialize GPU devfreq&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Log in to your ROCKPro64, and run the following:&lt;br /&gt;
&lt;br /&gt;
 sudo -i&lt;br /&gt;
 echo governor_simpleondemand &amp;gt;&amp;gt; /etc/initramfs-tools/modules &amp;amp;&amp;amp; update-initramfs -u -k $(uname -r)&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
Then, reboot.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:ROCKPro64]] [[Category:Rockchip RK3399]]&lt;/div&gt;</summary>
		<author><name>I3master</name></author>
	</entry>
	<entry>
		<id>https://wiki.pine64.org/index.php?title=ROCKPro64&amp;diff=19472</id>
		<title>ROCKPro64</title>
		<link rel="alternate" type="text/html" href="https://wiki.pine64.org/index.php?title=ROCKPro64&amp;diff=19472"/>
		<updated>2023-04-15T16:53:01Z</updated>

		<summary type="html">&lt;p&gt;I3master: Moved the wifi tip into the correct column.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:ROCKPro64v21FRONT.jpg|400px|thumb|right|The ROCKPro64]]&lt;br /&gt;
&lt;br /&gt;
The '''ROCKPro64''' is the most powerful Single Board Computer released by PINE64. It is powered by a Rockchip RK3399 Hexa-Core (dual ARM Cortex A72 and quad ARM Cortex A53) 64-Bit Processor with a Mali T-860 Quad-Core GPU. The key features include a PCIe x4 open ended slot, the use of LPDDR4 RAM, and industry standard heatsink mounting holes.&lt;br /&gt;
&lt;br /&gt;
The ROCKPro64 is equipped with 2GB or 4GB LPDDR4 system memory, and 128Mb SPI boot Flash. There is also an optional eMMC module (up to 128GB) and microSD slot for booting. The board is equipped with 1x USB 3.0 type C Host with DP 1.2, 1x USB 3.0 type A Host, 2x USB 2.0 Host, Gigabit Ethernet, PI-2 GPIO Bus, MiPi DSI interface, eDP interface, touch Panel interface, stereo MiPi CSI interface, as well as many other device interfaces such as UART, SPI, I2C, for makers to integrate with sensors and other peripherals. Many different Operating Systems (OS) are freely available from the open source community, such as Android, Linux (Ubuntu, Debian, Arch), and BSD.&lt;br /&gt;
&lt;br /&gt;
== Getting Started ==&lt;br /&gt;
&lt;br /&gt;
The article [[ROCKPro64 Getting Started]] gives important information to get the board up and running.&lt;br /&gt;
&lt;br /&gt;
== Software releases ==&lt;br /&gt;
&lt;br /&gt;
In the [[ROCKPro64 Software Releases]] page, you will find a complete list of currently supported Operating System images that work with the ROCKPro64, as well as other related software. The Software Release page has links to download the images as well as high level instructions to load each image.&lt;br /&gt;
&lt;br /&gt;
Please see the [[Getting started]] page for detailed discussion of what you need (prerequisites) as well as instructions if the high level instructions are insufficient.&lt;br /&gt;
&lt;br /&gt;
== Board Layout ==&lt;br /&gt;
[[Image:ROCKPro64v21REAR.jpg|thumb|right|A hi-res picture of v2.1 rear.]]&lt;br /&gt;
[[Image:FLIR 20220619 125451 686.jpg|thumb|right|A thermal image of v2.1 front (upside-down).]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:ROCKPro64_annotated.jpg|500px|An annotated ROCKPro64]]&lt;br /&gt;
&lt;br /&gt;
=== Main Chips ===&lt;br /&gt;
* RK3399 system-on-chip (1)&lt;br /&gt;
* LPDDR4 SDRAM 1 (18)&lt;br /&gt;
* LPDDR4 SDRAM 2 (3)&lt;br /&gt;
* SPI NOR flash memory (17)&lt;br /&gt;
* RK808 power management (near 19)&lt;br /&gt;
* RTL8211 ethernet transceiver (near 25)&lt;br /&gt;
* ES8316 Sound Codec (on rear of board)&lt;br /&gt;
* The heatsink mounting holes around the RK3399 are 59 mm apart&lt;br /&gt;
&lt;br /&gt;
=== Switches ===&lt;br /&gt;
&lt;br /&gt;
The Power button (11, SW3): is the same as on your mobile phone - press and release after about 1 second to power on. Press and hold for about 3 seconds to power off.&lt;br /&gt;
&lt;br /&gt;
The Reset button (10, SW901): performs a reset.&lt;br /&gt;
&lt;br /&gt;
The Recover button (28, SW900): used to enter maskrom mode.&lt;br /&gt;
&lt;br /&gt;
=== Connectors, Sockets and Headers ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;line-height: 1.4;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;font-size: .9em;&amp;quot;&lt;br /&gt;
! Diagram !! Schematic&amp;lt;br&amp;gt;designator !! Silkscreen&amp;lt;br&amp;gt;label !! Number&amp;lt;br&amp;gt;of pins !! Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 2  || U39   || PI-2-bus || style=&amp;quot;text-align: center;&amp;quot; | 40 || Pi-2 bus &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 4  || J8    || +FAN- || style=&amp;quot;text-align: center;&amp;quot; | 2 || PWM controlled fan header&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 5  || J10   || SPDIF || style=&amp;quot;text-align: center;&amp;quot; | 3 || SPDIF header&lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 6  || U6    || +RTC- || style=&amp;quot;text-align: center;&amp;quot; | 2 || RTC battery backup header&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7  || U31   || Wifi-BT || style=&amp;quot;text-align: center;&amp;quot; | 16 || SDIO WIFI/BT module-MIMO 2&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 8  || USB3  ||  || style=&amp;quot;text-align: center;&amp;quot; | 9 || USB-3 and USB Type C&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 9  || USB1  ||  || style=&amp;quot;text-align: center;&amp;quot; | 2×4 || Dual USB-2&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 12 || IR1   || IR || style=&amp;quot;text-align: center;&amp;quot; | 3 || infrared receiver socket &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 13 || J16   || Headphone+mic || style=&amp;quot;text-align: center;&amp;quot; | 4 || Headphone + mic 3.5mm jack&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -  || CON16 || GND PWR RST GND || style=&amp;quot;text-align: center;&amp;quot; | 4 || Power &amp;amp; reset, unpopulated&amp;lt;br&amp;gt;header near Headphone jack&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 14 || U29   || EMMC || style=&amp;quot;text-align: center;&amp;quot; | 34 || eMMC connector&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 14* || J13  ||  || style=&amp;quot;text-align: center;&amp;quot; | 13 || TF-card, a.k.a. microSD&amp;lt;br&amp;gt;(* under 14 on the bottom side)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 15 || U30   ||  || style=&amp;quot;text-align: center;&amp;quot; | 14 || SDIO WIFI/BT module-MIMO 1&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 16 || SW4   ||  || style=&amp;quot;text-align: center;&amp;quot; | 2 || Jumper to [[#Disable eMMC]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 19 || J15   || PCI || style=&amp;quot;text-align: center;&amp;quot; | 64 || PCI-express X4 socket&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 20 || J21   || DSI || style=&amp;quot;text-align: center;&amp;quot; | 30 || DSI&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 21 || J22   || EDP || style=&amp;quot;text-align: center;&amp;quot; | 30 || LCD EDP&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 22 || CON1  || TP || style=&amp;quot;text-align: center;&amp;quot; | 6 || touch panel connector&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 23 || CON15 ||  || style=&amp;quot;text-align: center;&amp;quot; | 4 || DC out for SATA disk cable&amp;lt;br&amp;gt;(direct connect from DC-IN)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 24 || J11   || DC-IN || style=&amp;quot;text-align: center;&amp;quot; | 2 || Power input, positive tip;&amp;lt;br&amp;gt;12V/3A (minimum) recommended&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 25 || U32   ||  || style=&amp;quot;text-align: center;&amp;quot; | 8 || 8P8C (often referred to as 'RJ45')&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 26 || J14   ||  || style=&amp;quot;text-align: center;&amp;quot; | 19 || HDMI&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 27 || J17   || MIPI CAM || style=&amp;quot;text-align: center;&amp;quot; | 32 || MIPI-1&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 29 || J19   || MIPI CAM || style=&amp;quot;text-align: center;&amp;quot; | 32 || MIPI-2&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 30 || J18   || CIF || style=&amp;quot;text-align: center;&amp;quot; | 26 || CIF&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== LEDs ===&lt;br /&gt;
&lt;br /&gt;
A green LED next to the 12V input barrel connector will light as long as there is 12V applied to the connector. (Even if the RockPro64 is powered off.)&lt;br /&gt;
&lt;br /&gt;
A white LED behind the reset button will light as long as the RockPro64 is running (it comes on a few seconds after power on, when control is passed to the operating system.)&lt;br /&gt;
&lt;br /&gt;
A red LED behind the reset button is DIY - it is lit for example if the board is in OTG mode with an Ayufan image, or if an Android image is in standby mode.&lt;br /&gt;
&lt;br /&gt;
Yellow and green LEDs on the LAN socket behave in a standard way.&lt;br /&gt;
&lt;br /&gt;
=== Jumpers ===&lt;br /&gt;
They are used for boot device selection, as described in the following section.&lt;br /&gt;
&lt;br /&gt;
==== Disable eMMC ====&lt;br /&gt;
&lt;br /&gt;
There is an unlabelled (on the PCB silk-screen) 2-pin jumper (16) between the eMMC socket (14) and the SPI chip (17). It is designated as SW4 on the [[#Board Information, Schematics and Certifications | schematic diagram]]. The default condition is OPEN (no jumper). It is useful for controlling the boot as follows:&lt;br /&gt;
&lt;br /&gt;
Default boot device (with no SPI software) is eMMC, then SDcard. If both the eMMC and the SDcard contain bootable images then the eMMC can be disabled by installing the jumper. This completely removes the eMMC from the resulting OS. If you wish the eMMC to be visible in the booted OS the jumper should be removed 2 seconds after applying power (and before the white LED comes on).&lt;br /&gt;
&lt;br /&gt;
The possible combinations are summarised in the table below.&lt;br /&gt;
&lt;br /&gt;
* 1 = present&lt;br /&gt;
* 0 = not present&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
! µSD !! eMMC !! SW4 !! boot from&lt;br /&gt;
|-&lt;br /&gt;
| 0 || 0 || 0 || unsupported&lt;br /&gt;
|-&lt;br /&gt;
| 0 || 0 || 1 || unsupported&lt;br /&gt;
|-&lt;br /&gt;
| 0 || 1 || 0 || eMMC&lt;br /&gt;
|-&lt;br /&gt;
| 0 || 1 || 1 || unsupported&lt;br /&gt;
|-&lt;br /&gt;
| 1 || 0 || 0 || SDCard&lt;br /&gt;
|-&lt;br /&gt;
| 1 || 0 || 1 || SDCard&lt;br /&gt;
|-&lt;br /&gt;
| 1 || 1 || 0 || eMMC&lt;br /&gt;
|-&lt;br /&gt;
| 1 || 1 || 1 || SDCard&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Disable SPI (while booting) ====&lt;br /&gt;
There is a second possibility to jumper your ROCKPro64: If you mess-up your SPI and are unable to boot, jumpering pins 23 (CLK) and 25 pin (GND) on the PI-2-bus header will disable the SPI as a boot device. (This was taken from the IRC logs, 09 August 2018 @ 17:23) You have to remove the jumper 2 seconds after having started your RP64 (before the white LED turns ON) otherwise the SPI will be missing and you won't be able to flash it.&lt;br /&gt;
Ayufan images contain (at the moment) only one script for the SPI and the RP64, it's &amp;quot;rockpro64_reset_spi_flash&amp;quot;. Other SPI scripts are dedicated to the R64 (as it is written on the name) and it will mess-up your RP64 SPI if you use them.&lt;br /&gt;
&lt;br /&gt;
== Hardware Compatibility ==&lt;br /&gt;
&lt;br /&gt;
The hardware compatibility list can be found under [[ROCKPro64 Hardware compatibility]].&lt;br /&gt;
&lt;br /&gt;
== Board Features ==&lt;br /&gt;
&lt;br /&gt;
This section outlines the most important characteristics of the board and its components.&lt;br /&gt;
&lt;br /&gt;
=== SoC and Memory Specification ===&lt;br /&gt;
* Based on Rockchip RK3399&lt;br /&gt;
[[File:Rockchip_RK3399.png|right]]&lt;br /&gt;
&lt;br /&gt;
==== CPU Architecture ====&lt;br /&gt;
&lt;br /&gt;
* [https://developer.arm.com/products/processors/cortex-a/cortex-a72 Dual-core Cortex-A72 up to 2.0GHz CPU]&lt;br /&gt;
* [https://developer.arm.com/products/processors/cortex-a/cortex-a53 Quad-core Cortex-A53 up to 1.5GHz CPU]&lt;br /&gt;
* big.LITTLE architecture: Dual Cortex-A72 + Quad Cortex-A53, 64-bit CPU&lt;br /&gt;
* Cortex-A72:&lt;br /&gt;
** 1-4x Symmetrical Multiprocessing (SMP) within a single processor cluster, and multiple coherent SMP processor clusters through AMBA 5 CHI or AMBA 4 ACE technology&lt;br /&gt;
** AArch64 for 64-bit support and new architectural features&lt;br /&gt;
** L1 cache 48KB Icache and 32KB Dcache for each A72 &lt;br /&gt;
** L2 cache 1024KB for big cluster &lt;br /&gt;
** DSP &amp;amp; SIMD extensions&lt;br /&gt;
** VFPv4 floating point&lt;br /&gt;
** Hardware virtualization support&lt;br /&gt;
* Cortex-A53:&lt;br /&gt;
** L1 cache 32KB Icache and 32KB Dcache for each A53&lt;br /&gt;
** L2 cache 512KB for little cluster &lt;br /&gt;
* Full implementation of the ARM architecture v8-A instruction set&lt;br /&gt;
* ARM Neon Advanced SIMD (single instruction, multiple data) support for accelerated media and signal processing computation&lt;br /&gt;
* ARMv8 Cryptography Extensions&lt;br /&gt;
* In-order pipeline with symmetric dual-issue of most instructions&lt;br /&gt;
* Include VFP v3 hardware to support single and double-precision operations&lt;br /&gt;
* TrustZone technology support&lt;br /&gt;
* Full CoreSight debug solution&lt;br /&gt;
* One isolated voltage domain to support DVFS&lt;br /&gt;
&lt;br /&gt;
==== GPU Architecture ====&lt;br /&gt;
&lt;br /&gt;
* [https://developer.arm.com/products/graphics-and-multimedia/mali-gpus/mali-t860-and-mali-t880-gpus ARM Mali-T860MP4 Quad-core GPU]&lt;br /&gt;
* The highest performance GPUs built on Arm Mali’s famous Midgard architecture, the Mali-T860 GPU is designed for complex graphics use cases and provides stunning visuals for UHD content.&lt;br /&gt;
* Frequency: 650MHz &lt;br /&gt;
* Throughput: 1300Mtri/s, 10.4Gpix/s &lt;br /&gt;
* OpenGL® ES 1.1, 1.2, 2.0, 3.1, 3.2, Vulkan 1.0*, OpenCL™ 1.1, 1.2, DirectX® 11 FL11_1, RenderScript™.&lt;br /&gt;
&lt;br /&gt;
==== System Memory ====&lt;br /&gt;
* LPDDR4 RAM Memory Variants: Dual Channels 2GB and 4GB.&lt;br /&gt;
* Storage Memory: 128Mb built-in SPI Flash memory (as at August 2018 only support for USB boot).&lt;br /&gt;
&lt;br /&gt;
=== Display ===&lt;br /&gt;
&lt;br /&gt;
* Dual VOP: one supports resolutions up to 4096x2160 and [https://www.arm.com/why-arm/technologies/graphics-technologies/arm-frame-buffer-compression AFBC]; the other supports resolutions up to 2560x1600&lt;br /&gt;
* Dual channel MIPI-DSI (4 lanes per channel)&lt;br /&gt;
* eDP 1.3 (4 lanes with 10.8Gbps) to support displays, with PSR&lt;br /&gt;
* Digital Video port up to 4Kp60&lt;br /&gt;
* DisplayPort 1.2 (4 lanes, up to 4K 60Hz)&lt;br /&gt;
* Supports Rec.2020 and conversion to Rec.709 &lt;br /&gt;
&lt;br /&gt;
=== Video ===&lt;br /&gt;
&lt;br /&gt;
* Digital Video output up to 4K@60Hz&lt;br /&gt;
* 4K HDR @ 30fps&lt;br /&gt;
* H.264/AVC Base/Main/High/High10 profile @ level 5.1; up to 4Kx2K @ 60fps&lt;br /&gt;
* H.265/HEVC Main/Main10 profile @ level 5.1 High-tier; up to 4Kx2K @ 60fps&lt;br /&gt;
* VP9, up to 4Kx2K @ 60fps&lt;br /&gt;
* MPEG-1, ISO/IEC 11172-2, up to 1080P @ 60fps&lt;br /&gt;
* MPEG-2, ISO/IEC 13818-2, SP@ML, MP@HL, up to 1080P @ 60fps&lt;br /&gt;
* MPEG-4, ISO/IEC 14496-2, SP@L0-3, ASP@L0-5, up to 1080P @ 60fps&lt;br /&gt;
* VC-1, SP@ML, MP@HL, AP@L0-3, up to 1080P @ 60fps&lt;br /&gt;
* MVC is supported based on H.264 or H.265, up to 1080P @ 60fps&lt;br /&gt;
&lt;br /&gt;
=== Audio ===&lt;br /&gt;
&lt;br /&gt;
* 3.5mm Phone Jack&lt;br /&gt;
* 3-pin S/PDIF header &lt;br /&gt;
* Audio via Digital Video port&lt;br /&gt;
&lt;br /&gt;
=== Camera ===&lt;br /&gt;
&lt;br /&gt;
* Dual MIPI CSI，dual ISP, maximum input resolution of 13M pixels &lt;br /&gt;
&lt;br /&gt;
=== Network ===&lt;br /&gt;
&lt;br /&gt;
* 10/100/1000Mbps Ethernet - Capable of pushing 941 MBit/s in iperf3&lt;br /&gt;
* Wi-Fi 802.11 ac/a/b/g/n with Bluetooth 4.01 (old version with 2x2) / Bluetooth 5 (new version with 1x1) (optional)&lt;br /&gt;
&lt;br /&gt;
=== Storage ===&lt;br /&gt;
&lt;br /&gt;
* microSD - bootable, support SDHC and SDXC, storage up to 256GB&lt;br /&gt;
* eMMC - bootable (optional eMMC Module)&lt;br /&gt;
* 1 USB3.0 Host port&lt;br /&gt;
* 1 USB type C OTG port with DP output &lt;br /&gt;
* 2 USB2.0 Dedicated Host ports&lt;br /&gt;
&lt;br /&gt;
=== Expansion Ports ===&lt;br /&gt;
&lt;br /&gt;
* 2x20 pins &amp;quot;Pi2&amp;quot; GPIO Header&lt;br /&gt;
* PCIe 2.1 (4 full-duplex lanes with 20Gbps) x4 open ended port&lt;br /&gt;
&lt;br /&gt;
==== GPIO Pins ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable plainrowheaders&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;width:20em;&amp;quot; | Assigned To&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Pin Nr.&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Pin Nr.&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;width:20em;&amp;quot; | Assigned To&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| 3.3 V&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 1&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 2&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| 5 V&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| GPIO1_C4 (I2C8_SDA) &amp;lt;sup style=&amp;quot;font-style:italic;color:green&amp;quot;&amp;gt;a&amp;lt;/sup&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 3&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 4&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| 5 V&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| GPIO1_C5 (I2C8_SCL) &amp;lt;sup style=&amp;quot;font-style:italic;color:green&amp;quot;&amp;gt;a&amp;lt;/sup&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 5&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 6&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GND&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| GPIO4_D0 (CPU_GPCLK)&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 7&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 8&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GPIO4_C4 (UART2_TX)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| GND&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 9&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 10&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GPIO4_C3 (UART2_RX)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| GPIO1_C6&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 11&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 12&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GPIO3_D0 (I2S0_CLK)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| GPIO1_C2&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 13&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 14&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GND&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| GPIO1_A1&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 15&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 16&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GPIO1_A4&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| 3.3 V&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 17&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 18&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GPIO4_C5 [SPDIF]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| [UART4_TX] GPIO1_B0 (SPI1_TXD)&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 19&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 20&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GND&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| [UART4_RX] GPIO1_A7 (SPI1_RXD)&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 21&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 22&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GPIO4_D1&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| GPIO1_B1 (SPI1_CLK)&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 23&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 24&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GPIO1_B2 (SPI1_CSN0)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| GND&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 25&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 26&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GPIO1_B5&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| GPIO1_B3 (I2C4_SDA)&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 27&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 28&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GPIO1_B4 (I2C4_SCL)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| GPIO4_D3&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 29&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 30&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GND&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| GPIO4_D4&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 31&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 32&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GPIO3_D4 (I2S0_SDI1SDO3)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| GPIO3_D5 (I2S0_SDI2SDO2)&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 33&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 34&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GND&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| GPIO3_D2 (I2S0_LRCKTX)&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 35&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 36&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GPIO3_D6 (I2S0_SDI3SDO1)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| GPIO3_D1 (I2S0_LRCKRX)&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 37&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 38&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GPIO3_D3 (I2S0_SDI0)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| GND&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 39&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 40&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GPIO3_D7 (I2S0_SDO0)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== Notes =====&lt;br /&gt;
&lt;br /&gt;
* '''a:''' pulled high to 3.3V through 2.2kOhm resistor&lt;br /&gt;
&lt;br /&gt;
===== Linux /dev/gpiochip Assignments =====&lt;br /&gt;
&lt;br /&gt;
{| class=wikitable style=&amp;quot;max-width: 1000px; text-align: center;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | Pin Nr.&lt;br /&gt;
| 3 || 5 || 7 || 8 || 10 || 11 || 12 || 13 || 15 || 16 || 18 || 19 || 21 || 22 || 23 || 24 || 26 || 27 || 28 || 29 || 31 || 32 || 33 || 35 || 36 || 37 || 38 || 40&lt;br /&gt;
|- &lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | Chip&lt;br /&gt;
| 1 || 1 || 4 || 4 || 4 || 1 || 3 || 1 || 1 || 1 || 4 || 1 || 1 || 4 || 1 || 1 || 1 || 1 || 1 || 4 || 4 || 3 || 3 || 3 || 3 || 3 || 3 || 3&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | Line&lt;br /&gt;
| 20 || 21 || 24 || 20 || 19 || 22 || 24 || 18 || 1 || 4 || 21 || 8 || 7 || 25 || 9 || 10 || 13 || 11 || 12 || 27 || 28 || 28 || 29 || 26 || 30 || 25 || 27 || 31&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
On Linux, using the new &amp;lt;code&amp;gt;/dev/gpiochip&amp;lt;/code&amp;gt; API, the &amp;lt;code&amp;gt;''n''&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;GPIO''n''_''XX''&amp;lt;/code&amp;gt; appears to correlate to the number of the &amp;lt;code&amp;gt;/dev/gpiochip''n''&amp;lt;/code&amp;gt;, and the &amp;lt;code&amp;gt;''XX''&amp;lt;/code&amp;gt; to the definition &amp;lt;code&amp;gt;RK_P''XX''&amp;lt;/code&amp;gt; of lines in &amp;lt;code&amp;gt;include/dt-bindings/pinctrl/rockchip.h&amp;lt;/code&amp;gt; of the Linux kernel source. Having these named in the dts would be nice.&lt;br /&gt;
&lt;br /&gt;
You can use [https://git.kernel.org/pub/scm/libs/libgpiod/libgpiod.git/ libgpiod] to drive them, and test them with the included tools (&amp;lt;code&amp;gt;gpioinfo&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;gpioset&amp;lt;/code&amp;gt;, ...)&lt;br /&gt;
&lt;br /&gt;
For example, &amp;lt;code&amp;gt;gpioset 4 25=1&amp;lt;/code&amp;gt; (run as root) would turn pin 22 on. Do beware that poking the wrong GPIO pin can lock up your system.&lt;br /&gt;
&lt;br /&gt;
The conversion table at right is also available as a [https://gist.github.com/CounterPillow/fe066655bf2d929148fe6eb3f15b1dd5 C header file].&lt;br /&gt;
&lt;br /&gt;
=== Working Features ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! Feature/Option&lt;br /&gt;
! Android&lt;br /&gt;
! Android Version&lt;br /&gt;
! Linux&lt;br /&gt;
! Linux Version&lt;br /&gt;
! Test/Verify Steps&lt;br /&gt;
! Notes&lt;br /&gt;
! Product Link&lt;br /&gt;
|-&lt;br /&gt;
| PINE64 LCD Touchscreen (Screen/Touch)&lt;br /&gt;
| Yes/Yes&lt;br /&gt;
| &lt;br /&gt;
| No/No&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| Maybe [https://github.com/avafinger/pine64-touchscreen this] will help get this working?&lt;br /&gt;
| [https://pine64.com/?product=7-lcd-touch-screen-panel 7″ LCD Touch Screen Panel]&lt;br /&gt;
|-&lt;br /&gt;
| Wireless&lt;br /&gt;
&amp;lt;small&amp;gt;ROCKPro64 2×2 MIMO Dual Band WiFi 802.11AC / Bluetooth 4.2 Module (old)&lt;br /&gt;
ROCKPro64 1x1 Dual Band WiFi 802.11AC / Bluetooth 5.0 Module (new)&amp;lt;/small&amp;gt;&lt;br /&gt;
| Yes/Yes&lt;br /&gt;
| &lt;br /&gt;
| No/Yes*&lt;br /&gt;
| &lt;br /&gt;
| Verified with Manjaro ARM (kernel 6.2.5). A config file (&amp;quot;firmware file&amp;quot;) is needed at &amp;lt;code&amp;gt;/lib/firmware/brcm/brcmfmac43455-sdio.txt&amp;lt;/code&amp;gt;. See here for the file contents and details: https://askubuntu.com/a/1211986.&lt;br /&gt;
| In 0.7.9 Ayufan linux releases this is deliberately disabled for stability reasons. After testing for a few hours, on Manjaro ARM (kernel 6.2.5), I did not experience any stability issues (WIFI stayed connected). On a 5GHz network (802.11AC), I was able to get about 120Mbps using the &amp;quot;new&amp;quot; ROCKPro64 WIFI module.&lt;br /&gt;
| [https://store.pine64.org/product/rockpro64-1x1-dual-band-wifi-802-11acbluetooth-5-0-module ROCKPro64 1x1 Dual Band WiFi 802.11AC / Bluetooth 5.0 Module]&lt;br /&gt;
|-&lt;br /&gt;
| USB OTG&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| use this script: [https://github.com/ayufan-rock64/linux-package/blob/master/root-rockpro64/usr/local/sbin/rockpro64_enable_otg.sh rockpro64_enable_otg.sh], then configure ip on usb0: ifconfig usb0 169.169.222.222 and run iperf, you should likely see about 200-300MB/s&lt;br /&gt;
| [[ROCKPro64#OTG_mode]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| USB Mass Storage USB2/USB3&lt;br /&gt;
| Yes/yes&lt;br /&gt;
| &lt;br /&gt;
| Yes/Yes&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Dedicated Fan Power (pwm1)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| Yes&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| You might want to use [https://github.com/tuxd3v/ats ATS].&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| GPIO pins (raw or via RPI python scripts)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| Check out [https://forum.frank-mankel.org/topic/292/rockpro64-rp64-gpio/2 what Frank Mankel has done].&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| MIPI CSI Camera 1 and 2&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| eDP&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| HDMI Audio&lt;br /&gt;
| Yes&lt;br /&gt;
| 7.1.2&lt;br /&gt;
| Yes&lt;br /&gt;
| 4.4.132-1083 - 4.4.138-1100&lt;br /&gt;
| &lt;br /&gt;
| Stopped working in 4.4.154.1105. Ayufan is looking into it. This is working in Manjaro ARM (kernel 6.2.5). Select the &amp;lt;code&amp;gt;Analog Output (Built-in Audio Stereo)&amp;lt;/code&amp;gt; option in the audio output device selection window (either use &amp;lt;code&amp;gt;pavucontrol&amp;lt;/code&amp;gt; or the volume button in the KDE desktop). Despite the slightly misleading name, audio does go through the HDMI port. See here for details: https://forum.manjaro.org/t/no-hdmi-audio-on-rockpro64/25595/2.&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 3.5mm Audio/Mic&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| USB-C Host&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Display via USB-C&lt;br /&gt;
| Yes&lt;br /&gt;
| 7.x and 8.x&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| eDP via USB-C per tillim. No sound on Android 7.x. Sound does work on Android 8.x&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| ROCKPro64 PLAYBOX ENCLOSURE&lt;br /&gt;
| N/A&lt;br /&gt;
| &lt;br /&gt;
| N/A&lt;br /&gt;
| &lt;br /&gt;
| N/A&lt;br /&gt;
| Ventilation does not exist, thus requires manual changes to add venting. Case should be modified to account power adapter not being centered in cut holes. Opening the case once close without modifying it first is near impossible without special tools. Graphene heatsink is included and does well for Linux but not Android.&lt;br /&gt;
| https://pine64.com/?product=rockpro64-playbox-enclosure&lt;br /&gt;
|-&lt;br /&gt;
| ROCKPro64 30mm Tall Profile Heatsink&lt;br /&gt;
| N/A&lt;br /&gt;
| &lt;br /&gt;
| N/A&lt;br /&gt;
| &lt;br /&gt;
| N/A&lt;br /&gt;
| &lt;br /&gt;
| https://store.pine64.org/?product=rockpro64-heatsink&lt;br /&gt;
|-&lt;br /&gt;
| ROCKPro64 20mm Mid Profile Heatsink&lt;br /&gt;
| N/A&lt;br /&gt;
| &lt;br /&gt;
| N/A&lt;br /&gt;
| &lt;br /&gt;
| N/A&lt;br /&gt;
| &lt;br /&gt;
| https://pine64.com/?product=rockpro64-20mm-mid-profile-heatsink&lt;br /&gt;
|-&lt;br /&gt;
| Fan For ROCKPro64 20mm Mid Profile Heatsink&lt;br /&gt;
| N/A&lt;br /&gt;
| &lt;br /&gt;
| N/A&lt;br /&gt;
| &lt;br /&gt;
| N/A&lt;br /&gt;
| You might want to use [https://github.com/tuxd3v/fanctl fanctl] to control the fan while keeping your CPU cool&lt;br /&gt;
| https://pine64.com/?product=fan-for-rockpro64-20mm-mid-profile-heatsink&lt;br /&gt;
|-&lt;br /&gt;
| HDMI output 4K@60Hz&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| PCIe 2.1&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Real Time Clock (RTC) battery backup&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| https://store.pine64.org/?product=rtc-backup-battery-cr-battery&lt;br /&gt;
|-&lt;br /&gt;
| Boot from USB/PXE&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
RockChip themselves have tables of supported features at 4.4 and mainline kernel versions [http://opensource.rock-chips.com/wiki_Status_Matrix in their wiki here].&lt;br /&gt;
&lt;br /&gt;
== Board Information, Schematics and Certifications ==&lt;br /&gt;
* Board Dimensions: 133mm x 80mm x 19mm&lt;br /&gt;
* Input Power: +12V @3A/5A with 5.5mm/2.1mm Type M Barrel type DC connector&lt;br /&gt;
* [https://files.pine64.org/doc/rockpro64/rockpro64_v21-SCH.pdf ROCKPro64 Schematic v2.1 (Second Batch Production Release)]&lt;br /&gt;
** [https://files.pine64.org/doc/rockpro64/RockPro64_v21_Boardoutline-top.dxf ROCKPro64 v2.1 Board Top Outline in AutoCad DXF format]&lt;br /&gt;
** [https://files.pine64.org/doc/rockpro64/RockPro64_v21_Boardoutline-bottom.dxf ROCKPro64 v2.1 Board Bottom Outline in AutoCad DXF format]&lt;br /&gt;
** [https://files.pine64.org/doc/rockpro64/RockPro64_v21_Boardoutline-top.pdf ROCKPro64 v2.1 Board Top Outline in PDF format]&lt;br /&gt;
** [https://files.pine64.org/doc/rockpro64/RockPro64_v21_Boardoutline-bottom.pdf ROCKPro64 v2.1 Board Bottom Outline in PDF format]&lt;br /&gt;
* [https://files.pine64.org/doc/rockpro64/rockpro64_v20-SCH.pdf ROCKPro64 Schematic v2.0 (Pilot Production Release)]&lt;br /&gt;
** [https://files.pine64.org/doc/rockpro64/ROCKPRo64%20Engineering%20Change%20Notice%2020180628RP01.pdf Engineering Change Notice for v2.0 to turn on 3.3V power on PCIe]&lt;br /&gt;
* [https://files.pine64.org/doc/rockpro64/rockpro64_wifi_ap6359SA.pdf ROCKPro64 AP6359SA Wifi/BT Schematic]&lt;br /&gt;
* [https://files.pine64.org/doc/rockpro64/Rockpro64%20Pi-2%20Connector%20ver0.2.png ROCKPro64 Pi-2 Pin assignment and definition]&lt;br /&gt;
* [https://files.pine64.org/doc/rockpro64/RockPro-3D-model.zip ROCKPro64 3D model]&lt;br /&gt;
&lt;br /&gt;
Certifications:&lt;br /&gt;
&lt;br /&gt;
* Disclaimer: Please note that PINE64 SBC is not a &amp;quot;final&amp;quot; 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.&lt;br /&gt;
* [https://files.pine64.org/doc/cert/ROCKPro64%20FCC%20SDOC%20Certificate.pdf ROCKPro64 FCC Certificate]&lt;br /&gt;
* [https://files.pine64.org/doc/cert/ROCKPro64%20CE-EMC%20Certificate.pdf ROCKPro64 CE Certificate]&lt;br /&gt;
* [https://files.pine64.org/doc/cert/ROCKPro64%20ROHS%20%20SEC180529404001E%20Report.pdf ROCKPro64 RoHS Report]&lt;br /&gt;
&lt;br /&gt;
== Datasheets for Components and Peripherals ==&lt;br /&gt;
&lt;br /&gt;
Rockchip RK3399 SoC information:&lt;br /&gt;
&lt;br /&gt;
* [https://www.rock-chips.com/a/en/products/RK33_Series/2016/0419/758.html Rockchip RK3399 SoC Brief]&lt;br /&gt;
* [http://opensource.rock-chips.com/images/d/d7/Rockchip_RK3399_Datasheet_V2.1-20200323.pdf Rockchip RK3399 Datasheet V2.1]&lt;br /&gt;
* [http://opensource.rock-chips.com/images/e/ee/Rockchip_RK3399TRM_V1.4_Part1-20170408.pdf Rockchip RK3399 Technical Reference Manual part 1]&lt;br /&gt;
* [https://files.pine64.org/doc/datasheet/rockpro64/RK808%20datasheet%20V0.8.pdf Rockchip RK808 Datasheet V0.8]&lt;br /&gt;
&lt;br /&gt;
LPDDR4 (200 Balls) SDRAM:&lt;br /&gt;
&lt;br /&gt;
* [https://files.pine64.org/doc/datasheet/rockpro64/SM512M32Z01MD2BNP(200BALL).pdf Micron LPDDR4 Mobile LPDDR4 Datasheet]&lt;br /&gt;
&lt;br /&gt;
eMMC information:&lt;br /&gt;
&lt;br /&gt;
* [https://files.pine64.org/doc/rock64/PINE64_eMMC_Module_20170719.pdf PINE64 eMMC module schematic]&lt;br /&gt;
* [https://files.pine64.org/doc/rock64/usb%20emmc%20module%20adapter%20v2.pdf PINE64 USB adapter for eMMC module V2 schematic]&lt;br /&gt;
* [https://files.pine64.org/doc/rock64/USB%20adapter%20for%20eMMC%20module%20PCB.tar PINE64 USB adapter for eMMC module PCB in JPEG]&lt;br /&gt;
* [https://files.pine64.org/doc/datasheet/pine64/E-00517%20FORESEE_eMMC_NCEMAM8B-16G%20SPEC.pdf 16GB Foresee eMMC Datasheet]&lt;br /&gt;
* [https://files.pine64.org/doc/datasheet/pine64/SDINADF4-16-128GB-H%20data%20sheet%20v1.13.pdf 32GB/64GB/128GB SanDisk eMMC Datasheet]&lt;br /&gt;
&lt;br /&gt;
SPI NOR Flash information:&lt;br /&gt;
&lt;br /&gt;
* [https://files.pine64.org/doc/datasheet/pine64/w25q128jv%20spi%20revc%2011162016.pdf WinBond 128Mb SPI Flash Datasheet]&lt;br /&gt;
* [https://files.pine64.org/doc/datasheet/pine64/GD25Q128C-Rev2.5.pdf GigaDevice 128Mb SPI Flash Datasheet]&lt;br /&gt;
&lt;br /&gt;
Heatsink related info:&lt;br /&gt;
&lt;br /&gt;
* [https://files.pine64.org/doc/datasheet/rockpro64/Rockpro%20Passive%20Heatsink%20Spec.jpg ROCKPro64 Passive Heatsink Dimension Drawing]&lt;br /&gt;
* [https://files.pine64.org/doc/datasheet/rockpro64/LMS-TC150%20Silicon%20Thermal%20Pad.pdf Heatsink Thermal Pad Specification]&lt;br /&gt;
&lt;br /&gt;
Wireless related info:&lt;br /&gt;
&lt;br /&gt;
* AMPAK AP6256 11AC WiFi + Bluetooth5.0 Datasheet [https://files.pine64.org/doc/datasheet/rockpro64/AP6256%20datasheet_V1.3_12202017.pdf (v. 1.3)] [http://files.pine64.org/doc/datasheet/PinebookPro/AP6256%20datasheet_V1.7_12282018.pdf (v. 1.7)]&lt;br /&gt;
&lt;br /&gt;
Ethernet related info:&lt;br /&gt;
&lt;br /&gt;
* [https://files.pine64.org/doc/datasheet/rock64/RTL8211F-CG-Realtek.pdf Realtek RTL8211F 10/100/1000M Ethernet Transceiver Datasheet]&lt;br /&gt;
&lt;br /&gt;
Peripheral related info:&lt;br /&gt;
&lt;br /&gt;
* [https://files.pine64.org/doc/datasheet/rockpro64/ASM1061_Data%20Sheet_R1_8.pdf asmedia ASM1061 PCIe SATA 2.0 Datasheet]&lt;br /&gt;
&lt;br /&gt;
Remote control button mapping:&lt;br /&gt;
&lt;br /&gt;
* [https://files.pine64.org/doc/Pine%20A64%20Schematic/remote-wit-logo.jpg Official Remote Control for the PINE64 Button Mapping]&lt;br /&gt;
&lt;br /&gt;
Audio Codec (ES8316) (under board):&lt;br /&gt;
&lt;br /&gt;
* [http://everest-semi.com/pdf/ES8316%20PB.pdf Everest ES8316 Audio Codec]&lt;br /&gt;
&lt;br /&gt;
PWM controlled fan, SPDIF, and RTC Battery Backup headers:&lt;br /&gt;
&lt;br /&gt;
* [https://www.jst-mfg.com/product/pdf/eng/ePH.pdf JST-PH connector]&lt;br /&gt;
&lt;br /&gt;
== Useful Articles and Blog Posts ==&lt;br /&gt;
&lt;br /&gt;
If you want to dive in to the ecosystem, here's a short list of various articles and blog posts that can help you set up your soft- or hardware development environment.&lt;br /&gt;
&lt;br /&gt;
* [https://stikonas.eu/wordpress/2019/09/15/blobless-boot-with-rockpro64/ Blobless boot with RockPro64 by Andrius Štikonas]&lt;br /&gt;
&lt;br /&gt;
* [https://marcin.juszkiewicz.com.pl/2020/06/17/ebbr-on-rockpro64/ EBBR on RockPro64 by Marcin Juszkiewicz]&lt;br /&gt;
&lt;br /&gt;
* [[ROCKPro64 Device Tree Overlays on Mainline]]&lt;br /&gt;
&lt;br /&gt;
== The NAS Case for the ROCKPro64 ==&lt;br /&gt;
&lt;br /&gt;
[[file:NASCaseMain.png|thumb|right|Front View of the PINE64 NAS Case for the ROCKPro64]]&lt;br /&gt;
&lt;br /&gt;
Please [[NASCase|follow this this link]] for '''detailed instructions on how to assemble the ROCKPro64 NAS Case'''.&lt;br /&gt;
&lt;br /&gt;
The NAS Case instructions also contains detailed information about:&lt;br /&gt;
*what the NAS Case ships with&lt;br /&gt;
*What additional things you need to purchase for your NAS Case&lt;br /&gt;
*What optional things you can consider purchasing for your NAS build&lt;br /&gt;
*What OS Image we recommend you use for your NAS build&lt;br /&gt;
*IO accessibility after installing the ROCKPro64 into the NAS Case&lt;br /&gt;
*[https://files.pine64.org/doc/rockpro64/ROCKPro64%20NAS%20Case%20Exploded%20View%20Diagram.pdf NAS Case Exploded View]&lt;br /&gt;
*[https://files.pine64.org/doc/rockpro64/NAS%20Case%20Drawing.dwg NAS Case Drawing]&lt;br /&gt;
&lt;br /&gt;
== 3D printable ITX mounting brackets ==&lt;br /&gt;
&lt;br /&gt;
[[file:ITX-Bracket-Mounted.jpg|300px|thumb|right|A Quartz64-A mounted in an ITX case using 3D printed brackets]]&lt;br /&gt;
&lt;br /&gt;
Allows mounting a ROCKPro64-A or Quartz64-A board inside a regular PC case that conforms to the ITX standard, using 3D printed brackets:&lt;br /&gt;
&lt;br /&gt;
* AMF/STL/STEP files plus the original FreeCAD file used to create the models [[File:RP64-A_Q64-A_to_ITX_mounting_brackets.zip]]&lt;br /&gt;
* Make sure to flip the two brackets by 180 degrees on one of the horizontal axes (X/Y) in your slicer of choice before printing to avoid unnecessary supports&lt;br /&gt;
* To allow enough clearance between the board and the bracket you either need to print four copies of the washer model or add nut(s) between the board and the bracket&lt;br /&gt;
* If using nuts for the clearance between the board and the brackets, make sure it creates at least 3.2mm of spacing in between&lt;br /&gt;
* Depending on the accuracy and calibration of a 3D printer, slight deviation can occur and you likely need to manually widen some of the holes to allow screws to fit&lt;br /&gt;
&lt;br /&gt;
== Other Resources ==&lt;br /&gt;
&lt;br /&gt;
* [https://forum.pine64.org/forumdisplay.php?fid=98 ROCKPro64 Forum]&lt;br /&gt;
* [https://pine64.com/?post_type=product PINE64 shop]&lt;br /&gt;
* [https://github.com/rockchip-linux Rockchip Linux GitHub Repo]&lt;br /&gt;
* [http://opensource.rock-chips.com/ Rockchip Open Source Wiki]&lt;br /&gt;
* ExplainingComputers have a video review [https://www.youtube.com/watch?v=CeoNHGFN_30 of the RockPro64 here, including linux first boot.]&lt;br /&gt;
* [[ROCKPro64 Installing Arch Linux ARM]]&lt;br /&gt;
* [[ROCKPro64 Powering From An ATX Supply]]&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
=== No Video or GPU Acceleration on Debian ===&lt;br /&gt;
&lt;br /&gt;
If you can log in through serial but don't get any video or GPU acceleration on Debian, this is likely due to Debian's decision to compile the devfreq governors as loadable modules but not including them early enough for panfrost to be able to be provided with one of them.&lt;br /&gt;
&lt;br /&gt;
The usual sign of this being the case is the following line in your log: &amp;lt;code&amp;gt;[drm:panfrost_devfreq_init [panfrost]] *ERROR* Couldn't initialize GPU devfreq&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Log in to your ROCKPro64, and run the following:&lt;br /&gt;
&lt;br /&gt;
 sudo -i&lt;br /&gt;
 echo governor_simpleondemand &amp;gt;&amp;gt; /etc/initramfs-tools/modules &amp;amp;&amp;amp; update-initramfs -u -k $(uname -r)&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
Then, reboot.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:ROCKPro64]] [[Category:Rockchip RK3399]]&lt;/div&gt;</summary>
		<author><name>I3master</name></author>
	</entry>
	<entry>
		<id>https://wiki.pine64.org/index.php?title=ROCKPro64&amp;diff=19471</id>
		<title>ROCKPro64</title>
		<link rel="alternate" type="text/html" href="https://wiki.pine64.org/index.php?title=ROCKPro64&amp;diff=19471"/>
		<updated>2023-04-15T16:50:28Z</updated>

		<summary type="html">&lt;p&gt;I3master: Added instructions on getting wifi and HDMI audio working.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:ROCKPro64v21FRONT.jpg|400px|thumb|right|The ROCKPro64]]&lt;br /&gt;
&lt;br /&gt;
The '''ROCKPro64''' is the most powerful Single Board Computer released by PINE64. It is powered by a Rockchip RK3399 Hexa-Core (dual ARM Cortex A72 and quad ARM Cortex A53) 64-Bit Processor with a Mali T-860 Quad-Core GPU. The key features include a PCIe x4 open ended slot, the use of LPDDR4 RAM, and industry standard heatsink mounting holes.&lt;br /&gt;
&lt;br /&gt;
The ROCKPro64 is equipped with 2GB or 4GB LPDDR4 system memory, and 128Mb SPI boot Flash. There is also an optional eMMC module (up to 128GB) and microSD slot for booting. The board is equipped with 1x USB 3.0 type C Host with DP 1.2, 1x USB 3.0 type A Host, 2x USB 2.0 Host, Gigabit Ethernet, PI-2 GPIO Bus, MiPi DSI interface, eDP interface, touch Panel interface, stereo MiPi CSI interface, as well as many other device interfaces such as UART, SPI, I2C, for makers to integrate with sensors and other peripherals. Many different Operating Systems (OS) are freely available from the open source community, such as Android, Linux (Ubuntu, Debian, Arch), and BSD.&lt;br /&gt;
&lt;br /&gt;
== Getting Started ==&lt;br /&gt;
&lt;br /&gt;
The article [[ROCKPro64 Getting Started]] gives important information to get the board up and running.&lt;br /&gt;
&lt;br /&gt;
== Software releases ==&lt;br /&gt;
&lt;br /&gt;
In the [[ROCKPro64 Software Releases]] page, you will find a complete list of currently supported Operating System images that work with the ROCKPro64, as well as other related software. The Software Release page has links to download the images as well as high level instructions to load each image.&lt;br /&gt;
&lt;br /&gt;
Please see the [[Getting started]] page for detailed discussion of what you need (prerequisites) as well as instructions if the high level instructions are insufficient.&lt;br /&gt;
&lt;br /&gt;
== Board Layout ==&lt;br /&gt;
[[Image:ROCKPro64v21REAR.jpg|thumb|right|A hi-res picture of v2.1 rear.]]&lt;br /&gt;
[[Image:FLIR 20220619 125451 686.jpg|thumb|right|A thermal image of v2.1 front (upside-down).]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:ROCKPro64_annotated.jpg|500px|An annotated ROCKPro64]]&lt;br /&gt;
&lt;br /&gt;
=== Main Chips ===&lt;br /&gt;
* RK3399 system-on-chip (1)&lt;br /&gt;
* LPDDR4 SDRAM 1 (18)&lt;br /&gt;
* LPDDR4 SDRAM 2 (3)&lt;br /&gt;
* SPI NOR flash memory (17)&lt;br /&gt;
* RK808 power management (near 19)&lt;br /&gt;
* RTL8211 ethernet transceiver (near 25)&lt;br /&gt;
* ES8316 Sound Codec (on rear of board)&lt;br /&gt;
* The heatsink mounting holes around the RK3399 are 59 mm apart&lt;br /&gt;
&lt;br /&gt;
=== Switches ===&lt;br /&gt;
&lt;br /&gt;
The Power button (11, SW3): is the same as on your mobile phone - press and release after about 1 second to power on. Press and hold for about 3 seconds to power off.&lt;br /&gt;
&lt;br /&gt;
The Reset button (10, SW901): performs a reset.&lt;br /&gt;
&lt;br /&gt;
The Recover button (28, SW900): used to enter maskrom mode.&lt;br /&gt;
&lt;br /&gt;
=== Connectors, Sockets and Headers ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;line-height: 1.4;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;font-size: .9em;&amp;quot;&lt;br /&gt;
! Diagram !! Schematic&amp;lt;br&amp;gt;designator !! Silkscreen&amp;lt;br&amp;gt;label !! Number&amp;lt;br&amp;gt;of pins !! Description&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 2  || U39   || PI-2-bus || style=&amp;quot;text-align: center;&amp;quot; | 40 || Pi-2 bus &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 4  || J8    || +FAN- || style=&amp;quot;text-align: center;&amp;quot; | 2 || PWM controlled fan header&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 5  || J10   || SPDIF || style=&amp;quot;text-align: center;&amp;quot; | 3 || SPDIF header&lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 6  || U6    || +RTC- || style=&amp;quot;text-align: center;&amp;quot; | 2 || RTC battery backup header&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7  || U31   || Wifi-BT || style=&amp;quot;text-align: center;&amp;quot; | 16 || SDIO WIFI/BT module-MIMO 2&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 8  || USB3  ||  || style=&amp;quot;text-align: center;&amp;quot; | 9 || USB-3 and USB Type C&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 9  || USB1  ||  || style=&amp;quot;text-align: center;&amp;quot; | 2×4 || Dual USB-2&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 12 || IR1   || IR || style=&amp;quot;text-align: center;&amp;quot; | 3 || infrared receiver socket &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 13 || J16   || Headphone+mic || style=&amp;quot;text-align: center;&amp;quot; | 4 || Headphone + mic 3.5mm jack&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | -  || CON16 || GND PWR RST GND || style=&amp;quot;text-align: center;&amp;quot; | 4 || Power &amp;amp; reset, unpopulated&amp;lt;br&amp;gt;header near Headphone jack&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 14 || U29   || EMMC || style=&amp;quot;text-align: center;&amp;quot; | 34 || eMMC connector&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 14* || J13  ||  || style=&amp;quot;text-align: center;&amp;quot; | 13 || TF-card, a.k.a. microSD&amp;lt;br&amp;gt;(* under 14 on the bottom side)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 15 || U30   ||  || style=&amp;quot;text-align: center;&amp;quot; | 14 || SDIO WIFI/BT module-MIMO 1&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 16 || SW4   ||  || style=&amp;quot;text-align: center;&amp;quot; | 2 || Jumper to [[#Disable eMMC]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 19 || J15   || PCI || style=&amp;quot;text-align: center;&amp;quot; | 64 || PCI-express X4 socket&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 20 || J21   || DSI || style=&amp;quot;text-align: center;&amp;quot; | 30 || DSI&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 21 || J22   || EDP || style=&amp;quot;text-align: center;&amp;quot; | 30 || LCD EDP&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 22 || CON1  || TP || style=&amp;quot;text-align: center;&amp;quot; | 6 || touch panel connector&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 23 || CON15 ||  || style=&amp;quot;text-align: center;&amp;quot; | 4 || DC out for SATA disk cable&amp;lt;br&amp;gt;(direct connect from DC-IN)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 24 || J11   || DC-IN || style=&amp;quot;text-align: center;&amp;quot; | 2 || Power input, positive tip;&amp;lt;br&amp;gt;12V/3A (minimum) recommended&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 25 || U32   ||  || style=&amp;quot;text-align: center;&amp;quot; | 8 || 8P8C (often referred to as 'RJ45')&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 26 || J14   ||  || style=&amp;quot;text-align: center;&amp;quot; | 19 || HDMI&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 27 || J17   || MIPI CAM || style=&amp;quot;text-align: center;&amp;quot; | 32 || MIPI-1&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 29 || J19   || MIPI CAM || style=&amp;quot;text-align: center;&amp;quot; | 32 || MIPI-2&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 30 || J18   || CIF || style=&amp;quot;text-align: center;&amp;quot; | 26 || CIF&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== LEDs ===&lt;br /&gt;
&lt;br /&gt;
A green LED next to the 12V input barrel connector will light as long as there is 12V applied to the connector. (Even if the RockPro64 is powered off.)&lt;br /&gt;
&lt;br /&gt;
A white LED behind the reset button will light as long as the RockPro64 is running (it comes on a few seconds after power on, when control is passed to the operating system.)&lt;br /&gt;
&lt;br /&gt;
A red LED behind the reset button is DIY - it is lit for example if the board is in OTG mode with an Ayufan image, or if an Android image is in standby mode.&lt;br /&gt;
&lt;br /&gt;
Yellow and green LEDs on the LAN socket behave in a standard way.&lt;br /&gt;
&lt;br /&gt;
=== Jumpers ===&lt;br /&gt;
They are used for boot device selection, as described in the following section.&lt;br /&gt;
&lt;br /&gt;
==== Disable eMMC ====&lt;br /&gt;
&lt;br /&gt;
There is an unlabelled (on the PCB silk-screen) 2-pin jumper (16) between the eMMC socket (14) and the SPI chip (17). It is designated as SW4 on the [[#Board Information, Schematics and Certifications | schematic diagram]]. The default condition is OPEN (no jumper). It is useful for controlling the boot as follows:&lt;br /&gt;
&lt;br /&gt;
Default boot device (with no SPI software) is eMMC, then SDcard. If both the eMMC and the SDcard contain bootable images then the eMMC can be disabled by installing the jumper. This completely removes the eMMC from the resulting OS. If you wish the eMMC to be visible in the booted OS the jumper should be removed 2 seconds after applying power (and before the white LED comes on).&lt;br /&gt;
&lt;br /&gt;
The possible combinations are summarised in the table below.&lt;br /&gt;
&lt;br /&gt;
* 1 = present&lt;br /&gt;
* 0 = not present&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;text-align: center;&amp;quot;&lt;br /&gt;
! µSD !! eMMC !! SW4 !! boot from&lt;br /&gt;
|-&lt;br /&gt;
| 0 || 0 || 0 || unsupported&lt;br /&gt;
|-&lt;br /&gt;
| 0 || 0 || 1 || unsupported&lt;br /&gt;
|-&lt;br /&gt;
| 0 || 1 || 0 || eMMC&lt;br /&gt;
|-&lt;br /&gt;
| 0 || 1 || 1 || unsupported&lt;br /&gt;
|-&lt;br /&gt;
| 1 || 0 || 0 || SDCard&lt;br /&gt;
|-&lt;br /&gt;
| 1 || 0 || 1 || SDCard&lt;br /&gt;
|-&lt;br /&gt;
| 1 || 1 || 0 || eMMC&lt;br /&gt;
|-&lt;br /&gt;
| 1 || 1 || 1 || SDCard&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Disable SPI (while booting) ====&lt;br /&gt;
There is a second possibility to jumper your ROCKPro64: If you mess-up your SPI and are unable to boot, jumpering pins 23 (CLK) and 25 pin (GND) on the PI-2-bus header will disable the SPI as a boot device. (This was taken from the IRC logs, 09 August 2018 @ 17:23) You have to remove the jumper 2 seconds after having started your RP64 (before the white LED turns ON) otherwise the SPI will be missing and you won't be able to flash it.&lt;br /&gt;
Ayufan images contain (at the moment) only one script for the SPI and the RP64, it's &amp;quot;rockpro64_reset_spi_flash&amp;quot;. Other SPI scripts are dedicated to the R64 (as it is written on the name) and it will mess-up your RP64 SPI if you use them.&lt;br /&gt;
&lt;br /&gt;
== Hardware Compatibility ==&lt;br /&gt;
&lt;br /&gt;
The hardware compatibility list can be found under [[ROCKPro64 Hardware compatibility]].&lt;br /&gt;
&lt;br /&gt;
== Board Features ==&lt;br /&gt;
&lt;br /&gt;
This section outlines the most important characteristics of the board and its components.&lt;br /&gt;
&lt;br /&gt;
=== SoC and Memory Specification ===&lt;br /&gt;
* Based on Rockchip RK3399&lt;br /&gt;
[[File:Rockchip_RK3399.png|right]]&lt;br /&gt;
&lt;br /&gt;
==== CPU Architecture ====&lt;br /&gt;
&lt;br /&gt;
* [https://developer.arm.com/products/processors/cortex-a/cortex-a72 Dual-core Cortex-A72 up to 2.0GHz CPU]&lt;br /&gt;
* [https://developer.arm.com/products/processors/cortex-a/cortex-a53 Quad-core Cortex-A53 up to 1.5GHz CPU]&lt;br /&gt;
* big.LITTLE architecture: Dual Cortex-A72 + Quad Cortex-A53, 64-bit CPU&lt;br /&gt;
* Cortex-A72:&lt;br /&gt;
** 1-4x Symmetrical Multiprocessing (SMP) within a single processor cluster, and multiple coherent SMP processor clusters through AMBA 5 CHI or AMBA 4 ACE technology&lt;br /&gt;
** AArch64 for 64-bit support and new architectural features&lt;br /&gt;
** L1 cache 48KB Icache and 32KB Dcache for each A72 &lt;br /&gt;
** L2 cache 1024KB for big cluster &lt;br /&gt;
** DSP &amp;amp; SIMD extensions&lt;br /&gt;
** VFPv4 floating point&lt;br /&gt;
** Hardware virtualization support&lt;br /&gt;
* Cortex-A53:&lt;br /&gt;
** L1 cache 32KB Icache and 32KB Dcache for each A53&lt;br /&gt;
** L2 cache 512KB for little cluster &lt;br /&gt;
* Full implementation of the ARM architecture v8-A instruction set&lt;br /&gt;
* ARM Neon Advanced SIMD (single instruction, multiple data) support for accelerated media and signal processing computation&lt;br /&gt;
* ARMv8 Cryptography Extensions&lt;br /&gt;
* In-order pipeline with symmetric dual-issue of most instructions&lt;br /&gt;
* Include VFP v3 hardware to support single and double-precision operations&lt;br /&gt;
* TrustZone technology support&lt;br /&gt;
* Full CoreSight debug solution&lt;br /&gt;
* One isolated voltage domain to support DVFS&lt;br /&gt;
&lt;br /&gt;
==== GPU Architecture ====&lt;br /&gt;
&lt;br /&gt;
* [https://developer.arm.com/products/graphics-and-multimedia/mali-gpus/mali-t860-and-mali-t880-gpus ARM Mali-T860MP4 Quad-core GPU]&lt;br /&gt;
* The highest performance GPUs built on Arm Mali’s famous Midgard architecture, the Mali-T860 GPU is designed for complex graphics use cases and provides stunning visuals for UHD content.&lt;br /&gt;
* Frequency: 650MHz &lt;br /&gt;
* Throughput: 1300Mtri/s, 10.4Gpix/s &lt;br /&gt;
* OpenGL® ES 1.1, 1.2, 2.0, 3.1, 3.2, Vulkan 1.0*, OpenCL™ 1.1, 1.2, DirectX® 11 FL11_1, RenderScript™.&lt;br /&gt;
&lt;br /&gt;
==== System Memory ====&lt;br /&gt;
* LPDDR4 RAM Memory Variants: Dual Channels 2GB and 4GB.&lt;br /&gt;
* Storage Memory: 128Mb built-in SPI Flash memory (as at August 2018 only support for USB boot).&lt;br /&gt;
&lt;br /&gt;
=== Display ===&lt;br /&gt;
&lt;br /&gt;
* Dual VOP: one supports resolutions up to 4096x2160 and [https://www.arm.com/why-arm/technologies/graphics-technologies/arm-frame-buffer-compression AFBC]; the other supports resolutions up to 2560x1600&lt;br /&gt;
* Dual channel MIPI-DSI (4 lanes per channel)&lt;br /&gt;
* eDP 1.3 (4 lanes with 10.8Gbps) to support displays, with PSR&lt;br /&gt;
* Digital Video port up to 4Kp60&lt;br /&gt;
* DisplayPort 1.2 (4 lanes, up to 4K 60Hz)&lt;br /&gt;
* Supports Rec.2020 and conversion to Rec.709 &lt;br /&gt;
&lt;br /&gt;
=== Video ===&lt;br /&gt;
&lt;br /&gt;
* Digital Video output up to 4K@60Hz&lt;br /&gt;
* 4K HDR @ 30fps&lt;br /&gt;
* H.264/AVC Base/Main/High/High10 profile @ level 5.1; up to 4Kx2K @ 60fps&lt;br /&gt;
* H.265/HEVC Main/Main10 profile @ level 5.1 High-tier; up to 4Kx2K @ 60fps&lt;br /&gt;
* VP9, up to 4Kx2K @ 60fps&lt;br /&gt;
* MPEG-1, ISO/IEC 11172-2, up to 1080P @ 60fps&lt;br /&gt;
* MPEG-2, ISO/IEC 13818-2, SP@ML, MP@HL, up to 1080P @ 60fps&lt;br /&gt;
* MPEG-4, ISO/IEC 14496-2, SP@L0-3, ASP@L0-5, up to 1080P @ 60fps&lt;br /&gt;
* VC-1, SP@ML, MP@HL, AP@L0-3, up to 1080P @ 60fps&lt;br /&gt;
* MVC is supported based on H.264 or H.265, up to 1080P @ 60fps&lt;br /&gt;
&lt;br /&gt;
=== Audio ===&lt;br /&gt;
&lt;br /&gt;
* 3.5mm Phone Jack&lt;br /&gt;
* 3-pin S/PDIF header &lt;br /&gt;
* Audio via Digital Video port&lt;br /&gt;
&lt;br /&gt;
=== Camera ===&lt;br /&gt;
&lt;br /&gt;
* Dual MIPI CSI，dual ISP, maximum input resolution of 13M pixels &lt;br /&gt;
&lt;br /&gt;
=== Network ===&lt;br /&gt;
&lt;br /&gt;
* 10/100/1000Mbps Ethernet - Capable of pushing 941 MBit/s in iperf3&lt;br /&gt;
* Wi-Fi 802.11 ac/a/b/g/n with Bluetooth 4.01 (old version with 2x2) / Bluetooth 5 (new version with 1x1) (optional)&lt;br /&gt;
&lt;br /&gt;
=== Storage ===&lt;br /&gt;
&lt;br /&gt;
* microSD - bootable, support SDHC and SDXC, storage up to 256GB&lt;br /&gt;
* eMMC - bootable (optional eMMC Module)&lt;br /&gt;
* 1 USB3.0 Host port&lt;br /&gt;
* 1 USB type C OTG port with DP output &lt;br /&gt;
* 2 USB2.0 Dedicated Host ports&lt;br /&gt;
&lt;br /&gt;
=== Expansion Ports ===&lt;br /&gt;
&lt;br /&gt;
* 2x20 pins &amp;quot;Pi2&amp;quot; GPIO Header&lt;br /&gt;
* PCIe 2.1 (4 full-duplex lanes with 20Gbps) x4 open ended port&lt;br /&gt;
&lt;br /&gt;
==== GPIO Pins ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable plainrowheaders&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;width:20em;&amp;quot; | Assigned To&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Pin Nr.&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Pin Nr.&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;width:20em;&amp;quot; | Assigned To&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| 3.3 V&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 1&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 2&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| 5 V&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| GPIO1_C4 (I2C8_SDA) &amp;lt;sup style=&amp;quot;font-style:italic;color:green&amp;quot;&amp;gt;a&amp;lt;/sup&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 3&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 4&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| 5 V&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| GPIO1_C5 (I2C8_SCL) &amp;lt;sup style=&amp;quot;font-style:italic;color:green&amp;quot;&amp;gt;a&amp;lt;/sup&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 5&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 6&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GND&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| GPIO4_D0 (CPU_GPCLK)&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 7&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 8&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GPIO4_C4 (UART2_TX)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| GND&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 9&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 10&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GPIO4_C3 (UART2_RX)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| GPIO1_C6&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 11&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 12&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GPIO3_D0 (I2S0_CLK)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| GPIO1_C2&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 13&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 14&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GND&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| GPIO1_A1&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 15&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 16&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GPIO1_A4&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| 3.3 V&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 17&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 18&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GPIO4_C5 [SPDIF]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| [UART4_TX] GPIO1_B0 (SPI1_TXD)&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 19&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 20&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GND&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| [UART4_RX] GPIO1_A7 (SPI1_RXD)&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 21&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 22&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GPIO4_D1&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| GPIO1_B1 (SPI1_CLK)&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 23&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 24&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GPIO1_B2 (SPI1_CSN0)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| GND&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 25&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 26&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GPIO1_B5&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| GPIO1_B3 (I2C4_SDA)&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 27&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 28&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GPIO1_B4 (I2C4_SCL)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| GPIO4_D3&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 29&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 30&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GND&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| GPIO4_D4&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 31&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 32&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GPIO3_D4 (I2S0_SDI1SDO3)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| GPIO3_D5 (I2S0_SDI2SDO2)&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 33&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 34&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GND&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| GPIO3_D2 (I2S0_LRCKTX)&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 35&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 36&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GPIO3_D6 (I2S0_SDI3SDO1)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| GPIO3_D1 (I2S0_LRCKRX)&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 37&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 38&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GPIO3_D3 (I2S0_SDI0)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:right;&amp;quot;| GND&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 39&lt;br /&gt;
| style=&amp;quot;text-align:center; background-color:black; color:gold; font-weight:bold;&amp;quot;| 40&lt;br /&gt;
| style=&amp;quot;text-align:left;&amp;quot;| GPIO3_D7 (I2S0_SDO0)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== Notes =====&lt;br /&gt;
&lt;br /&gt;
* '''a:''' pulled high to 3.3V through 2.2kOhm resistor&lt;br /&gt;
&lt;br /&gt;
===== Linux /dev/gpiochip Assignments =====&lt;br /&gt;
&lt;br /&gt;
{| class=wikitable style=&amp;quot;max-width: 1000px; text-align: center;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | Pin Nr.&lt;br /&gt;
| 3 || 5 || 7 || 8 || 10 || 11 || 12 || 13 || 15 || 16 || 18 || 19 || 21 || 22 || 23 || 24 || 26 || 27 || 28 || 29 || 31 || 32 || 33 || 35 || 36 || 37 || 38 || 40&lt;br /&gt;
|- &lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | Chip&lt;br /&gt;
| 1 || 1 || 4 || 4 || 4 || 1 || 3 || 1 || 1 || 1 || 4 || 1 || 1 || 4 || 1 || 1 || 1 || 1 || 1 || 4 || 4 || 3 || 3 || 3 || 3 || 3 || 3 || 3&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | Line&lt;br /&gt;
| 20 || 21 || 24 || 20 || 19 || 22 || 24 || 18 || 1 || 4 || 21 || 8 || 7 || 25 || 9 || 10 || 13 || 11 || 12 || 27 || 28 || 28 || 29 || 26 || 30 || 25 || 27 || 31&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
On Linux, using the new &amp;lt;code&amp;gt;/dev/gpiochip&amp;lt;/code&amp;gt; API, the &amp;lt;code&amp;gt;''n''&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;GPIO''n''_''XX''&amp;lt;/code&amp;gt; appears to correlate to the number of the &amp;lt;code&amp;gt;/dev/gpiochip''n''&amp;lt;/code&amp;gt;, and the &amp;lt;code&amp;gt;''XX''&amp;lt;/code&amp;gt; to the definition &amp;lt;code&amp;gt;RK_P''XX''&amp;lt;/code&amp;gt; of lines in &amp;lt;code&amp;gt;include/dt-bindings/pinctrl/rockchip.h&amp;lt;/code&amp;gt; of the Linux kernel source. Having these named in the dts would be nice.&lt;br /&gt;
&lt;br /&gt;
You can use [https://git.kernel.org/pub/scm/libs/libgpiod/libgpiod.git/ libgpiod] to drive them, and test them with the included tools (&amp;lt;code&amp;gt;gpioinfo&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;gpioset&amp;lt;/code&amp;gt;, ...)&lt;br /&gt;
&lt;br /&gt;
For example, &amp;lt;code&amp;gt;gpioset 4 25=1&amp;lt;/code&amp;gt; (run as root) would turn pin 22 on. Do beware that poking the wrong GPIO pin can lock up your system.&lt;br /&gt;
&lt;br /&gt;
The conversion table at right is also available as a [https://gist.github.com/CounterPillow/fe066655bf2d929148fe6eb3f15b1dd5 C header file].&lt;br /&gt;
&lt;br /&gt;
=== Working Features ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! Feature/Option&lt;br /&gt;
! Android&lt;br /&gt;
! Android Version&lt;br /&gt;
! Linux&lt;br /&gt;
! Linux Version&lt;br /&gt;
! Test/Verify Steps&lt;br /&gt;
! Notes&lt;br /&gt;
! Product Link&lt;br /&gt;
|-&lt;br /&gt;
| PINE64 LCD Touchscreen (Screen/Touch)&lt;br /&gt;
| Yes/Yes&lt;br /&gt;
| &lt;br /&gt;
| No/No&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| Maybe [https://github.com/avafinger/pine64-touchscreen this] will help get this working?&lt;br /&gt;
| [https://pine64.com/?product=7-lcd-touch-screen-panel 7″ LCD Touch Screen Panel]&lt;br /&gt;
|-&lt;br /&gt;
| Wireless&lt;br /&gt;
&amp;lt;small&amp;gt;ROCKPro64 2×2 MIMO Dual Band WiFi 802.11AC / Bluetooth 4.2 Module (old)&lt;br /&gt;
ROCKPro64 1x1 Dual Band WiFi 802.11AC / Bluetooth 5.0 Module (new)&amp;lt;/small&amp;gt;&lt;br /&gt;
| Yes/Yes&lt;br /&gt;
| &lt;br /&gt;
| No/Yes*&lt;br /&gt;
| Verified with Manjaro ARM (kernel 6.2.5). A config file (&amp;quot;firmware file&amp;quot;) is needed at &amp;lt;code&amp;gt;/lib/firmware/brcm/brcmfmac43455-sdio.txt&amp;lt;/code&amp;gt;. See here for the file contents and details: https://askubuntu.com/a/1211986.&lt;br /&gt;
| &lt;br /&gt;
| In 0.7.9 Ayufan linux releases this is deliberately disabled for stability reasons. After testing for a few hours, on Manjaro ARM (kernel 6.2.5), I did not experience any stability issues (WIFI stayed connected). On a 5GHz network (802.11AC), I was able to get about 120Mbps using the &amp;quot;new&amp;quot; ROCKPro64 WIFI module.&lt;br /&gt;
| [https://store.pine64.org/product/rockpro64-1x1-dual-band-wifi-802-11acbluetooth-5-0-module ROCKPro64 1x1 Dual Band WiFi 802.11AC / Bluetooth 5.0 Module]&lt;br /&gt;
|-&lt;br /&gt;
| USB OTG&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| use this script: [https://github.com/ayufan-rock64/linux-package/blob/master/root-rockpro64/usr/local/sbin/rockpro64_enable_otg.sh rockpro64_enable_otg.sh], then configure ip on usb0: ifconfig usb0 169.169.222.222 and run iperf, you should likely see about 200-300MB/s&lt;br /&gt;
| [[ROCKPro64#OTG_mode]]&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| USB Mass Storage USB2/USB3&lt;br /&gt;
| Yes/yes&lt;br /&gt;
| &lt;br /&gt;
| Yes/Yes&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Dedicated Fan Power (pwm1)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| Yes&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| You might want to use [https://github.com/tuxd3v/ats ATS].&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| GPIO pins (raw or via RPI python scripts)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| Check out [https://forum.frank-mankel.org/topic/292/rockpro64-rp64-gpio/2 what Frank Mankel has done].&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| MIPI CSI Camera 1 and 2&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| eDP&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| HDMI Audio&lt;br /&gt;
| Yes&lt;br /&gt;
| 7.1.2&lt;br /&gt;
| Yes&lt;br /&gt;
| 4.4.132-1083 - 4.4.138-1100&lt;br /&gt;
| &lt;br /&gt;
| Stopped working in 4.4.154.1105. Ayufan is looking into it. This is working in Manjaro ARM (kernel 6.2.5). Select the &amp;lt;code&amp;gt;Analog Output (Built-in Audio Stereo)&amp;lt;/code&amp;gt; option in the audio output device selection window (either use &amp;lt;code&amp;gt;pavucontrol&amp;lt;/code&amp;gt; or the volume button in the KDE desktop). Despite the slightly misleading name, audio does go through the HDMI port. See here for details: https://forum.manjaro.org/t/no-hdmi-audio-on-rockpro64/25595/2.&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 3.5mm Audio/Mic&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| USB-C Host&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Display via USB-C&lt;br /&gt;
| Yes&lt;br /&gt;
| 7.x and 8.x&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| eDP via USB-C per tillim. No sound on Android 7.x. Sound does work on Android 8.x&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| ROCKPro64 PLAYBOX ENCLOSURE&lt;br /&gt;
| N/A&lt;br /&gt;
| &lt;br /&gt;
| N/A&lt;br /&gt;
| &lt;br /&gt;
| N/A&lt;br /&gt;
| Ventilation does not exist, thus requires manual changes to add venting. Case should be modified to account power adapter not being centered in cut holes. Opening the case once close without modifying it first is near impossible without special tools. Graphene heatsink is included and does well for Linux but not Android.&lt;br /&gt;
| https://pine64.com/?product=rockpro64-playbox-enclosure&lt;br /&gt;
|-&lt;br /&gt;
| ROCKPro64 30mm Tall Profile Heatsink&lt;br /&gt;
| N/A&lt;br /&gt;
| &lt;br /&gt;
| N/A&lt;br /&gt;
| &lt;br /&gt;
| N/A&lt;br /&gt;
| &lt;br /&gt;
| https://store.pine64.org/?product=rockpro64-heatsink&lt;br /&gt;
|-&lt;br /&gt;
| ROCKPro64 20mm Mid Profile Heatsink&lt;br /&gt;
| N/A&lt;br /&gt;
| &lt;br /&gt;
| N/A&lt;br /&gt;
| &lt;br /&gt;
| N/A&lt;br /&gt;
| &lt;br /&gt;
| https://pine64.com/?product=rockpro64-20mm-mid-profile-heatsink&lt;br /&gt;
|-&lt;br /&gt;
| Fan For ROCKPro64 20mm Mid Profile Heatsink&lt;br /&gt;
| N/A&lt;br /&gt;
| &lt;br /&gt;
| N/A&lt;br /&gt;
| &lt;br /&gt;
| N/A&lt;br /&gt;
| You might want to use [https://github.com/tuxd3v/fanctl fanctl] to control the fan while keeping your CPU cool&lt;br /&gt;
| https://pine64.com/?product=fan-for-rockpro64-20mm-mid-profile-heatsink&lt;br /&gt;
|-&lt;br /&gt;
| HDMI output 4K@60Hz&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| PCIe 2.1&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Real Time Clock (RTC) battery backup&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| https://store.pine64.org/?product=rtc-backup-battery-cr-battery&lt;br /&gt;
|-&lt;br /&gt;
| Boot from USB/PXE&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
RockChip themselves have tables of supported features at 4.4 and mainline kernel versions [http://opensource.rock-chips.com/wiki_Status_Matrix in their wiki here].&lt;br /&gt;
&lt;br /&gt;
== Board Information, Schematics and Certifications ==&lt;br /&gt;
* Board Dimensions: 133mm x 80mm x 19mm&lt;br /&gt;
* Input Power: +12V @3A/5A with 5.5mm/2.1mm Type M Barrel type DC connector&lt;br /&gt;
* [https://files.pine64.org/doc/rockpro64/rockpro64_v21-SCH.pdf ROCKPro64 Schematic v2.1 (Second Batch Production Release)]&lt;br /&gt;
** [https://files.pine64.org/doc/rockpro64/RockPro64_v21_Boardoutline-top.dxf ROCKPro64 v2.1 Board Top Outline in AutoCad DXF format]&lt;br /&gt;
** [https://files.pine64.org/doc/rockpro64/RockPro64_v21_Boardoutline-bottom.dxf ROCKPro64 v2.1 Board Bottom Outline in AutoCad DXF format]&lt;br /&gt;
** [https://files.pine64.org/doc/rockpro64/RockPro64_v21_Boardoutline-top.pdf ROCKPro64 v2.1 Board Top Outline in PDF format]&lt;br /&gt;
** [https://files.pine64.org/doc/rockpro64/RockPro64_v21_Boardoutline-bottom.pdf ROCKPro64 v2.1 Board Bottom Outline in PDF format]&lt;br /&gt;
* [https://files.pine64.org/doc/rockpro64/rockpro64_v20-SCH.pdf ROCKPro64 Schematic v2.0 (Pilot Production Release)]&lt;br /&gt;
** [https://files.pine64.org/doc/rockpro64/ROCKPRo64%20Engineering%20Change%20Notice%2020180628RP01.pdf Engineering Change Notice for v2.0 to turn on 3.3V power on PCIe]&lt;br /&gt;
* [https://files.pine64.org/doc/rockpro64/rockpro64_wifi_ap6359SA.pdf ROCKPro64 AP6359SA Wifi/BT Schematic]&lt;br /&gt;
* [https://files.pine64.org/doc/rockpro64/Rockpro64%20Pi-2%20Connector%20ver0.2.png ROCKPro64 Pi-2 Pin assignment and definition]&lt;br /&gt;
* [https://files.pine64.org/doc/rockpro64/RockPro-3D-model.zip ROCKPro64 3D model]&lt;br /&gt;
&lt;br /&gt;
Certifications:&lt;br /&gt;
&lt;br /&gt;
* Disclaimer: Please note that PINE64 SBC is not a &amp;quot;final&amp;quot; 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.&lt;br /&gt;
* [https://files.pine64.org/doc/cert/ROCKPro64%20FCC%20SDOC%20Certificate.pdf ROCKPro64 FCC Certificate]&lt;br /&gt;
* [https://files.pine64.org/doc/cert/ROCKPro64%20CE-EMC%20Certificate.pdf ROCKPro64 CE Certificate]&lt;br /&gt;
* [https://files.pine64.org/doc/cert/ROCKPro64%20ROHS%20%20SEC180529404001E%20Report.pdf ROCKPro64 RoHS Report]&lt;br /&gt;
&lt;br /&gt;
== Datasheets for Components and Peripherals ==&lt;br /&gt;
&lt;br /&gt;
Rockchip RK3399 SoC information:&lt;br /&gt;
&lt;br /&gt;
* [https://www.rock-chips.com/a/en/products/RK33_Series/2016/0419/758.html Rockchip RK3399 SoC Brief]&lt;br /&gt;
* [http://opensource.rock-chips.com/images/d/d7/Rockchip_RK3399_Datasheet_V2.1-20200323.pdf Rockchip RK3399 Datasheet V2.1]&lt;br /&gt;
* [http://opensource.rock-chips.com/images/e/ee/Rockchip_RK3399TRM_V1.4_Part1-20170408.pdf Rockchip RK3399 Technical Reference Manual part 1]&lt;br /&gt;
* [https://files.pine64.org/doc/datasheet/rockpro64/RK808%20datasheet%20V0.8.pdf Rockchip RK808 Datasheet V0.8]&lt;br /&gt;
&lt;br /&gt;
LPDDR4 (200 Balls) SDRAM:&lt;br /&gt;
&lt;br /&gt;
* [https://files.pine64.org/doc/datasheet/rockpro64/SM512M32Z01MD2BNP(200BALL).pdf Micron LPDDR4 Mobile LPDDR4 Datasheet]&lt;br /&gt;
&lt;br /&gt;
eMMC information:&lt;br /&gt;
&lt;br /&gt;
* [https://files.pine64.org/doc/rock64/PINE64_eMMC_Module_20170719.pdf PINE64 eMMC module schematic]&lt;br /&gt;
* [https://files.pine64.org/doc/rock64/usb%20emmc%20module%20adapter%20v2.pdf PINE64 USB adapter for eMMC module V2 schematic]&lt;br /&gt;
* [https://files.pine64.org/doc/rock64/USB%20adapter%20for%20eMMC%20module%20PCB.tar PINE64 USB adapter for eMMC module PCB in JPEG]&lt;br /&gt;
* [https://files.pine64.org/doc/datasheet/pine64/E-00517%20FORESEE_eMMC_NCEMAM8B-16G%20SPEC.pdf 16GB Foresee eMMC Datasheet]&lt;br /&gt;
* [https://files.pine64.org/doc/datasheet/pine64/SDINADF4-16-128GB-H%20data%20sheet%20v1.13.pdf 32GB/64GB/128GB SanDisk eMMC Datasheet]&lt;br /&gt;
&lt;br /&gt;
SPI NOR Flash information:&lt;br /&gt;
&lt;br /&gt;
* [https://files.pine64.org/doc/datasheet/pine64/w25q128jv%20spi%20revc%2011162016.pdf WinBond 128Mb SPI Flash Datasheet]&lt;br /&gt;
* [https://files.pine64.org/doc/datasheet/pine64/GD25Q128C-Rev2.5.pdf GigaDevice 128Mb SPI Flash Datasheet]&lt;br /&gt;
&lt;br /&gt;
Heatsink related info:&lt;br /&gt;
&lt;br /&gt;
* [https://files.pine64.org/doc/datasheet/rockpro64/Rockpro%20Passive%20Heatsink%20Spec.jpg ROCKPro64 Passive Heatsink Dimension Drawing]&lt;br /&gt;
* [https://files.pine64.org/doc/datasheet/rockpro64/LMS-TC150%20Silicon%20Thermal%20Pad.pdf Heatsink Thermal Pad Specification]&lt;br /&gt;
&lt;br /&gt;
Wireless related info:&lt;br /&gt;
&lt;br /&gt;
* AMPAK AP6256 11AC WiFi + Bluetooth5.0 Datasheet [https://files.pine64.org/doc/datasheet/rockpro64/AP6256%20datasheet_V1.3_12202017.pdf (v. 1.3)] [http://files.pine64.org/doc/datasheet/PinebookPro/AP6256%20datasheet_V1.7_12282018.pdf (v. 1.7)]&lt;br /&gt;
&lt;br /&gt;
Ethernet related info:&lt;br /&gt;
&lt;br /&gt;
* [https://files.pine64.org/doc/datasheet/rock64/RTL8211F-CG-Realtek.pdf Realtek RTL8211F 10/100/1000M Ethernet Transceiver Datasheet]&lt;br /&gt;
&lt;br /&gt;
Peripheral related info:&lt;br /&gt;
&lt;br /&gt;
* [https://files.pine64.org/doc/datasheet/rockpro64/ASM1061_Data%20Sheet_R1_8.pdf asmedia ASM1061 PCIe SATA 2.0 Datasheet]&lt;br /&gt;
&lt;br /&gt;
Remote control button mapping:&lt;br /&gt;
&lt;br /&gt;
* [https://files.pine64.org/doc/Pine%20A64%20Schematic/remote-wit-logo.jpg Official Remote Control for the PINE64 Button Mapping]&lt;br /&gt;
&lt;br /&gt;
Audio Codec (ES8316) (under board):&lt;br /&gt;
&lt;br /&gt;
* [http://everest-semi.com/pdf/ES8316%20PB.pdf Everest ES8316 Audio Codec]&lt;br /&gt;
&lt;br /&gt;
PWM controlled fan, SPDIF, and RTC Battery Backup headers:&lt;br /&gt;
&lt;br /&gt;
* [https://www.jst-mfg.com/product/pdf/eng/ePH.pdf JST-PH connector]&lt;br /&gt;
&lt;br /&gt;
== Useful Articles and Blog Posts ==&lt;br /&gt;
&lt;br /&gt;
If you want to dive in to the ecosystem, here's a short list of various articles and blog posts that can help you set up your soft- or hardware development environment.&lt;br /&gt;
&lt;br /&gt;
* [https://stikonas.eu/wordpress/2019/09/15/blobless-boot-with-rockpro64/ Blobless boot with RockPro64 by Andrius Štikonas]&lt;br /&gt;
&lt;br /&gt;
* [https://marcin.juszkiewicz.com.pl/2020/06/17/ebbr-on-rockpro64/ EBBR on RockPro64 by Marcin Juszkiewicz]&lt;br /&gt;
&lt;br /&gt;
* [[ROCKPro64 Device Tree Overlays on Mainline]]&lt;br /&gt;
&lt;br /&gt;
== The NAS Case for the ROCKPro64 ==&lt;br /&gt;
&lt;br /&gt;
[[file:NASCaseMain.png|thumb|right|Front View of the PINE64 NAS Case for the ROCKPro64]]&lt;br /&gt;
&lt;br /&gt;
Please [[NASCase|follow this this link]] for '''detailed instructions on how to assemble the ROCKPro64 NAS Case'''.&lt;br /&gt;
&lt;br /&gt;
The NAS Case instructions also contains detailed information about:&lt;br /&gt;
*what the NAS Case ships with&lt;br /&gt;
*What additional things you need to purchase for your NAS Case&lt;br /&gt;
*What optional things you can consider purchasing for your NAS build&lt;br /&gt;
*What OS Image we recommend you use for your NAS build&lt;br /&gt;
*IO accessibility after installing the ROCKPro64 into the NAS Case&lt;br /&gt;
*[https://files.pine64.org/doc/rockpro64/ROCKPro64%20NAS%20Case%20Exploded%20View%20Diagram.pdf NAS Case Exploded View]&lt;br /&gt;
*[https://files.pine64.org/doc/rockpro64/NAS%20Case%20Drawing.dwg NAS Case Drawing]&lt;br /&gt;
&lt;br /&gt;
== 3D printable ITX mounting brackets ==&lt;br /&gt;
&lt;br /&gt;
[[file:ITX-Bracket-Mounted.jpg|300px|thumb|right|A Quartz64-A mounted in an ITX case using 3D printed brackets]]&lt;br /&gt;
&lt;br /&gt;
Allows mounting a ROCKPro64-A or Quartz64-A board inside a regular PC case that conforms to the ITX standard, using 3D printed brackets:&lt;br /&gt;
&lt;br /&gt;
* AMF/STL/STEP files plus the original FreeCAD file used to create the models [[File:RP64-A_Q64-A_to_ITX_mounting_brackets.zip]]&lt;br /&gt;
* Make sure to flip the two brackets by 180 degrees on one of the horizontal axes (X/Y) in your slicer of choice before printing to avoid unnecessary supports&lt;br /&gt;
* To allow enough clearance between the board and the bracket you either need to print four copies of the washer model or add nut(s) between the board and the bracket&lt;br /&gt;
* If using nuts for the clearance between the board and the brackets, make sure it creates at least 3.2mm of spacing in between&lt;br /&gt;
* Depending on the accuracy and calibration of a 3D printer, slight deviation can occur and you likely need to manually widen some of the holes to allow screws to fit&lt;br /&gt;
&lt;br /&gt;
== Other Resources ==&lt;br /&gt;
&lt;br /&gt;
* [https://forum.pine64.org/forumdisplay.php?fid=98 ROCKPro64 Forum]&lt;br /&gt;
* [https://pine64.com/?post_type=product PINE64 shop]&lt;br /&gt;
* [https://github.com/rockchip-linux Rockchip Linux GitHub Repo]&lt;br /&gt;
* [http://opensource.rock-chips.com/ Rockchip Open Source Wiki]&lt;br /&gt;
* ExplainingComputers have a video review [https://www.youtube.com/watch?v=CeoNHGFN_30 of the RockPro64 here, including linux first boot.]&lt;br /&gt;
* [[ROCKPro64 Installing Arch Linux ARM]]&lt;br /&gt;
* [[ROCKPro64 Powering From An ATX Supply]]&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
=== No Video or GPU Acceleration on Debian ===&lt;br /&gt;
&lt;br /&gt;
If you can log in through serial but don't get any video or GPU acceleration on Debian, this is likely due to Debian's decision to compile the devfreq governors as loadable modules but not including them early enough for panfrost to be able to be provided with one of them.&lt;br /&gt;
&lt;br /&gt;
The usual sign of this being the case is the following line in your log: &amp;lt;code&amp;gt;[drm:panfrost_devfreq_init [panfrost]] *ERROR* Couldn't initialize GPU devfreq&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Log in to your ROCKPro64, and run the following:&lt;br /&gt;
&lt;br /&gt;
 sudo -i&lt;br /&gt;
 echo governor_simpleondemand &amp;gt;&amp;gt; /etc/initramfs-tools/modules &amp;amp;&amp;amp; update-initramfs -u -k $(uname -r)&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
Then, reboot.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:ROCKPro64]] [[Category:Rockchip RK3399]]&lt;/div&gt;</summary>
		<author><name>I3master</name></author>
	</entry>
</feed>