# bhyve pci passthrough



## zader (Apr 25, 2020)

HI all,

been trying to get pci passthrough to work on bhyve.. 
`vm passthru` shows the devices as not been ready .. (the first one is a startech 2 port parallel card and the second is a 1934b firewire card)


```
ppc1       4/0/0        No           PCI 9865 Multi-I/O Controller
ppc2       4/0/2        No           PCI 9865 Multi-I/O Controller
none134    130/0/0      No           FW643 [TrueFire] PCIe 1394b Controller
```

`pciconf -lv`

```
ppc1@pci0:4:0:0:        class=0x070103 card=0x2000a000 chip=0x98659710 rev=0x00 hdr=0x00
    vendor     = 'MosChip Semiconductor Technology Ltd.'
    device     = 'PCI 9865 Multi-I/O Controller'
    class      = simple comms
    subclass   = parallel port
ppc2@pci0:4:0:2:        class=0x070103 card=0x2000a000 chip=0x98659710 rev=0x00 hdr=0x00
    vendor     = 'MosChip Semiconductor Technology Ltd.'
    device     = 'PCI 9865 Multi-I/O Controller'
    class      = simple comms
    subclass   = parallel port
none134@pci0:130:0:0:   class=0x0c0010 card=0x11015901 chip=0x590111c1 rev=0x08 hdr=0x00
    vendor     = 'LSI Corporation'
    device     = 'FW643 [TrueFire] PCIe 1394b Controller'
    class      = serial bus
    subclass   = FireWire
```
/boot/loader.conf

```
# VM Kernel modules
if_bridge_load="YES"
if_tap_load="YES"
nmdm_load="YES"
vmm_load="YES"

# pci passthrough
pptdevs0="4/0/0"
pptdevs1="4/0/2"
pptdevs2="130/0/0"
```


----------



## Emrion (Apr 25, 2020)

Normally, you should have ppt_X_ (where _X_ is a number) as driver for the devices ready for passthru. That said, something like `pptdevs="4/0/0 4/0/2"` works here. I see no obvious error.


----------



## SirDice (Apr 28, 2020)

zader said:


> ```
> # pci passthrough
> pptdevs0="4/0/0"
> pptdevs1="4/0/2"
> ...


Change that to:

```
pptdevs="4/0/0  4/0/2 130/0/0"
```

That fact it shows up as ppc(4) means the host was able to grab them, in other words the reservation failed.


----------



## rootbert (Apr 28, 2020)

I'll chime in here ... I see my wifi in the linux vm however, the Linux kernel says

```
....
[   12.772545] iwlwifi 0000:00:06.0: SecBoot CPU1 Status: 0x5fe2, CPU2 Status: 0x3
[   12.772545] iwlwifi 0000:00:06.0: Failed to start RT ucode: -110
[   12.772547] iwlwifi 0000:00:06.0: Firmware not running - cannot dump error
[   12.784274] iwlwifi 0000:00:06.0: Failed to run INIT ucode: -110
```

any idea?


----------



## SirDice (Apr 28, 2020)

Don't hijack the thread with unrelated issues.


----------



## zader (Apr 28, 2020)

in this case, it's weird .. I did a hard power off for the usual 30 seconds .. the firewire card was passed, shows up as ready with vm .. and it even gets passed through .. so that was good ..

the startac dual parallel port card on the other hand refuses to work .. even when just trying to pass part of the card .. 

anyone know a way to test the card itself to prove if it should/will work?

thanks


----------

