[PATCH 1/2] arm64: dts: qcom: kaanapali: add CDSP FastRPC extended context bank

From: Vinayak Katoch

Date: Wed Oct 07 2026 - 11:57:42 EST


Wire up compute-cb@13 as the dedicated extended IOVA context bank by
adding iommu-ranges = <0x4 0x0 0xfc 0x0>, restricting allocations to
the [16 GiB, ~1 TiB) window. This allows large CDSP buffers to be
mapped beyond the standard 34-bit limit.

Bump #address-cells and #size-cells to <2> on the fastrpc and glink
ancestor nodes to accommodate 64-bit iommu-ranges values, and update
all compute-cb reg entries to the four-cell format accordingly.

Signed-off-by: Vinayak Katoch <vinayak.katoch@xxxxxxxxxxxxxxxx>
---
arch/arm64/boot/dts/qcom/kaanapali.dtsi | 29 +++++++++++++++++------------
1 file changed, 17 insertions(+), 12 deletions(-)

diff --git a/arch/arm64/boot/dts/qcom/kaanapali.dtsi b/arch/arm64/boot/dts/qcom/kaanapali.dtsi
index e48a179d0722..f783a039aee6 100644
--- a/arch/arm64/boot/dts/qcom/kaanapali.dtsi
+++ b/arch/arm64/boot/dts/qcom/kaanapali.dtsi
@@ -6306,6 +6306,8 @@ remoteproc_cdsp: remoteproc@26300000 {
qcom,qmp = <&aoss_qmp>;
qcom,smem-states = <&smp2p_cdsp_out 0>;
qcom,smem-state-names = "stop";
+ #address-cells = <2>;
+ #size-cells = <2>;

status = "disabled";

@@ -6317,17 +6319,19 @@ IPCC_MPROC_SIGNAL_GLINK_QMP
IPCC_MPROC_SIGNAL_GLINK_QMP>;
qcom,remote-pid = <5>;
label = "cdsp";
+ #address-cells = <2>;
+ #size-cells = <2>;

fastrpc {
compatible = "qcom,kaanapali-fastrpc";
qcom,glink-channels = "fastrpcglink-apps-dsp";
label = "cdsp";
- #address-cells = <1>;
- #size-cells = <0>;
+ #address-cells = <2>;
+ #size-cells = <2>;

compute-cb@1 {
compatible = "qcom,fastrpc-compute-cb";
- reg = <1>;
+ reg = <0x0 0x1 0x0 0x0>;
iommus = <&apps_smmu 0x19c1 0x0>,
<&apps_smmu 0x1961 0x0>,
<&apps_smmu 0x0c21 0x0>,
@@ -6337,7 +6341,7 @@ compute-cb@1 {

compute-cb@2 {
compatible = "qcom,fastrpc-compute-cb";
- reg = <2>;
+ reg = <0x0 0x2 0x0 0x0>;
iommus = <&apps_smmu 0x1962 0x0>,
<&apps_smmu 0x0c02 0x20>,
<&apps_smmu 0x0c42 0x0>,
@@ -6347,7 +6351,7 @@ compute-cb@2 {

compute-cb@3 {
compatible = "qcom,fastrpc-compute-cb";
- reg = <3>;
+ reg = <0x0 0x3 0x0 0x0>;
iommus = <&apps_smmu 0x1963 0x0>,
<&apps_smmu 0x0c23 0x0>,
<&apps_smmu 0x0c03 0x40>,
@@ -6357,7 +6361,7 @@ compute-cb@3 {

compute-cb@4 {
compatible = "qcom,fastrpc-compute-cb";
- reg = <4>;
+ reg = <0x0 0x4 0x0 0x0>;
iommus = <&apps_smmu 0x1964 0x0>,
<&apps_smmu 0x0c44 0x0>,
<&apps_smmu 0x0c04 0x20>,
@@ -6367,7 +6371,7 @@ compute-cb@4 {

compute-cb@5 {
compatible = "qcom,fastrpc-compute-cb";
- reg = <5>;
+ reg = <0x0 0x5 0x0 0x0>;
iommus = <&apps_smmu 0x1965 0x0>,
<&apps_smmu 0x0c45 0x0>,
<&apps_smmu 0x0c05 0x20>,
@@ -6377,7 +6381,7 @@ compute-cb@5 {

compute-cb@6 {
compatible = "qcom,fastrpc-compute-cb";
- reg = <6>;
+ reg = <0x0 0x6 0x0 0x0>;
iommus = <&apps_smmu 0x1966 0x0>,
<&apps_smmu 0x0c06 0x20>,
<&apps_smmu 0x0c46 0x0>,
@@ -6387,7 +6391,7 @@ compute-cb@6 {

compute-cb@7 {
compatible = "qcom,fastrpc-compute-cb";
- reg = <7>;
+ reg = <0x0 0x7 0x0 0x0>;
iommus = <&apps_smmu 0x1967 0x0>,
<&apps_smmu 0x0c27 0x0>,
<&apps_smmu 0x0c07 0x40>,
@@ -6397,7 +6401,7 @@ compute-cb@7 {

compute-cb@8 {
compatible = "qcom,fastrpc-compute-cb";
- reg = <8>;
+ reg = <0x0 0x8 0x0 0x0>;
iommus = <&apps_smmu 0x1968 0x0>,
<&apps_smmu 0x0c08 0x20>,
<&apps_smmu 0x0c48 0x0>,
@@ -6407,7 +6411,7 @@ compute-cb@8 {

compute-cb@12 {
compatible = "qcom,fastrpc-compute-cb";
- reg = <12>;
+ reg = <0x0 0xc 0x0 0x0>;
iommus = <&apps_smmu 0x196c 0x0>,
<&apps_smmu 0x0c2c 0x00>,
<&apps_smmu 0x0c0c 0x40>,
@@ -6417,12 +6421,13 @@ compute-cb@12 {

compute-cb@13 {
compatible = "qcom,fastrpc-compute-cb";
- reg = <13>;
+ reg = <0x0 0xd 0x0 0x0>;
iommus = <&apps_smmu 0x196d 0x0>,
<&apps_smmu 0x0c0d 0x40>,
<&apps_smmu 0x0c2e 0x0>,
<&apps_smmu 0x0c2d 0x0>,
<&apps_smmu 0x19cd 0x0>;
+ iommu-ranges = <0x4 0x0 0xfc 0x0>;
dma-coherent;
};
};

--
2.34.1