[PATCH 0/4] iommu/amd: IVMD handling cleanup and ivmd= boot override

From: Suravee Suthikulpanit

Date: Mon Apr 20 2026 - 13:01:19 EST


This series refreshes how the AMD IOMMU driver models IVRS IVMD entries
after the hardware exclusion range registers were repurposed.

The first patch removes unused per-IOMMU exclusion_start/exclusion_length
state and the MMIO exclusion programming path that never ran, and renames
the associated MMIO offsets to reflect completion-wait store base/limit.

The second patch drops the workaround that forced IVMD exclusion ranges to
r/w unity mappings; the driver no longer programs exclusion range
registers, so that the workaround is obsolete.

The third patch centralizes IVMD flag definitions, renames the unity-map
structures to ivmd_entry, stores the raw IVMD flags byte from ACPI, and
derives IOMMU reserved regions (including exclusion as IOMMU_RESV_RESERVED)
from those flags.

The fourth patch adds an ivmd= kernel parameter so up to four per-device
IVMD-style ranges can be supplied from the command line when the IVRS
table is wrong or incomplete, documented in kernel-parameters.txt.

Thanks,
Suravee

Suravee Suthikulpanit (4):
iommu/amd: Drop unused global exclusion range fields and init
iommu/amd: Do not convert IVMD exclusion range to unity range
iommu/amd: Clean up and simplify IVMD entry handling
iommu/amd: Introduce boot option ivmd=seg:bus:dev.fun,start,size,flags

.../admin-guide/kernel-parameters.txt | 16 ++
drivers/iommu/amd/amd_iommu_types.h | 47 +++--
drivers/iommu/amd/init.c | 182 ++++++++++++------
drivers/iommu/amd/iommu.c | 28 ++-
4 files changed, 186 insertions(+), 87 deletions(-)

--
2.34.1