<?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=Kitoko86</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=Kitoko86"/>
	<link rel="alternate" type="text/html" href="https://wiki.pine64.org/wiki/Special:Contributions/Kitoko86"/>
	<updated>2026-04-20T12:49:39Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.37.1</generator>
	<entry>
		<id>https://wiki.pine64.org/index.php?title=ROCKPro64_Hardware_compatibility&amp;diff=20171</id>
		<title>ROCKPro64 Hardware compatibility</title>
		<link rel="alternate" type="text/html" href="https://wiki.pine64.org/index.php?title=ROCKPro64_Hardware_compatibility&amp;diff=20171"/>
		<updated>2023-08-02T15:39:18Z</updated>

		<summary type="html">&lt;p&gt;Kitoko86: /* PCIe devices */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Hardware accessory compatibility for the [[ROCKPro64]]. Please contribute to the hardware compatibility page, which lists hardware which has been tested with the rockpro64, whether successful or not.&lt;br /&gt;
&lt;br /&gt;
== Hardware compatibility ==&lt;br /&gt;
=== PCIe devices ===&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
!Type || Make/Model || Hardware IDs || Kernel || Result || Notes&lt;br /&gt;
|-&lt;br /&gt;
| NIC || Intel I350 Dual Port ||  || Mainline-5.4 || style=&amp;quot;background:PaleGreen;&amp;quot; | good || SR-IOV fails&lt;br /&gt;
|-&lt;br /&gt;
| NIC || Intel I350 Quad Port ||  ||  || ? ||&lt;br /&gt;
|-&lt;br /&gt;
| NIC || Intel X520 Dual Port || 8086:10fb || Mainline-5.6 || style=&amp;quot;background:PaleGreen;&amp;quot; | good || SR-IOV fails&lt;br /&gt;
|-&lt;br /&gt;
| NIC || Intel X550-T2 Dual Port || 8086:1563 || 5.15.0-trunk-arm64 (Debian) || style=&amp;quot;background:PaleGreen;&amp;quot; | good || netperf throughput in FW mode, 20 streams:  between 4136-6613mb/s across use cases.&lt;br /&gt;
|-&lt;br /&gt;
| NIC || Intel 82571EB Dual Port (HP NC360T) ||  || Mainline-5.6 || style=&amp;quot;background:#F99;&amp;quot; | crash || kernel crash on boot&lt;br /&gt;
|-&lt;br /&gt;
| NIC || Intel 82575EB Dual Port (AOC-SG-I2) ||  || Mainline-5.10 || style=&amp;quot;background:#F99;&amp;quot; | crash || kernel crash on boot&lt;br /&gt;
|-&lt;br /&gt;
| NIC || Intel 82575/82576 || 8086:1521 || OpenWrt 21.02-rc1 ; 5.4.111-1 || style=&amp;quot;background:PaleGreen;&amp;quot; | good ||opkg: kmod-igb ; [https://wiki.pine64.org/wiki/ROCKPro64_Software_Release#OpenWrt_21.02 OpenWrt 21.02-rc1] 5.4.111-1 ; ~92.8 KB ; Kernel modules for Intel(R) 82575/82576 PCI-Express Gigabit Ethernet adapters.&lt;br /&gt;
|-&lt;br /&gt;
| NIC || Aquantia 10GBps AQC107 || 1d6a:07b1 || Mainline 5.16 || style=&amp;quot;background:PaleGreen;&amp;quot; | good || Works perfectly out of the box.&lt;br /&gt;
|-&lt;br /&gt;
| GPU || nVidia GTX-645 ||  || Mainline-5.4 || style=&amp;quot;background:#F99;&amp;quot; | crash || BAR size too small, triggers PCIe error handling bug&lt;br /&gt;
|-&lt;br /&gt;
| PCIe Switch || PCIE-EUX1-04 Ver.002 ||  || Mainline-5.4 || style=&amp;quot;background:PaleGreen;&amp;quot; | good || &lt;br /&gt;
|-&lt;br /&gt;
| SATA Controller || ASM1062 4-Port ||  || Mainline-5.6 || style=&amp;quot;background:PaleGreen;&amp;quot; | good || tested only with one disk attached&lt;br /&gt;
|-hw&lt;br /&gt;
| SATA Controller || ASM1062 (rev 02) 4-Port ||1d87:0100|| Ayufan-4.4.190 || style=&amp;quot;background:PaleGreen;&amp;quot; | good || tested with four disks, 3 in raid 5 &lt;br /&gt;
|-&lt;br /&gt;
| SATA Controller || IOCrest (Same as Syba?) SI-PEX40063 4-port, Marvell 88SE9235 chip || 1b4b:9235 || Debian unstable 5.7, 5.8 || style=&amp;quot;background:PaleGreen;&amp;quot; | good || Tested 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.&lt;br /&gt;
|-&lt;br /&gt;
| SATA Controller || Ziyituod SATA Card ASM 1062+1093 6-Port || 1b21:0625 || Mainline-4.4 (armbian) || style=&amp;quot;background:PaleGreen;&amp;quot; | good || tested with 6 disks ||&lt;br /&gt;
|-&lt;br /&gt;
| SATA Controller || BEYMEI RAID 4-Port, Marvell 88SE9230 chip || 1b4b:9230 || Ayufan-5.6.0-1137 || style=&amp;quot;background:PaleGreen;&amp;quot; | good || Tested 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==&amp;quot;add&amp;quot;, SUBSYSTEM==&amp;quot;pci&amp;quot;, ATTR{vendor}==&amp;quot;0x1b4b&amp;quot;, ATTR{device}==&amp;quot;0x9230&amp;quot;, RUN+=&amp;quot;/bin/bash -c 'echo %k &amp;gt; /sys/bus/pci/drivers/ahci/bind'&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| SATA Controller || BEYIMEI SATA Card 6-Port, ASM1166 chip ||   || 5.10.0-16-arm64 (Debian) || style=&amp;quot;background:PaleGreen;&amp;quot; | good || Tested with 4 disks. Built 2 separate software RAID-1 arrays without errors. Performance seems good enough for a NAS on gigabit LAN.&lt;br /&gt;
|-&lt;br /&gt;
| SATA Controller || BEYIMEI SATA Card 2-Port, ASM1062 chip || 1b21:0612 || 5.10.0-19-arm64 (Debian) || style=&amp;quot;background:PaleGreen;&amp;quot; | good || Using with 2 SSDs in a software RAID-1 array (~190MB/sec for reading and writing)&lt;br /&gt;
|-&lt;br /&gt;
| SATA Controller || QNINE 4-Port, Marvell 88SE9215 chip || || Ayufan-5.6.0-1137 || style=&amp;quot;background:LightYellow;&amp;quot; | very slow || Tested 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&lt;br /&gt;
|-&lt;br /&gt;
| SATA Controller || DELOCK 90498, JMicron Technology Corp. JMB58x AHCI SATA controller || 197b:0585 || 5.18.0-0.bpo.1-arm64 (Debian bullseye + backports) || style=&amp;quot;background:PaleGreen;&amp;quot; | good || Tested with 3 disks, two in RAID1, one standalone, no issues&lt;br /&gt;
|-&lt;br /&gt;
| Host Bus Adapter || LSI SAS 9211-4i || 1000:0070 || Ayufan-4.4.197 || style=&amp;quot;background:PaleGreen;&amp;quot; | good || tested with four disks attached&lt;br /&gt;
|-&lt;br /&gt;
| USB Controller || ASMedia Technology Inc. ASM1142 USB 3.1 Host Controller || 1b21:1242 || Mainline-5.15.0-rc5 || style=&amp;quot;background:PaleGreen;&amp;quot; | good ||&lt;br /&gt;
|-&lt;br /&gt;
| DTMB Quad Tuner || TBS Technologies || TSS6514 || Mainline-5.10.21 || style=&amp;quot;background:PaleGreen;&amp;quot; | good || TV -&amp;gt; LAN streaming server, 7W idle, 8-10W with one FHD channel streaming&lt;br /&gt;
|-&lt;br /&gt;
| DVB-T2/C Quad Tuner || TBS Technologies || TBS6205 || 5.10.0-16-arm64 (Debian) || style=&amp;quot;background:PaleGreen;&amp;quot; | good || Working well with Tvheadend&lt;br /&gt;
|-&lt;br /&gt;
| DVB-S2 Dual Tuner || Digital Devices || Octopus CI S2 Pro || 6.1.42-rockchip64 (armbian) || style=&amp;quot;background:PaleGreen;&amp;quot; | good || All features are working flawlessly with the latest drivers from Digital Devices &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== NVMe SSD drives ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
!Type || Make/Model || Size || Hardware IDs || Kernel || Result || Notes || Power options&amp;lt;br/&amp;gt;Active only || Save&amp;lt;br/&amp;gt;power&amp;lt;br/&amp;gt;setting?&lt;br /&gt;
|-&lt;br /&gt;
| NVMe || Samsung 970 Evo || 500 GB || || Mainline 5.6 || style=&amp;quot;background:PaleGreen;&amp;quot; | good || - || defaults || defaults&lt;br /&gt;
|-&lt;br /&gt;
| NVMe || Samsung 960 Evo || 500 GB || 144d:a804 || Mainline 5.13-rc4 || style=&amp;quot;background:#F99;&amp;quot; | doesn't work || Likely due to 64/32 BAR mismatch issue on Linux 5.11+ || defaults || defaults&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== USB hardware ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
!Type || Make/Model || Hardware IDs || Kernel || Result || Notes&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== USB C alternate mode DP ===&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
!Type || Make/Model || Hardware IDs || Kernel || Result || Notes&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Other hardware ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
!Type || Make/Model || Hardware IDs || Kernel || Result || Notes &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Limitations ==&lt;br /&gt;
&lt;br /&gt;
=== Older firmware overwrites actively used memory ===&lt;br /&gt;
&lt;br /&gt;
Some people get system freeze when:&lt;br /&gt;
&lt;br /&gt;
* use SATA disk with ROCKPro64 PCIe card. (maybe on newer PCIe card ASM1062 vs ASM1061)&lt;br /&gt;
* or do read or write 4GB to the flash. (not using PCIe)&lt;br /&gt;
&lt;br /&gt;
If you connect the serial console you will see a Linux kernel oops: (a)synchronous external abort.&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
People are currently fixing this BUG, but it may take some time. In the mean time, you can fix it manually.&lt;br /&gt;
&lt;br /&gt;
The latest u-boot can boot the rockpro64 without any blobs from rockchip.&lt;br /&gt;
&lt;br /&gt;
Install first arm-none-eabi-gcc and aarch64-linux-gnu-gcc compiler, then run the following commands:&lt;br /&gt;
&lt;br /&gt;
Prerequisite packages (Debian/Ubuntu): &amp;lt;code&amp;gt;device-tree-compiler python gcc-arm-non-eabi flex bison gcc-aarch64-linux-gnu gcc make&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 git clone https://github.com/ARM-software/arm-trusted-firmware.git atf&lt;br /&gt;
 make -C atf CROSS_COMPILE=aarch64-linux-gnu- PLAT=rk3399 bl31&lt;br /&gt;
 git clone https://gitlab.denx.de/u-boot/u-boot.git u-boot&lt;br /&gt;
 cd u-boot/&lt;br /&gt;
 git checkout v2020.01-rc5&lt;br /&gt;
 make rockpro64-rk3399_defconfig&lt;br /&gt;
 BL31=../atf/build/rk3399/release/bl31/bl31.elf make ARCH=arm CROSS_COMPILE=aarch64-linux-gnu-&lt;br /&gt;
&lt;br /&gt;
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)&lt;br /&gt;
&lt;br /&gt;
 sudo dd if=idbloader.img of=/dev/mmcblk0 seek=64&lt;br /&gt;
 sudo dd if=u-boot.itb of=/dev/mmcblk0 seek=16384&lt;br /&gt;
 sync&lt;br /&gt;
&lt;br /&gt;
=== PCIe Controller Hardware Error Handling Bug ===&lt;br /&gt;
&lt;br /&gt;
There is an issue with the rk3399 pcie controller that is currently unmitigated:&lt;br /&gt;
&lt;br /&gt;
* [https://lore.kernel.org/linux-pci/CAMdYzYoTwjKz4EN8PtD5pZfu3+SX+68JL+dfvmCrSnLL=K6Few@mail.gmail.com/ LKML Original Thread]&lt;br /&gt;
* [https://lkml.org/lkml/2020/4/6/320 LKML Additional Information]&lt;br /&gt;
&lt;br /&gt;
The rk3399 pcie controller throws either a synchronous abort or a SError when a pcie device sends an unknown message.&lt;br /&gt;
&lt;br /&gt;
The error type is determined by which cpu cluster handles the message.&lt;br /&gt;
&lt;br /&gt;
=== Virtualization ===&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:ROCKPro64]]&lt;/div&gt;</summary>
		<author><name>Kitoko86</name></author>
	</entry>
</feed>