Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 12 Feb 2015 12:16:40 +0100
From:      Philipp Wuensche <cryx-freebsd@h3q.com>
To:        freebsd-virtualization@freebsd.org
Subject:   bhyve and PCI Passthrough a USB Controller
Message-ID:  <54DC8B98.4090902@h3q.com>

next in thread | raw e-mail | index | archive | help
Hi,

I'm currently trying to passthrough a PCIe USB 3.0 Controller to one of
my bhyve VMs.

I'm running 10.1-RELEASE and the controller is a Renesas Technology
Corp. uPD720202 USB 3.0 Host Controller

After disabling the xhci driver in the FreeBSD kernel and putting the
correct pci-id into loader.conf the controller is hooked to the vmm module:

ppt1@pci0:7:0:0:	class=0x0c0330 card=0x00151912 chip=0x00151912 rev=0x02
hdr=0x00
    vendor     = 'Renesas Technology Corp.'
    class      = serial bus
    subclass   = USB

lspic shows me this:
# lspci -vxxs 07:00.0
07:00.0 USB controller: Renesas Technology Corp. uPD720202 USB 3.0 Host
Controller (rev 02) (prog-if 30 [XHCI])
	Subsystem: Renesas Technology Corp. uPD720202 USB 3.0 Host Controller
	Flags: bus master, fast devsel, latency 0, IRQ 40
	Memory at fbff0000 (64-bit, non-prefetchable)
	Capabilities: [50] Power Management version 3
	Capabilities: [70] MSI: Enable- Count=1/8 Maskable- 64bit+
	Capabilities: [90] MSI-X: Enable- Count=8 Masked-
	Capabilities: [a0] Express Endpoint, MSI 00
00: 12 19 15 00 46 00 10 00 02 30 03 0c 10 00 00 00
10: 04 00 ff fb 00 00 00 00 00 00 00 00 00 00 00 00
20: 00 00 00 00 00 00 00 00 00 00 00 00 12 19 15 00
30: 00 00 00 00 50 00 00 00 00 00 00 00 28 01 00 00

I then try to bind the controller to the VM using the bhyve command
option "-s 7,passthru,7/0/0". The loader starts but then bhyve exits with:

"Unsupported MSI-X configuration: 7/0/0"

I've had an intel PCIe ethernet card in the very same slot as the USB
controller and pci passthrough worked without a problem.

I did some research on the matter and I found this post regarding VMware
and the very same controller https://communities.vmware.com/message/2203210
There the problem was solved by "deactivating the "Message-Signaled
Interrupts" of the "passthroughed" PCI card in the virtual machine, the
USB 3.0 controller works now."

Is there anything similar with bhyve to get the controller working or
should I start hunting for a different controller that might work as on
the VMware mailinglist suggested?

Any suggestions for known to be working USB Controllers with bhyve and
PCI passthrough?

Greetings,
Philipp



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?54DC8B98.4090902>