According to the comment in p2m.h, AMD IOMMUs don't work correctly
with page types different than p2m_ram_rw when the p2m is shared
between HAP and IOMMU, so disable this sharing when using AMD IOMMUs.
Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
Acked-by Suravee Suthikulpanit <suravee.suthikulpanit@amd.com>
if ( iterate_ivrs_mappings(amd_iommu_setup_device_table) != 0 )
goto error_out;
+ /*
+ * Disable sharing HAP page tables with AMD IOMMU,
+ * since it only supports p2m_ram_rw, and this would
+ * prevent doing IO to/from mapped grant frames.
+ */
+ iommu_hap_pt_share = 0;
+ printk(XENLOG_DEBUG "AMD-Vi: Disabled HAP memory map sharing with IOMMU\n");
+
/* per iommu initialization */
for_each_amd_iommu ( iommu )
if ( amd_iommu_init_one(iommu) != 0 )