From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:34523) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UCXEX-0006aB-1R for qemu-devel@nongnu.org; Mon, 04 Mar 2013 10:23:22 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1UCXEV-00070V-K1 for qemu-devel@nongnu.org; Mon, 04 Mar 2013 10:23:20 -0500 Received: from mx1.redhat.com ([209.132.183.28]:29112) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UCXEV-00070P-CS for qemu-devel@nongnu.org; Mon, 04 Mar 2013 10:23:19 -0500 Message-ID: <1362410596.2489.7.camel@bling.home> From: Alex Williamson Date: Mon, 04 Mar 2013 08:23:16 -0700 In-Reply-To: References: Content-Type: text/plain; charset="UTF-8" Mime-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] PCI device assign problems! List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: GaoYi Cc: qemu-devel@nongnu.org On Mon, 2013-03-04 at 18:13 +0800, GaoYi wrote: > Hi, > > I am trying to run a PCI card as a pass-throughed device. The PCI driver > works well on physical PC but failed on a full-virtualized PC. The KVM > confiuration is OK as a pass-throughed network card works. I debuged the > PCI driver and found that the some registers of this PCI card should be > filled with the physical address of DMA regions. However, the PCI card can > only get the virtualized physical address. > So for a PCI device, it cannot be passthroughed if it requires some > physical address to be filled into some registers, right? If it is so, how > to make it work as a passthroughed device? > Appreciated if someone can provide some help. The IOMMU is responsible for transparently translating guest physical addresses to host physical addresses. It's therefore generally not needed for the device to know any host physical addresses. Can you describe a bit more about the device and where it's trying to DMA? Thanks, Alex