]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
arm64: dts: qcom: lemans; Add EL2 overlay
authorMukesh Ojha <mukesh.ojha@oss.qualcomm.com>
Mon, 5 Jan 2026 13:23:02 +0000 (18:53 +0530)
committerBjorn Andersson <andersson@kernel.org>
Thu, 15 Jan 2026 21:08:20 +0000 (15:08 -0600)
All the Lemans IOT variants boards are using Gunyah hypervisor which
means that, so far, Linux-based OS could only boot in EL1 on those
devices.  However, it is possible for us to boot Linux at EL2 on these
devices [1].

When running under Gunyah, the remote processor firmware IOMMU streams
are controlled by Gunyah. However, without Gunyah, the IOMMU is managed
by the consumer of this DeviceTree. Therefore, describe the firmware
streams for each remote processor.

Add a EL2-specific DT overlay and apply it to Lemans IOT variant
devices to create -el2.dtb for each of them alongside "normal" dtb.

[1]
https://docs.qualcomm.com/bundle/publicresource/topics/80-70020-4/boot-developer-touchpoints.html#uefi

Signed-off-by: Mukesh Ojha <mukesh.ojha@oss.qualcomm.com>
Link: https://lore.kernel.org/r/20260105-kvmrprocv10-v10-14-022e96815380@oss.qualcomm.com
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
arch/arm64/boot/dts/qcom/Makefile
arch/arm64/boot/dts/qcom/lemans-el2.dtso [new file with mode: 0644]

index a5d6f451f85c0031bead9d23d62bbdfff9f36424..f80b5d9cf1e80e4efcd70f14cef4e7d4a1ec48eb 100644 (file)
@@ -39,6 +39,10 @@ lemans-evk-camera-dtbs       := lemans-evk.dtb lemans-evk-camera.dtbo
 
 dtb-$(CONFIG_ARCH_QCOM)        += lemans-evk-camera-csi1-imx577.dtb
 dtb-$(CONFIG_ARCH_QCOM)        += lemans-evk-camera.dtb
+
+lemans-evk-el2-dtbs := lemans-evk.dtb lemans-el2.dtbo
+
+dtb-$(CONFIG_ARCH_QCOM)        += lemans-evk-el2.dtb
 dtb-$(CONFIG_ARCH_QCOM)        += milos-fairphone-fp6.dtb
 dtb-$(CONFIG_ARCH_QCOM)        += monaco-evk.dtb
 dtb-$(CONFIG_ARCH_QCOM)        += msm8216-samsung-fortuna3g.dtb
@@ -146,6 +150,12 @@ dtb-$(CONFIG_ARCH_QCOM)    += qcs8300-ride.dtb
 dtb-$(CONFIG_ARCH_QCOM)        += qcs8550-aim300-aiot.dtb
 dtb-$(CONFIG_ARCH_QCOM)        += qcs9100-ride.dtb
 dtb-$(CONFIG_ARCH_QCOM)        += qcs9100-ride-r3.dtb
+
+qcs9100-ride-el2-dtbs := qcs9100-ride.dtb lemans-el2.dtbo
+qcs9100-ride-r3-el2-dtbs := qcs9100-ride-r3.dtb lemans-el2.dtbo
+
+dtb-$(CONFIG_ARCH_QCOM)        += qcs9100-ride-el2.dtb
+dtb-$(CONFIG_ARCH_QCOM)        += qcs9100-ride-r3-el2.dtb
 dtb-$(CONFIG_ARCH_QCOM)        += qdu1000-idp.dtb
 dtb-$(CONFIG_ARCH_QCOM)        += qrb2210-arduino-imola.dtb
 dtb-$(CONFIG_ARCH_QCOM)        += qrb2210-rb1.dtb
diff --git a/arch/arm64/boot/dts/qcom/lemans-el2.dtso b/arch/arm64/boot/dts/qcom/lemans-el2.dtso
new file mode 100644 (file)
index 0000000..ed615dc
--- /dev/null
@@ -0,0 +1,35 @@
+// SPDX-License-Identifier: BSD-3-Clause
+/*
+ * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
+ */
+
+/*
+ * Lemans specific modifications required to boot in EL2.
+ */
+
+/dts-v1/;
+/plugin/;
+
+&iris {
+       status = "disabled";
+};
+
+&remoteproc_adsp {
+       iommus = <&apps_smmu 0x3000 0x0>;
+};
+
+&remoteproc_cdsp0 {
+       iommus = <&apps_smmu 0x21c0 0x0400>;
+};
+
+&remoteproc_cdsp1 {
+       iommus = <&apps_smmu 0x29c0 0x0400>;
+};
+
+&remoteproc_gpdsp0 {
+       iommus = <&apps_smmu 0x38a0 0x0>;
+};
+
+&remoteproc_gpdsp1 {
+       iommus = <&apps_smmu 0x38c0 0x0>;
+};