Shikra boards currently boot Linux under a hypervisor, where the
remote processor firmware IOMMU streams are managed by the hypervisor.
When booting Linux directly at EL2 without the hypervisor, the IOMMU
is instead managed by the consumer of this DeviceTree, so the firmware
streams for each remote processor need to be described explicitly.

Add an EL2-specific DT overlay and apply it to all Shikra EVK variants
devices to produce an -el2.dtb alongside the "normal" dtb.

Co-developed-by: Bibek Kumar Patro <[email protected]>
Signed-off-by: Bibek Kumar Patro <[email protected]>
Reviewed-by: Abel Vesa <[email protected]>
Signed-off-by: Komal Bajaj <[email protected]>
---
 arch/arm64/boot/dts/qcom/Makefile        | 12 ++++++++++++
 arch/arm64/boot/dts/qcom/shikra-el2.dtso | 23 +++++++++++++++++++++++
 2 files changed, 35 insertions(+)

diff --git a/arch/arm64/boot/dts/qcom/Makefile 
b/arch/arm64/boot/dts/qcom/Makefile
index 4e714251d5e6..634914b8f229 100644
--- a/arch/arm64/boot/dts/qcom/Makefile
+++ b/arch/arm64/boot/dts/qcom/Makefile
@@ -367,9 +367,20 @@ dtb-$(CONFIG_ARCH_QCOM)    += sdm850-lenovo-yoga-c630.dtb
 dtb-$(CONFIG_ARCH_QCOM)        += sdm850-samsung-w737.dtb
 dtb-$(CONFIG_ARCH_QCOM)        += sdx75-idp.dtb
 dtb-$(CONFIG_ARCH_QCOM)        += shikra-cqm-evk.dtb
+
+shikra-cqm-evk-el2-dtbs        := shikra-cqm-evk.dtb shikra-el2.dtbo
+dtb-$(CONFIG_ARCH_QCOM)        += shikra-cqm-evk-el2.dtb
+
 dtb-$(CONFIG_ARCH_QCOM)        += shikra-cqs-evk.dtb
+
+shikra-cqs-evk-el2-dtbs        := shikra-cqs-evk.dtb shikra-el2.dtbo
+dtb-$(CONFIG_ARCH_QCOM)        += shikra-cqs-evk-el2.dtb
+
 dtb-$(CONFIG_ARCH_QCOM)        += shikra-iqs-evk.dtb
 
+shikra-iqs-evk-el2-dtbs        := shikra-iqs-evk.dtb shikra-el2.dtbo
+dtb-$(CONFIG_ARCH_QCOM)        += shikra-iqs-evk-el2.dtb
+
 shikra-cqm-evk-imx577-camera-dtbs      := shikra-cqm-evk.dtb 
shikra-cqm-cqs-evk-imx577-camera.dtbo
 shikra-cqs-evk-imx577-camera-dtbs      := shikra-cqs-evk.dtb 
shikra-cqm-cqs-evk-imx577-camera.dtbo
 shikra-iqs-evk-imx577-camera-dtbs      := shikra-iqs-evk.dtb 
shikra-iqs-evk-imx577-camera.dtbo
@@ -377,6 +388,7 @@ shikra-iqs-evk-imx577-camera-dtbs   := shikra-iqs-evk.dtb 
shikra-iqs-evk-imx577-ca
 dtb-$(CONFIG_ARCH_QCOM)        += shikra-cqm-evk-imx577-camera.dtb
 dtb-$(CONFIG_ARCH_QCOM)        += shikra-cqs-evk-imx577-camera.dtb
 dtb-$(CONFIG_ARCH_QCOM)        += shikra-iqs-evk-imx577-camera.dtb
+
 dtb-$(CONFIG_ARCH_QCOM)        += sm4250-oneplus-billie2.dtb
 dtb-$(CONFIG_ARCH_QCOM)        += sm4450-qrd.dtb
 dtb-$(CONFIG_ARCH_QCOM)        += sm6115-fxtec-pro1x.dtb
diff --git a/arch/arm64/boot/dts/qcom/shikra-el2.dtso 
b/arch/arm64/boot/dts/qcom/shikra-el2.dtso
new file mode 100644
index 000000000000..d2f3186bd47d
--- /dev/null
+++ b/arch/arm64/boot/dts/qcom/shikra-el2.dtso
@@ -0,0 +1,23 @@
+// SPDX-License-Identifier: BSD-3-Clause
+/*
+ * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
+ *
+ * Shikra specific modifications required to boot in EL2.
+ */
+
+/dts-v1/;
+/plugin/;
+
+&gpu_zap_shader {
+       status = "disabled";
+};
+
+&remoteproc_cdsp {
+       iommus = <&apps_smmu 0x0200 0x0>;
+};
+
+&remoteproc_lpaicp {
+       iommus = <&apps_smmu 0x0360 0x0005>,
+                <&apps_smmu 0x0366 0x0000>,
+                <&apps_smmu 0x00e7 0x0000>;
+};

-- 
2.34.1


Reply via email to