[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