Hi folks,
These two patches add support for a new "arm,instdata-override" DT property
that enables the override of the instruction/data attribute of incoming
traffic to Data by setting the INSTCFG override bits.
It is intended to be specified when the smmu can't guarantee that these
attributes are provided correctly from the client device.
One SoC that requires this for some IP instances is the Google Laguna SoC
found in Pixel 10 phones. The initial device tree for the platform is
proposed in
https://lore.kernel.org/lkml/20260722-contrib-pg-pixel10-initial-dts-v2-0-3abae9717feb@linaro.org/
but other drivers like USB glue and phy are already merged upstream.
Downstream code has used "arm,instdata-override" DT property name, which I
have continued with in this series. Existing options upstream tend to use a
vendor property e.g. hisilicon,broken-prefetch-cmd or
cavium,cn9900-broken-page1-regspace. So an alternative name could be
google,lga-instdata-override or possibly google,lga-instcfg-data-override.
So far I kept the original downstream name as the override feature is
specified in the Arm SMMU architecture specification and could potentially
be useful for other SoCs.
Arm SMMU spec that documents these registers can be found here:
https://developer.arm.com/documentation/ihi0070/ha/
regards,
Peter
Signed-off-by: Peter Griffin <peter.griffin@linaro.org>
---
Peter Griffin (2):
dt-bindings: iommu: add arm,instdata-override property documentation
iommu/arm-smmu-v3: Override for Inst/Data attribute
.../devicetree/bindings/iommu/arm,smmu-v3.yaml | 9 ++++++++
drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c | 26 ++++++++++++++++++----
drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.h | 7 ++++++
3 files changed, 38 insertions(+), 4 deletions(-)
---
base-commit: b4515cf4156356e8f4fe6e0fdc17f59adab9772f
change-id: 20260724-arm-smmu-v3-instcfg-override-b5650fdbfe34
Best regards,
--
Peter Griffin <peter.griffin@linaro.org>