POWER9 Hardware Compatibility List/PCIe Devices
- 1 Compatibility rules
- 2 NICs
- 3 Wireless Cards
- 4 NVMe Drives
- 5 PCIe to M.2 Adapters
- 6 SAS/SATA Storage Controllers
- 7 Graphics Cards
- 8 Sound Cards
- 9 USB Host Controllers
- 10 TV Tuners
- 11 Firewire Host Controllers
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. 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.
- Broadcom BCM5719
- Chelsio T6225-SO-CR
- Mellanox ConnectX-6 EN 200Gb/s Adapter Card (supports CAPI)
- Silicom PE310G4SPI9/PE310G4SPI9LA quad port 10 GbE SFP+ adapter (ixgbe driver)
- Mellanox ConnectX IB QDR (mlx4 driver)
- Intel Dual-Band Wireless-AC 7260 (Bluetooth untested)
- Alfa AWUS036NHA Wireless USB Adaptor
- open source firmware (ath9k_htc) 
- TP-Link TL WN823N RTL8192EU 
- remove "ARCH=$(ARCH)" on line 1710 of the makefile and it compiles fine
- 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)
- Intel Optane 900P NVMe XPoint PCIe
- Intel Optane 905P NVMe XPoint PCIe AIC
- WD Black PCIe (with M.2 to PCIe adapter)
- MyDigitalSSD BPX 480GB (with M.2 to PCIe adapter)
PCIe to M.2 Adapters
- Ableconn PEXM2-SSD M.2 NGFF PCIe SSD to PCI Express 3.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
- 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
- HighPoint SSD7101A-1 4x M.2 PCIe to PCIe 3.0 x16 (based on PLX PEX8747 PCIe switch)
- HighPoint SSD 7102 4x M.2 PCIe to PCIe 3.0 x16 (with PCIe switch)
- Aplicata Quad M.2 NVMe SSD PCIe x16 Adapter (no PCIe switch; only lowest slot works)
SAS/SATA Storage Controllers
- 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
- PM8068-based SAS HBAs
- Supermicro AOC-SLG3-4E2P 4-port OCuLink adapter
- Jmicron JMB 363 SATA PCIe card. SATA ports work with Petitboot.
- MegaRAID 9460-8i
- AXAGON PCES-SA2 (ASMedia chipset)
- SuperMicro AOC-SASLP-MV8 (mvsas driver)
- MegaRAID 9341-8i - probably a bug in the firmware
No display? Check out the GPU Troubleshooting page.
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 expected to be included in Linux 5.4 and above that will resolve this issue.
- 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 RX 480
- 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=797if xinit complains about VESA
- 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 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.
The core name is important when storing the firmware into the BOOTKERNFW partition in PNOR for use by skiroot.
- 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. No firmware needed.
- NVIDIA RTX 2070 - usable for compute, but not 3D acceleration; integrated by Raptor as part of the Talos II PowerAI Development System configuration
- 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 a patch that is harmful to performance).
- ClimaxDigital CUH195 USB 2.0 Graphic Adapter - Based on DisplayLink DL-3500 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 - DisplayLink Based - Petitboot shows up without loading firmware. Not tested in OS.
Unknown if working (good candidates to test)
- ASPEED AST2510. It's the GPU component of the AST2500 without the BMC component. 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. Known suppliers of AST2510 devices are:
- ASPEED AST1400. Older revision of the AST2510 (AST1400 is 5th generation; AST2510 is 6th generation). Known suppliers of AST1400 devices are:
- ASPEED AST1300. Older revision of the AST2510 (AST1300 is 4th generation; AST2510 is 6th generation). Known suppliers of AST1300 devices are:
- Creative Sound Blaster Audigy FX SB1570 PCIe 5.1 Sound Card
- Creative Sound Blaster X-Fi Xtreme Fidelity PCIe Audio Sound Card (SB0880)
- 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.
- 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
- 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)
-  (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. This should be the same card
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
- QNINE USB 3.1 Gen2 (Type-A and Type-C) - ASM1142
- It's based on the the same reference design as all the other cheap ASM1142 cards, so there's a good chance those won't work either.
- Rosewill RC-509 - ASM1142
- Ableconn PU31-2C-2 - ASM2142
Unknown if working (good candidates to test)
- 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)
- Hauppauge WinTV-quadHD
- Hauppauge WinTV HVR-850 (2040:7240) - ATSC - using Kaffeine
Firewire Host Controllers
- Syba SY-PEX30016
- The card correctly gets enumerated by the OS and the driver is able to communicate with it, but Firewire bus transactions fail.