diff --git a/qcom/Makefile b/qcom/Makefile index 8d1d1527..8edfc305 100644 --- a/qcom/Makefile +++ b/qcom/Makefile @@ -55,6 +55,23 @@ dtb-y += $(pineapple-dtb-y) endif +ifeq ($(CONFIG_ARCH_PINEAPPLE), y) +ifeq ($(CONFIG_ARCH_QTI_VM), y) +pineapple_tuivm-dtb-$(CONFIG_ARCH_QTI_VM) += pineapple-vm-rumi.dtb \ + pineapple-vm-mtp.dtb \ + pineapple-vm-cdp.dtb \ + pineapple-vm-qrd.dtb \ + pineapple-vm-rcm.dtb \ + pineapple-oemvm-cdp.dtb \ + pineapple-oemvm-mtp.dtb \ + pineapple-oemvm-qrd.dtb \ + pineapple-oemvm-rumi.dtb \ + pineapple-oemvm-rcm.dtb +dtb-y += $(pineapple_tuivm-dtb-y) + +endif +endif + always-y := $(dtb-y) subdir-y := $(dts-dirs) clean-files := *.dtb *.dtbo diff --git a/qcom/pineapple-oemvm-cdp.dts b/qcom/pineapple-oemvm-cdp.dts new file mode 100644 index 00000000..bad1402e --- /dev/null +++ b/qcom/pineapple-oemvm-cdp.dts @@ -0,0 +1,14 @@ +// SPDX-License-Identifier: BSD-3-Clause +/* + * Copyright (c) 2022-2023 Qualcomm Innovation Center, Inc. All rights reserved. + */ +/dts-v1/; + +#include "pineapple-oemvm.dtsi" +#include "pineapple-oemvm-cdp.dtsi" + +/ { + model = "Qualcomm Technologies, Inc. Pineapple OEMVM CDP"; + compatible = "qcom,pineapple-cdp", "qcom,pineapple", "qcom,cdp"; + qcom,board-id = <0x10001 0>; +}; diff --git a/qcom/pineapple-oemvm-cdp.dtsi b/qcom/pineapple-oemvm-cdp.dtsi new file mode 100644 index 00000000..6b32e832 --- /dev/null +++ b/qcom/pineapple-oemvm-cdp.dtsi @@ -0,0 +1,7 @@ +// SPDX-License-Identifier: BSD-3-Clause +/* + * Copyright (c) 2022-2023 Qualcomm Innovation Center, Inc. All rights reserved. + */ +&soc { +}; + diff --git a/qcom/pineapple-oemvm-mtp.dts b/qcom/pineapple-oemvm-mtp.dts new file mode 100644 index 00000000..46022eac --- /dev/null +++ b/qcom/pineapple-oemvm-mtp.dts @@ -0,0 +1,14 @@ +// SPDX-License-Identifier: BSD-3-Clause +/* + * Copyright (c) 2022-2023 Qualcomm Innovation Center, Inc. All rights reserved. + */ +/dts-v1/; + +#include "pineapple-oemvm.dtsi" +#include "pineapple-oemvm-mtp.dtsi" + +/ { + model = "Qualcomm Technologies, Inc. Pineapple OEMVM MTP"; + compatible = "qcom,pineapple-mtp", "qcom,pineapple", "qcom,mtp"; + qcom,board-id = <0x10008 0>; +}; diff --git a/qcom/pineapple-oemvm-mtp.dtsi b/qcom/pineapple-oemvm-mtp.dtsi new file mode 100644 index 00000000..6b32e832 --- /dev/null +++ b/qcom/pineapple-oemvm-mtp.dtsi @@ -0,0 +1,7 @@ +// SPDX-License-Identifier: BSD-3-Clause +/* + * Copyright (c) 2022-2023 Qualcomm Innovation Center, Inc. All rights reserved. + */ +&soc { +}; + diff --git a/qcom/pineapple-oemvm-qrd.dts b/qcom/pineapple-oemvm-qrd.dts new file mode 100644 index 00000000..ceccec1c --- /dev/null +++ b/qcom/pineapple-oemvm-qrd.dts @@ -0,0 +1,14 @@ +// SPDX-License-Identifier: BSD-3-Clause +/* + * Copyright (c) 2022-2023 Qualcomm Innovation Center, Inc. All rights reserved. + */ +/dts-v1/; + +#include "pineapple-oemvm.dtsi" +#include "pineapple-oemvm-qrd.dtsi" + +/ { + model = "Qualcomm Technologies, Inc. Pineapple OEMVM QRD"; + compatible = "qcom,pineapple-qrd", "qcom,pineapple", "qcom,qrd"; + qcom,board-id = <0x1000b 0>; +}; diff --git a/qcom/pineapple-oemvm-qrd.dtsi b/qcom/pineapple-oemvm-qrd.dtsi new file mode 100644 index 00000000..6b32e832 --- /dev/null +++ b/qcom/pineapple-oemvm-qrd.dtsi @@ -0,0 +1,7 @@ +// SPDX-License-Identifier: BSD-3-Clause +/* + * Copyright (c) 2022-2023 Qualcomm Innovation Center, Inc. All rights reserved. + */ +&soc { +}; + diff --git a/qcom/pineapple-oemvm-rcm.dts b/qcom/pineapple-oemvm-rcm.dts new file mode 100644 index 00000000..c813f2d3 --- /dev/null +++ b/qcom/pineapple-oemvm-rcm.dts @@ -0,0 +1,14 @@ +// SPDX-License-Identifier: BSD-3-Clause +/* + * Copyright (c) 2022-2023 Qualcomm Innovation Center, Inc. All rights reserved. + */ +/dts-v1/; + +#include "pineapple-oemvm.dtsi" +#include "pineapple-oemvm-rcm.dtsi" + +/ { + model = "Qualcomm Technologies, Inc. Pineapple OEMVM RCM"; + compatible = "qcom,pineapple-rcm", "qcom,pineapple", "qcom,rcm"; + qcom,board-id = <0x15 0>; +}; diff --git a/qcom/pineapple-oemvm-rcm.dtsi b/qcom/pineapple-oemvm-rcm.dtsi new file mode 100644 index 00000000..d2043437 --- /dev/null +++ b/qcom/pineapple-oemvm-rcm.dtsi @@ -0,0 +1,6 @@ +// SPDX-License-Identifier: BSD-3-Clause +/* + * Copyright (c) 2022-2023 Qualcomm Innovation Center, Inc. All rights reserved. + */ +&soc { +}; diff --git a/qcom/pineapple-oemvm-rumi.dts b/qcom/pineapple-oemvm-rumi.dts new file mode 100644 index 00000000..983af0e2 --- /dev/null +++ b/qcom/pineapple-oemvm-rumi.dts @@ -0,0 +1,14 @@ +// SPDX-License-Identifier: BSD-3-Clause +/* + * Copyright (c) 2022-2023 Qualcomm Innovation Center, Inc. All rights reserved. + */ +/dts-v1/; + +#include "pineapple-oemvm.dtsi" +#include "pineapple-oemvm-rumi.dtsi" + +/ { + model = "Qualcomm Technologies, Inc. Pineapple OEMVM RUMI"; + compatible = "qcom,pineapple-rumi", "qcom,pineapple", "qcom,rumi"; + qcom,board-id = <15 0>; +}; diff --git a/qcom/pineapple-oemvm-rumi.dtsi b/qcom/pineapple-oemvm-rumi.dtsi new file mode 100644 index 00000000..68685c24 --- /dev/null +++ b/qcom/pineapple-oemvm-rumi.dtsi @@ -0,0 +1,7 @@ +// SPDX-License-Identifier: BSD-3-Clause +/* + * Copyright (c) 2022-2023 Qualcomm Innovation Center, Inc. All rights reserved. + */ +&arch_timer { + clock-frequency = <500000>; +}; diff --git a/qcom/pineapple-oemvm.dtsi b/qcom/pineapple-oemvm.dtsi new file mode 100644 index 00000000..d86df3e0 --- /dev/null +++ b/qcom/pineapple-oemvm.dtsi @@ -0,0 +1,203 @@ +// SPDX-License-Identifier: BSD-3-Clause +/* + * Copyright (c) 2022-2023 Qualcomm Innovation Center, Inc. All rights reserved. + */ +#include + +/ { + #address-cells = <0x2>; + #size-cells = <0x2>; + qcom,msm-id = <557 0x10000>, <557 0x20000>, <577 0x10000>, <577 0x20000>; + interrupt-parent = <&vgic>; + + chosen { + bootargs = "nokaslr log_buf_len=256K console=hvc0 loglevel=8"; + }; + + reserved_memory: reserved-memory { + #address-cells = <2>; + #size-cells = <2>; + ranges; + }; + + 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 Gold C4 latencies */ + compatible = "arm,idle-state"; + idle-state-name = "rail-pc"; + entry-latency-us = <550>; + exit-latency-us = <1050>; + min-residency-us = <7951>; + arm,psci-suspend-param = <0x40000004>; + local-timer-stop; + status = "disabled"; + }; + + CLUSTER_PWR_DWN: d4 { /* C4+D4 */ + compatible = "arm,idle-state"; + idle-state-name = "l3-pc"; + entry-latency-us = <750>; + exit-latency-us = <2350>; + min-residency-us = <9144>; + arm,psci-suspend-param = <0x40000044>; + local-timer-stop; + 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=9,7C,8F,97,159,7F1;"; + qcom,secdomain-ids = <49>; + qcom,primary-vm-index = <0>; + vm-uri = "vmuid/oemvm"; + vm-guid = "847bfe26-0b12-5728-812a-06103f6bdec0"; + vm-attrs = "crash-fatal", "context-dump"; + + 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 0x28800000>; + }; + + segments { + config_cpio = <2>; + }; + + vcpus { + config = "/cpus"; + affinity = "proxy"; + affinity-map = <0x5 0x6>; + 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 = <0x13>; + #address-cells = <0x2>; + base = <0x0 0xFFEFC000>; + }; + }; + + swiotlb-shm { + vdevice-type = "shm"; + generate = "/swiotlb"; + push-compatible = "swiotlb"; + peer-default; + dma_base = <0x0 0x4000>; + memory { + qcom,label = <0x14>; + #address-cells = <0x2>; + base = <0x0 0xFFF00000>; + }; + }; + + }; + }; + + firmware: firmware { + 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 0x100000>; /* GICR * 8 */ + }; + + arch_timer: timer { + compatible = "arm,armv8-timer"; + always-on; + interrupts = , + , + , + ; + clock-frequency = <19200000>; + }; + +}; diff --git a/qcom/pineapple-vm-cdp.dts b/qcom/pineapple-vm-cdp.dts new file mode 100644 index 00000000..4b456a13 --- /dev/null +++ b/qcom/pineapple-vm-cdp.dts @@ -0,0 +1,14 @@ +// SPDX-License-Identifier: BSD-3-Clause +/* + * Copyright (c) 2022-2023 Qualcomm Innovation Center, Inc. All rights reserved. + */ +/dts-v1/; + +#include "pineapple-vm.dtsi" +#include "pineapple-vm-cdp.dtsi" + +/ { + model = "Qualcomm Technologies, Inc. Pineapple SVM CDP"; + compatible = "qcom,pineapple-cdp", "qcom,pineapple", "qcom,cdp"; + qcom,board-id = <0x10001 0>; +}; diff --git a/qcom/pineapple-vm-cdp.dtsi b/qcom/pineapple-vm-cdp.dtsi new file mode 100644 index 00000000..d2043437 --- /dev/null +++ b/qcom/pineapple-vm-cdp.dtsi @@ -0,0 +1,6 @@ +// SPDX-License-Identifier: BSD-3-Clause +/* + * Copyright (c) 2022-2023 Qualcomm Innovation Center, Inc. All rights reserved. + */ +&soc { +}; diff --git a/qcom/pineapple-vm-dma-heaps.dtsi b/qcom/pineapple-vm-dma-heaps.dtsi new file mode 100644 index 00000000..aa415523 --- /dev/null +++ b/qcom/pineapple-vm-dma-heaps.dtsi @@ -0,0 +1,35 @@ +// SPDX-License-Identifier: BSD-3-Clause +/* + * Copyright (c) 2022-2023 Qualcomm Innovation Center, Inc. All rights reserved. + */ +#include + +&soc { + qcom,dma-heaps { + compatible = "qcom,dma-heaps"; + + qcom,tui { + qcom,dma-heap-name = "qcom,tui"; + qcom,dma-heap-type = ; + qcom,dynamic-heap; + }; + + qcom,ms1 { + qcom,dma-heap-name = "qcom,ms1"; + qcom,dma-heap-type = ; + qcom,dynamic-heap; + }; + + qcom,ms2 { + qcom,dma-heap-name = "qcom,ms2"; + qcom,dma-heap-type = ; + qcom,dynamic-heap; + }; + + qcom,ms3 { + qcom,dma-heap-name = "qcom,ms3"; + qcom,dma-heap-type = ; + qcom,dynamic-heap; + }; + }; +}; diff --git a/qcom/pineapple-vm-mtp.dts b/qcom/pineapple-vm-mtp.dts new file mode 100644 index 00000000..b161d43a --- /dev/null +++ b/qcom/pineapple-vm-mtp.dts @@ -0,0 +1,14 @@ +// SPDX-License-Identifier: BSD-3-Clause +/* + * Copyright (c) 2022-2023 Qualcomm Innovation Center, Inc. All rights reserved. + */ +/dts-v1/; + +#include "pineapple-vm.dtsi" +#include "pineapple-vm-mtp.dtsi" + +/ { + model = "Qualcomm Technologies, Inc. Pineapple SVM MTP"; + compatible = "qcom,pineapple-mtp", "qcom,pineapple", "qcom,mtp"; + qcom,board-id = <0x10008 0>; +}; diff --git a/qcom/pineapple-vm-mtp.dtsi b/qcom/pineapple-vm-mtp.dtsi new file mode 100644 index 00000000..d2043437 --- /dev/null +++ b/qcom/pineapple-vm-mtp.dtsi @@ -0,0 +1,6 @@ +// SPDX-License-Identifier: BSD-3-Clause +/* + * Copyright (c) 2022-2023 Qualcomm Innovation Center, Inc. All rights reserved. + */ +&soc { +}; diff --git a/qcom/pineapple-vm-qrd.dts b/qcom/pineapple-vm-qrd.dts new file mode 100644 index 00000000..c0bfef67 --- /dev/null +++ b/qcom/pineapple-vm-qrd.dts @@ -0,0 +1,14 @@ +// SPDX-License-Identifier: BSD-3-Clause +/* + * Copyright (c) 2022-2023 Qualcomm Innovation Center, Inc. All rights reserved. + */ +/dts-v1/; + +#include "pineapple-vm.dtsi" +#include "pineapple-vm-mtp.dtsi" + +/ { + model = "Qualcomm Technologies, Inc. Pineapple SVM QRD"; + compatible = "qcom,pineapple-qrd", "qcom,pineapple", "qcom,qrd"; + qcom,board-id = <0x1000b 0>; +}; diff --git a/qcom/pineapple-vm-qrd.dtsi b/qcom/pineapple-vm-qrd.dtsi new file mode 100644 index 00000000..d2043437 --- /dev/null +++ b/qcom/pineapple-vm-qrd.dtsi @@ -0,0 +1,6 @@ +// SPDX-License-Identifier: BSD-3-Clause +/* + * Copyright (c) 2022-2023 Qualcomm Innovation Center, Inc. All rights reserved. + */ +&soc { +}; diff --git a/qcom/pineapple-vm-rcm.dts b/qcom/pineapple-vm-rcm.dts new file mode 100644 index 00000000..9c774e79 --- /dev/null +++ b/qcom/pineapple-vm-rcm.dts @@ -0,0 +1,14 @@ +// SPDX-License-Identifier: BSD-3-Clause +/* + * Copyright (c) 2022-2023 Qualcomm Innovation Center, Inc. All rights reserved. + */ +/dts-v1/; + +#include "pineapple-vm.dtsi" +#include "pineapple-vm-rcm.dtsi" + +/ { + model = "Qualcomm Technologies, Inc. Pineapple SVM RCM"; + compatible = "qcom,pineapple-rcm", "qcom,pineapple", "qcom,rcm"; + qcom,board-id = <0x15 0>; +}; diff --git a/qcom/pineapple-vm-rcm.dtsi b/qcom/pineapple-vm-rcm.dtsi new file mode 100644 index 00000000..d2043437 --- /dev/null +++ b/qcom/pineapple-vm-rcm.dtsi @@ -0,0 +1,6 @@ +// SPDX-License-Identifier: BSD-3-Clause +/* + * Copyright (c) 2022-2023 Qualcomm Innovation Center, Inc. All rights reserved. + */ +&soc { +}; diff --git a/qcom/pineapple-vm-rumi.dts b/qcom/pineapple-vm-rumi.dts new file mode 100644 index 00000000..e254f47d --- /dev/null +++ b/qcom/pineapple-vm-rumi.dts @@ -0,0 +1,14 @@ +// SPDX-License-Identifier: BSD-3-Clause +/* + * Copyright (c) 2022-2023 Qualcomm Innovation Center, Inc. All rights reserved. + */ +/dts-v1/; + +#include "pineapple-vm.dtsi" +#include "pineapple-vm-rumi.dtsi" + +/ { + model = "Qualcomm Technologies, Inc. Pineapple SVM RUMI"; + compatible = "qcom,pineapple-rumi", "qcom,pineapple", "qcom,rumi"; + qcom,board-id = <15 0>; +}; diff --git a/qcom/pineapple-vm-rumi.dtsi b/qcom/pineapple-vm-rumi.dtsi new file mode 100644 index 00000000..68685c24 --- /dev/null +++ b/qcom/pineapple-vm-rumi.dtsi @@ -0,0 +1,7 @@ +// SPDX-License-Identifier: BSD-3-Clause +/* + * Copyright (c) 2022-2023 Qualcomm Innovation Center, Inc. All rights reserved. + */ +&arch_timer { + clock-frequency = <500000>; +}; diff --git a/qcom/pineapple-vm.dtsi b/qcom/pineapple-vm.dtsi new file mode 100644 index 00000000..972f4fcb --- /dev/null +++ b/qcom/pineapple-vm.dtsi @@ -0,0 +1,264 @@ +// SPDX-License-Identifier: BSD-3-Clause +/* + * Copyright (c) 2022-2023 Qualcomm Innovation Center, Inc. All rights reserved. + */ +#include +#include + +/ { + #address-cells = <0x2>; + #size-cells = <0x2>; + qcom,msm-id = <557 0x10000>, <557 0x20000>, <577 0x10000>, <577 0x20000>; + interrupt-parent = <&vgic>; + + chosen { + bootargs = "nokaslr log_buf_len=256K console=hvc0 loglevel=8"; + }; + + 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 Gold C4 latencies */ + compatible = "arm,idle-state"; + idle-state-name = "rail-pc"; + entry-latency-us = <550>; + exit-latency-us = <1050>; + min-residency-us = <7951>; + arm,psci-suspend-param = <0x40000004>; + local-timer-stop; + status = "disabled"; + }; + + CLUSTER_PWR_DWN: d4 { /* C4+D4 */ + compatible = "arm,idle-state"; + idle-state-name = "l3-pc"; + entry-latency-us = <750>; + exit-latency-us = <2350>; + min-residency-us = <9144>; + arm,psci-suspend-param = <0x40000044>; + local-timer-stop; + 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,trustedvm"; + qcom,pasid = <0x0 0x1c>; + qcom,qtee-config-info = "p=3,9,39,77,78,7C,8F,97,C8,FE,11B,159,199,47E,7F1,CDF;"; + qcom,secdomain-ids = <45>; + qcom,primary-vm-index = <0>; + vm-uri = "vmuid/trusted-ui"; + vm-guid = "598085da-c516-5b25-a9c1-927a02819770"; + qcom,sensitive; + + iomemory-ranges = <0x0 0x409000 0x0 0x409000 0x0 0x1000 0x0 + 0x0 0xa20000 0x0 0xa20000 0x0 0x4000 0x0 + 0x0 0xa24000 0x0 0xa24000 0x0 0x4000 0x0 + 0x0 0xc400000 0x0 0xc400000 0x0 0x3000 0x1 + 0x0 0xc42d000 0x0 0xc42d000 0x0 0x4000 0x1 + 0x0 0xc440000 0x0 0xc440000 0x0 0x80000 0x1 + 0x0 0xc4c0000 0x0 0xc4c0000 0x0 0x10000 0x1 + 0x0 0xae8f000 0x0 0xae8f000 0x0 0x1000 0x0>; + + /* For LEVM pored usecases is SE4 and SE7, for SE4 we used gpii4 + * and irq no is 315, for SE7 we used gpii5 and irq no is 316. + */ + gic-irq-ranges = <101 101 + 315 315 + 316 316>; /* PVM->SVM IRQ transfer */ + + vm-attrs = "crash-fatal", "context-dump"; + + 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 0x28800000 >; + }; + + segments { + config_cpio = <2>; + }; + + vcpus { + config = "/cpus"; + affinity = "proxy"; + affinity-map = <0x5 0x6>; + sched-priority = <0>; /* relative to PVM */ + sched-timeslice = <2000>; /* in ms */ + }; + + interrupts { + config = &vgic; + }; + + vdevices { + generate = "/hypervisor"; + + 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 = <0x11>; //for persist.img + #address-cells = <0x2>; + base = <0x0 0xDA6F8000>; + }; + }; + + 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 = <0x10>; //for system.img + #address-cells = <0x2>; + base = <0x0 0xDA6FC000>; + }; + }; + + swiotlb-shm { + vdevice-type = "shm"; + generate = "/swiotlb"; + push-compatible = "swiotlb"; + peer-default; + dma_base = <0x0 0x8000>; + memory { + qcom,label = <0x12>; + #address-cells = <0x2>; + base = <0x0 0xDA700000>; + }; + }; + + }; + }; + + firmware: firmware { + scm { + compatible = "qcom,scm"; + }; + }; + + soc: soc { }; +}; + +&soc { + #address-cells = <1>; + #size-cells = <1>; + ranges = <0 0 0 0xffffffff>; + compatible = "simple-bus"; + + vm_tlmm_irq: vm-tlmm-irq@0 { + compatible = "qcom,tlmm-vm-irq"; + reg = <0x0 0x0>; + interrupt-controller; + #interrupt-cells = <2>; + status="disabled"; + }; + + tlmm: pinctrl@f000000 { + compatible = "qcom,pineapple-vm-pinctrl"; + reg = <0x0F000000 0x1000000>; + interrupts-extended = <&vm_tlmm_irq 1 IRQ_TYPE_LEVEL_HIGH>; + gpio-controller; + #gpio-cells = <2>; + interrupt-controller; + #interrupt-cells = <2>; + /* Valid pins */ + gpios = /bits/ 16 <86 87 133 137 48 49 50 51 161 162 91 60 61 62 63 88>; + status="disabled"; + }; + + tlmm-vm-mem-access { + compatible = "qcom,tlmm-vm-mem-access"; + tlmm-vm-gpio-list = <&tlmm 86 0 &tlmm 87 0 &tlmm 133 0 &tlmm 137 0 &tlmm 48 0 + &tlmm 49 0 &tlmm 50 0 &tlmm 51 0 &tlmm 161 0 &tlmm 162 0 + &tlmm 91 0 &tlmm 60 0 &tlmm 61 0 &tlmm 62 0 &tlmm 63 0 + &tlmm 88 0>; + status="disabled"; + }; + + 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 0x100000>; /* GICR * 8 */ + }; + + ipcc_mproc_ns1: qcom,ipcc@409000 { + compatible = "qcom,ipcc"; + reg = <0x409000 0x1000>; + interrupts = ; + interrupt-controller; + #interrupt-cells = <3>; + #mbox-cells = <2>; + }; + + arch_timer: timer { + compatible = "arm,armv8-timer"; + always-on; + interrupts = , + , + , + ; + clock-frequency = <19200000>; + }; + +}; diff --git a/qcom/pineapple.dtsi b/qcom/pineapple.dtsi index 9962fb30..fc538b83 100644 --- a/qcom/pineapple.dtsi +++ b/qcom/pineapple.dtsi @@ -2423,22 +2423,6 @@ compatible = "smmu-proxy-sender"; }; - tlmm-vm-mem-access { - compatible = "qcom,tlmm-vm-mem-access"; - qcom,master; - tlmm-vm-gpio-list = <&tlmm 86 0 &tlmm 87 0 &tlmm 133 0 &tlmm 137 0 &tlmm 48 0 &tlmm 49 0 - &tlmm 50 0 &tlmm 51 0 &tlmm 161 0 &tlmm 162 0 &tlmm 91 0 - &tlmm 60 0 &tlmm 61 0 &tlmm 62 0 &tlmm 63 0 &tlmm 88 0>; - }; - - tlmm-vm-test { - compatible = "qcom,tlmm-vm-test"; - qcom,master; - tlmm-vm-gpio-list = <&tlmm 86 0 &tlmm 87 0 &tlmm 133 0 &tlmm 137 0 &tlmm 48 0 &tlmm 49 0 - &tlmm 50 0 &tlmm 51 0 &tlmm 161 0 &tlmm 162 0 &tlmm 91 0 - &tlmm 60 0 &tlmm 61 0 &tlmm 62 0 &tlmm 63 0 &tlmm 88 0>; - }; - cpusys-vm-shmem-access { compatible = "qcom,cpusys-vm-shmem-access"; gunyah-label = <5>; @@ -2542,11 +2526,6 @@ restrict-access; }; - qcom,test-dbl { - compatible = "qcom,gh-dbl"; - qcom,label = <0x4>; - }; - qcom,pmic_glink { compatible = "qcom,pmic-glink"; qcom,pmic-glink-channel = "PMIC_RTR_ADSP_APPS"; @@ -2609,21 +2588,6 @@ }; }; - qcom,test-msgq { - compatible = "qcom,gh-msgq-test"; - gunyah-label = <4>; - qcom,primary; - }; - - qcom,gh-qtimer@17425000 { - compatible = "qcom,gh-qtmr"; - reg = <0x17425000 0x1000>; - reg-names = "qtmr-base"; - interrupts = ; - interrupt-names = "qcom,qtmr-intr"; - qcom,primary; - }; - msm_gpu: qcom,kgsl-3d0@3d00000 { }; mmio_sram: mmio-sram@17D09400 { @@ -3082,15 +3046,6 @@ memory-region = <&kinfo_mem>; }; - dmesg-dump { - compatible = "qcom,dmesg-dump"; - qcom,primary-vm; - gunyah-label = <7>; - peer-name = <2>; - memory-region = <&vm_comm_mem>; - shared-buffer-size = <0x1000>; - }; - qcom,qrtr-mhi-cnss { compatible = "qcom,qrtr-mhi"; qcom,dev-id = <0x1107>; @@ -3098,20 +3053,6 @@ qcom,low-latency; }; - qcom,qrtr-gunyah-tuivm { - compatible = "qcom,qrtr-gunyah"; - qcom,master; - gunyah-label = <3>; - peer-name = <2>; - }; - - qcom,qrtr-gunyah-oemvm { - compatible = "qcom,qrtr-gunyah"; - qcom,master; - gunyah-label = <8>; - peer-name = <4>; - }; - qcom,health_monitor { compatible = "qcom,system-health-monitor"; @@ -3122,15 +3063,6 @@ }; }; - qcom,gunyah-panic-notifier { - compatible = "qcom,gh-panic-notifier"; - qcom,primary-vm; - gunyah-label = <9>; - peer-name = <2>; - memory-region = <&vm_comm_mem>; - shared-buffer-size = <0x1000>; - }; - qfprom: qfprom@221c2000 { compatible = "qcom,qfprom"; reg = <0x221c2000 0x2000>; @@ -3393,17 +3325,13 @@ }; trust_ui_vm_mem: trust_ui_vm_region@f3800000 { - compatible = "shared-dma-pool"; reg = <0x0 0xf3800000 0x0 0x4400000>; - reusable; - alignment = <0x0 0x400000>; + no-map; }; oem_vm_mem: oem_vm_region@f7c00000 { - compatible = "shared-dma-pool"; reg = <0x0 0xf7c00000 0x0 0x4c00000>; - reusable; - alignment = <0x0 0x400000>; + no-map; }; llcc_lpi_mem: llcc_lpi_region@ff800000 { diff --git a/qcom/platform_map.bzl b/qcom/platform_map.bzl index 16f9aabe..82f7aa40 100644 --- a/qcom/platform_map.bzl +++ b/qcom/platform_map.bzl @@ -40,6 +40,30 @@ _platform_map = { }, ], }, + "pineapple-tuivm": { + "dtb_list": [ + {"name": "pineapple-oemvm-cdp.dtb"}, + {"name": "pineapple-oemvm-mtp.dtb"}, + {"name": "pineapple-oemvm-qrd.dtb"}, + {"name": "pineapple-oemvm-rumi.dtb"}, + {"name": "pineapple-vm-cdp.dtb"}, + {"name": "pineapple-vm-mtp.dtb"}, + {"name": "pineapple-vm-qrd.dtb"}, + {"name": "pineapple-vm-rumi.dtb"}, + ], + }, + "pineapple-oemvm": { + "dtb_list": [ + {"name": "pineapple-oemvm-cdp.dtb"}, + {"name": "pineapple-oemvm-mtp.dtb"}, + {"name": "pineapple-oemvm-qrd.dtb"}, + {"name": "pineapple-oemvm-rumi.dtb"}, + {"name": "pineapple-vm-cdp.dtb"}, + {"name": "pineapple-vm-mtp.dtb"}, + {"name": "pineapple-vm-qrd.dtb"}, + {"name": "pineapple-vm-rumi.dtb"}, + ], + }, } def _get_dtb_lists(target, dt_overlay_supported):