From mboxrd@z Thu Jan 1 00:00:00 1970 From: Wei Wang Subject: [PATCH 2 of 6 V5] amd iommu: Add a hypercall for hvmloader Date: Fri, 10 Feb 2012 16:07:07 +0100 Message-ID: <3c47f70c84e23b96e766.1328886427@gran.amd.com> References: Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xensource.com Errors-To: xen-devel-bounces@lists.xensource.com To: Ian.Jackson@eu.citrix.com, Ian.Campbell@citrix.com, JBeulich@suse.com, keir@xen.org Cc: xen-devel@lists.xensource.com List-Id: xen-devel@lists.xenproject.org # HG changeset patch # User Wei Wang # Date 1328885355 -3600 # Node ID 3c47f70c84e23b96e766c062a4bbae5bcf4f6dbe # Parent 9cf24ad61936e5d9a6acac9de1dc1fac6694c31e amd iommu: Add a hypercall for hvmloader. IOMMU MMIO base address is dynamically allocated by firmware. This patch allows hvmloader to notify hypervisor where the iommu mmio pages are. Signed-off-by: Wei Wang diff -r 9cf24ad61936 -r 3c47f70c84e2 xen/arch/x86/hvm/hvm.c --- a/xen/arch/x86/hvm/hvm.c Fri Feb 10 15:49:09 2012 +0100 +++ b/xen/arch/x86/hvm/hvm.c Fri Feb 10 15:49:15 2012 +0100 @@ -65,6 +65,7 @@ #include #include #include +#include bool_t __read_mostly hvm_enabled; @@ -3775,6 +3776,9 @@ long do_hvm_op(unsigned long op, XEN_GUE case HVM_PARAM_BUFIOREQ_EVTCHN: rc = -EINVAL; break; + case HVM_PARAM_IOMMU_BASE: + rc = guest_iommu_set_base(d, a.value); + break; } if ( rc == 0 ) diff -r 9cf24ad61936 -r 3c47f70c84e2 xen/include/public/hvm/params.h --- a/xen/include/public/hvm/params.h Fri Feb 10 15:49:09 2012 +0100 +++ b/xen/include/public/hvm/params.h Fri Feb 10 15:49:15 2012 +0100 @@ -141,7 +141,8 @@ /* Boolean: Enable nestedhvm (hvm only) */ #define HVM_PARAM_NESTEDHVM 24 +#define HVM_PARAM_IOMMU_BASE 27 -#define HVM_NR_PARAMS 27 +#define HVM_NR_PARAMS 28 #endif /* __XEN_PUBLIC_HVM_PARAMS_H__ */