From mboxrd@z Thu Jan 1 00:00:00 1970 From: Joerg Roedel Subject: Re: [RFC PATCH] AMD IOMMU emulation Date: Mon, 24 May 2010 17:40:30 +0200 Message-ID: <20100524154030.GE1237@8bytes.org> References: <1274363407-24862-1-git-send-email-eduard.munteanu@linux360.ro> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Cc: avi@redhat.com, aliguori@us.ibm.com, qemu-devel@nongnu.org, kvm@vger.kernel.org To: Eduard - Gabriel Munteanu Return-path: Received: from 8bytes.org ([88.198.83.132]:46867 "EHLO 8bytes.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753617Ab0EXPkc (ORCPT ); Mon, 24 May 2010 11:40:32 -0400 Content-Disposition: inline In-Reply-To: <1274363407-24862-1-git-send-email-eduard.munteanu@linux360.ro> Sender: kvm-owner@vger.kernel.org List-ID: Hi Eduard, On Thu, May 20, 2010 at 04:50:07PM +0300, Eduard - Gabriel Munteanu wrote: > + --enable-amd-iommu-emul) amd_iommu="yes" > + ;; A compile-time option is a good idea. > +/* MMIO registers */ > +#define MMIO_DEVICE_TABLE 0x0000 > +#define MMIO_COMMAND_BASE 0x0008 > +#define MMIO_EVENT_BASE 0x0010 > +#define MMIO_CONTROL 0x0018 > +#define MMIO_EXCL_BASE 0x0020 > +#define MMIO_EXCL_LIMIT 0x0028 > +#define MMIO_COMMAND_HEAD 0x2000 > +#define MMIO_COMMAND_TAIL 0x2008 > +#define MMIO_EVENT_HEAD 0x2010 > +#define MMIO_EVENT_TAIL 0x2018 > +#define MMIO_STATUS 0x2020 > + > +#define MMIO_SIZE 0x2028 This size should be a power-of-two value. In this case probably 0x4000. > +#define MMIO_DEVTAB_SIZE_MASK ((1UL << 12) - 1) > +#define MMIO_DEVTAB_BASE_MASK (((1UL << 52) - 1) & ~MMIO_DEVTAB_SIZE_MASK) You must use ULL to be 32bit safe. This is also true for the defines below. [...] Otherwise the code looks good so far. Seems like the next step should be some work on a qemu dma-layer where you can hook the translation into. Joerg