PINE64 ROCKPro64
The PINE64 ROCKPro64 is a Rockchip RK3399 (ARMv8-A, Cortex-A72/A53 big.LITTLE) based, exceptionally libre software friendly SBC. It supports booting and even 3D hardware acceleration without any proprietary or closed source firmware blobs. The vendor focuses solely on hardware so there's no official software support. However, a vibrant and open community that provides extraordinary libre software support gathered around their products.
Hardware
Make/model | Notes | |
---|---|---|
Board | RockPro64 | Filename of device tree binary (board rev 2.1): rk3399-rockpro64.dtb |
SoC | Rockchip RK3399 | |
RAM | 4GB | 2GB version available, LPDDR4 |
Firmware | U-Boot,
Trusted Firmware A (ATF)[1] |
FLOSS, works without any proprietary blobs[2] |
Boot media | eMMC, SD Card, USB, PXE | Enabling boot from USB in U-Boot might have issues. |
SoC
Component | Make/model | Status | Kernel driver(s) | Kernel version | Notes |
---|---|---|---|---|---|
CPU | 2 x ARM Cortex-A72 (ARMv8-A)
4 x ARM Cortex-A53 (ARMv8-A) |
Works | 5.10 | big.LITTLE | |
GPU | 4 x Mali-T860 | Works | panfrost, rockchip_drm, drm_fbdev_emulation, rockchip_iommu | 5.10 | Panfrost is needed for hardware 3D acceleration, doesn't yet support OpenGL 3.30 (media-libs/mesa 20.x). |
HDMI | Synopsys Designware IP | Works | rockchip_dw_hdmi | 5.10 | |
MMC | Synopsys Designware IP | Works | mmc_dw_rockchip, pwrseq_emmc | 5.10 | |
SDHCI | Arasan SDHCI | Works | mmc_sdhci_of_arasan | 5.10 | |
Ethernet MAC | Works | dwmac_rockchip | 5.10 | 1 GBit | |
USB Type-C | Fairchild FUSB302 | ? | typec_fusb302 | 5.10 | PD, alternate mode DP |
USB-A 3.0 | ? | xhci_platform | 5.10 | ||
USB 2.0 | Works | ehci_platform | 5.10 | ||
DMA engine | PL330 | Works | pl330_dma | 5.10 | |
HDMI audio | Synopsis Designware IP | ? | soc_rockchip_i2s, drm_dw_hdmi_i2s_audio, simple_card | 5.10 |
Peripherals
Component | Make/model | Status | Kernel driver(s) | Kernel version | Notes |
---|---|---|---|---|---|
PMIC | Rockchip RK808 | Works | rk808 | 5.10 | Power Management Integrated Circuit (Regulators, RTC, Clocking)[3] |
Ethernet PHY | Realtek RTL8211F | Works | realtek_phy | 5.10 | via RGMII |
Analog Audio | ? | es8316, audio_graph_card | 5.10 |
GCC optimization
ARM errata 835769 and 843419 affect Cortex-A53 up to r0p4 and Linux kernel recommends working around the latter though states nothing about the former.
COMMON_FLAGS="-march=armv8-a+crc+crypto -mtune=cortex-a72.cortex-a53 -mfix-cortex-a53-835769 -mfix-cortex-a53-843419"
CFLAGS="${COMMON_FLAGS}"
CXXFLAGS="${COMMON_FLAGS}"
For a hardened system consider appending
-fstack-protector-all
Installing the bootloader
To build the U-Boot bootloader from source, see PINE64_ROCKPro64/Installing_U-Boot.
Installing Gentoo
Consult PINE64 ROCKPro64/Installing Gentoo for instructions on how to install Gentoo on the Pine64 ROCKPro64.
Issues
Depending on board revision and U-Boot version setting CONFIG_USE_PREBOOT=y
(which enables boot from USB) in U-Boot might cause the boot process to get stuck at Booting using the fdt blob at 0x1f00000
even when booting from SDXC or eMMC.[4]
External resources
References
- ↑ ARM Trusted Firmware, arm Developer. Retrieved on January 25th, 2021
- ↑ Blobless boot with RockPro64, Andrius Štikonas. Retrieved on January 25th, 2021
- ↑ Fuzhou Rockchip Electronics Co., Ltd., RK808 Datasheet V0.8 (PDF), PINE64. Retrieved on January 25th, 2021
- ↑ Unstable boot on 2GB and 4GB RockPros with 2020.10, All things related to Manjaro-ARM. Retrieved on January 25th, 2021