diff --git a/qcom/lahaina.dtsi b/qcom/lahaina.dtsi index a77587fb8b32..6a7dd3df3451 100644 --- a/qcom/lahaina.dtsi +++ b/qcom/lahaina.dtsi @@ -409,7 +409,22 @@ pil_trustedvm_mem: pil_trustedvm_region@d0800000 { no-map; - reg = <0x0 0xd0800000 0x0 0x8000000>; + reg = <0x0 0xd0800000 0x0 0x76f7000>; + }; + + qrtr_shbuf: qrtr-shmem { + no-map; + reg = <0x0 0xd7ef7000 0x0 0x9000>; + }; + + chan0_shbuf: neuron_block@0 { + no-map; + reg = <0x0 0xd7f00000 0x0 0x80000>; + }; + + chan1_shbuf: neuron_block@1 { + no-map; + reg = <0x0 0xd7f80000 0x0 0x80000>; }; trustedvm_trace_buffer: trustedvm_trace_region@d8800000 { @@ -2093,6 +2108,42 @@ #mbox-cells = <2>; }; + qcom,svm_neuron_block { + compatible = "qcom,neuron-service"; + #address-cells = <1>; + #size-cells = <0>; + protocol { + compatible = "qcom,neuron-protocol-block"; + processes = "server"; + }; + + application { + compatible = "qcom,neuron-block-server"; + }; + + channel@0 { + compatible = "qcom,neuron-channel-haven-shmem"; + reg = <0>; + class = "message-queue"; + direction = "receive"; + max-size = <0 65536>; + shared-buffer = <&chan0_shbuf>; + qcom,primary; + haven-label = <1>; + }; + + channel@1 { + compatible = "qcom,neuron-channel-haven-shmem"; + reg = <1>; + class = "message-queue"; + direction = "send"; + max-size = <0 65536>; + shared-buffer = <&chan1_shbuf>; + qcom,primary; + haven-label = <2>; + }; + }; + qcom,qsee_ipc_irq_bridge { compatible = "qcom,qsee-ipc-irq-bridge"; @@ -2106,6 +2157,13 @@ }; }; + qrtr-haven { + compatible = "qcom,qrtr-haven"; + qcom,master; + haven-label = <3>; + shared-buffer = <&qrtr_shbuf>; + }; + jtag_mm0: jtagmm@7040000 { compatible = "qcom,jtagv8-mm"; reg = <0x7040000 0x1000>; diff --git a/qcom/trustedvm.dtsi b/qcom/trustedvm.dtsi index 8767a7d5e240..b520e196ca45 100644 --- a/qcom/trustedvm.dtsi +++ b/qcom/trustedvm.dtsi @@ -42,9 +42,71 @@ compatible = "qcom,mem-buf"; }; - memory@28000000 { + memory@28800000 { device_type = "memory"; - reg = <0x0 0x28000000 0x0 0x8000000>; /* Temp S2 mapping */ + reg = <0x0 0x28800000 0x0 0x76f7000>; /* Temp S2 mapping */ + }; + + reserved_memory: reserved-memory { + #address-cells = <2>; + #size-cells = <2>; + ranges; + + qrtr_shbuf: qrtr-shmem { + no-map; + reg = <0x0 0x2fef7000 0x0 0x9000>; + }; + + chan0_shbuf: neuron-block@0 { + no-map; + reg = <0x0 0x2ff00000 0x0 0x80000>; + }; + + chan1_shbuf: neuron-block@1 { + no-map; + reg = <0x0 0x2ff80000 0x0 0x80000>; + }; + }; + + neuron-client-block { + compatible = "qcom,neuron-service"; + #address-cells = <1>; + #size-cells = <0>; + + protocol { + compatible = "qcom,neuron-protocol-block"; + processes = "client"; + }; + + application { + compatible = "qcom,neuron-block-client"; + }; + + channel@0 { + reg = <0>; + compatible = "qcom,neuron-channel-haven-shmem"; + class = "message-queue"; + direction = "send"; + max-size = <0 65536>; + shared-buffer = <&chan0_shbuf>; + haven-label = <1>; + }; + + channel@1 { + reg = <1>; + compatible = "qcom,neuron-channel-haven-shmem"; + class = "message-queue"; + direction = "receive"; + max-size = <0 65536>; + shared-buffer = <&chan1_shbuf>; + haven-label = <2>; + }; + }; + + qrtr-haven { + compatible = "qcom,qrtr-haven"; + haven-label = <3>; + shared-buffer = <&qrtr_shbuf>; }; qcom,vm-config {