Difference between revisions of "POWER9 Hardware Compatibility List/PCIe Devices"

From RCS Wiki
Jump to navigation Jump to search
(→‎TV Tuners: Update WinTV-quadHD info)
(→‎USB Host Controllers: Add ORICO PE20-1C)
(21 intermediate revisions by 6 users not shown)
Line 1: Line 1:
 
+
<!-- When adding devices, please list devices in alphabetical order within each category. -->
 
==Compatibility rules==
 
==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:
 
In general, any PCIe device will work providing that an open source driver is available for your operating system. There are some exceptions:
Line 21: Line 21:
 
* Unbranded 4-port Gigabit Ethernet adapter (Chipset: Four Realtek RTL8111F controllers behind one ASMedia ASM1184e switch) (r8169 driver, firmware optional)
 
* 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.
 
** The card be identified by the "NET111-V1.0" text on its PCB.
 +
* [https://www.asus.com/Networking-IoT-Servers/Wired-Networking/All-series/XG-C100F/ ASUS XG-C100F] (single port 10GbE SFP+, AQUANTIA AQtion Linux "atlantic" driver)
 +
** 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.
  
 
===Non-working===
 
===Non-working===
Line 26: Line 29:
  
 
==Wireless Cards==
 
==Wireless Cards==
 +
===Working===
 +
* Alfa AWUS036NHA Wireless USB Adaptor
 +
** open source firmware (ath9k_htc) [https://github.com/qca/open-ath9k-htc-firmware]
 
* [https://ark.intel.com/content/www/us/en/ark/products/75439/intel-dual-band-wireless-ac-7260.html Intel Dual-Band Wireless-AC 7260] (Bluetooth untested)
 
* [https://ark.intel.com/content/www/us/en/ark/products/75439/intel-dual-band-wireless-ac-7260.html Intel Dual-Band Wireless-AC 7260] (Bluetooth untested)
 
* [https://ark.intel.com/content/www/us/en/ark/products/86068/intel-dual-band-wireless-ac-8260.html Intel Dual-Band Wireless-AC 8260] (Bluetooth untested)
 
* [https://ark.intel.com/content/www/us/en/ark/products/86068/intel-dual-band-wireless-ac-8260.html Intel Dual-Band Wireless-AC 8260] (Bluetooth untested)
 
* [https://ark.intel.com/content/www/us/en/ark/products/99445/intel-wireless-ac-9260.html Intel Dual-Band Wireless-AC 9260] (Bluetooth untested)
 
* [https://ark.intel.com/content/www/us/en/ark/products/99445/intel-wireless-ac-9260.html Intel Dual-Band Wireless-AC 9260] (Bluetooth untested)
* Alfa AWUS036NHA Wireless USB Adaptor
+
* [https://www.thinkpenguin.com/gnu-linux/penguin-wireless-n-mini-pcie ThinkPenguin TPE-NMPCIE]
** open source firmware (ath9k_htc) [https://github.com/qca/open-ath9k-htc-firmware]
+
** 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 [https://github.com/Mange/rtl8192eu-linux-driver]
 
* TP-Link TL WN823N RTL8192EU [https://github.com/Mange/rtl8192eu-linux-driver]
 
** remove "ARCH=$(ARCH)" on line 1710 of the makefile and it compiles fine
 
** remove "ARCH=$(ARCH)" on line 1710 of the makefile and it compiles fine
Line 63: Line 71:
 
** 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 SSD 7102] 4x M.2 PCIe to PCIe 3.0 x16 (with PCIe switch)
 
* [https://highpoint-tech.com/USA_new/series-ssd7102-overview.htm HighPoint SSD 7102] 4x M.2 PCIe to PCIe 3.0 x16 (with PCIe switch)
 +
* [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-Channel M.2 NVMe RAID 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 81: Line 90:
  
 
==PCIe to MiniPCIe Adapters==
 
==PCIe to MiniPCIe Adapters==
=== Unknown if working (good candidates to test) ===
+
=== Working ===
 
* [https://www.startech.com/Cards-Adapters/Slot-Extension/PCI-Express-to-Mini-PCI-Express-Card-Adapter~PEX2MPEX StarTech PEX2MPEX] ([https://www.newegg.com/startech-com-model-pex2mpex-pci-express-to-mini-pci-express/p/N82E16815158307?Item=N82E16815158307&Description=mini%20PCIe&cm_re=mini_PCIe-_-15-158-307-_-Product NewEgg])
 
* [https://www.startech.com/Cards-Adapters/Slot-Extension/PCI-Express-to-Mini-PCI-Express-Card-Adapter~PEX2MPEX StarTech PEX2MPEX] ([https://www.newegg.com/startech-com-model-pex2mpex-pci-express-to-mini-pci-express/p/N82E16815158307?Item=N82E16815158307&Description=mini%20PCIe&cm_re=mini_PCIe-_-15-158-307-_-Product NewEgg])
 +
** Tested with ThinkPenguin TPE-NMPCIE.
 
** Particularly of interest as a lot of the ASPEED and SiliconMotion GPU's have a MiniPCIe form factor.
 
** Particularly of interest as a lot of the ASPEED and SiliconMotion GPU's have a MiniPCIe form factor.
  
Line 130: Line 140:
 
* 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 under Linux 5.6.14 on Fedora 32.
+
* AMD Radeon R9 Nano - Must disable onboard VGA first. Works perfectly under Linux 5.6.x on Fedora 32. There is no video output on kernel 5.7.x and 5.8.x, to workaround this issue the kernel parameter `amdgpu.dc=0` must be added into grub config
 
* 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.
 
* AMD Radeon RX 480
 
* AMD Radeon RX 480
Line 157: Line 167:
 
* [https://www.climaxdigital.co.uk/CUH195-USB-2-to-DVI-VGA-or-HDMI-Adaptor-1080p-full-hd 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.
 
* [https://www.climaxdigital.co.uk/CUH195-USB-2-to-DVI-VGA-or-HDMI-Adaptor-1080p-full-hd 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.
 
* EVGA 100-U2-UV12-A1 UV Plus USB VGA Adapter - DisplayLink Based - Petitboot shows up without loading firmware. Not tested in OS.
 +
 +
=== Non-working ===
 +
 +
* [https://www.aspeedtech.com/products.php?fPath=20&rId=244 ASPEED AST1300].  Older revision of the AST2510 (AST1300 is 4th generation; AST2510 is 6th generation).  VGA 1920x1200 @ 60Hz 32bpp; framebuffer (no acceleration).  <code>ast</code> Linux driver.  [https://github.com/open-power/skiboot/issues/257 Open issue with Skiboot for getting it fixed.]  Known suppliers of AST1300 devices are:
 +
** [https://iei.rs/IGCME-1300-R10 IEI Integration Corp IGCME-1300-R10] ([https://iei.rs/image/cache/data/IGCME-1300_20131105.pdf Datasheet]) ([https://dls.ieiworld.com/IEIWeb/Reserved/0D332000196276623429/IGCME-1300%20QIG%20V1.01_20120531.pdf Quick Installation Guide])-- Resold by:
 +
*** [http://archivecaslytosk.onion/QZROL eBay example 1]
 +
*** [https://www.ebay.com/p/1383304505 eBay example 2]
 +
*** [https://web.archive.org/web/20171003045507/http://neutronusa.com/prod.cfm/1525210/ NeutronUSA] (Warning: non-TLS link!)
 +
*** [https://forums.servethehome.com/index.php?threads/fs-us-ny-intel-x540-t2-minipcie-vga-slim-120mm-fans.26880/ ServeTheHome]
  
 
=== Unknown if working (good candidates to test) ===
 
=== Unknown if working (good candidates to test) ===
Line 174: Line 193:
 
*** [https://www.alibaba.com/product-detail/IEI-IGCME-1300-R11-PCIe-Mini_60839628812.html Alibaba]
 
*** [https://www.alibaba.com/product-detail/IEI-IGCME-1300-R11-PCIe-Mini_60839628812.html Alibaba]
 
*** [https://www.icpamerica.com/igcme-1300-add-on-card/ ICP America]
 
*** [https://www.icpamerica.com/igcme-1300-add-on-card/ ICP America]
* [https://www.aspeedtech.com/products.php?fPath=20&rId=244 ASPEED AST1300].  Older revision of the AST2510 (AST1300 is 4th generation; AST2510 is 6th generation).  VGA 1920x1200 @ 60Hz 32bpp; framebuffer (no acceleration).  <code>ast</code> Linux driver.  Known suppliers of AST1300 devices are:
 
** [https://iei.rs/IGCME-1300-R10 IEI Integration Corp IGCME-1300-R10] ([https://iei.rs/image/cache/data/IGCME-1300_20131105.pdf Datasheet]) ([https://dls.ieiworld.com/IEIWeb/Reserved/0D332000196276623429/IGCME-1300%20QIG%20V1.01_20120531.pdf Quick Installation Guide])-- Resold by:
 
*** [http://archivecaslytosk.onion/QZROL eBay example 1]
 
*** [https://www.ebay.com/p/1383304505 eBay example 2]
 
*** [https://web.archive.org/web/20171003045507/http://neutronusa.com/prod.cfm/1525210/ NeutronUSA] (Warning: non-TLS link!)
 
*** [https://forums.servethehome.com/index.php?threads/fs-us-ny-intel-x540-t2-minipcie-vga-slim-120mm-fans.26880/ ServeTheHome]
 
 
* 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.  <code>sm750fb</code> Linux driver is in staging.  [https://gitlab.com/sudipm/sm750/tree/sm750 <code>sm750</code> Linux driver] is not yet merged to mainline.  <code>sm750</code> Linux driver has some weird license text, but [https://github.com/torvalds/linux/commit/81e0da703fdba1ee126868bf8350592c79cdba13 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's <code>sm750</code> or if it only applies to mainline's <code>sm750fb</code>.  Known suppliers:
 
* 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.  <code>sm750fb</code> Linux driver is in staging.  [https://gitlab.com/sudipm/sm750/tree/sm750 <code>sm750</code> Linux driver] is not yet merged to mainline.  <code>sm750</code> Linux driver has some weird license text, but [https://github.com/torvalds/linux/commit/81e0da703fdba1ee126868bf8350592c79cdba13 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's <code>sm750</code> or if it only applies to mainline's <code>sm750fb</code>.  Known suppliers:
 
** [https://www.cervoz.com/product.php?id=c39eb02c-014a-1000-a04b-001851f77c0c Cervoz MEC-DIS-M002].  VGA + DVI (dual display) 1280x1024 @ 60Hz.  Mini-PCIe form factor.  Resold by:
 
** [https://www.cervoz.com/product.php?id=c39eb02c-014a-1000-a04b-001851f77c0c Cervoz MEC-DIS-M002].  VGA + DVI (dual display) 1280x1024 @ 60Hz.  Mini-PCIe form factor.  Resold by:
Line 196: Line 209:
 
** [https://www.vadatech.com/product.php?product=151 VadaTech AMC349]
 
** [https://www.vadatech.com/product.php?product=151 VadaTech AMC349]
 
** [https://www.versalogic.com/product/video-expansion-module/ VersaLogic VL-MPEe-V5]
 
** [https://www.versalogic.com/product/video-expansion-module/ VersaLogic VL-MPEe-V5]
 +
* DisplayLink
 +
** [https://www.climaxdigital.co.uk/epages/BT3449.sf/en_GB/?ObjectPath=/Shops/BT3449/Products/111216 ClimaxDigital CUH350]
 +
*** Based on DisplayLink DL-3500 chipset.
 +
*** ClimaxDigital claims 1920x1200; DisplayLink chipset docs claim 2560x1600.
 +
** [https://www.startech.com/en-us/audio-video-products/usb2dvimm6 StarTech USB2DVIMM6]
 +
*** Based on DisplayLink DL-165 chipset.
 +
*** 1680x1050.
 +
*** Resold by [https://www.newegg.com/startech-com-usb2dvimm6/p/N82E16815158183 NewEgg].
 +
** [https://www.startech.com/en-us/audio-video-products/usb2dvipro2 StarTech USB2DVIPRO2]
 +
*** Based on DisplayLink DL-195 chipset.
 +
*** 1920x1200.
 +
*** Resold by [https://www.newegg.com/startech-com-usb2dvipro2/p/N82E16812400361 NewEgg].
 +
** [https://www.startech.com/en-us/audio-video-products/usb2vgapro2 StarTech USB2VGAPRO2]
 +
*** Based on DisplayLink DL-195 chipset.
 +
*** 1920x1200.
 +
*** Resold by [https://www.newegg.com/startech-com-usb2vgapro2/p/N82E16812400368 NewEgg].
  
 
== Sound Cards ==
 
== Sound Cards ==
Line 221: Line 250:
 
* [https://www.vantecusa.com/products_detail.php?p_id=125&p_name=+4-Port+SuperSpeed+USB+3.0+PCIe+Host+Card+w%2F+Internal+20-Pin+Connector&pc_id=16&pc_name=USB&pt_id=4&pt_name=Add-on+Cards Vantec UGT-PC345 4 Port USB 3.0 PCIe w/ Internal 20 pin] (Chipset: Renesas uDP720201)
 
* [https://www.vantecusa.com/products_detail.php?p_id=125&p_name=+4-Port+SuperSpeed+USB+3.0+PCIe+Host+Card+w%2F+Internal+20-Pin+Connector&pc_id=16&pc_name=USB&pt_id=4&pt_name=Add-on+Cards Vantec UGT-PC345 4 Port USB 3.0 PCIe w/ Internal 20 pin] (Chipset: Renesas uDP720201)
 
* [https://www.amazon.com/gp/product/B07H4HJNJC] (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. [http://sedna-shop.com/index.php?route=product/product&path=59_74&product_id=138 This should be the same card]
 
* [https://www.amazon.com/gp/product/B07H4HJNJC] (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. [http://sedna-shop.com/index.php?route=product/product&path=59_74&product_id=138 This should be the same card]
 +
* [https://highpoint-tech.com/USA_new/cs-series_RocketU1022A-Series.htm HighPoint RocketU 1022A] (Chipset: ASMedia ASM1042)
 +
** This chip seems somewhat unreliable, since USB reads can fail after only a few tens of gigabytes have been transferred.
 
* [https://www.sybausa.com/index.php?route=product/product&product_id=818 IOCrest SI-PEX20189] (Chipset: ASMedia ASM1142)
 
* [https://www.sybausa.com/index.php?route=product/product&product_id=818 IOCrest SI-PEX20189] (Chipset: ASMedia ASM1142)
** Requires kernel version 4.19.139, 5.4.58, 5.7.15, 5.8.1, or later.
+
** 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.
 
*** 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.
 
** EEH errors may occur during long reads from multiple devices.
Line 245: Line 276:
 
* Rosewill RC-509 - ASM1142
 
* Rosewill RC-509 - ASM1142
 
** This may work now with an updated kernel, but it hasn't been tested yet.
 
** This may work now with an updated kernel, but it hasn't been tested yet.
 +
* [https://www.orico.cc/us/product/detail/7192.html ORICO PE20-1C] (Chipset: ASMedia ASM3242)
 +
** This has the same issues with invalid DMA addresses as the other ASMedia host controllers, and will require a kernel with the 32-bit DMA quirk applied in order to function.
  
 
=== Unknown if working (good candidates to test) ===
 
=== Unknown if working (good candidates to test) ===

Revision as of 04:37, 22 January 2021

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. 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.

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

  • Broadcom BCM5719
  • Chelsio T520-SO-CR (dual port 10Gb/s, cxgb4 driver)
  • 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)
  • 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.

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)
  • 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]

NVMe Drives

  • 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 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)

Known issues:

PCIe to M.2 Adapters

Working

Partially working

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.

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
  • 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

Non-working

  • AXAGON PCES-SA2 (ASMedia chipset)
  • SuperMicro AOC-SASLP-MV8 (mvsas driver)
  • MegaRAID 9341-8i - probably a bug in the firmware

Unknown if working (good candidates to test)

Optical Drives


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 expected to be included in Linux 5.4 and above that will resolve this issue.

  • 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 under Linux 5.6.x on Fedora 32. There is no video output on kernel 5.7.x and 5.8.x, to workaround this issue the kernel parameter `amdgpu.dc=0` must be added into grub config
  • 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 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.
  • 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 5700 (Navi 10) - Requires kernel patches to enable display output.
  • AMD Radeon RX 5700 XT (Navi 10) - Requires kernel patches to enable display output.

The core name is important when storing the firmware into the BOOTKERNFW partition in PNOR for use by skiroot.

NVIDIA

  • 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

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 a patch that is harmful to performance). ast Linux driver.
  • 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.

Non-working

Unknown if working (good candidates to test)

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)
  • 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.

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)
  • [4] (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
  • HighPoint RocketU 1022A (Chipset: ASMedia ASM1042)
    • This chip seems somewhat unreliable, since USB reads can fail after only a few tens of gigabytes have been transferred.
  • 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.
  • 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.
  • 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.

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.
  • ORICO PE20-1C (Chipset: ASMedia ASM3242)
    • This has the same issues with invalid DMA addresses as the other ASMedia host controllers, and will require a kernel with the 32-bit DMA quirk applied in order to function.

Unknown if working (good candidates to test)

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

Unknown if working (good candidates to test)

Video Capture Cards

  • AVerMedia CE310B (Chipset: Conexant CX23888)
    • Requires kernel version 4.19.106, 5.4.22, 5.5.6, or later.