Issues w/ PCI passthru for Dynamic Engineering PCIEBPMCX1 PCI-Express to PCI/PCI-X Bridge

rh11

New Member
Nov 5, 2024
5
1
3
Problem statement

Having issues passing a legacy PCI bridge card / PMC daughter card component through to a Proxmox Virtual Machine (VM). Using the Proxmox configuration for PCI pass-through shown below. Adding the target PCI device at 3C:04.0 we are unable to start the target VM. Attempting to start the VM causes the Proxmox OS to reboot.

Looking for suggestions on what else to try.


1. Hardware/OS

Server: Dell R740 (Intel processors)

PCI Device: Dynamic Engineering PCIEBPMCX1 PCI-Express to PCI/PCI-X Bridge w/ PMC daughter card.
PMC card (daughter card) is a Power PC: Freescale Semiconductor PCI Device.

OS: Proxmox 8.2.4 (6.8.12-1)


The Power PC Semiconductor PCI device plugged into the PMC connector on the PCIEBPMCX1 is the target for pass-through.


2. Kernel Command Line Options

Attempted to use several combinations of extra command line parameters. Current configuration is shown below from /etc/default/grub

# If you change this file, run 'update-grub' afterwards to update
# /boot/grub/grub.cfg.
# For full documentation of the options in this file, see:
# info -f grub -n 'Simple configuration'

GRUB_DEFAULT=0
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on iommu=pt pcie_acs_override=downstream,multifunction initcall_blacklist=
sysfb_init"
GRUB_CMDLINE_LINUX=""



3. VFIO Modules

Loaded required VFIO modules required for Proxmox pass-through:

# /etc/modules: kernel modules to load at boot time.
#
# This file contains the names of kernel modules that should be loaded
# at boot time, one per line. Lines beginning with "#" are ignored.
# Parameters can be specified after the module name.
vfio
vfio_iommu_type1
vfio_pci


Confirmed the VFIO modules are loaded and available:

root@benchserver02:/etc/default# lsmod | grep vfio
vfio_pci 12288 0
vfio_pci_core 81920 1 vfio_pci
irqbypass 12288 2 vfio_pci_core,kvm
vfio_iommu_type1 45056 0
vfio 65536 3 vfio_pci_core,vfio_iommu_type1,vfio_pci
iommufd 94208 1 vfio



4. Confirm IOMMU and IRQ remapping enabled

Output from DMESG at startup confirms that IOMMU and IRQ remapping are enabled:

[ 0.102199] DMAR: IOMMU enabled
[ 0.262929] DMAR-IR: Enabled IRQ remapping in x2apic mode



5. Confirm vfio module kernel driver is selected for target pci device

lspci tree dump shows the motherboard PCI bridge (3a), and the Tundra board (3b), along with the target PMC daughter card at 3c:04.0

| +-1e.4
| +-1e.5
| \-1e.6
+-[0000:3a]-+-00.0-[3b-3c]----00.0-[3c]----04.0
| +-05.0
| +-05.2
| +-05.4



The PCIEBPMCX1 is at 3b:00.0

3b:00.0 PCI bridge: Tundra Semiconductor Corp. Device 8114 (rev 03) (prog-if 00 [Normal decode])
Flags: bus master, fast devsel, latency 0, NUMA node 0, IOMMU group 1
Bus: primary=3b, secondary=3c, subordinate=3c, sec-latency=0
I/O behind bridge: [disabled] [32-bit]
Memory behind bridge: ab100000-ab1fffff [size=1M] [32-bit]
Prefetchable memory behind bridge: ab000000-ab0fffff [size=1M] [32-bit]
Capabilities: [80] PCI-X bridge device
Capabilities: [a0] Power Management version 3
Capabilities: [c0] Express PCI-Express to PCI/PCI-X Bridge, MSI 00
Capabilities: [100] Advanced Error Reporting


lspci dump of 3c:04.0 shows that the PMC daughter board PCI device is using the VFIO pass-through kernel driver:

3c:04.0 Power PC: Freescale Semiconductor Inc Device XXXX (rev 21)
Flags: bus master, 66MHz, fast devsel, latency 128, IRQ 255, NUMA node 0, IOMMU group 1
Memory at ab100000 (32-bit, non-prefetchable) [size=1M]
Memory at ab000000 (32-bit, prefetchable) [size=8K]
Capabilities: [48] CompactPCI hot-swap <?>
Capabilities: [80] Power Management version 3
Kernel driver in use: vfio-pci



6. IOMMU group layout

Dell R740 mother PCI bridge is in group 0:

IOMMU Group 0:
3a:00.0 PCI bridge [0604]: Intel Corporation Sky Lake-E PCI Express Root Port A [8086:2030] (rev 07)


The PCIEBPMCX1 PCI bridge card w/ PMC daughter card are in group 1:

IOMMU Group 1:
3b:00.0 PCI bridge [0604]: Tundra Semiconductor Corp. Device [10e3:8114] (rev 03)
3c:04.0 Power PC [0b20]: Freescale Semiconductor Inc Device [XXXX:XXXX] (rev 21)



7. Passthru Options

The conf file which contains the vfio options to add the target device for passthru:

From /etc/modprobe.d/vfio.conf:

options vfio-pci ids=10e3:8114,XXXX:XXXX disable_idle_d3=1

Note: this was tried with and without the Tundra bridge device ID. XXXX:XXXX is the device ID for the target PCI device.



8. Passthru cmdline cmd to add pci device to VM 101

qm set 101 -hostpci0 3c:04.0,pcie=0

Note: this was tried with pcie=0 and 1.
 
hey,

seem's to be a vfio driver "issue".
Code:
lspci -knn
will help you to see if your pci-card well use the vfio driver on.
Under your pci device, you want to have this line:
1730997067531.png

If you've not, it's the reason for your pve reboot on the VM start

Recheck with this passtrough tutorial: https://forum.proxmox.com/threads/p...x-ve-8-installation-and-configuration.130218/

Check in specifically:
- Boot Type. Verify that your etc/defaut/grub is well exploited by your booting system.
- Check the granulary configuration to load vfio drivers on your PCI card.
 
Kernel drive in use: vfio-pci is clearly shown in the initial post at the end of section #5 for the PMC device. Checking your link for additional ideas, but pretty sure I've reviewed this information previously. Still looking...
 
Last edited:
Kernel drive in use: vfio-pci is clearly shown in the initial post at the end of section #5 for the PMC device. Checking your link for additional ideas, but pretty sure I've reviewed this information previously. Still looking...
oh sorry i've not saw firstly the information ^^
 
well, small idea: did you tried to switch of pci-slot your device ? For having another iommu group than 0
 
well, small idea: did you tried to switch of pci-slot your device ? For having another iommu group than 0
Thanks for this. The slot swap idea is on the board but has not been tried yet. Card/device previously worked in current slot under a Vmware PCI passthrough configuration. FYI: In that configuration the passthru.map file for the device used d3d0 for reset and fptshareable was false. We figured if VMware could make it work in that slot then should be able to using Proxmox as well...

Note: The IOMMU group for the target is group 1. Root bridge is group 0. Shown in #6 of original post.
 
Last edited:
  • Like
Reactions: Pifouney

About

The Proxmox community has been around for many years and offers help and support for Proxmox VE, Proxmox Backup Server, and Proxmox Mail Gateway.
We think our community is one of the best thanks to people like you!

Get your subscription!

The Proxmox team works very hard to make sure you are running the best software and getting stable updates and security enhancements, as well as quick enterprise support. Tens of thousands of happy customers have a Proxmox subscription. Get yours easily in our online shop.

Buy now!