Edit page

Hardware compatibility

Please contribute to the hardware compatibility page, which lists hardware which has been tested with the rockpro64, whether successful or not.

Hardware compatibility

PCIe devices

TypeMake/ModelHardware IDsKernelResultNotesTester
NICIntel I350 Dual PortMainline-5.4goodSR-IOV fails
NICIntel I350 Quad Port?
NICIntel X520 Dual Port8086:10fbMainline-5.6goodSR-IOV fails
NICIntel X550-T2 Dual Port8086:15635.15.0-trunk-arm64 (Debian)goodnetperf throughput in FW mode, 20 streams: between 4136-6613mb/s across use cases.
NICIntel 82571EB Dual Port (HP NC360T)Mainline-5.6crashkernel crash on boot
NICIntel 82575EB Dual Port (AOC-SG-I2)Mainline-5.10crashkernel crash on boot
NICIntel 82575/825768086:1521OpenWrt 21.02-rc1 ; 5.4.111-1goodopkg: kmod-igb; OpenWrt 21.02-rc1 5.4.111-1; ~92.8 KB; Kernel modules for Intel(R) 82575/82576 PCI-Express Gigabit Ethernet adapters.
NICAquantia 10GBps AQC1071d6a:07b1Mainline 5.16goodWorks perfectly out of the box.
GPUnVidia GTX-645Mainline-5.4crashBAR size too small, triggers PCIe error handling bug
PCIe SwitchPCIE-EUX1-04 Ver.002Mainline-5.4good
SATA ControllerASM1062 4-PortMainline-5.6goodtested only with one disk attached
SATA ControllerASM1062 (rev 02) 4-Port1d87:0100Ayufan-4.4.190goodtested with four disks, 3 in raid 5
SATA ControllerIOCrest (Same as Syba?) SI-PEX40063 4-port, Marvell 88SE9235 chip1b4b:9235Debian unstable 5.7, 5.8goodTested with two disks. SATA errors occurred with a WD Red drive in a cheap enclosure; resolved by connecting the same drive directly to the card.
SATA ControllerZiyituod SATA Card ASM 1062+1093 6-Port1b21:0625Mainline-4.4 (armbian)goodtested with 6 disks
SATA ControllerBEYMEI RAID 4-Port, Marvell 88SE9230 chip1b4b:9230Ayufan-5.6.0-1137goodTested with 3 disks in RAID 5. I added pci=nomsi to /boot/extlinux/extlinux.conf kernel parameters and an udev rule before the disks were recognized: ACTION==“add”, SUBSYSTEM==“pci”, ATTR{vendor}==“0x1b4b”, ATTR{device}==“0x9230”, RUN+="/bin/bash -c ’echo %k > /sys/bus/pci/drivers/ahci/bind'"
SATA ControllerBEYIMEI SATA Card 6-Port, ASM1166 chip5.10.0-16-arm64 (Debian)goodTested with 4 disks. Built 2 separate software RAID-1 arrays without errors. Performance seems good enough for a NAS on gigabit LAN.
SATA ControllerPCE8SAT-A02 VER006S
2 Lanes, 8-Port, ASM1166 chip
Odd because chip got only 6 ports?
1b21:11666.1.50-current-rockchip64
Armbian 23.8.1 Bookworm
unstableTested with 3 disks in SW-RAID 5. After 10 hours of burn in test one disk dropped from system and RAID. Hotplug does not work.User:JPT
SATA ControllerBEYIMEI SATA Card 2-Port, ASM1062 chip1b21:06125.10.0-19-arm64 (Debian)goodUsing with 2 SSDs in a software RAID-1 array (~190MB/sec for reading and writing)
SATA ControllerQNINE 4-Port, Marvell 88SE9215 chipAyufan-5.6.0-1137very slowTested with 3 disks in RAID 5. Top speeds were around 50 MiB/s but quickly dropped to below 2 MiB/s due to SATA CRC errors
SATA ControllerDELOCK 90498, JMicron Technology Corp. JMB58x AHCI SATA controller197b:05855.18.0-0.bpo.1-arm64 (Debian bullseye + backports)good, but…Tested with 3 disks, two in RAID1, one standalone. u-boot-rockchip_2023.07 cannot initialize the controller to boot off it.User:Lrissman
User:ChriChri
Host Bus AdapterLSI SAS 9211-4i
SAS2008 chip, 4-Port SAS/SATA, PCI 2.0, 8 lanes
1000:0070Ayufan-4.4.197goodtested with four disks attached
Host Bus AdapterFujitsu SAS MEGARAID LSI 2008B2
SAS2008 chip, 8-Port SAS/SATA, PCI 2.0, 8 lanes
TODO6.1.50-current-rockchip64
Armbian 23.8.1 Bookworm
TODOneeds special MicroSAS cables. Must be flashed to HBA mode?
ordered, not yet received
User JPT
USB ControllerASMedia Technology Inc. ASM1142 USB 3.1 Host Controller1b21:1242Mainline-5.15.0-rc5good
DTMB Quad TunerTBS TechnologiesTSS6514Mainline-5.10.21goodTV -> LAN streaming server, 7W idle, 8-10W with one FHD channel streaming
DVB-T2/C Quad TunerTBS TechnologiesTBS62055.10.0-16-arm64 (Debian)goodWorking well with Tvheadend
DVB-S2 Dual TunerDigital DevicesOctopus CI S2 Pro6.1.42-rockchip64 (armbian)goodAll features are working flawlessly with the latest drivers from Digital Devices

