[PATCH 3/6] arm64: dts: qcom: kaanapali: Add CDSP FastRPC extended context bank

From: Vinayak Katoch

Date: Wed Aug 26 2026 - 09:53:40 EST


Add a fastrpc_far_region reserved-memory node and link compute-cb@13 to
it via memory-region so the driver detects it as the extended mapping
bank. Bump #address-cells and #size-cells to <2> on the fastrpc ancestor
nodes and update all compute-cb reg values to the 4-cell format to
accommodate the 64-bit iommu-addresses values.

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

diff --git a/arch/arm64/boot/dts/qcom/kaanapali.dtsi b/arch/arm64/boot/dts/qcom/kaanapali.dtsi
index 131fd2a16c54..0f258eb2a7a9 100644
--- a/arch/arm64/boot/dts/qcom/kaanapali.dtsi
+++ b/arch/arm64/boot/dts/qcom/kaanapali.dtsi
@@ -451,6 +451,10 @@ rmtfs_mem: rmtfs@d7c00000 {
qcom,client-id = <1>;
qcom,vmid = <QCOM_SCM_VMID_MSS_MSA>;
};
+
+ fastrpc_far_region: fastrpc_far_region {
+ iommu-addresses = <&fastrpc_far_cb 0x0 0x0 0x4 0x0>;
+ };
};

smp2p-adsp {
@@ -6011,6 +6015,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";

@@ -6022,17 +6028,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>,
@@ -6042,7 +6050,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>,
@@ -6052,7 +6060,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>,
@@ -6062,7 +6070,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>,
@@ -6072,7 +6080,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>,
@@ -6082,7 +6090,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>,
@@ -6092,7 +6100,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>,
@@ -6102,7 +6110,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>,
@@ -6112,7 +6120,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>,
@@ -6120,14 +6128,15 @@ compute-cb@12 {
dma-coherent;
};

- compute-cb@13 {
+ fastrpc_far_cb: 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>;
+ memory-region = <&fastrpc_far_region>;
dma-coherent;
};
};

--
2.34.1