Port-xen archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: iommu hardware and vga pass through with nbsd 6 dom0

On Tue, Jan 15, 2013 at 12:06:57AM +0100, Marcus Osdoba wrote:
> Hello mailinglist,
> Recently, I've experimented with my new IOMMU AMD-Vi motherboard in
> order to pass through the primary VGA device to an HVM domu with
> Windows 7.
> I have started small and installed Win7 in an domu using the
> standard cirrus logic graphics adapter. The consecutive step was to
> use IOMMU for VGA Pass Through.
> I have put the two addtional lines from [0] into my config:
> gfx_passthru=1
> pci=[ '0000:01:00.0', '0000:01:00.1' ]
> I've identified the vga adapter device numbers with lspci -v.
> Now running xm create gives an error:
> netbsd# xm create /home/xen/win7test
> Using config file "/home/xen/win7test".
> Error: pci: failed to locate device and parse its resources -
> unsupported operand type(s) for +: 'NoneType' and 'str'
> I have found an mailinglist post [1], but the solution seemed to be
> comitted in xentools41, which I tried to use.
> btw: xentools41 is not part of the precompiled bin packages in amd64
> so I have installed it out of the pkgsrc 2012Q3-tree.

I don't remember the details; but this may work only with xl, not xm.

> Putting the primary vga adapter on the pci.hide list during boot of
> nbsd dom0 didn't seem logical to me - so I have NOT tried this.

Of course you should hide the device from dom0. You can't have 2
independant OS using the same hardware. In addition, xl can give the
device only if it's handled by the pciback driver in dom0. 

Also, hiding the PCI adapter won't prevent the dom0 from using the
legacy VGA registers, which will also be used by the HVM domU. So you should
remove any VGA device from the dom0 kernel completely. Of course this means
you'll have to use a serial console for dom0.

Manuel Bouyer <bouyer%antioche.eu.org@localhost>
     NetBSD: 26 ans d'experience feront toujours la difference

Home | Main Index | Thread Index | Old Index