[PATCH v5 0/6] Add support for Qualcomm's legacy IOMMU v2

From: AngeloGioacchino Del Regno
Date: Thu Jun 22 2023 - 05:34:32 EST


This series adds support for handling "v2" firmware's IOMMU, found
on at least MSM8956 and MSM8976 (some other SoCs also need the same
but I honestly don't remember which ones precisely).

This is strictly required to get functional IOMMUs on these SoCs.

I'm sorry for not performing a much needed schema conversion on
qcom,iommu.txt, but I really didn't have time to do that :-(

This series was tested on Sony Xperia X and X Compact (MSM8956):
ADSP, LPASS, Venus, MSS, MDP and GPU are happy :-)

Changes in v5:
- Renamed "qcom,ctx-num" to "qcom,ctx-asid" as suggested
by Rob Herring

Changes in v4:
- Rebase over next-20230619
- Rewrite qcom,iommu.txt changes to qcom,iommu.yaml
- Changed reset writes to only disable CB through CB_SCTLR
and reset CB_FSR and CB_FAR
- Addressed misc reviewer's comments

Changes in v3:
- Removed useless FSRRESTORE reset and definition as pointed
out in Robin Murphy's review
- Fixed qcom,iommu.txt changes: squashed MSM8976 compatible
string addition with msm-iommu-v2 generics addition

Changes in v2:
- Added back Marijn's notes (sorry man!)
- Added ARM_SMMU_CB_FSRRESTORE definition
- Changed context bank reset to properly set FSR and FSRRESTORE

AngeloGioacchino Del Regno (6):
dt-bindings: iommu: qcom,iommu: Add qcom,ctx-asid property
iommu/qcom: Use the asid read from device-tree if specified
iommu/qcom: Disable and reset context bank before programming
iommu/qcom: Index contexts by asid number to allow asid 0
dt-bindings: iommu: qcom,iommu: Add QSMMUv2 and MSM8976 compatibles
iommu/qcom: Add support for QSMMUv2 and QSMMU-500 secured contexts

.../devicetree/bindings/iommu/qcom,iommu.yaml | 22 +++++--
drivers/iommu/arm/arm-smmu/qcom_iommu.c | 62 ++++++++++++++-----
2 files changed, 64 insertions(+), 20 deletions(-)

--
2.40.1