NVMe SSD drives

TypeMake/ModelSizeHardware IDsKernelResultNotesPower options
Active only
Save power setting?
NVMeSamsung 970 Evo500 GBMainline 5.6good-defaultsdefaults
NVMeSamsung 960 Evo500 GB144d:a804Mainline 5.13-rc4doesn’t workLikely due to 64/32 BAR mismatch issue on Linux 5.11+defaultsdefaults

USB hardware

TypeMake/ModelHardware IDsKernelResultNotesTester
Zigbee BridgeConbee II1cf1:00306.1.50-current-rockchip64
Armbian 23.8.1 Bookworm
goodseems to work fineUser JPT

USB C alternate mode DP

Note that only USB C alternate mode Display Port will pass video. Any HDMI, DVI or VGA port must be converted internally by the device from Display Port - or the device won’t work for video.

TypeMake/ModelHardware IDsKernelResultNotes

eMMC / SD drives

TypeMake/ModelHardware IDsKernelRead SpeedWrite SpeedResultNotes

Other hardware

TypeMake/ModelHardware IDsKernelResultNotes

Limitations

Older firmware overwrites actively used memory

Some people get system freeze when:

  • use SATA disk with ROCKPro64 PCIe card (maybe on newer PCIe card ASM1062 vs ASM1061)
  • or do read or write 4GB to the flash (not using PCIe)

If you connect the serial console you will see a Linux kernel oops: (a)synchronous external abort.

Both issues are in fact the same software BUG. There is no hardware problem. Currently, most OS do use uboot with a rockpro blob FW which use memory that Linux kernel is not aware of.

People are currently fixing this BUG, but it may take some time. In the mean time, you can fix it manually.

The latest u-boot can boot the rockpro64 without any blobs from rockchip.

Install first arm-none-eabi-gcc and aarch64-linux-gnu-gcc compiler, then run the following commands:

Prerequisite packages (Debian/Ubuntu): device-tree-compiler python gcc-arm-non-eabi flex bison gcc-aarch64-linux-gnu gcc make

git clone https://github.com/ARM-software/arm-trusted-firmware.git atf
make -C atf CROSS_COMPILE=aarch64-linux-gnu- PLAT=rk3399 bl31
git clone https://gitlab.denx.de/u-boot/u-boot.git u-boot
cd u-boot/
git checkout v2020.01-rc5
make rockpro64-rk3399_defconfig
BL31=../atf/build/rk3399/release/bl31/bl31.elf make ARCH=arm CROSS_COMPILE=aarch64-linux-gnu-

Which gives you idbloader.img and u-boot.itb. Copy them to the rockpro64, and run the following: (Or put your SD card into your PC)

sudo dd if=idbloader.img of=/dev/mmcblk0 seek=64
sudo dd if=u-boot.itb of=/dev/mmcblk0 seek=16384
sync

PCIe Controller Hardware Error Handling Bug

There is an issue with the rk3399 pcie controller that is currently unmitigated:

The rk3399 pcie controller throws either a synchronous abort or a SError when a pcie device sends an unknown message.

The error type is determined by which cpu cluster handles the message.

Virtualization

The PCIe controller on the rk3399 is not behind an IOMMU. This means it is not possible to safely pass through PCIe devices to a virtual machine.