Difference between revisions of "POWER9 Hardware Compatibility List/PCIe Devices"
JeremyRand (talk | contribs) (→Unknown if working (good candidates to test): Add Nouveau benchmark link) |
m (6600 XT works with 6.11) |
||
(35 intermediate revisions by 11 users not shown) | |||
Line 7: | Line 7: | ||
* '''Incomplete memory addressing support.''' The PCIe architecture specifies a 64-bit address space. Some I/O devices try to economize on this by only implementing e.g. 40 bits for their addressing, rendering them incapable of addressing host memory which lies above address 2<sup>40</sup>. (Firmware patches to work around this are pending.) | * '''Incomplete memory addressing support.''' The PCIe architecture specifies a 64-bit address space. Some I/O devices try to economize on this by only implementing e.g. 40 bits for their addressing, rendering them incapable of addressing host memory which lies above address 2<sup>40</sup>. (Firmware patches to work around this are pending.) | ||
* '''Bifurcation limits.''' Arbitrary PCIe lane bifurcation is not supported. Devices which split a PCIe slot into multiple connectors (for example, PCIe to M.2 adaptors) will not work unless they have a PCIe switch chip, although the first connector will generally work. | * '''Bifurcation limits.''' Arbitrary PCIe lane bifurcation is not supported. Devices which split a PCIe slot into multiple connectors (for example, PCIe to M.2 adaptors) will not work unless they have a PCIe switch chip, although the first connector will generally work. | ||
− | * '''Endianness bugs.''' POWER supports both BE and LE modes; x86 is LE only. Some buggy drivers may break in BE mode, or some buggy devices may misbehave in BE mode (e.g. operate at decreased performance). | + | * '''Endianness bugs.''' POWER supports [[Endianness|both BE and LE modes]]; x86 is LE only. Some buggy drivers may break in BE mode, or some buggy devices may misbehave in BE mode (e.g. operate at decreased performance). |
− | * '''Page size bugs.''' POWER supports both 4KiB and 64KiB page sizes; x86 is 4KiB only. Some buggy drivers may break in | + | * '''Page size bugs.''' POWER supports [[Page size|both 4KiB and 64KiB page sizes]]; x86 is 4KiB only. Some buggy drivers may expect one and break in the other. |
==Troubleshooting== | ==Troubleshooting== | ||
Line 31: | Line 31: | ||
** Driver compiled by default on PowerPC (and others) from this [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=9b22fece786ed641909988da4810bfa8e5d2e592 commit]. | ** Driver compiled by default on PowerPC (and others) from this [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=9b22fece786ed641909988da4810bfa8e5d2e592 commit]. | ||
** There is proprietary firmware written into EEPROM from the factory but it does not seem to be writeable, nor does it have to be loaded by the Linux kernel. | ** There is proprietary firmware written into EEPROM from the factory but it does not seem to be writeable, nor does it have to be loaded by the Linux kernel. | ||
+ | * Intel 82599ES (10Gb/s, ixgbe driver). | ||
+ | * [https://i.dell.com/sites/csdocuments/Shared-Content_data-Sheets_Documents/en/us/Intel_Dell_X710_Product_Brief_X550_10_GbE_Converged.pdf Dell Intel X550 10 GbE Converged Network Adapter] (Chipset: [https://www.intel.com/content/www/us/en/products/sku/84329/intel-ethernet-controller-x550at2/specifications.html Intel X550-AT2]) (ixgbe driver) | ||
===Non-working=== | ===Non-working=== | ||
Line 56: | Line 58: | ||
==NVMe Drives== | ==NVMe Drives== | ||
+ | ===Working=== | ||
* Samsung 950 PRO (with M.2 to PCIe adapter) | * Samsung 950 PRO (with M.2 to PCIe adapter) | ||
* Samsung 960 EVO / PRO (with M.2 to PCIe adapter) | * Samsung 960 EVO / PRO (with M.2 to PCIe adapter) | ||
Line 61: | Line 64: | ||
* Samsung 970 EVO Plus (with M.2 to PCIe adapter) | * Samsung 970 EVO Plus (with M.2 to PCIe adapter) | ||
* Samsung 980 PRO (with M.2 to PCIe adapter) | * Samsung 980 PRO (with M.2 to PCIe adapter) | ||
+ | * Samsung 990 PRO (with M.2 to PCIe adapter) | ||
* [https://www.samsung.com/semiconductor/ssd/datacenter-ssd/MZ1LB960HAJQ/ Samsung PM983] (with [https://www.supermicro.com/en/products/accessories/addon/AOC-SHG3-4M2P.php AOC-SHG3-4M2P] M.2 to PCIe adapter) | * [https://www.samsung.com/semiconductor/ssd/datacenter-ssd/MZ1LB960HAJQ/ Samsung PM983] (with [https://www.supermicro.com/en/products/accessories/addon/AOC-SHG3-4M2P.php AOC-SHG3-4M2P] M.2 to PCIe adapter) | ||
* [https://ark.intel.com/content/www/us/en/ark/products/series/81000/intel-ssd-dc-p3600-series.html Intel SSD DC P3600 PCIe AIC] (tested 1.6 TB) | * [https://ark.intel.com/content/www/us/en/ark/products/series/81000/intel-ssd-dc-p3600-series.html Intel SSD DC P3600 PCIe AIC] (tested 1.6 TB) | ||
Line 70: | Line 74: | ||
* Silicon Power US70 2000 GB (note that it is configured with 512 byte sectors by default and should be reformatted with nvme-cli to get better performance) | * Silicon Power US70 2000 GB (note that it is configured with 512 byte sectors by default and should be reformatted with nvme-cli to get better performance) | ||
* Kingston KC3000 1TB (with HighPoint SSD7505 adapter) - I get some unknown 'nvme error-log' errors once in a while, but I doubt it is related to the power platform. | * Kingston KC3000 1TB (with HighPoint SSD7505 adapter) - I get some unknown 'nvme error-log' errors once in a while, but I doubt it is related to the power platform. | ||
+ | * Kingston SNV2S/2000G (with M.2 to PCIe adapter) | ||
+ | |||
+ | ===Non-working=== | ||
+ | |||
+ | * WD Black SN850 SSD NVMe - confirmed by two independent people/machines, the stick is simply not recognized. Ideas? | ||
− | Known issues | + | ===Known issues=== |
* [FIXED in stable kernels 4.19 and 5.4] [https://bugzilla.kernel.org/show_bug.cgi?id=202665 IOMMU related errors when performing discard on some NVMe devices] (mainly NVMe SSDs). Current workaround is booting with the kernel parameter ''iommu=soft'', see the [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=530436c45ef2e446c12538a400e465929a0b3ade patch] | * [FIXED in stable kernels 4.19 and 5.4] [https://bugzilla.kernel.org/show_bug.cgi?id=202665 IOMMU related errors when performing discard on some NVMe devices] (mainly NVMe SSDs). Current workaround is booting with the kernel parameter ''iommu=soft'', see the [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=530436c45ef2e446c12538a400e465929a0b3ade patch] | ||
Line 88: | Line 97: | ||
** Works without special drivers as a PCIe switch. NVMEs are detected and work just fine. Petitboot is able to boot attached NVMEs with no problems. Tested in FreeBSD. -- [[User:Bdragon|Bdragon]] ([[User talk:Bdragon|talk]]) | ** Works without special drivers as a PCIe switch. NVMEs are detected and work just fine. Petitboot is able to boot attached NVMEs with no problems. Tested in FreeBSD. -- [[User:Bdragon|Bdragon]] ([[User talk:Bdragon|talk]]) | ||
* [https://highpoint-tech.com/USA_new/series-ssd7102-overview.htm HighPoint SSD7102] 4x M.2 PCIe to PCIe 3.0 x16 (with PCIe switch) | * [https://highpoint-tech.com/USA_new/series-ssd7102-overview.htm HighPoint SSD7102] 4x M.2 PCIe to PCIe 3.0 x16 (with PCIe switch) | ||
+ | * [https://www.highpoint-tech.com/nvme1/ssd7204/ HighPoint SSD7204] 4x M.2 PCIe to PCIe 3.0 x8 (with PCIe switch) | ||
+ | ** Important note (Blackbird only): The heat sink of the HighPoint switch partially covers the BMC header, the USB 3.0 header and SATA port 4, which cannot be used as a result because the HighPoint switch cannot be fully inserted into the PCIe port. If access to these ports/header is required, a workaround can be cutting part of the heatsink off with a metal saw in a way that the adapter's chip still has connection to the heat sink but not to the NVMe's. If necessary, small heat sinks can be attached to the NVMe devices with a self-adhesive thermal pad. It is also possible to connect the USB3 header to a right-angle adapter, which once installed will not interfere with the installation or use of the HighPoint controller. It may also be possible to use the last SATA port with a right-angle SATA cable. | ||
* [https://estore-highpoint-tech.com/products/highpoint-ssd7505-pcie-4-0-x16-4-channel-u-2-nvme-raid-controller HighPoint SSD7505] PCIe 4.0 x16 4-Port M.2 NVMe RAID Controller | * [https://estore-highpoint-tech.com/products/highpoint-ssd7505-pcie-4-0-x16-4-channel-u-2-nvme-raid-controller HighPoint SSD7505] PCIe 4.0 x16 4-Port M.2 NVMe RAID Controller | ||
* [https://highpoint-tech.com/USA_new/series-ssd7540-overview.htm HighPoint SSD7540] PCIe 4.0 x16 8-Port M.2 NVMe RAID Controller | * [https://highpoint-tech.com/USA_new/series-ssd7540-overview.htm HighPoint SSD7540] PCIe 4.0 x16 8-Port M.2 NVMe RAID Controller | ||
** Tested with Samsung 980 Pro 2TB | ** Tested with Samsung 980 Pro 2TB | ||
** Beware of LUKS encryption performance not catching up with such speedy bandwidths yet. | ** Beware of LUKS encryption performance not catching up with such speedy bandwidths yet. | ||
+ | * [https://www.highpoint-tech.com/hba-gen4-nvme-m2 HighPoint Rocket 1504] PCIe 4.0 x16 4-port M.2 NVMe Controller | ||
+ | * [https://www.highpoint-tech.com/hba-gen3-nvme-m2 HighPoint Rocket 1204] PCIe 3.0 x8 4-port M.2 NVMe Controller | ||
* [https://raidsonic.de/en/standards/searchresults.php?we_objectID=5456 Raidsonic Icy Box PCIe extension card for one M.2 NVMe SSD (IB-PCI214M2-HSL)]: | * [https://raidsonic.de/en/standards/searchresults.php?we_objectID=5456 Raidsonic Icy Box PCIe extension card for one M.2 NVMe SSD (IB-PCI214M2-HSL)]: | ||
** Tested with a Samsung 970 EVO Plus NVMe M.2 with 2 TB | ** Tested with a Samsung 970 EVO Plus NVMe M.2 with 2 TB | ||
Line 114: | Line 127: | ||
::0001:0b:00.0 Ethernet controller: Aquantia Corp. AQC113CS NBase-T/IEEE 802.3bz Ethernet Controller [AQtion] (rev 03)<br> | ::0001:0b:00.0 Ethernet controller: Aquantia Corp. AQC113CS NBase-T/IEEE 802.3bz Ethernet Controller [AQtion] (rev 03)<br> | ||
</small> | </small> | ||
+ | * [https://www.qnap.com/en/product/qm2-4p-384 QNAP-QM2-4P-384] Quad M.2 to PCIe Gen3 x8, includes ASM2824 PCIe switch. Verified with four 1TB Samsung 980Pro. Has a thermal sensor for each M.2 slot and automatic fan speed control. | ||
===Partially working=== | ===Partially working=== | ||
Line 198: | Line 212: | ||
=== AMD === | === AMD === | ||
− | All AMD GPUs currently have DMA issues (limited to 32-bit, which can cause crashes) due to missing Linux kernel support for DMA windows between 33 and 63 bits in length. The root cause is GPU vendors (and occasionally some non-GPU vendors) cutting costs and only including 40-bit capable (Intel-style) DMA controllers. A compatibility mode is included in [https://forums.raptorcs.com/index.php/topic,39.msg409.html#msg409 Linux 5.4 and above]. | + | All AMD GPUs currently have DMA issues (limited to 32-bit, which can cause crashes) due to missing Linux kernel support for DMA windows between 33 and 63 bits in length. The root cause is GPU vendors (and occasionally some non-GPU vendors) cutting costs and only including 40-bit capable (Intel-style) DMA controllers. A compatibility mode is included in [https://forums.raptorcs.com/index.php/topic,39.msg409.html#msg409 Linux 5.4 and above.] |
+ | |||
+ | * RDNA 1 support: since Kernel 5.6.13 | ||
+ | * RDNA 2 support: since Kernel 6.1 | ||
+ | |||
* AMD Radeon HD 5570 - Archaic (1GB VRAM, PCI 2.1) but much faster than the AST. This card (ASUS EAH5570 Silent) is passively cooled. | * AMD Radeon HD 5570 - Archaic (1GB VRAM, PCI 2.1) but much faster than the AST. This card (ASUS EAH5570 Silent) is passively cooled. | ||
Line 210: | Line 228: | ||
* AMD Radeon R7 240 | * AMD Radeon R7 240 | ||
* AMD Radeon R9 290X | * AMD Radeon R9 290X | ||
− | * AMD Radeon R9 Nano - Must disable onboard VGA first. Works perfectly with Linux 5.6.x to 5.12.x with 4K Pages. It is confirmed working in LE in 5.6.x and 5.10.6 (or newer) with 64K Pages (occasionally crash under heavy load for example Blender rendering). Unfortunately 5.7.x, 5.8.x, 5.9.x, 5.11.1 -> 5.11.11 and 5.12.x with 64K pages are known to crash. Solved with [https://cdn.kernel.org/pub/linux/kernel/v5.x/ChangeLog-5.10.101 Linux 5.10.101] For 5.7.x (64K pages), you could workaround the crash by adding `amdgpu.dc=0` to grub config. The situation has got better with 5.18, 5.19, 6.0. | + | * AMD Radeon R9 Nano - Must disable onboard VGA first. Works perfectly with Linux 5.6.x to 5.12.x with 4K Pages. It is confirmed working in LE in 5.6.x and 5.10.6 (or newer) with 64K Pages (occasionally crash under heavy load for example Blender rendering). Unfortunately 5.7.x, 5.8.x, 5.9.x, 5.11.1 -> 5.11.11 and 5.12.x with 64K pages are known to crash. Solved with [https://cdn.kernel.org/pub/linux/kernel/v5.x/ChangeLog-5.10.101 Linux 5.10.101] For 5.7.x (64K pages), you could workaround the crash by adding `amdgpu.dc=0` to grub config. The situation has got better with 5.18, 5.19, 6.0, 6.1, 6.5 and 6.8 both of these major releases support the card very well at either 64k or 4k pagesize in LE mode |
** Sapphire R9 Nano - HDMI ports do not produce signal. The DP port works as expected | ** Sapphire R9 Nano - HDMI ports do not produce signal. The DP port works as expected | ||
* Sapphire GPRO 8200 (Polaris10 core) - Disable AST VGA with jumper, disabling in grub is not enough. Same form factor as WX7100, a single-slot RX 470 with 8GB of RAM and 4 DP outputs. | * Sapphire GPRO 8200 (Polaris10 core) - Disable AST VGA with jumper, disabling in grub is not enough. Same form factor as WX7100, a single-slot RX 470 with 8GB of RAM and 4 DP outputs. | ||
Line 230: | Line 248: | ||
* AMD Radeon RX 5700 XT (Navi 10) - Requires [https://lists.freedesktop.org/archives/amd-gfx/2019-December/043682.html kernel patches] to enable display output. | * AMD Radeon RX 5700 XT (Navi 10) - Requires [https://lists.freedesktop.org/archives/amd-gfx/2019-December/043682.html kernel patches] to enable display output. | ||
* AMD Radeon Pro W5500 (Navi 14) - "amdgpu" driver works with 4k kernel but not 64k. "fbdev" driver works with both page sizes. | * AMD Radeon Pro W5500 (Navi 14) - "amdgpu" driver works with 4k kernel but not 64k. "fbdev" driver works with both page sizes. | ||
− | * AMD Radeon RX 6600 XT (Navi 23) - "amdgpu" driver works with 6.1.0 | + | * AMD Radeon RX 6600 (XT) (Navi 23) - "amdgpu" driver works with 6.1.0, 6.2.0, 6.3.0, 6.4.0, 6.5.0, 6.8.0, 6.9.0, 6.10 and 6.11 in both 4k and 64k pagesize in LE; anything older does not work. Not tested with petitboot. Issues noted on a Sapphire Pulse RX 6600 with X server stability and twitchy application behavior; XFX Speedster SWFT 210 RX 6600 has run without incident or issue. |
+ | * AMD Radeon RX 6700 XT - Works fine with Gentoo (Linux 6.3.3) with 4KiB page size, LE. Not tested with BE or 64KiB. Not tested in Skiroot. | ||
* AMD Radeon RX 6800 - see RX 6900 XT | * AMD Radeon RX 6800 - see RX 6900 XT | ||
* AMD Radeon RX 6800 XT - see RX 6900 XT | * AMD Radeon RX 6800 XT - see RX 6900 XT | ||
− | * AMD Radeon RX 6900 XT (Big Navi, Navi 21) - | + | * AMD Radeon RX 6900 XT (Big Navi, Navi 21) - Run perfectly fine on 6.10.0 with 4k and 64k pagesize. |
+ | * AMD Radeon RX 7600 - Sapphire RX 7600 works well without any issues on Blackbird (running BangBMC) on Fedora 39 (Linux 6.7.9-200, 64KiB page size, LE). | ||
The core name is important when storing the firmware into the BOOTKERNFW partition in PNOR for use by skiroot. | The core name is important when storing the firmware into the BOOTKERNFW partition in PNOR for use by skiroot. | ||
Line 254: | Line 274: | ||
* NVIDIA Corporation G96 [GeForce 9500 GT] (rev a1) - Works in petitboot if onboard VGA is disabled. Currently has issues with only using 32-bit DMA. 3D acceleration requires PGRAPH context firmware, which is freedom (and [https://github.com/torvalds/linux/blob/master/drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxnv50.c included in Nouveau Linux driver]). [https://nouveau.freedesktop.org/FeatureMatrix.html Non-freedom firmware needed for video decoding acceleration]. | * NVIDIA Corporation G96 [GeForce 9500 GT] (rev a1) - Works in petitboot if onboard VGA is disabled. Currently has issues with only using 32-bit DMA. 3D acceleration requires PGRAPH context firmware, which is freedom (and [https://github.com/torvalds/linux/blob/master/drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxnv50.c included in Nouveau Linux driver]). [https://nouveau.freedesktop.org/FeatureMatrix.html Non-freedom firmware needed for video decoding acceleration]. | ||
+ | * NVIDIA GeForce GTX 760 - Works fine in LE mode with Nouveau driver, providing 3D acceleration for AST2500 on Linux v6.2 in Plasma Wayland. HDMI and DisplayPort outputs work fine too; no need to disable AST2500. Re-clocking to pstate 0x0f works fine in brief testing (got 83fps in OpenArena at 4k). Didn't test BE mode; didn't test compute; didn't test Xorg; didn't test in Petitboot. [https://www.raptorengineering.com/TALOS/faq.php Recommended by Raptor for Talos I.] [https://web.archive.org/web/20221110223652/https://www.phoronix.com/review/nouveau-410-nvboost/2 Good support in Nouveau.] 3D acceleration requires PGRAPH context firmware, which is freedom (and [https://github.com/torvalds/linux/blob/master/drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgk104.c included in Nouveau Linux driver]). [https://nouveau.freedesktop.org/FeatureMatrix.html Non-freedom firmware needed for video decoding acceleration]. | ||
* NVIDIA RTX 2070 - usable for compute, but not 3D acceleration; integrated by Raptor as part of the Talos II PowerAI Development System configuration | * NVIDIA RTX 2070 - usable for compute, but not 3D acceleration; integrated by Raptor as part of the Talos II PowerAI Development System configuration | ||
=== Other === | === Other === | ||
− | * [[AST2500|ASPEED AST2500]]. Works in both the main OS (LE mode) and Petitboot. BE mode partially works (doesn't crash, but colors are wrong unless you apply [https://git.adelielinux.org/adelie/packages/-/blob/0827c90dfe2bf90604723003b1b4028f6e7048c4/system/easy-kernel/ast-endianness.patch this patch from Adélie], which is harmful to performance). Adélie dropped the <code>ast</code> BE patch during the Linux 4.19 to 5.4 transition due to performance impact; the patch works by doing copies per-pixel instead of per-buffer, which is 2,073,600x slower for 1920x1080 resolution. The "right way" to fix colors on BE is to convince the AST2500 to go into foreign-endian mode. This mode exists in silicon but the Linux <code>ast</code> driver hangs on boot then, because all the EDID info is endian-swapped (it's hardcoded to assume LE in some places). [[User:Awilfox|awilfox]] believes the EDID hang is a Linux <code>ast</code> driver bug, not a silicon bug, but they're not certain of this (they only looked at it for a few hours). On Linux 5.6 | + | * [[AST2500|ASPEED AST2500]]. Works in both the main OS (LE mode) and Petitboot. BE mode partially works (doesn't crash, but colors are wrong unless you apply [https://git.adelielinux.org/adelie/packages/-/blob/0827c90dfe2bf90604723003b1b4028f6e7048c4/system/easy-kernel/ast-endianness.patch this patch from Adélie], which is harmful to performance). Adélie dropped the <code>ast</code> BE patch during the Linux 4.19 to 5.4 transition due to performance impact; the patch works by doing copies per-pixel instead of per-buffer, which is 2,073,600x slower for 1920x1080 resolution. The "right way" to fix colors on BE is to convince the AST2500 to go into foreign-endian mode. This mode exists in silicon but the Linux <code>ast</code> driver hangs on boot then, because all the EDID info is endian-swapped (it's hardcoded to assume LE in some places). [[User:Awilfox|awilfox]] believes the EDID hang is a Linux <code>ast</code> driver bug, not a silicon bug, but they're not certain of this (they only looked at it for a few hours). On Linux 5.6-6.2, [https://forums.raptorcs.com/index.php/topic,31.0.html 1920x1200 resolution is broken]; this is fixed in Linux 6.3 and higher. On old Linux versions, Wayland is broken (hangs on a black screen) in GNOME, KDE, and GDM; Linux 6.3 and higher are not affected. <code>ast</code> Linux driver. |
=== Non-working === | === Non-working === | ||
Line 278: | Line 299: | ||
** Intel Arc A770 | ** Intel Arc A770 | ||
*** i915 Linux driver [https://www.phoronix.com/news/Intel-Arc-Graphics-No-POWER does not build for ppc64le/be] (kernel 6.1.0). | *** i915 Linux driver [https://www.phoronix.com/news/Intel-Arc-Graphics-No-POWER does not build for ppc64le/be] (kernel 6.1.0). | ||
− | |||
=== Unknown if working (good candidates to test) === | === Unknown if working (good candidates to test) === | ||
Line 354: | Line 374: | ||
**** ClimaxDigital claims 1920x1200; DisplayLink chipset docs claim 2560x1600. | **** ClimaxDigital claims 1920x1200; DisplayLink chipset docs claim 2560x1600. | ||
* Nvidia | * Nvidia | ||
− | |||
− | |||
− | |||
− | |||
** GeForce GTX 780 Ti | ** GeForce GTX 780 Ti | ||
*** [https://web.archive.org/web/20221110223652/https://www.phoronix.com/review/nouveau-410-nvboost/2 Good support in Nouveau.] | *** [https://web.archive.org/web/20221110223652/https://www.phoronix.com/review/nouveau-410-nvboost/2 Good support in Nouveau.] | ||
Line 402: | Line 418: | ||
* Bluetooth audio from an [https://www.asus.com/my/Networking-IoT-Servers/Adapters/All-series/PCE-AX3000/ Asus PCE-AX3000] connecting to various devices, with the media keys also working to control playback | * Bluetooth audio from an [https://www.asus.com/my/Networking-IoT-Servers/Adapters/All-series/PCE-AX3000/ Asus PCE-AX3000] connecting to various devices, with the media keys also working to control playback | ||
* Blue Yeti Pro is a USB audio device, it's primarily a microphone but has output to external speakers. | * Blue Yeti Pro is a USB audio device, it's primarily a microphone but has output to external speakers. | ||
+ | * StarTech ICUSBAUDIO2D. SPDIF output works fine on Linux 5.5 ppc64le (64KiB pages). Didn't test analog input/output; didn't test BE; didn't test 4KiB pages. | ||
===Non-working=== | ===Non-working=== |
Latest revision as of 20:51, 24 September 2024
Contents
- 1 Compatibility rules
- 2 Troubleshooting
- 3 NICs
- 4 Wireless Cards
- 5 NVMe Drives
- 6 PCIe to M.2 Adapters
- 7 PCIe to U.2 Adapters
- 8 PCIe to MiniPCIe Adapters
- 9 SAS/SATA Storage Controllers
- 10 Optical Drives
- 11 Graphics Cards
- 12 Sound Cards
- 13 USB Host Controllers
- 14 TV Tuners
- 15 Firewire Host Controllers
- 16 Video Capture Cards
- 17 Serial Port Adapter Cards
- 18 PCIe/PCI Expansion
- 19 References
Compatibility rules
In general, any PCIe device will work providing that an open source driver is available for your operating system. There are some exceptions:
- Hardware bugs. POWER does not permit errant DMA accesses. If a device tries to access areas of host memory which it is not permitted to access, the device is shut down immediately. This is dissimilar to x86 platforms, which simply silently ignore such attempts. Some badly designed I/O devices have bugs causing them to attempt DMA accesses to random areas of host memory; these devices are unlikely to function correctly on POWER systems unless a workaround is available. Note that devices in full bypass mode may legally have access to all host memory, to avoid this and test driver IOMMU setup pass "iommu=nobypass" to the kernel at startup.
- I/O space. Starting with POWER9, access to the legacy PCI I/O space is no longer supported; devices or drivers which rely on this will not function. The legacy I/O space has been deprecated for as long as PCIe has existed; generally this will only affect very old PCIe devices which use PCIe to PCI bridge chips to attach old PCI devices to the bus, or genuine legacy PCI devices attached via PCIe/PCI Expansion. A small subset of these devices may require legacy I/O space support.
- Incomplete memory addressing support. The PCIe architecture specifies a 64-bit address space. Some I/O devices try to economize on this by only implementing e.g. 40 bits for their addressing, rendering them incapable of addressing host memory which lies above address 240. (Firmware patches to work around this are pending.)
- Bifurcation limits. Arbitrary PCIe lane bifurcation is not supported. Devices which split a PCIe slot into multiple connectors (for example, PCIe to M.2 adaptors) will not work unless they have a PCIe switch chip, although the first connector will generally work.
- Endianness bugs. POWER supports both BE and LE modes; x86 is LE only. Some buggy drivers may break in BE mode, or some buggy devices may misbehave in BE mode (e.g. operate at decreased performance).
- Page size bugs. POWER supports both 4KiB and 64KiB page sizes; x86 is 4KiB only. Some buggy drivers may expect one and break in the other.
Troubleshooting
If a PCIe device is in a broken state due to being attached/detached from a VM, or due to a transition from Petitboot to the main OS, you may be able to fix it by issuing a hot reset. A script for performing a PCIe hot reset is at File:Pcie hot reset.sh. For background on PCIe resets and how a hot reset differs from the function-level reset performed by echo 1 > /sys/bus/pci/devices/$dev/reset
, see Alex Forencich's explanation on Stack Exchange.
NICs
Working
- 3Com 3C905C-TX-M EtherLink 10/100 PCI Ethernet (via PCIe/PCI Expansion)
- Broadcom BCM5719
- Chelsio T520-SO-CR (dual port 10Gb/s, cxgb4 driver)
- Chelsio T6225-SO-CR
- DEC FDDIcontroller/PCI (DEFPA) PCI FDDI (via PCIe/PCI Expansion)
- Works automatically as from Linux kernel version 5.13.
- Works with Linux kernel versions before 5.13 as long as the defxx driver has been compiled with the CONFIG_DEFXX_MMIO option, which may not be the case with standard distribution kernels as the option was not on by default for historical reasons.
This is because the PFI ASIC used as the PCI interface with the DEC FDDIcontroller/PCI adapter supports both port I/O and MMIO for main ASIC's (PDQ) CSR access, however as noted above the Power Systems Host Bridge 4 (PHB4) PCIe root complex used with POWER9 microprocessors does not support I/O Read or I/O Write commands required for port I/O.
- Mellanox ConnectX-6 EN 200Gb/s Adapter Card (supports CAPI)
- Silicom PE210G2SPI9/PE210G2SPI9A/PE210G2SPI9B dual port 10 GbE SFP+ adapter (Chipset: Intel 82599ES) (ixgbe driver)
- Silicom PE310G4SPI9/PE310G4SPI9LA quad port 10 GbE SFP+ adapter (Chipset: Two Intel 82599ES controllers behind one PLX PEX 8724 switch) (ixgbe driver)
- Unbranded 4-port Gigabit Ethernet adapter (Chipset: Four Realtek RTL8111F controllers behind one ASMedia ASM1184e switch) (r8169 driver, firmware optional)
- The card be identified by the "NET111-V1.0" text on its PCB.
- ASUS XG-C100F (single port 10GbE SFP+, AQUANTIA AQtion Linux "atlantic" driver)
- Driver compiled by default on PowerPC (and others) from this commit.
- There is proprietary firmware written into EEPROM from the factory but it does not seem to be writeable, nor does it have to be loaded by the Linux kernel.
- Intel 82599ES (10Gb/s, ixgbe driver).
- Dell Intel X550 10 GbE Converged Network Adapter (Chipset: Intel X550-AT2) (ixgbe driver)
Non-working
- Mellanox ConnectX IB QDR (mlx4 driver)
Wireless Cards
Working
- Alfa AWUS036NHA Wireless USB Adaptor
- open source firmware (ath9k_htc) [1]
- Intel Dual-Band Wireless-AC 7260 (Bluetooth untested)
- Intel Dual-Band Wireless-AC 8260 (Bluetooth untested)
- Intel Dual-Band Wireless-AC 9260 (Bluetooth untested)
- Intel® Wi-Fi 6 AX200 (Bluetooth untested)
- When loading older firmware versions (iwlwifi-cc-a0-50.ucode), and EEH is triggered. Disabling the iommu is required for functionality. Note, tx bitrate is not reported correctly.
- When using recent firmware (iwlwifi-cc-a0-71.ucode), the card operates as expected.
- ThinkPenguin TPE-NMPCIE
- Chipset: Atheros AR9281
- Linux driver: ath9k
- Tested with StarTech PEX2MPEX; device is detected without trouble by Linux and NetworkManager; didn't try hooking up an antenna, so wasn't able to try connecting to networks.
- TP-Link TL WN823N RTL8192EU [2]
- remove "ARCH=$(ARCH)" on line 1710 of the makefile and it compiles fine
- TP-LINK TL-WN725N V2 USB dongle
- as of Linux 5.6.x, the rtl8188eu is in staging stage, so it is advised to compile the driver from [lwfinger/rtl8188eu]
- Asus PCE-AX3000 Both Wi-Fi and Bluetooth worked out of the box with Ubuntu 21.10 (Bluetooth requires an additional USB connection, an internal USB to 9-pin cable works)
NVMe Drives
Working
- Samsung 950 PRO (with M.2 to PCIe adapter)
- Samsung 960 EVO / PRO (with M.2 to PCIe adapter)
- Samsung 970 PRO (with M.2 to PCIe adapter)
- Samsung 970 EVO Plus (with M.2 to PCIe adapter)
- Samsung 980 PRO (with M.2 to PCIe adapter)
- Samsung 990 PRO (with M.2 to PCIe adapter)
- Samsung PM983 (with AOC-SHG3-4M2P M.2 to PCIe adapter)
- Intel SSD DC P3600 PCIe AIC (tested 1.6 TB)
- Intel Optane 900P NVMe XPoint PCIe
- Intel Optane 905P NVMe XPoint PCIe AIC
- Intel Optane 905P NVMe Xpoint U.2, with included U.2 to M.2 cable plugged into an ASUS Hyper M.2 X4 mini.
- WD Black PCIe (with M.2 to PCIe adapter)
- MyDigitalSSD BPX 480GB (with M.2 to PCIe adapter)
- Silicon Power US70 2000 GB (note that it is configured with 512 byte sectors by default and should be reformatted with nvme-cli to get better performance)
- Kingston KC3000 1TB (with HighPoint SSD7505 adapter) - I get some unknown 'nvme error-log' errors once in a while, but I doubt it is related to the power platform.
- Kingston SNV2S/2000G (with M.2 to PCIe adapter)
Non-working
- WD Black SN850 SSD NVMe - confirmed by two independent people/machines, the stick is simply not recognized. Ideas?
Known issues
- [FIXED in stable kernels 4.19 and 5.4] IOMMU related errors when performing discard on some NVMe devices (mainly NVMe SSDs). Current workaround is booting with the kernel parameter iommu=soft, see the patch
PCIe to M.2 Adapters
Working
- ASUS Hyper M.2 X4 mini, PCIe X4 to M.2.
- Ableconn PEXM2-SSD M.2 NGFF PCIe SSD to PCI Express 4.0 x4 Host Adapter Card (M.2 to PCIe adapter)
- Addonics AD2M2NVMPX8 Dual NVMe PCIe adapter 2x M.2 PCIe to PCIe x8
- Delock PCI Express x4 Card > 1 x internal NVMe M.2 Key M 80 mm - Low Profile Form Factor; Item No. 89370
- Icy Dock ToughArmor MB840M2P-B Removable PCIe 3.0/4.0 NVMe SSD Mobile Rack
- Drive cannot be seen when it is in either of the outer 2 slots but can be seen at least when it is in the innermost slot. 2nd and 3rd slots were not tried.
- JEYI SK4 M.2 NVMe(M Key) SSD to PCI-E 3.0 x4 Adapter Converter Card
- SYBA SI-PEX40110 M.2 PCI-e To PCI-e 3.0 x4
- SYBA SI-PEX40152 PCIe 3.1 x16 to 4 x M.2 (M-Key) Adapter Card
- HighPoint SSD7101A-1 4x M.2 PCIe to PCIe 3.0 x16 (based on PLX PEX8747 PCIe switch)
- HighPoint SSD7102 4x M.2 PCIe to PCIe 3.0 x16 (with PCIe switch)
- HighPoint SSD7204 4x M.2 PCIe to PCIe 3.0 x8 (with PCIe switch)
- Important note (Blackbird only): The heat sink of the HighPoint switch partially covers the BMC header, the USB 3.0 header and SATA port 4, which cannot be used as a result because the HighPoint switch cannot be fully inserted into the PCIe port. If access to these ports/header is required, a workaround can be cutting part of the heatsink off with a metal saw in a way that the adapter's chip still has connection to the heat sink but not to the NVMe's. If necessary, small heat sinks can be attached to the NVMe devices with a self-adhesive thermal pad. It is also possible to connect the USB3 header to a right-angle adapter, which once installed will not interfere with the installation or use of the HighPoint controller. It may also be possible to use the last SATA port with a right-angle SATA cable.
- HighPoint SSD7505 PCIe 4.0 x16 4-Port M.2 NVMe RAID Controller
- HighPoint SSD7540 PCIe 4.0 x16 8-Port M.2 NVMe RAID Controller
- Tested with Samsung 980 Pro 2TB
- Beware of LUKS encryption performance not catching up with such speedy bandwidths yet.
- HighPoint Rocket 1504 PCIe 4.0 x16 4-port M.2 NVMe Controller
- HighPoint Rocket 1204 PCIe 3.0 x8 4-port M.2 NVMe Controller
- Raidsonic Icy Box PCIe extension card for one M.2 NVMe SSD (IB-PCI214M2-HSL):
- Tested with a Samsung 970 EVO Plus NVMe M.2 with 2 TB
- Bootable and no special driver installation required
- Has a passive cooling system for the SSD (about 20 degree Celsius cooler than without)
- Supports PCIe 3.0 x4 with up to 32 GBit/s according to the manual
- Seems to support PCIe 4.0 x4 with up to 64 GBit/s according to the current data sheet (probably due to the fact that it is only a routing device without any own logic)
- Supermicro AOC-SHG3-4M2P 4x M.2 PCIe to PCIe 3.0 x8 (using a PEX 8734 PCIe 3.0 (8.0GT/s) Switch). Draws 10 watts in idle. Requires one additional 4-pin 12V connector.
- Akasa AK-PCCM2P-01 PCIe Gen3 x4 to M.2 2230/2242/2260/2280/22110. Tested with Samsung 970 EVO Plus 500GB.
- Sonnet McFiver Multifunction Adapter Card with Dual M.2 NVMe SSD Slots, 10Gb Ethernet (AQC113CS), and Two 10Gbps USB-C Ports (ASM3142), all thanks to PEX 8724 pcie switch.
- ^ sample lspci output with 2 nvme drives installed, plugged into x8 blackbird slot
- 0001:01:00.0 PCI bridge: PLX Technology, Inc. PEX 8724 24-Lane, 6-Port PCI Express Gen 3 (8 GT/s) Switch, 19 x 19mm FCBGA (rev ca)
- 0001:02:01.0 PCI bridge: PLX Technology, Inc. PEX 8724 24-Lane, 6-Port PCI Express Gen 3 (8 GT/s) Switch, 19 x 19mm FCBGA (rev ca)
- 0001:02:02.0 PCI bridge: PLX Technology, Inc. PEX 8724 24-Lane, 6-Port PCI Express Gen 3 (8 GT/s) Switch, 19 x 19mm FCBGA (rev ca)
- 0001:02:08.0 PCI bridge: PLX Technology, Inc. PEX 8724 24-Lane, 6-Port PCI Express Gen 3 (8 GT/s) Switch, 19 x 19mm FCBGA (rev ca)
- 0001:02:09.0 PCI bridge: PLX Technology, Inc. PEX 8724 24-Lane, 6-Port PCI Express Gen 3 (8 GT/s) Switch, 19 x 19mm FCBGA (rev ca)
- 0001:02:0a.0 PCI bridge: PLX Technology, Inc. PEX 8724 24-Lane, 6-Port PCI Express Gen 3 (8 GT/s) Switch, 19 x 19mm FCBGA (rev ca)
- 0001:03:00.0 Non-Volatile memory controller: Samsung Electronics Co Ltd NVMe SSD Controller SM961/PM961/SM963
- 0001:04:00.0 Non-Volatile memory controller: Samsung Electronics Co Ltd NVMe SSD Controller SM961/PM961/SM963
- 0001:0a:00.0 USB controller: ASMedia Technology Inc. ASM2142 USB 3.1 Host Controller
- 0001:0b:00.0 Ethernet controller: Aquantia Corp. AQC113CS NBase-T/IEEE 802.3bz Ethernet Controller [AQtion] (rev 03)
- 0001:01:00.0 PCI bridge: PLX Technology, Inc. PEX 8724 24-Lane, 6-Port PCI Express Gen 3 (8 GT/s) Switch, 19 x 19mm FCBGA (rev ca)
- QNAP-QM2-4P-384 Quad M.2 to PCIe Gen3 x8, includes ASM2824 PCIe switch. Verified with four 1TB Samsung 980Pro. Has a thermal sensor for each M.2 slot and automatic fan speed control.
Partially working
- Aplicata Quad M.2 NVMe SSD PCIe x16 Adapter (no PCIe switch; only lowest slot works)
- Asus Hyper M.2 x16 Gen4 card no PCIe switch; only lowest slot works
- StarTech 3-Port M.2 SSD (NGFF) Adapter Card 1 x PCIe (NVMe) M.2, 2 x SATA III M.2 - PCIe 3.0. Tested the NVMe port with Samsung 970 EVO Plus 500GB. Unable to get SATA ports to work - unsupported PCIe bifurcation?
Known issues
Many inexpensive PCIe M.2 adapter cards do not have an onboard PCIe switch. Instead they rely on the PCIe slot to be bifurcated a certain way. For example, cheap cards advertised as x16 with support for 4 M.2 cards may need to be bifurcated as x4/x4/x4/x4, which is not possible on the Talos2. For dual-socket Talos2 workstations, PCIe slot 3 can be trifurcated which may enable such cards to support 3 NVMe drives.
The POWER9 Sforza datasheet section 3.3.3 lists possible configurations for each PCIe controller (PEC):
- PEC0: one x16 link
- PEC1: two x8 links
- PEC2: one x16 link, two x8 links (bifurcation), or one x8 link and two x4 links (trifurcation)
The Talos2 User's Guide shows how slots and PECs are connected in the mainboard diagram:
- Slot 1 is connected to PEC1 on CPU1 and is bifurcated (x8 for the slot, x8 for the Microsemi PM8068).
- Slot 2 is connected to PEC0 on CPU1 and can only be configured as x16.
- Slot 3 is connected to PEC2 on CPU2 and can be trifurcated.
- Slot 4 is connected to PEC0 on CPU2 and can only be configured as x16.
- Slot 5 is connected to PEC1 on CPU2 and is bifurcated (x8 for the slot, x4 for OCuLink).
PCIe to U.2 Adapters
Working
- High Point SSD7120 PCIe 3.0 x16 to 4x U.2 NVMe ports (Dedicated PCIe 3.0 x4 per port, with PCIe switch) tested by Gyakovlev (talk)
- Tested with Icy Dock ToughArmor MB699VP-B 4xU2 enclosure. Neither above controller nor enclosure ships with cables, 4x SAS HD SFF-8643 cables required to connect drives.
- 4x Optane 905P work fine with this combo.
- High Point SSD7580A U.2 NVMe RAID controller (PCIe 4.0 x16, allows eight U.2 NVMe PCIe 4.0 SSDs to be connected)
- Tested with Samsung PM9A3
- Neither controller nor disks ship with cables (so for U.2, for example, requires a SFF-8654 to SFF-8639 for each pair of disks)
PCIe to MiniPCIe Adapters
Working
- StarTech PEX2MPEX (NewEgg)
- Tested with ThinkPenguin TPE-NMPCIE.
- Particularly of interest as a lot of the ASPEED and SiliconMotion GPU's have a MiniPCIe form factor.
SAS/SATA Storage Controllers
Working
- IOCrest SI-PEX40062 (Chipset: Marvell 88SE9235, PCI id 1B4B:9235)
- Marvell 88SE9230 chipset also confirmed to work
- Kouwell PE-115H (Chipset: Marvell 88SE9130, PCI id 1b4b:9130)
- LSI 9300/9200 SAS HBAs
- May require updating to IT firmware on a x86 machine
- Known bug in 'mpt3sas' driver prevents boot; patched in PNOR version 2.01-next
- Dell PERC H700 Integrated - based on LSI SAS 2108
- See list of OEM models
- The 'storcli' tool can talk to card on ppc64le with Debian 11
- Tested both original Dell firmware and LSI/Broadcom firmware - no JBOD support though.
- PM8068-based SAS HBAs
- Supermicro AOC-SLG3-4E2P 4-port OCuLink adapter
- Jmicron JMB 363 SATA PCIe card. SATA ports work with Petitboot.
- Broadcom MegaRAID 9460-8i
- Broadcom MegaRAID 9460-16i
- IOCrest IO-M2F585-5I (Chipset: JMicron JMB585, PCI IDs: 197b:0585)
- Unbranded JMicron JMB363 SATA/IDE controller card, with one eSATA, one internal SATA, and one IDE (PATA) connector (Chipset: JMicron JMB363, PCI IDs: 197b:2363)
- SATA ports work in Petitboot.
- The IDE/PATA port doesn't work since it exclusively uses PCI I/O space access, which the POWER9 does not support. Because of this, PCI function 1, which is used for the IDE/PATA functionality, is not exposed by Linux and so will not appear in the output of lspci.
Non-working
- AXAGON PCES-SA2 (ASMedia chipset)
- SuperMicro AOC-SASLP-MV8 (mvsas driver)AMD Radeon R9 Nano
- MegaRAID 9341-8i - probably a bug in the firmware
- Unbranded ASMedia ASM1166 SATA controller cards with six SATA connectors (Chipset: ASMedia ASM1166, PCI IDs: 1b21:1166)
- Cards appear to be sold under different brands and with slightly different PCB layouts, but they can be identified by the following markings on their PCBs:
- "PCE6SAT-A01" and "VER006S"
- "PCI-E 3.0 TO SATA.6GB - 6Port" and "SU-SA3026"
- Causes a PHB endpoint freeze during Skiboot's initialization of the PCI Express device, so the issues this chip is having can't be worked around with just a kernel patch.
- Cards appear to be sold under different brands and with slightly different PCB layouts, but they can be identified by the following markings on their PCBs:
Unknown if working (good candidates to test)
- HighPoint RocketRAID 642L (Chipset: Marvell 88SE9235)
- HighPoint RocketRAID 644L (Chipset: Marvell 88SE9235)
Optical Drives
- Asus BW-16D1HT Retail (Blu Ray Writer with SATA interface):
- Partially working (reading BDs works, writing not yet tested). Sometimes not recognized during boot phase with ATA timeouts causing all SATA devices to be disabled
Graphics Cards
No display? Check out the GPU Troubleshooting page.
AMD
All AMD GPUs currently have DMA issues (limited to 32-bit, which can cause crashes) due to missing Linux kernel support for DMA windows between 33 and 63 bits in length. The root cause is GPU vendors (and occasionally some non-GPU vendors) cutting costs and only including 40-bit capable (Intel-style) DMA controllers. A compatibility mode is included in Linux 5.4 and above.
- RDNA 1 support: since Kernel 5.6.13
- RDNA 2 support: since Kernel 6.1
- AMD Radeon HD 5570 - Archaic (1GB VRAM, PCI 2.1) but much faster than the AST. This card (ASUS EAH5570 Silent) is passively cooled.
- AMD Radeon HD 5850 - Must disable onboard VGA first. Currently has issues with only using 32-bit DMA.
- AMD Radeon HD 6450 - Works with default settings (kernel: radeon, X: modesetting or radeon), tested in BE mode
- AMD Radeon HD 6850 - Disable AST VGA with jumper. 32 bit.
- AMD Radeon HD 7850 - Disabled onboard VGA. Using amdgpu is highly unstable, radeon driver is usable but has issues with only using 32-bit DMA.
- AMD Radeon HD 7950 - Must disable onboard VGA first. Currently has issues with only using 32-bit DMA.
- AMD Radeon R5 220
- AMD Radeon R5 230 - Works in BE mode (use
Option "AccelMethod" "EXA"
for Xorg) - AMD Radeon R7 240
- AMD Radeon R9 290X
- AMD Radeon R9 Nano - Must disable onboard VGA first. Works perfectly with Linux 5.6.x to 5.12.x with 4K Pages. It is confirmed working in LE in 5.6.x and 5.10.6 (or newer) with 64K Pages (occasionally crash under heavy load for example Blender rendering). Unfortunately 5.7.x, 5.8.x, 5.9.x, 5.11.1 -> 5.11.11 and 5.12.x with 64K pages are known to crash. Solved with Linux 5.10.101 For 5.7.x (64K pages), you could workaround the crash by adding `amdgpu.dc=0` to grub config. The situation has got better with 5.18, 5.19, 6.0, 6.1, 6.5 and 6.8 both of these major releases support the card very well at either 64k or 4k pagesize in LE mode
- Sapphire R9 Nano - HDMI ports do not produce signal. The DP port works as expected
- Sapphire GPRO 8200 (Polaris10 core) - Disable AST VGA with jumper, disabling in grub is not enough. Same form factor as WX7100, a single-slot RX 470 with 8GB of RAM and 4 DP outputs.
- AMD Radeon RX 480
- AMD Radeon RX 550 - Works with caveats (below) for particular card tested.
- Card tested was Gigabyte GV-RX550D5-2GD in a Blackbird with Ubuntu 19.10, 5.3.0-24 and amdgpu with onboard VGA disabled by jumper. Suspect with tweaking would work without needing to disable VGA. Alas would lock up every day or two, to the point I replaced with a Sapphire RX580. Based on conversations w/Raptor suspect this was an issue with the model card I had rather than the RX550 itself.
- AMD Radeon RX 560X
- AMD Radeon RX 560D (Polaris 21) - Need to disable vga (or hdmi for the blackbird) jumper on board.
- AMD Radeon RX 580 – Works with the amdgpu firmware from Ubuntu 19.04 and disabled onboard VGA
- You may also need a kernel parameter like
vga=797
if xinit complains about VESA[3] - The Sapphire NITRO+ Radeon RX 580 8GB card is a tight fit on the Blackbird planar if you're using the 2nd PCIe slot as it a bit wider than two slots (and is documented as such). Solved by removing the adapter plate for the PCIe-M2 adapter card being used and allowing it to sit in slot untethered.
- You may also need a kernel parameter like
- AMD Radeon RX Vega 56 - Works with Debian Buster with amdgpu. Requires patches to work, somewhat unstable but usable. Cannot use AST Integrated VGA and AMDGPU at the same time without causing conflict. Not tested at this moment for use in petitboot or firmware.
- AMD Radeon RX Vega 64 - Works with Fedora 32 with Linux kernel 5.5.0's amdgpu. The card does _NOT_ display in bootloader because vega10 firmwares failed to load correctly.
- AMD Radeon Pro WX4100 (Polaris11 core) - May need at least linux 4.16 in order to get Xorg to work.
- AMD Radeon Pro WX5100
- AMD Radeon Pro WX7100 (Polaris10 core) - Available pre-installed on Talos II workstation, server, and desktop configurations.
- AMD Radeon RX 5300 (Navi 14) - no issues in fedora 36 or void linux
- AMD Radeon RX 5700 (Navi 10) - Requires kernel patches to enable display output.
- AMD Radeon RX 5700 XT (Navi 10) - Requires kernel patches to enable display output.
- AMD Radeon Pro W5500 (Navi 14) - "amdgpu" driver works with 4k kernel but not 64k. "fbdev" driver works with both page sizes.
- AMD Radeon RX 6600 (XT) (Navi 23) - "amdgpu" driver works with 6.1.0, 6.2.0, 6.3.0, 6.4.0, 6.5.0, 6.8.0, 6.9.0, 6.10 and 6.11 in both 4k and 64k pagesize in LE; anything older does not work. Not tested with petitboot. Issues noted on a Sapphire Pulse RX 6600 with X server stability and twitchy application behavior; XFX Speedster SWFT 210 RX 6600 has run without incident or issue.
- AMD Radeon RX 6700 XT - Works fine with Gentoo (Linux 6.3.3) with 4KiB page size, LE. Not tested with BE or 64KiB. Not tested in Skiroot.
- AMD Radeon RX 6800 - see RX 6900 XT
- AMD Radeon RX 6800 XT - see RX 6900 XT
- AMD Radeon RX 6900 XT (Big Navi, Navi 21) - Run perfectly fine on 6.10.0 with 4k and 64k pagesize.
- AMD Radeon RX 7600 - Sapphire RX 7600 works well without any issues on Blackbird (running BangBMC) on Fedora 39 (Linux 6.7.9-200, 64KiB page size, LE).
The core name is important when storing the firmware into the BOOTKERNFW partition in PNOR for use by skiroot.
DisplayLink
- ClimaxDigital CUH195 USB 2.0 Graphic Adapter - Documentation claims to be based on DL-3500 chipset, but the specs and model name suggest that it may actually be DL-195 chipset. Works in the main OS; not tested with Petitboot but is likely to work there too.
- EVGA 100-U2-UV12-A1 UV Plus USB VGA Adapter - Not 100% sure of chipset, but probably DL-125 based on resolution specs and model name. Petitboot shows up without loading firmware. Not tested in OS.
- SIIG JU-DV0112-S1 - Based on DL-195 chipset. Works out of the box in a Fedora 34 Plasma Wayland ppc64le VM via USB passthrough. Also works fine (no color issues) in a Void GNOME Wayland ppc64 (BE) VM via USB passthrough from ppc64le host (need to blacklist the
udlfb
Linux driver due to Void Bug 39076). Didn't test on bare metal but is likely to work there too.- Resold by Amazon.
- SIIG JU-VG0012-S1 - Based on DL-165 chipset. Works out of the box in a Fedora 34 Plasma Wayland ppc64le VM via USB passthrough. Also works fine (no color issues) in a Void GNOME Wayland ppc64 (BE) VM via USB passthrough from ppc64le host (need to blacklist the
udlfb
Linux driver due to Void Bug 39076). Didn't test on bare metal but is likely to work there too.- Resold by Amazon.
- StarTech USB2DVIPRO2 - Based on DL-195 chipset. Works out of the box in a Fedora 34 Plasma Wayland ppc64le VM via USB passthrough. Also works fine (no color issues) in a Void GNOME Wayland ppc64 (BE) VM via USB passthrough from ppc64le host (need to blacklist the
udlfb
Linux driver due to Void Bug 39076). Didn't test on bare metal but is likely to work there too.- 1920x1200.
- Resold by NewEgg.
NVIDIA
The Nouveau Linux driver does not work with 64KiB pages.
- NVIDIA Corporation G96 [GeForce 9500 GT] (rev a1) - Works in petitboot if onboard VGA is disabled. Currently has issues with only using 32-bit DMA. 3D acceleration requires PGRAPH context firmware, which is freedom (and included in Nouveau Linux driver). Non-freedom firmware needed for video decoding acceleration.
- NVIDIA GeForce GTX 760 - Works fine in LE mode with Nouveau driver, providing 3D acceleration for AST2500 on Linux v6.2 in Plasma Wayland. HDMI and DisplayPort outputs work fine too; no need to disable AST2500. Re-clocking to pstate 0x0f works fine in brief testing (got 83fps in OpenArena at 4k). Didn't test BE mode; didn't test compute; didn't test Xorg; didn't test in Petitboot. Recommended by Raptor for Talos I. Good support in Nouveau. 3D acceleration requires PGRAPH context firmware, which is freedom (and included in Nouveau Linux driver). Non-freedom firmware needed for video decoding acceleration.
- NVIDIA RTX 2070 - usable for compute, but not 3D acceleration; integrated by Raptor as part of the Talos II PowerAI Development System configuration
Other
- ASPEED AST2500. Works in both the main OS (LE mode) and Petitboot. BE mode partially works (doesn't crash, but colors are wrong unless you apply this patch from Adélie, which is harmful to performance). Adélie dropped the
ast
BE patch during the Linux 4.19 to 5.4 transition due to performance impact; the patch works by doing copies per-pixel instead of per-buffer, which is 2,073,600x slower for 1920x1080 resolution. The "right way" to fix colors on BE is to convince the AST2500 to go into foreign-endian mode. This mode exists in silicon but the Linuxast
driver hangs on boot then, because all the EDID info is endian-swapped (it's hardcoded to assume LE in some places). awilfox believes the EDID hang is a Linuxast
driver bug, not a silicon bug, but they're not certain of this (they only looked at it for a few hours). On Linux 5.6-6.2, 1920x1200 resolution is broken; this is fixed in Linux 6.3 and higher. On old Linux versions, Wayland is broken (hangs on a black screen) in GNOME, KDE, and GDM; Linux 6.3 and higher are not affected.ast
Linux driver.
Non-working
- ASPEED AST1300. Older revision of the AST2510 (AST1300 is 4th generation; AST2510 is 6th generation). VGA 1920x1200 @ 60Hz 32bpp; framebuffer (no acceleration).
ast
Linux driver. Open issue with Skiboot for getting it fixed. Known suppliers of AST1300 devices are:- Gigabyte GC-IVA 9CIVANR-00 -- Resold by:
- IEI Integration Corp IGCME-1300-R10 (Datasheet) (Quick Installation Guide) -- Resold by:
- eBay example 1
- eBay example 2
- NeutronUSA (Warning: non-TLS link!)
- ServeTheHome
- Intel
- Intel Arc A380
- i915 Linux driver does not build for ppc64le/be (kernel 6.1.0).
- ASRock Challenger Arc A380
- Intel Arc A750
- i915 Linux driver does not build for ppc64le/be (kernel 6.1.0).
- Intel Arc A770
- i915 Linux driver does not build for ppc64le/be (kernel 6.1.0).
- Intel Arc A380
Unknown if working (good candidates to test)
- Alphamax NeTV2
- Default bitstream supports up to 1920x1080 at 60Hz.
- According to Issue 22, sounds like 1920x1200 at 60Hz is also possible, as are other modes with similar bandwidth (e.g. 1024x768 at 240Hz).
- HDMI ports are limited by LVDS bandwidth. Rated by Xilinx for 3.75 Gbit/s per HDMI port, but overclocked by Alphamax bitstream to 4.455 Gbit/s. 1920x1200 at 60Hz with CVT-RBv2 timings is 4.446 Gbit/s physical bandwidth.
- Default bitstream doesn't support receiving video from PCIe, so using it as an AST2510 replacement would need some bitstream hacking, but should be possible.
- Appears that the HDMI implementation is on the FPGA, which is more libre than Arctic Tern.
- Currently uses non-freedom FPGA toolchain, which is less libre than Arctic Tern.
- Default bitstream supports up to 1920x1080 at 60Hz.
- ASPEED
- Notes
- Testing ASRock Rack Tommy 90-SC02P1-00UBNZ with Fedora 36 KDE on x86 indicated that it only was detected with Wayland, not X11. Given that Wayland is broken with the integrated AST2500 on POWER, it is unlikely that these ASPEED GPU's will work on POWER until Wayland is fixed.
- AST2500
- AST2510. It's the GPU component of the AST2500 without the BMC component. VGA 1920x1200 @ 60Hz 32bpp; framebuffer (no acceleration). Might be useful for users who want to add additional VGA displays beyond the single VGA display supported by the built-in AST2500, with similar freedom and performance properties as the AST2500.
ast
Linux driver. Known suppliers of AST2510 devices are:- AEWIN Technologies R478
- AEWIN Technologies R492B
- ASRock Rack Tommy 90-SC02P1-00UBNZ
- Manual
- Only has 16 MiB VRAM, so 1920x1200 resolution will be broken with Linux 5.6+.
- Resold by NewEgg.
- WIN Enterprises IP-492B
- AST1400. Older revision of the AST2510 (AST1400 is 5th generation; AST2510 is 6th generation). VGA 1920x1200 @ 60Hz 32bpp; framebuffer (no acceleration).
ast
Linux driver. Known suppliers of AST1400 devices are:- IEI Integration Corp IGCME-1300-R11 (Datasheet) (Quick Installation Guide)
- Has 64 MiB VRAM, so 1920x1200 resolution should not be an issue regardless of Linux version.
- Resold by:
- IEI Integration Corp IGCME-1300-R11 (Datasheet) (Quick Installation Guide)
- Notes
- DisplayLink
- DL-125
- DL-165
- Diamond Multimedia BVU165
- Resold by Amazon.
- Diamond Multimedia BVU165LT
- Resold by Amazon.
- Plugable UGA-165
- Plugable USB-VGA-165
- Resold by Amazon
- Plugable USB2-HDMI-165
- Resold by Amazon.
- StarTech USB2DVIMM6
- 1680x1050.
- Resold by NewEgg.
- Diamond Multimedia BVU165
- DL-195
- Accell J130B-001B
- Accell J131B-001B UltraAV
- Resold by Amazon.
- Diamond Multimedia BVU195
- Resold by Amazon.
- Plugable UGA-2K-A
- Resold by Amazon
- Sabrent UGA-2K-195
- Resold by Amazon.
- Sabrent USB-2011
- Resold by Amazon.
- Sabrent USB-DH88
- Resold by Amazon.
- Sabrent USB-HRHD
- Resold by Amazon.
- StarTech USB2VGAPRO2
- 1920x1200.
- Resold by NewEgg.
- DL-3500
- ClimaxDigital CUH350
- ClimaxDigital claims 1920x1200; DisplayLink chipset docs claim 2560x1600.
- ClimaxDigital CUH350
- Nvidia
- GeForce GTX 780 Ti
- PowerVR
- Raptor Kestrel
- GPU functionality not yet implemented as of July 28, 2022.
- 1920x1200 [1].
- More freedom-friendly than AST2510 (Kestrel has FPGA with freedom bitstream; AST2510 has non-freedom ASIC). But the HDMI implementation is still a non-freedom IT66121FN [1].
- Arctic Tern
- SiliconMotion SM750. Chipset is VGA + DVI (dual display) 1920x1440, but some devices may not support the full chipset resolution; appears to have 2D acceleration (not just framebuffer). Appears to be fixed-function silicon (no firmware). PCIe interface.
sm750fb
Linux driver is in staging.sm750
Linux driver is not yet merged to mainline.sm750
Linux driver has some weird license text, but according to Greg Kroah-Hartman it sounds like the authors intend it to be GPLv2; would be useful to double-check with Greg/Sudip/Teddy whether Silicon Motion's statement to Greg applies to Sudip'ssm750
or if it only applies to mainline'ssm750fb
. Known suppliers:- ASRock Rack M2_VGA. Resold by:
- Cervoz MEC-DIS-M002. VGA + DVI (dual display) 1280x1024 @ 60Hz. Mini-PCIe form factor. Resold by:
- Fastwel VIM552 (Warning: non-TLS link!)
- Innodisk EMPV-1201-C1
- Innodisk EMPV-1202-C1
- SUNIX VGA0419
- SUNIX VGA0429. Resold by:
- SUNIX VGA0449M
- VadaTech AMC348
- VadaTech AMC349
- VersaLogic VL-MPEe-V5
Sound Cards
Working
- Creative Sound Blaster Audigy FX SB1570 PCIe 5.1 Sound Card
- Creative Sound Blaster X-Fi Xtreme Fidelity PCIe Audio Sound Card (SB0880)
- Creative Sound BlasterX AE-5 Plus worked out of the box with Ubuntu 21.10 (the audio config needs changing to use the stereo output otherwise the default is the S/PDIF)
- Creative Sound Blaster Z (SB1500) Works out of the box on Void linux and Fedora 36. Sometimes it switches to headphones on boot in void linux when connected to my 5.1 speaker system. I did need to disable fx: dialogue plus and set the fx: surround to 50 in alsamixer(or mute it), otherwise the sound balance heavily skewed to the left. Like the AE5, you may need to change the audio config.
- AMD Radeon HD 5850 and 7950 (HDMI audio)
- VANTEC NBA-120U (USB)
- Sabrent USB External Stereo Sound Adapter (AU-MMSA)
- Mackie Onyx Blackjack (USB) Recording Interface
- RME HDSPe AIO (FreeBSD tested)
- Leveraged Sabrent Bluetooth 4.0 USB adapter (model BT-UB40) to connect to wireless Bluetooth headphones, specifically Bose Quiet Comfort 35.
- Bluetooth audio from an Asus PCE-AX3000 connecting to various devices, with the media keys also working to control playback
- Blue Yeti Pro is a USB audio device, it's primarily a microphone but has output to external speakers.
- StarTech ICUSBAUDIO2D. SPDIF output works fine on Linux 5.5 ppc64le (64KiB pages). Didn't test analog input/output; didn't test BE; didn't test 4KiB pages.
Non-working
- ASUS Xonar SE - Contains ASMedia USB host controller with errant DMA access flaw
- Creative Sound Blaster Audigy PCIe RX 7.1 - unable to enable emu10k1 driver on little-endian power9 kernel as driver requires ZONE_DMA
USB Host Controllers
Working
- Insignia USB 3.0 PCI-e NS-PCCUP53 V1.0 (Chipset: NEC D720202)
- AGAXO PCEU-23R (Chipset: Renesas uPD720202, PCI id 1912:0015)
- Terminus Technology Inc. FE 2.1 7-port Hub
- Sonnet Allegro Pro USB 3.0 PCIe USB3-PRO-4PM-E (Chipset: Four Fresco Logic FL1100EX controllers behind one PLX PEX 8608 switch)
- Vantec UGT-PC345 4 Port USB 3.0 PCIe w/ Internal 20 pin (Chipset: Renesas uDP720201)
- Mustpoint PCI-E to USB3.0 Expansion Card (monster card with 8 ports of USB 3.0) four Renesas uPD720202 chips behind ASMedia 1806, card can be found under different brands but can be identified by the look.
- En-Labs PCI-e to 4 Ports USB 3.1 GEN 1 (5Gbps) (USB Type-C +USB Type A w/ Internal 19Pin USB 3.0 Dual Port) PCI Express Card (Chipset: ASMedia ASM1042A)
- Card appears to be sold under different brands, but can be identified by the "PCE3U1T-A31" and "VER 006S" markings on the PCB.
- Requires kernel version 4.14.226, 4.19.181, 5.4.106, 5.10.24, 5.11.7, or later.
- Petitboot's kernel will need to be updated to one of these versions (or later) in order to boot from any USB devices connected to this controller.
- IOCrest SI-PEX20189 (Chipset: ASMedia ASM1142)
- Requires kernel version 4.14.194, 4.19.139, 5.4.58, 5.7.15, 5.8.1, or later.
- Petitboot's kernel will need to be updated to one of these versions (or later) in order to boot from any USB devices connected to this controller.
- EEH errors may occur during long reads from multiple devices.
- Requires kernel version 4.14.194, 4.19.139, 5.4.58, 5.7.15, 5.8.1, or later.
- Ableconn PU31-2C-2 (Chipset: ASMedia ASM2142)
- Requires kernel version 4.14.190, 4.19.135, 5.4.54, 5.7.11, 5.8.0, or later.
- Petitboot's kernel will need to be updated to one of these versions (or later) in order to boot from any USB devices connected to this controller.
- EEH errors may occur during long reads from multiple devices.
- Requires kernel version 4.14.190, 4.19.135, 5.4.54, 5.7.11, 5.8.0, or later.
- Semoic USB 3.1 to Type-C 2 Port Expansion Card (Chipset: ASMedia ASM3142, same PCI IDs as ASM2142)
- Card appears to be sold under different brands, but can be identified by the "PCE2TYC-A31", "VER006", "USB 3.1 Type-C 2-Port Card", and "PCE-E 4X" markings on the PCB.
- Requires kernel version 4.14.190, 4.19.135, 5.4.54, 5.7.11, 5.8.0, or later.
- Petitboot's kernel will need to be updated to one of these versions (or later) in order to boot from any USB devices connected to this controller.
- EEH errors may occur during long reads from multiple devices.
- ORICO PE20-1C (Chipset: ASMedia ASM3242)
- Requires kernel version 4.14.226, 4.19.181, 5.4.106, 5.10.24, 5.11.7, or later.
- Petitboot's kernel will need to be updated to one of these versions (or later) in order to boot from any USB devices connected to this controller.
- Requires kernel version 4.14.226, 4.19.181, 5.4.106, 5.10.24, 5.11.7, or later.
- Texas Instruments TUSB7340
Non-working
In general, USB3 host controllers based on ASMedia chipsets are known to be problematic, due to ASMedia hardware or firmware bugs causing errant DMA accesses to invalid regions of host memory.
- AXAGON PCEU-43V - chipset Via VL805 - PCI id 1106:3483
- StarTech PEXUSB314A2V - 2x ASM1142 host controllers and a PCIe switch
- This card completely fails to be detected.
- QNINE USB 3.1 Gen2 (Type-A and Type-C) - ASM1142
- This may work now with an updated kernel, but it hasn't been tested yet.
- Rosewill RC-509 - ASM1142
- This may work now with an updated kernel, but it hasn't been tested yet.
- HighPoint RocketU 1022A (Chipset: ASMedia ASM1042)
- Skiboot reports that the PCIe link is unstable when the card is connected directly, but it seems to work when the card is plugged in via a PCIe switch.
- This chip seems somewhat unreliable, since USB reads can fail after only a few tens of gigabytes have been transferred.
- HighPoint RocketU 1144A (Chipset: Chipset: Four ASMedia ASM1042 controllers behind one PLX PEX 8609 switch)
- Skiboot sometimes times out when scanning for the ASM1042 controllers attached to the PEX 8609 ("Timeout waiting for downstream link"), resulting in some of the ports effectively being disabled until the next boot.
- The ASM1042 controller seems somewhat unreliable.
- Lots of resets on USB 3.
- Long reads from a single USB hard drive can sometimes result in I/O errors.
- Incompatible with some USB hard drives.
Unknown if working (good candidates to test)
- SEDNA SE-PCIE-USB3-08-4E4I-LP PCI-E to 8 Port USB 3.0 (USB 3.1 Gen I) Expansion Card (Should be same card as Mustpoint PCI-E to USB3.0 Expansion Card)
- SEDNA - PCIe 7 Port USB 3.0 Adapter Card (Chipset: NEC)
- SEDNA - PCIe 4 Port USB 3.0 Adapter Card (Chipset: NEC uPD720201)
- StarTech PCIe 7 Port USB 3.0 Adapter Card (Chipset: NEC uPD720201)
- High Point RocketU 1344A 4-Port USB 3.1 PCI-Express 3.0 x 4 HBA (Chipset: Two ASMedia ASM3142 controllers behind one PLX PEX 8714 switch)
- High Point RocketU 1144D 4-Port USB 3.0 PCI-Express 2.0 x 4 HBA (Chipset: Four ASMedia ASM1042A controllers behind one PLX PEX 8609 switch)
- Sonnet Allegro USB-C PCIe Card USB3C-2PM-E (Chipset: ASMedia ASM1142/ASM3142 (cards shipped before April 2020 use the ASM1142 controller))
- Sonnet Allegro USB-C 4-Port PCIe Card USB3C-4PM-E (Chipset: Two ASMedia ASM1142/ASM3142 controllers (cards shipped before January 2020 use ASM1142 controllers) behind one Pericom PI7C9X2G308GP switch)
- Sonnet Allegro Pro USB-C 8-Port PCIe Card USB3C-8PM-E (Chipset: 4x ASMedia 3142)
- Gigabyte GC-USB 3.2 GEN2X2 (Chipset: ASMedia ASM3242)
TV Tuners
- Hauppauge WinTV-quadHD (Chipset: Four Silicon Labs Si2157 tuners, four LG LG3306A demodulators, and two Conexant CX23888 PCIe interface chips behind one Pericom PI7C9X2G304EL PCIe switch)
- Hauppauge WinTV HVR-850 (2040:7240) - ATSC - using Kaffeine
Firewire Host Controllers
Working
- Syba SY-PEX30016 (Chipset: TI XIO2213B)
- Requires this patch to work on kernels with a 64k page size.
Unknown if working (good candidates to test)
- Dawicontrol DC-FW800 (Chipset: TI XIO2213B)
- DeLOCK 3x FireWire 800, Item No. 89210 (Chipset: TI XIO2213B)
- DIGITUS Firewire 800 (1394b) PCIe Card (Chipset: TI XIO2213B)
- Exsys EX-16415 (Chipset: TI XIO2213)
- Exsys EX-16512E (Chipset: TI)
- IOI Technology FWB-PCIE1X11A (Chipset: TI XIO2213B)
Video Capture Cards
- AVerMedia CE310B (Chipset: Conexant CX23888)
- Requires kernel version 4.19.106, 5.4.22, 5.5.6, or later.
Serial Port Adapter Cards
Working
- EXSYS EX-44072 PCI-Express 2x Serial RS-232 Board (Chipset: Oxford OXPCIe952)
- EXSYS EX-44073 PCI-Express 2x Serial RS-232 Board (Chipset: Oxford OXPCIe952)
- EXSYS EX-44171 PCI-Express 1x Serial RS-232 / 1x Parallel Multi I/O Card (Chipset: Oxford OXPCIe952)
- The UARTs implemented with the Oxford Semiconductor OXPCIe952 PCIe ASIC can be strapped for either native or legacy operation. The EXSYS boards configure it for the native mode and therefore work with the PHB4 just fine.
NB the PC parallel port is always a legacy PCIe device and therefore cannot work with the PHB4.
- The UARTs implemented with the Oxford Semiconductor OXPCIe952 PCIe ASIC can be strapped for either native or legacy operation. The EXSYS boards configure it for the native mode and therefore work with the PHB4 just fine.
PCIe/PCI Expansion
Working
- EXSYS EX-1095 PCIe Adapter card for EX-1010/1031/1032/1041/1042
- EXSYS EX-1031 Quad PCI-Slot Expansion Box (Chipset: TI XIO2000A)
- PCI Express 4x Riser Card 1 to 4 - These go by many different names, mine is similar to the one imaged with a model SU_EUX4042.V2 and it uses an ASM1806 switch chip. Relatively inexpensive way to get a few extra pci slots coupled with these out of the blackbird if you don't mind running everything hooked up through 2 lanes. There is also an ASM1812 based card that I imagine would work as well that would give you 4 lanes total bandwidth. No issues with it with a USB3 card and a sound card hooked up to it.
- USB 3.0 20Gb Adapter Riser Card PCI-E X4 to 6 Port Extender Board Mining ASM1812 (Model EX4046U) - per
lspci -vvvv
, supports all IOMMU ACS features except Egress Control.