Hi, This patch series adds a bare-metal qtest for the Intel IOMMU (VT-d) using the iommu-testdev framework. The test exercises address translation paths without requiring a full guest OS boot.
Motivation ---------- The Intel IOMMU implementation in QEMU supports various translation modes including pass-through and translated (4-level paging) modes. Currently, comprehensive testing of these translation paths requires booting a full guest OS with appropriate drivers, which is time-consuming and makes regression testing difficult. This new test fills that gap by using iommu-testdev to trigger DMA transactions and validate the IOMMU's translation logic directly. Test Coverage ------------- The new test provides: - Legacy pass-through mode (identity mapping) - Legacy translated mode with 4-level page table walks - Root Entry Table and Context Entry Table configuration - Complete 48-bit address space translation - End-to-end DMA verification with memory validation Testing ------- QTEST_QEMU_BINARY=./build/qemu-system-x86_64 \ ./build/tests/qtest/iommu-intel-test --tap -k Thanks, Fengyuan Fengyuan Yu (2): tests/qtest/libqos: Add Intel IOMMU helper library tests/qtest: Add Intel IOMMU bare-metal test MAINTAINERS | 1 + tests/qtest/iommu-intel-test.c | 137 +++++++ tests/qtest/libqos/meson.build | 3 + tests/qtest/libqos/qos-intel-iommu.c | 566 +++++++++++++++++++++++++++ tests/qtest/libqos/qos-intel-iommu.h | 299 ++++++++++++++ tests/qtest/meson.build | 2 + 6 files changed, 1008 insertions(+) create mode 100644 tests/qtest/iommu-intel-test.c create mode 100644 tests/qtest/libqos/qos-intel-iommu.c create mode 100644 tests/qtest/libqos/qos-intel-iommu.h -- 2.39.5
