Hi,
Currently, the MSI_IOVA_BASE address is hard-coded to 0x80000000, assuming that all platforms have this address available for MSI IOVA reservation. However, this is not always the case, as some platforms reserve this address for other purposes. Consequently, these platforms cannot reserve the MSI_IOVA_BASE address for MSI. There was an [1] attempt to fix this problem by passing the MSI IOVA base as a kernel command line parameter. This patch series aims to address the issue by introducing a new DTS property, "arm,smmu-faulty-msi-iova" which can be used to hold faulty MSI IOVA address. This property can be passed to ARM SMMU drivers via device tree so that the drivers can select appropriate MSI IOVA base address which doesn't intersect with the faulty MSI IOVA address. This approach accommodates platforms that do not have the default MSI base address available for MSI reservation. [1]: https://lore.kernel.org/lkml/20200914181307.117792-1-vemeg...@linux.microsoft.com/ Thanks, Shyam --- v2: - add new dts property to hold faulty MSI IOVA and select appropriate MSI IOVA address v1: Link: https://lore.kernel.org/linux-iommu/20250116232307.1436693-1-shyamsa...@linux.microsoft.com/ Shyam Saini (3): arm-smmu: move MSI_IOVA macro definitions arm-smmu: select suitable MSI IOVA dt-bindings: iommu: add "arm,smmu-faulty-msi-iova" property .../bindings/iommu/arm,smmu-v3.yaml | 8 +++ .../devicetree/bindings/iommu/arm,smmu.yaml | 8 +++ drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c | 9 +++- drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.h | 3 -- drivers/iommu/arm/arm-smmu/arm-smmu.c | 10 ++-- drivers/iommu/virtio-iommu.c | 2 - include/linux/iommu.h | 52 +++++++++++++++++++ 7 files changed, 81 insertions(+), 11 deletions(-) -- 2.34.1