* [PATCH v2 1/2] dt-bindings: media: qcom,sm8550-iris: Allow IOVA reservation memory-region
@ 2026-06-14 14:51 Daniel J Blueman
2026-06-14 14:51 ` [PATCH v2 2/2] arm64: dts: qcom: hamoa: Reserve low IOVA range for Iris Daniel J Blueman
` (2 more replies)
0 siblings, 3 replies; 4+ messages in thread
From: Daniel J Blueman @ 2026-06-14 14:51 UTC (permalink / raw)
To: Bryan O'Donoghue, Vikash Garodia, Abhinav Kumar,
Bjorn Andersson, Konrad Dybcio
Cc: Daniel J Blueman, Mauro Carvalho Chehab, Stephan Gerhold,
Rob Herring, Krzysztof Kozlowski, Conor Dooley, linux-arm-msm,
linux-media, devicetree, linux-kernel, stable
In addition to the firmware-loaded codec carveout, some Iris platforms
need to declare an IOMMU IOVA reservation (a reserved-memory node with
iommu-addresses) to keep DMA away from IOVA ranges that earlier
firmware stages have already mapped through the SMMU.
Permit a second memory-region phandle for this purpose, and describe
the meaning of each entry so the ordering is unambiguous.
Fixes: 9065340ac04d ("arm64: dts: qcom: x1e80100: Add IRIS video codec")
Cc: stable@vger.kernel.org
Signed-off-by: Daniel J Blueman <daniel@quora.org>
---
v2:
- drop redundant maxItems, keeping the items descriptions (Rob)
- add Fixes tag and Cc stable for the backport dependency
v1: https://lore.kernel.org/lkml/20260601041336.9497-1-daniel@quora.org/
.../devicetree/bindings/media/qcom,sm8550-iris.yaml | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/Documentation/devicetree/bindings/media/qcom,sm8550-iris.yaml b/Documentation/devicetree/bindings/media/qcom,sm8550-iris.yaml
index 9c4b760508b5..5abcaee4101c 100644
--- a/Documentation/devicetree/bindings/media/qcom,sm8550-iris.yaml
+++ b/Documentation/devicetree/bindings/media/qcom,sm8550-iris.yaml
@@ -80,7 +80,10 @@ properties:
dma-coherent: true
memory-region:
- maxItems: 1
+ minItems: 1
+ items:
+ - description: Firmware-loaded codec carveout
+ - description: IOMMU IOVA reservation region
operating-points-v2: true
--
2.53.0
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [PATCH v2 2/2] arm64: dts: qcom: hamoa: Reserve low IOVA range for Iris
2026-06-14 14:51 [PATCH v2 1/2] dt-bindings: media: qcom,sm8550-iris: Allow IOVA reservation memory-region Daniel J Blueman
@ 2026-06-14 14:51 ` Daniel J Blueman
2026-06-15 6:01 ` [PATCH v2 1/2] dt-bindings: media: qcom,sm8550-iris: Allow IOVA reservation memory-region Krzysztof Kozlowski
2026-06-16 0:57 ` Dmitry Baryshkov
2 siblings, 0 replies; 4+ messages in thread
From: Daniel J Blueman @ 2026-06-14 14:51 UTC (permalink / raw)
To: Bryan O'Donoghue, Vikash Garodia, Abhinav Kumar,
Bjorn Andersson, Konrad Dybcio
Cc: Daniel J Blueman, Mauro Carvalho Chehab, Stephan Gerhold,
Rob Herring, Krzysztof Kozlowski, Conor Dooley, linux-arm-msm,
linux-media, devicetree, linux-kernel, stable
On X1-family hamoa platforms, the Iris VPU reserves IOVA addresses
below 0x25800000 (600MB), primarily for non-pixel buffers accessed
via different Stream IDs. DMA into that range triggers unhandled SMMU
page faults that cause spontaneous device reboots. This is readily
reproduced with one or more browser tabs driving multiple concurrent
video decode streams.
Add a reserved-memory IOVA reservation node covering [0, 0x25800000)
and reference it from the Iris node so the IOMMU layer keeps DMA
allocations above that boundary.
This applies to all current hamoa.dtsi consumers (X1E80100/X1P42100/
X1P64100 boards); other Iris-bearing SoCs (sm8550/sm8650/sa8775p/
qcs8300) do not include hamoa.dtsi thus not affected.
Backports also require the preceding binding patch ("dt-bindings:
media: qcom,sm8550-iris: Allow IOVA reservation memory-region");
without it, dtbs_check rejects the second memory-region entry.
Link: https://github.com/qualcomm-linux/kernel-topics/issues/1157#issuecomment-4458933574
Fixes: 9065340ac04d ("arm64: dts: qcom: x1e80100: Add IRIS video codec")
Cc: stable@vger.kernel.org
Signed-off-by: Daniel J Blueman <daniel@quora.org>
---
v2:
- add Fixes tag
- clarify the reservation rationale
v1: https://lore.kernel.org/lkml/20260601041336.9497-2-daniel@quora.org/
arch/arm64/boot/dts/qcom/hamoa.dtsi | 13 ++++++++++++-
1 file changed, 12 insertions(+), 1 deletion(-)
diff --git a/arch/arm64/boot/dts/qcom/hamoa.dtsi b/arch/arm64/boot/dts/qcom/hamoa.dtsi
index 051dee076416..ce96e7f8d8c1 100644
--- a/arch/arm64/boot/dts/qcom/hamoa.dtsi
+++ b/arch/arm64/boot/dts/qcom/hamoa.dtsi
@@ -716,6 +716,17 @@ smem_mem: smem@ffe00000 {
hwlocks = <&tcsr_mutex 3>;
no-map;
};
+
+ /*
+ * The Iris VPU reserves IOVA below 0x25800000 (600MB),
+ * primarily for non-pixel buffers using different Stream IDs.
+ * DMA into that range triggers unhandled SMMU faults and
+ * spontaneous reboots, so reserve it to keep IOMMU
+ * allocations above this boundary.
+ */
+ iris_iova: iris-iova {
+ iommu-addresses = <&iris 0x0 0x0 0x0 0x25800000>;
+ };
};
qup_opp_table_100mhz: opp-table-qup100mhz {
@@ -5479,7 +5490,7 @@ &config_noc SLAVE_VENUS_CFG QCOM_ICC_TAG_ACTIVE_ONLY>,
interconnect-names = "cpu-cfg",
"video-mem";
- memory-region = <&video_mem>;
+ memory-region = <&video_mem>, <&iris_iova>;
resets = <&gcc GCC_VIDEO_AXI0_CLK_ARES>;
reset-names = "bus";
--
2.53.0
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH v2 1/2] dt-bindings: media: qcom,sm8550-iris: Allow IOVA reservation memory-region
2026-06-14 14:51 [PATCH v2 1/2] dt-bindings: media: qcom,sm8550-iris: Allow IOVA reservation memory-region Daniel J Blueman
2026-06-14 14:51 ` [PATCH v2 2/2] arm64: dts: qcom: hamoa: Reserve low IOVA range for Iris Daniel J Blueman
@ 2026-06-15 6:01 ` Krzysztof Kozlowski
2026-06-16 0:57 ` Dmitry Baryshkov
2 siblings, 0 replies; 4+ messages in thread
From: Krzysztof Kozlowski @ 2026-06-15 6:01 UTC (permalink / raw)
To: Daniel J Blueman
Cc: Bryan O'Donoghue, Vikash Garodia, Abhinav Kumar,
Bjorn Andersson, Konrad Dybcio, Mauro Carvalho Chehab,
Stephan Gerhold, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
linux-arm-msm, linux-media, devicetree, linux-kernel, stable
On Sun, Jun 14, 2026 at 10:51:11PM +0800, Daniel J Blueman wrote:
> In addition to the firmware-loaded codec carveout, some Iris platforms
> need to declare an IOMMU IOVA reservation (a reserved-memory node with
> iommu-addresses) to keep DMA away from IOVA ranges that earlier
> firmware stages have already mapped through the SMMU.
>
> Permit a second memory-region phandle for this purpose, and describe
> the meaning of each entry so the ordering is unambiguous.
>
> Fixes: 9065340ac04d ("arm64: dts: qcom: x1e80100: Add IRIS video codec")
> Cc: stable@vger.kernel.org
> Signed-off-by: Daniel J Blueman <daniel@quora.org>
> ---
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com>
Best regards,
Krzysztof
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH v2 1/2] dt-bindings: media: qcom,sm8550-iris: Allow IOVA reservation memory-region
2026-06-14 14:51 [PATCH v2 1/2] dt-bindings: media: qcom,sm8550-iris: Allow IOVA reservation memory-region Daniel J Blueman
2026-06-14 14:51 ` [PATCH v2 2/2] arm64: dts: qcom: hamoa: Reserve low IOVA range for Iris Daniel J Blueman
2026-06-15 6:01 ` [PATCH v2 1/2] dt-bindings: media: qcom,sm8550-iris: Allow IOVA reservation memory-region Krzysztof Kozlowski
@ 2026-06-16 0:57 ` Dmitry Baryshkov
2 siblings, 0 replies; 4+ messages in thread
From: Dmitry Baryshkov @ 2026-06-16 0:57 UTC (permalink / raw)
To: Daniel J Blueman
Cc: Bryan O'Donoghue, Vikash Garodia, Abhinav Kumar,
Bjorn Andersson, Konrad Dybcio, Mauro Carvalho Chehab,
Stephan Gerhold, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
linux-arm-msm, linux-media, devicetree, linux-kernel, stable
On Sun, Jun 14, 2026 at 10:51:11PM +0800, Daniel J Blueman wrote:
> In addition to the firmware-loaded codec carveout, some Iris platforms
> need to declare an IOMMU IOVA reservation (a reserved-memory node with
> iommu-addresses) to keep DMA away from IOVA ranges that earlier
> firmware stages have already mapped through the SMMU.
>
> Permit a second memory-region phandle for this purpose, and describe
> the meaning of each entry so the ordering is unambiguous.
With no driver changes?
>
> Fixes: 9065340ac04d ("arm64: dts: qcom: x1e80100: Add IRIS video codec")
> Cc: stable@vger.kernel.org
> Signed-off-by: Daniel J Blueman <daniel@quora.org>
> ---
> v2:
> - drop redundant maxItems, keeping the items descriptions (Rob)
> - add Fixes tag and Cc stable for the backport dependency
> v1: https://lore.kernel.org/lkml/20260601041336.9497-1-daniel@quora.org/
>
> .../devicetree/bindings/media/qcom,sm8550-iris.yaml | 5 ++++-
> 1 file changed, 4 insertions(+), 1 deletion(-)
>
> diff --git a/Documentation/devicetree/bindings/media/qcom,sm8550-iris.yaml b/Documentation/devicetree/bindings/media/qcom,sm8550-iris.yaml
> index 9c4b760508b5..5abcaee4101c 100644
> --- a/Documentation/devicetree/bindings/media/qcom,sm8550-iris.yaml
> +++ b/Documentation/devicetree/bindings/media/qcom,sm8550-iris.yaml
> @@ -80,7 +80,10 @@ properties:
> dma-coherent: true
>
> memory-region:
> - maxItems: 1
> + minItems: 1
> + items:
> + - description: Firmware-loaded codec carveout
> + - description: IOMMU IOVA reservation region
>
> operating-points-v2: true
>
> --
> 2.53.0
>
--
With best wishes
Dmitry
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2026-06-16 0:58 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-06-14 14:51 [PATCH v2 1/2] dt-bindings: media: qcom,sm8550-iris: Allow IOVA reservation memory-region Daniel J Blueman
2026-06-14 14:51 ` [PATCH v2 2/2] arm64: dts: qcom: hamoa: Reserve low IOVA range for Iris Daniel J Blueman
2026-06-15 6:01 ` [PATCH v2 1/2] dt-bindings: media: qcom,sm8550-iris: Allow IOVA reservation memory-region Krzysztof Kozlowski
2026-06-16 0:57 ` Dmitry Baryshkov
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox