diff --git a/qcom/Makefile b/qcom/Makefile index 5ca73a1d..3b4a0917 100644 --- a/qcom/Makefile +++ b/qcom/Makefile @@ -144,6 +144,17 @@ sa410m_auto-dtb-$(CONFIG_ARCH_SA410M) += \ sa410m-rumi.dtb dtb-y += $(sa410m_auto-dtb-y) +SA8155_LA_GVM_BASE_DTB += sa8155-vm-la.dtb + +SA8155_LA_GVM_BOARDS += \ + sa8155-vm-la-overlay.dtbo + +autogvm-dtb-$(CONFIG_QTI_QUIN_GVM) += \ + $(call add-overlays, $(SA8155_LA_GVM_BOARDS),$(SA8155_LA_GVM_BASE_DTB)) +autogvm-overlays-dtb-$(CONFIG_QTI_QUIN_GVM) += $(SA8155_LA_GVM_BOARDS) $(SA8155_LA_GVM_BASE_DTB) + +dtb-y += $(autogvm-dtb-y) + endif ifeq ($(CONFIG_ARCH_KALAMA), y) diff --git a/qcom/quin-vm-common.dtsi b/qcom/quin-vm-common.dtsi new file mode 100644 index 00000000..3e2dac0f --- /dev/null +++ b/qcom/quin-vm-common.dtsi @@ -0,0 +1,53 @@ +#include +#include + +/ { + #address-cells = <2>; + #size-cells = <2>; + + psci { + compatible = "arm,psci-1.0"; + method = "smc"; + }; + + chosen { + bootargs = "rcupdate.rcu_expedited=1 rcu_nocbs=0-7 cgroup.memory=nokmem,nosocket"; + }; + + soc: soc { }; + + reserved-memory { + #address-cells = <2>; + #size-cells = <2>; + ranges; + + linux,cma { + compatible = "shared-dma-pool"; + alloc-ranges = <0x0 0x0 0x0 0xffffffff>; + reusable; + alignment = <0x0 0x400000>; + size = <0x0 0x2000000>; + linux,cma-default; + phandle = <0x4>; + }; + + pmem_shared: pmem_shared_region { + reg = <0x1 0x6a500000 0x0 0x51400000>; + label = "pmem_shared_mem"; + }; + }; +}; + +&soc { + #address-cells = <1>; + #size-cells = <1>; + interrupt-parent = <&intc>; + ranges = <0x0 0x0 0x0 0xffffffff>; + compatible = "simple-bus"; + + intc: vgic@0 { + qvm,vdev = "gic"; + #interrupt-cells = <3>; + interrupt-controller; + }; +}; diff --git a/qcom/sa8155-vm-la-overlay.dts b/qcom/sa8155-vm-la-overlay.dts new file mode 100644 index 00000000..02ca326f --- /dev/null +++ b/qcom/sa8155-vm-la-overlay.dts @@ -0,0 +1,10 @@ +/dts-v1/; +/plugin/; + +#include "sa8155-vm.dtsi" + +/ { + model = "Qualcomm Technologies, Inc. SA8155 Single LA Guest Virtual Machine"; + compatible = "qcom,sa8155", "qcom,quinvm"; + qcom,board-id = <0x0 0x1000001>; +}; diff --git a/qcom/sa8155-vm-la.dts b/qcom/sa8155-vm-la.dts new file mode 100644 index 00000000..fcb3c767 --- /dev/null +++ b/qcom/sa8155-vm-la.dts @@ -0,0 +1,10 @@ +/dts-v1/; + +#include "sa8155-vm.dtsi" +#include "sa8155-vm-la.dtsi" + +/ { + model = "Qualcomm Technologies, Inc. SA8155 Single LA Guest Virtual Machine"; + compatible = "qcom,sa8155", "qcom,quinvm"; + qcom,board-id = <0x0 0x1000001>; +}; diff --git a/qcom/sa8155-vm-la.dtsi b/qcom/sa8155-vm-la.dtsi new file mode 100644 index 00000000..17f1e228 --- /dev/null +++ b/qcom/sa8155-vm-la.dtsi @@ -0,0 +1,2 @@ +&soc { +}; diff --git a/qcom/sa8155-vm.dtsi b/qcom/sa8155-vm.dtsi new file mode 100644 index 00000000..c88fe561 --- /dev/null +++ b/qcom/sa8155-vm.dtsi @@ -0,0 +1,7 @@ +#include "quin-vm-common.dtsi" + +/ { + model = "Qualcomm Technologies, Inc. SA8155 Guest Virtual Machine"; + qcom,msm-name = "SA8155 v2"; + qcom,msm-id = <362 0x20000>; +};