Date: Tue, 22 May 2018 17:13:33 -0300 From: Mario Lobo <lobo@bsd.com.br> To: Neel Natu <neelnatu@gmail.com> Cc: "freebsd-virtualization@freebsd.org" <freebsd-virtualization@freebsd.org> Subject: Re: bhyve: passthrough of PCIe device without MSI possible? Message-ID: <CA%2ByoEx--AD29VXvXpnH4XRjFMe0Sot6cuYVF_33Q42S47u_q3Q@mail.gmail.com> In-Reply-To: <CAFgRE9HmwkLXg0R4iyHcs_T5-pd9eKWtTYgcpYE5Kami08t3wQ@mail.gmail.com> References: <7167ea46-ee07-8ffa-615e-0f3d3eb92e64@palmen-it.de> <CA%2ByoEx_8WM1Q6rnSdk-Kf7V13OLbXseU0u6Be8xntZ8ncpzjyg@mail.gmail.com> <CAFgRE9HmwkLXg0R4iyHcs_T5-pd9eKWtTYgcpYE5Kami08t3wQ@mail.gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
2018-05-22 16:43 GMT-03:00 Neel Natu <neelnatu@gmail.com>: > On Sun, May 20, 2018 at 12:04 PM, Mario Lobo <lobo@bsd.com.br> wrote: > > Hi Felix; > > > > I had the same impression and I was attempting to do the same with no > > success. > > > > Have you managed to make it work? > > > > 2018-05-11 12:26 GMT-03:00 Felix Palmen <felix@palmen-it.de>: > > > >> I have the following PCIe card on a host running 11.1-RELEASE: > >> > >> | ppt0@pci0:5:0:0: class=0x078000 card=0x00011b74 chip=0x08101b74 > >> rev=0x14 hdr=0x00 > >> | vendor = 'OpenVox Communication Co. Ltd.' > >> | class = simple comms > >> > >> it doesn't support MSI according to `pciconf -lbc`: > >> > >> | ppt0@pci0:5:0:0: class=0x078000 card=0x00011b74 chip=0x08101b74 > >> rev=0x14 hdr=0x00 > >> | bar [10] = type Memory, range 32, base 0xdfe00000, size 524288, > >> enabled > >> > >> Trying to pass this card to a guest using `vm-bhyve` gives me the > >> following in `bhyve.log`: > >> > >> | bhyve: failed to initialize MSI for PCI 5/0/0 > >> > >> and this in `vm-byve.log`: > >> > >> | [bhyve options: -c 2 -m 2G -Hwl bootrom,/usr/local/share/uefi- > firmware/BHYVE_UEFI.fd > >> -U 9f2546f5-5464-11e8-8b52-d05099c0f275 -S] > >> | [bhyve devices: -s 0,hostbridge -s 31,lpc -s > >> 4:0,virtio-blk,/dev/zvol/zroot/vm/pbx/disk0 -s > >> 5:0,virtio-net,tap2,mac=58:9c:fc:00:d7:6b -s 6:0,passthru,5/0/0 -s > >> 7:0,fbuf,tcp=0.0.0.0:5900] > >> | [bhyve console: -l com1,/dev/nmdm0A] > >> | [bhyve iso device: -s 3:0,ahci-cd,/var/vm/.config/null.iso] > >> | starting bhyve (run 1) > >> | bhyve exited with status 1 > >> > >> Now .. is it actually possible to pass such a device to a bhyve guest? > >> From the code comment here: > >> <https://github.com/freebsd/freebsd/blob/master/usr.sbin/bhy > >> ve/pci_passthru.c#L257> > >> I assumed MSI would be "emulated" if necessary? > >> > > I suspect that your PCI device does not advertise the capabilities bit > in its status register. > > MSI emulation depends on this bit being set: > https://github.com/freebsd/freebsd/blob/master/usr.sbin/ > bhyve/pci_passthru.c#L263 > > I can't see any reason this wouldn't work by emulating that bit and > the capabilities pointer in config space. > > best > Neel > > > Could you give us some hint on how the capabilities bit could be "faked"? Thanks, -- Mario Lobo http://www.mallavoodoo.com.br FreeBSD since version 2.2.8 [not Pro-Audio.... YET!!]
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CA%2ByoEx--AD29VXvXpnH4XRjFMe0Sot6cuYVF_33Q42S47u_q3Q>