From: Prasad Singamsetty <prasad.singamse...@oracle.com> This pair of patches extends the intel-iommu to support address width to 48 bits. This is required to support qemu guest with large memory (>=1TB).
Patch1 implements changes to redefine macros and usage to allow further changes to add support for 48 bit address width. This patch doesn't change the existing functionality or behavior. Patch2 adds support for 48 bit address width but keeping the default to 39 bits. NOTE: Peter Xu had originaly started on this enhancement but it was not completed or integrated. Unit testing done: patch-1: * Boot vm with and without intel-iommu enabled * Boot vm with #cpus below and above 255 cpus patch-2: * boot vm without "x-aw-bits" or "x-aw-bits=39": guest boots with 39 * boot vm with "x-aw-bits=48": guest boots with 48 bits * boot vm with invalid value for x-aw-bits: guest fails to boot * boot vm with >=1TB memory and "x-aw-bits=48": guest boots Prasad Singamsetty (2): intel-iommu: Redefine macros to enable supporting 48 bit address width intel-iommu: Extend address width to 48 bits hw/i386/acpi-build.c | 3 +- hw/i386/intel_iommu.c | 123 +++++++++++++++++++++++++---------------- hw/i386/intel_iommu_internal.h | 43 +++++++++----- include/hw/i386/intel_iommu.h | 7 ++- 4 files changed, 110 insertions(+), 66 deletions(-) -- 2.14.0-rc1