[PATCH v6 0/9] ACPI/IORT: Support for IORT RMR node
Shameer Kolothum
shameerali.kolothum.thodi at huawei.com
Fri Jul 16 01:34:33 PDT 2021
Hi,
Major Changes from v5:
- Addressed comments from Robin & Lorenzo.
: Moved iort_parse_rmr() to acpi_iort_init() from
iort_init_platform_devices().
: Removed use of struct iort_rmr_entry during the initial
parse. Using struct iommu_resv_region instead.
: Report RMR address alignment and overlap errors, but continue.
: Reworked arm_smmu_init_bypass_stes() (patch # 6).
- Updated SMMUv2 bypass SMR code. Thanks to Jon N (patch #8).
- Set IOMMU protection flags(IOMMU_CACHE, IOMMU_MMIO) based
on Type of RMR region. Suggested by Jon N.
Sanity tested on a HiSilicon D06(SMMUv3). Further testing and
feedback is greatly appreciated.
Thanks,
Shameer
------
v4 --> v5
-Added a fw_data union to struct iommu_resv_region and removed
struct iommu_rmr (Based on comments from Joerg/Robin).
-Added iommu_put_rmrs() to release mem.
-Thanks to Steve for verifying on SMMUv2, but not added the Tested-by
yet because of the above changes.
v3 -->v4
-Included the SMMUv2 SMR bypass install changes suggested by
Steve(patch #7)
-As per Robin's comments, RMR reserve implementation is now
more generic (patch #8) and dropped v3 patches 8 and 10.
-Rebase to 5.13-rc1
RFC v2 --> v3
-Dropped RFC tag as the ACPICA header changes are now ready to be
part of 5.13[0]. But this series still has a dependency on that patch.
-Added IORT E.b related changes(node flags, _DSM function 5 checks for
PCIe).
-Changed RMR to stream id mapping from M:N to M:1 as per the spec and
discussion here[1].
-Last two patches add support for SMMUv2(Thanks to Jon Nettleton!)
------
Jon Nettleton (1):
iommu/arm-smmu: Get associated RMR info and install bypass SMR
Shameer Kolothum (8):
iommu: Introduce a union to struct iommu_resv_region
ACPI/IORT: Add support for RMR node parsing
iommu/dma: Introduce generic helper to retrieve RMR info
ACPI/IORT: Add a helper to retrieve RMR memory regions
iommu/arm-smmu-v3: Introduce strtab init helper
iommu/arm-smmu-v3: Refactor arm_smmu_init_bypass_stes() to force
bypass
iommu/arm-smmu-v3: Get associated RMR info and install bypass STE
iommu/dma: Reserve any RMR regions associated with a dev
drivers/acpi/arm64/iort.c | 172 +++++++++++++++++++-
drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c | 76 +++++++--
drivers/iommu/arm/arm-smmu/arm-smmu.c | 48 ++++++
drivers/iommu/dma-iommu.c | 89 +++++++++-
include/linux/acpi_iort.h | 7 +
include/linux/dma-iommu.h | 13 ++
include/linux/iommu.h | 11 ++
7 files changed, 393 insertions(+), 23 deletions(-)
--
2.17.1
More information about the linux-arm-kernel
mailing list