PINE64 ROCKPro64

From Gentoo Wiki
Jump to:navigation Jump to:search
Resources

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

Note
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.
FILE /etc/portage/make.confRK3399 example
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}"
Note
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

  1. ARM Trusted Firmware, arm Developer. Retrieved on January 25th, 2021
  2. Blobless boot with RockPro64, Andrius Štikonas. Retrieved on January 25th, 2021
  3. Fuzhou Rockchip Electronics Co., Ltd., RK808 Datasheet V0.8 (PDF), PINE64. Retrieved on January 25th, 2021
  4. Unstable boot on 2GB and 4GB RockPros with 2020.10, All things related to Manjaro-ARM. Retrieved on January 25th, 2021