From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Jan Beulich" Subject: [PATCH] x86/HVM: support IOMMU-related Viridian CPUID bits Date: Fri, 01 Aug 2014 14:48:30 +0100 Message-ID: <53DBB6CE020000780002875F@mail.emea.novell.com> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=__PartC4F641BE.1__=" Return-path: Received: from mail6.bemta14.messagelabs.com ([193.109.254.103]) by lists.xen.org with esmtp (Exim 4.72) (envelope-from ) id 1XDDCB-0005Fl-O6 for xen-devel@lists.xenproject.org; Fri, 01 Aug 2014 13:48:31 +0000 List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: xen-devel Cc: Andrew Cooper , Paul Durrant , Keir Fraser List-Id: xen-devel@lists.xenproject.org This is a MIME message. If you are reading this text, you may want to consider changing to a mail reader or gateway that understands how to properly handle MIME multipart messages. --=__PartC4F641BE.1__= Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: quoted-printable Content-Disposition: inline Signed-off-by: Jan Beulich --- a/xen/arch/x86/hvm/viridian.c +++ b/xen/arch/x86/hvm/viridian.c @@ -50,6 +50,8 @@ #define CPUID6A_APIC_OVERLAY (1 << 0) #define CPUID6A_MSR_BITMAPS (1 << 1) #define CPUID6A_NESTED_PAGING (1 << 3) +#define CPUID6A_DMA_REMAP (1 << 4) +#define CPUID6A_INTR_REMAP (1 << 5) =20 int cpuid_viridian_leaves(unsigned int leaf, unsigned int *eax, unsigned int *ebx, unsigned int *ecx, @@ -111,6 +113,12 @@ int cpuid_viridian_leaves(unsigned int l *eax |=3D CPUID6A_MSR_BITMAPS; if ( hap_enabled(d) ) *eax |=3D CPUID6A_NESTED_PAGING; + if ( iommu_enabled ) + { + *eax |=3D CPUID6A_DMA_REMAP; + if ( iommu_intremap ) + *eax |=3D CPUID6A_INTR_REMAP; + } break; } =20 --=__PartC4F641BE.1__= Content-Type: text/plain; name="x86-viridian-CPUID-leaf-6-IOMMU.patch" Content-Transfer-Encoding: quoted-printable Content-Disposition: attachment; filename="x86-viridian-CPUID-leaf-6-IOMMU.patch" x86/HVM: support IOMMU-related Viridian CPUID bits=0A=0ASigned-off-by: Jan = Beulich =0A=0A--- a/xen/arch/x86/hvm/viridian.c=0A+++ = b/xen/arch/x86/hvm/viridian.c=0A@@ -50,6 +50,8 @@=0A #define CPUID6A_APIC_O= VERLAY (1 << 0)=0A #define CPUID6A_MSR_BITMAPS (1 << 1)=0A #define = CPUID6A_NESTED_PAGING (1 << 3)=0A+#define CPUID6A_DMA_REMAP (1 << = 4)=0A+#define CPUID6A_INTR_REMAP (1 << 5)=0A =0A int cpuid_viridian_le= aves(unsigned int leaf, unsigned int *eax,=0A = unsigned int *ebx, unsigned int *ecx,=0A@@ -111,6 +113,12 @@ int cpuid_viri= dian_leaves(unsigned int l=0A *eax |=3D CPUID6A_MSR_BITMAPS;=0A= if ( hap_enabled(d) )=0A *eax |=3D CPUID6A_NESTED_PAGI= NG;=0A+ if ( iommu_enabled )=0A+ {=0A+ *eax |=3D = CPUID6A_DMA_REMAP;=0A+ if ( iommu_intremap )=0A+ = *eax |=3D CPUID6A_INTR_REMAP;=0A+ }=0A break;=0A }=0A = =0A --=__PartC4F641BE.1__= Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ Xen-devel mailing list Xen-devel@lists.xen.org http://lists.xen.org/xen-devel --=__PartC4F641BE.1__=--