Files
android_kernel_samsung_sm87…/qcom/kera-oemvm.dtsi
Pranav Mahesh Phansalkar f2f6309548 ARM: dts: msm: Add oemvm qrtr gunyah node for kera
Add the nodes to enable qrtr communication between primary vm and
oemvm on kera.

This adds platform devices and vdevice descriptions to start the
qrtr gunyah transport on both primary vm and oemvm device trees. This
also adds the device tree node to configure qrtr as node id 21 on oem
vm.

Change-Id: Icdcfcb4872351df13561c2c6963f06094f46d8c6
Signed-off-by: Pranav Mahesh Phansalkar <quic_pphansal@quicinc.com>
2024-12-02 20:44:14 +05:30

331 lines
7.0 KiB
Plaintext

// SPDX-License-Identifier: BSD-3-Clause
/*
* Copyright (c) 2024 Qualcomm Innovation Center, Inc. All rights reserved.
*/
#include <dt-bindings/interrupt-controller/arm-gic.h>
/ {
#address-cells = <0x2>;
#size-cells = <0x2>;
qcom,msm-id = <659 0x10000>, <686 0x10000>;
interrupt-parent = <&vgic>;
chosen {
bootargs = "nokaslr log_buf_len=256K console=hvc0 loglevel=8 swiotlb=noforce";
};
cpus {
#address-cells = <0x2>;
#size-cells = <0x0>;
CPU0: cpu@0 {
compatible = "arm,armv8";
reg = <0x0 0x0>;
device_type = "cpu";
enable-method = "psci";
cpu-idle-states = <&CPU_PWR_DWN
&CLUSTER_PWR_DWN>;
};
CPU1: cpu@100 {
compatible = "arm,armv8";
reg = <0x0 0x100>;
device_type = "cpu";
enable-method = "psci";
cpu-idle-states = <&CPU_PWR_DWN
&CLUSTER_PWR_DWN>;
};
};
idle-states {
CPU_PWR_DWN: c4 { /* Using Medium C4 latencies */
compatible = "arm,idle-state";
status = "disabled";
};
CLUSTER_PWR_DWN: ss3 { /* C4+CL5+SS3 */
compatible = "arm,idle-state";
status = "disabled";
};
};
qcom,vm-config {
compatible = "qcom,vm-1.0";
vm-type = "aarch64-guest";
boot-config = "fdt,unified";
os-type = "linux";
kernel-entry-segment = "kernel";
kernel-entry-offset = <0x0 0x0>;
vendor = "QTI";
image-name = "qcom,oemvm";
qcom,pasid = <0x0 0x22>;
qcom,qtee-config-info = "p=3,9,39,7C,8F,97,159,7F1,CDF;";
qcom,secdomain-ids = <49>;
qcom,primary-vm-index = <0>;
vm-uri = "vmuid/oemvm";
vm-guid = "847bfe26-0b12-5728-812a-06103f6bdec0";
qcom,sensitive;
vm-attrs = "context-dump", "crash-restart";
memory {
#address-cells = <0x2>;
#size-cells = <0x0>;
/*
* IPA address linux image is loaded at. Must be within
* first 1GB due to memory hotplug requirement.
*/
base-address = <0x0 0x88800000 >;
};
segments {
config_cpio = <2>;
};
vcpus {
config = "/cpus";
affinity = "proxy";
affinity-map = <0x0 0x0>;
sched-priority = <0>; /* relative to PVM */
sched-timeslice = <2000>; /* in ms */
};
interrupts {
config = &vgic;
};
vdevices {
generate = "/hypervisor";
minidump {
vdevice-type = "minidump";
push-compatible = "qcom,minidump_rm";
minidump_allowed;
};
rm-rpc {
vdevice-type = "rm-rpc";
generate = "/hypervisor/qcom,resource-mgr";
console-dev;
message-size = <0x000000f0>;
queue-depth = <0x00000008>;
qcom,label = <0x1>;
};
virtio-mmio@0 {
vdevice-type = "virtio-mmio";
generate = "/virtio-mmio";
peer-default;
vqs-num = <0x1>;
push-compatible = "virtio,mmio";
dma-coherent;
dma_base = <0x0 0x0>;
memory {
qcom,label = <0x16>; //for persist.img
#address-cells = <0x2>;
base = <0x0 0xFFEFC000>;
};
};
virtio-mmio@1 {
vdevice-type = "virtio-mmio";
generate = "/virtio-mmio";
peer-default;
vqs-num = <0x2>;
push-compatible = "virtio,mmio";
dma-coherent;
dma_base = <0x0 0x4000>;
memory {
qcom,label = <0x13>; //for system.img
#address-cells = <0x2>;
base = <0x0 0xFFF00000>;
};
};
swiotlb-shm {
vdevice-type = "shm";
generate = "/swiotlb";
push-compatible = "swiotlb";
peer-default;
dma_base = <0x0 0x8000>;
memory {
qcom,label = <0x14>;
#address-cells = <0x2>;
base = <0x0 0xFFF04000>;
};
};
vrtc {
vdevice-type = "vrtc-pl031";
peer-default;
allocate-base;
};
mem-buf-message-queue-pair {
vdevice-type = "message-queue-pair";
generate = "/hypervisor/membuf-msgq-pair";
message-size = <0x000000f0>;
queue-depth = <0x00000008>;
peer-default;
qcom,label = <0x000000C>;
};
test-dbl-oemvm {
vdevice-type = "doorbell";
generate = "/hypervisor/test-dbl-oemvm";
qcom,label = <0x5>;
peer-default;
};
test-dbl-oemvm-source {
vdevice-type = "doorbell-source";
generate = "/hypervisor/test-dbl-oemvm-source";
qcom,label = <0x5>;
peer-default;
};
test-msgq-oemvm {
vdevice-type = "message-queue-pair";
generate = "/hypervisor/test-msgq-oemvm-pair";
message-size = <0xf0>;
queue-depth = <0x8>;
qcom,label = <0x5>;
peer-default;
};
test-large-dmabuf-oemvm {
vdevice-type = "message-queue-pair";
generate = "/hypervisor/test-large-dmabuf-oemvm-pair";
message-size = <0xf0>;
queue-depth = <0x8>;
qcom,label = <0xe>;
peer-default;
};
qrtr-shm {
vdevice-type = "shm-doorbell";
generate = "/hypervisor/qrtr-shm";
push-compatible = "qcom,qrtr-gunyah-gen";
peer-default;
memory {
qcom,label = <0x8>;
allocate-base;
};
};
};
};
firmware: firmware {
qcom_scm: scm {
compatible = "qcom,scm";
};
};
soc: soc { };
};
&soc {
#address-cells = <1>;
#size-cells = <1>;
ranges = <0 0 0 0xffffffff>;
compatible = "simple-bus";
psci {
compatible = "arm,psci-1.0";
method = "smc";
};
vgic: interrupt-controller@17100000 {
compatible = "arm,gic-v3";
interrupt-controller;
#interrupt-cells = <0x3>;
#redistributor-regions = <1>;
redistributor-stride = <0x0 0x40000>;
reg = <0x17100000 0x10000>, /* GICD */
<0x17180000 0x200000>; /* GICR * 8 */
};
arch_timer: timer {
compatible = "arm,armv8-timer";
always-on;
interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>,
<GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>,
<GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>,
<GIC_PPI 12 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>;
clock-frequency = <19200000>;
};
qcom,mem-buf {
compatible = "qcom,mem-buf";
qcom,mem-buf-capabilities = "consumer";
qcom,ipa-range = <0x0 0x0 0xf 0xffffffff>;
qcom,dmabuf-ipa-size = <0x1 0x00000000>; /* 4GB IPA space for dmabuf */
qcom,vmid = <49>;
};
qcom,mem-buf-msgq {
compatible = "qcom,mem-buf-msgq";
qcom,msgq-names = "oem_vm";
};
virtio_mem_device {
compatible = "qcom,virtio-mem";
/* Must be memory_block_size_bytes() aligned */
qcom,max-size = <0x0 0x10000000>;
qcom,ipa-range = <0x0 0x0 0xf 0xffffffff>;
qcom,block-size = <0x400000>;
};
qcom,test-dbl-oemvm {
compatible = "qcom,gh-dbl";
qcom,label = <0x5>;
};
qcom,test-msgq-oemvm {
compatible = "qcom,gh-msgq-test";
gunyah-label = <0x5>;
affinity = <0>;
};
qcom,test-large-dmabuf-oemvm {
compatible = "qcom,gh-large-dmabuf-test";
gunyah-label = <0xe>;
};
qcom,gh-qtimer@1742b000 {
compatible = "qcom,gh-qtmr";
reg = <0x1742b000 0x1000>;
reg-names = "qtmr-base";
interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>;
interrupt-names = "qcom,qtmr-intr";
qcom,secondary;
};
qcom_smcinvoke {
compatible = "qcom,smcinvoke";
};
qcom_mem_object {
compatible = "qcom,mem-object";
};
qcom,qrtr {
compatible = "qcom,qrtr";
qcom,node-id = <21>;
};
qrtr-gunyah {
compatible = "qcom,qrtr-gunyah";
gunyah-label = <8>;
};
qtee_shmbridge {
compatible = "qcom,tee-shared-memory-bridge";
qcom,custom-bridge-size = <512>;
qcom,support-hypervisor;
};
};