From mboxrd@z Thu Jan 1 00:00:00 1970 From: Felix Kuperjans Subject: Re: About VT-d on ASUS P6T Date: Wed, 12 May 2010 10:57:02 +0200 Message-ID: <4BEA6D5E.9020407@desaster-games.com> References: <4BE92CD7.1080205@desaster-games.com> <1A42CE6F5F474C41B63392A5F80372B21E884EF4@shsmsx501.ccr.corp.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <1A42CE6F5F474C41B63392A5F80372B21E884EF4@shsmsx501.ccr.corp.intel.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xensource.com Errors-To: xen-devel-bounces@lists.xensource.com To: xen-devel@lists.xensource.com List-Id: xen-devel@lists.xenproject.org So there will be some devices that do not work while others work - can I figure out which devices are affected by the incorrect RMRR? In addition, only setting iommu=passtrough caused XEN to disable VT-d completely, altough some devices actually can be passtroughed to the domU perfectly. Regards, Felix Am 12.05.2010 03:54, schrieb Han, Weidong: > Your code changes just let xen not disable VT-d, but actually "iommu=passthrough" avoids problems of incorrect RMRR. This option makes dom0 not use VT-d, therefore incorrect RMRR won't be used by device. But if you assign the device whose RMRR incorrect to guest, it still causes problems. > > Regards, > Weidong > > -----Original Message----- > From: xen-devel-bounces@lists.xensource.com [mailto:xen-devel-bounces@lists.xensource.com] On Behalf Of Felix Kuperjans > Sent: Tuesday, May 11, 2010 6:09 PM > To: xen-devel@lists.xensource.com > Subject: [Xen-devel] About VT-d on ASUS P6T > > Hi, > > as I posted on xen-users, I've successfully used pci passtrough on an ASUS P6T mainboard which is known to have really buggy RMRR tables. > > I needed the iommu=passtrough and iommu_inclusive_mapping=1 command line options, combined with a little change to the RMRR parsing code: > > dmar.c: > > @@ -559,8 +558,7 @@ > dprintk(XENLOG_WARNING VTDPREFIX, > " The RMRR (%"PRIx64", %"PRIx64") is incorrect!\n", > rmrru->base_address, rmrru->end_address); > - xfree(rmrru); > - ret = -EFAULT; > + acpi_register_rmrr_unit(rmrru); > } > else > { > > This way, the condition that causes the error printed above, does not lead to an abortion of VT-d code, but instead registers the RMRR unit as if it was correct. > VT-d is working properly afterwards and I've tested some devices successfully. > > Probably, you would prefer to choose the action based on some command line option (like iommu_inclusive_mapping=1) instead of ignoring this error by default. > > Regards, > Felix > > > _______________________________________________ > Xen-devel mailing list > Xen-devel@lists.xensource.com > http://lists.xensource.com/xen-devel > > _______________________________________________ > Xen-devel mailing list > Xen-devel@lists.xensource.com > http://lists.xensource.com/xen-devel > >