From 8110e0a223488a1123fa805051905d8788610cf2 Mon Sep 17 00:00:00 2001 From: Wei Wang Date: Wed, 26 Sep 2012 11:44:19 +0200 Subject: [PATCH 2/6] amd iommu: call guest_iommu_set_base from 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 --- xen/arch/x86/hvm/hvm.c | 4 ++++ xen/include/public/hvm/params.h | 3 ++- 2 files changed, 6 insertions(+), 1 deletions(-) diff --git a/xen/arch/x86/hvm/hvm.c b/xen/arch/x86/hvm/hvm.c index d69e419..e5c1e32 100644 --- a/xen/arch/x86/hvm/hvm.c +++ b/xen/arch/x86/hvm/hvm.c @@ -66,6 +66,7 @@ #include #include #include +#include bool_t __read_mostly hvm_enabled; @@ -3834,6 +3835,9 @@ long do_hvm_op(unsigned long op, XEN_GUEST_HANDLE(void) arg) 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 --git a/xen/include/public/hvm/params.h b/xen/include/public/hvm/params.h index 6b05f61..aab6b7a 100644 --- a/xen/include/public/hvm/params.h +++ b/xen/include/public/hvm/params.h @@ -140,7 +140,8 @@ #define HVM_PARAM_PAGING_RING_PFN 27 #define HVM_PARAM_ACCESS_RING_PFN 28 #define HVM_PARAM_SHARING_RING_PFN 29 +#define HVM_PARAM_IOMMU_BASE 30 -#define HVM_NR_PARAMS 30 +#define HVM_NR_PARAMS 31 #endif /* __XEN_PUBLIC_HVM_PARAMS_H__ */ -- 1.7.4