* [PATCH v8] arm64: dts: qcom: kodiak: Add EL2 overlay
@ 2026-06-24 6:39 Mukesh Ojha
2026-06-25 1:14 ` Miaoqing Pan
0 siblings, 1 reply; 9+ messages in thread
From: Mukesh Ojha @ 2026-06-24 6:39 UTC (permalink / raw)
To: Bjorn Andersson, Konrad Dybcio, Rob Herring, Krzysztof Kozlowski,
Conor Dooley
Cc: linux-arm-msm, devicetree, linux-kernel, Mukesh Ojha, Sumit Garg
All the existing variants Kodiak 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 Kodiak IOT variant
devices to create -el2.dtb for each of them alongside "normal" dtb.
Note that modem and media subsystems haven't been supported yet due
to missing dependencies. For GPU to work, zap shader is disabled and
in EL2 mode the kernel owns hardware watchdog which is enabled here.
And for wifi to work wpss copy engine memory need to be mapped for
WPSS firmware to work which is aligning with sc7280 chrome.
[1]
https://docs.qualcomm.com/bundle/publicresource/topics/80-70020-4/boot-developer-touchpoints.html#uefi
Co-developed-by: Sumit Garg <sumit.garg@oss.qualcomm.com>
Signed-off-by: Sumit Garg <sumit.garg@oss.qualcomm.com>
Signed-off-by: Mukesh Ojha <mukesh.ojha@oss.qualcomm.com>
---
Changes in v8: https://lore.kernel.org/lkml/20260522115936.201208-2-sumit.garg@kernel.org/
- Added a wpss copy engine memory similar to chrome for Wifi to work.
- WPSS does not have firmware Stream, so that was removed.
- Added wifi streams similar to chrome for wifi to work.
- Removed this patch from Generic Pas patch series, can be followed
separately.
- Moved Sumit as co-author as part of modification done to the patch
in the past.
- Added some more kodiak's board variants in the makefile.
Changes in v1-v7:
- mpss was disabled and will be enabled once the dependencies patches
get merged.
arch/arm64/boot/dts/qcom/Makefile | 12 ++++++
arch/arm64/boot/dts/qcom/kodiak-el2.dtso | 52 ++++++++++++++++++++++++
arch/arm64/boot/dts/qcom/kodiak.dtsi | 2 +-
3 files changed, 65 insertions(+), 1 deletion(-)
create mode 100644 arch/arm64/boot/dts/qcom/kodiak-el2.dtso
diff --git a/arch/arm64/boot/dts/qcom/Makefile b/arch/arm64/boot/dts/qcom/Makefile
index 6f33c4e2f09c..d2cee1190954 100644
--- a/arch/arm64/boot/dts/qcom/Makefile
+++ b/arch/arm64/boot/dts/qcom/Makefile
@@ -164,7 +164,11 @@ purwa-iot-evk-el2-dtbs := purwa-iot-evk.dtb x1-el2.dtbo
dtb-$(CONFIG_ARCH_QCOM) += purwa-iot-evk-el2.dtb
dtb-$(CONFIG_ARCH_QCOM) += qcm6490-fairphone-fp5.dtb
+
dtb-$(CONFIG_ARCH_QCOM) += qcm6490-idp.dtb
+qcm6490-idp-el2-dtbs := qcm6490-idp.dtb kodiak-el2.dtbo
+dtb-$(CONFIG_ARCH_QCOM) += qcm6490-idp-el2.dtb
+
dtb-$(CONFIG_ARCH_QCOM) += qcm6490-particle-tachyon.dtb
dtb-$(CONFIG_ARCH_QCOM) += qcm6490-shift-otter.dtb
dtb-$(CONFIG_ARCH_QCOM) += qcs404-evb-1000.dtb
@@ -176,12 +180,20 @@ qcs615-ride-el2-dtbs := qcs615-ride.dtb talos-el2.dtbo
dtb-$(CONFIG_ARCH_QCOM) += qcs615-ride-el2.dtb
dtb-$(CONFIG_ARCH_QCOM) += qcs6490-radxa-dragon-q6a.dtb
dtb-$(CONFIG_ARCH_QCOM) += qcs6490-rb3gen2.dtb
+qcs6490-rb3gen2-el2-dtbs := qcs6490-rb3gen2.dtb kodiak-el2.dtbo
+dtb-$(CONFIG_ARCH_QCOM) += qcs6490-rb3gen2-el2.dtb
qcs6490-rb3gen2-vision-mezzanine-dtbs := qcs6490-rb3gen2.dtb qcs6490-rb3gen2-vision-mezzanine.dtbo
qcs6490-rb3gen2-industrial-mezzanine-dtbs := qcs6490-rb3gen2.dtb qcs6490-rb3gen2-industrial-mezzanine.dtbo
dtb-$(CONFIG_ARCH_QCOM) += qcs6490-rb3gen2-industrial-mezzanine.dtb
+qcs6490-rb3gen2-industrial-mezzanine-el2-dtbs := qcs6490-rb3gen2-industrial-mezzanine.dtb kodiak-el2.dtbo
+dtb-$(CONFIG_ARCH_QCOM) += qcs6490-rb3gen2-industrial-mezzanine-el2.dtb
+
dtb-$(CONFIG_ARCH_QCOM) += qcs6490-rb3gen2-vision-mezzanine.dtb
+qcs6490-rb3gen2-vision-mezzanine-el2-dtbs := qcs6490-rb3gen2-vision-mezzanine.dtb kodiak-el2.dtbo
+dtb-$(CONFIG_ARCH_QCOM) += qcs6490-rb3gen2-vision-mezzanine-el2.dtb
+
dtb-$(CONFIG_ARCH_QCOM) += qcs6490-thundercomm-minipc-g1iot.dtb
dtb-$(CONFIG_ARCH_QCOM) += qcs6490-thundercomm-rubikpi3.dtb
dtb-$(CONFIG_ARCH_QCOM) += qcs8300-ride.dtb
diff --git a/arch/arm64/boot/dts/qcom/kodiak-el2.dtso b/arch/arm64/boot/dts/qcom/kodiak-el2.dtso
new file mode 100644
index 000000000000..91e4cda45b49
--- /dev/null
+++ b/arch/arm64/boot/dts/qcom/kodiak-el2.dtso
@@ -0,0 +1,52 @@
+// SPDX-License-Identifier: BSD-3-Clause
+/*
+ * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
+ *
+ * Kodiak specific modifications required to boot in EL2.
+ */
+
+/dts-v1/;
+/plugin/;
+
+&gpu_zap_shader {
+ status = "disabled";
+};
+
+&remoteproc_adsp {
+ iommus = <&apps_smmu 0x1800 0x0>;
+};
+
+&remoteproc_cdsp {
+ iommus = <&apps_smmu 0x11a0 0x0400>;
+};
+
+&remoteproc_mpss {
+ status = "disabled";
+};
+
+&reserved_memory {
+ #address-cells = <2>;
+ #size-cells = <2>;
+
+ wlan_ce_mem: wlan-ce@4cd000 {
+ no-map;
+ reg = <0x0 0x004cd000 0x0 0x1000>;
+ };
+};
+
+&venus {
+ status = "disabled";
+};
+
+&watchdog {
+ status = "okay";
+};
+
+&wifi {
+ memory-region = <&wlan_fw_mem>, <&wlan_ce_mem>;
+ status = "okay";
+
+ wifi-firmware {
+ iommus = <&apps_smmu 0x1c02 0x1>;
+ };
+};
diff --git a/arch/arm64/boot/dts/qcom/kodiak.dtsi b/arch/arm64/boot/dts/qcom/kodiak.dtsi
index fa540d8c2615..2486d15fa2ba 100644
--- a/arch/arm64/boot/dts/qcom/kodiak.dtsi
+++ b/arch/arm64/boot/dts/qcom/kodiak.dtsi
@@ -91,7 +91,7 @@ sleep_clk: sleep-clk {
};
};
- reserved-memory {
+ reserved_memory: reserved-memory {
#address-cells = <2>;
#size-cells = <2>;
ranges;
--
2.53.0
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH v8] arm64: dts: qcom: kodiak: Add EL2 overlay
2026-06-24 6:39 [PATCH v8] arm64: dts: qcom: kodiak: Add EL2 overlay Mukesh Ojha
@ 2026-06-25 1:14 ` Miaoqing Pan
2026-06-25 6:33 ` Mukesh Ojha
2026-06-29 11:36 ` Konrad Dybcio
0 siblings, 2 replies; 9+ messages in thread
From: Miaoqing Pan @ 2026-06-25 1:14 UTC (permalink / raw)
To: Mukesh Ojha, Bjorn Andersson, Konrad Dybcio, Rob Herring,
Krzysztof Kozlowski, Conor Dooley
Cc: linux-arm-msm, devicetree, linux-kernel, Sumit Garg
On 6/24/2026 2:39 PM, Mukesh Ojha wrote:
> All the existing variants Kodiak 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 Kodiak IOT variant
> devices to create -el2.dtb for each of them alongside "normal" dtb.
>
> Note that modem and media subsystems haven't been supported yet due
> to missing dependencies. For GPU to work, zap shader is disabled and
> in EL2 mode the kernel owns hardware watchdog which is enabled here.
> And for wifi to work wpss copy engine memory need to be mapped for
> WPSS firmware to work which is aligning with sc7280 chrome.
>
> [1]
> https://docs.qualcomm.com/bundle/publicresource/topics/80-70020-4/boot-developer-touchpoints.html#uefi
>
> Co-developed-by: Sumit Garg <sumit.garg@oss.qualcomm.com>
> Signed-off-by: Sumit Garg <sumit.garg@oss.qualcomm.com>
> Signed-off-by: Mukesh Ojha <mukesh.ojha@oss.qualcomm.com>
> ---
> Changes in v8: https://lore.kernel.org/lkml/20260522115936.201208-2-sumit.garg@kernel.org/
> - Added a wpss copy engine memory similar to chrome for Wifi to work.
> - WPSS does not have firmware Stream, so that was removed.
> - Added wifi streams similar to chrome for wifi to work.
> - Removed this patch from Generic Pas patch series, can be followed
> separately.
> - Moved Sumit as co-author as part of modification done to the patch
> in the past.
> - Added some more kodiak's board variants in the makefile.
>
> Changes in v1-v7:
> - mpss was disabled and will be enabled once the dependencies patches
> get merged.
>
> arch/arm64/boot/dts/qcom/Makefile | 12 ++++++
> arch/arm64/boot/dts/qcom/kodiak-el2.dtso | 52 ++++++++++++++++++++++++
> arch/arm64/boot/dts/qcom/kodiak.dtsi | 2 +-
> 3 files changed, 65 insertions(+), 1 deletion(-)
> create mode 100644 arch/arm64/boot/dts/qcom/kodiak-el2.dtso
>
> diff --git a/arch/arm64/boot/dts/qcom/Makefile b/arch/arm64/boot/dts/qcom/Makefile
> index 6f33c4e2f09c..d2cee1190954 100644
> --- a/arch/arm64/boot/dts/qcom/Makefile
> +++ b/arch/arm64/boot/dts/qcom/Makefile
> @@ -164,7 +164,11 @@ purwa-iot-evk-el2-dtbs := purwa-iot-evk.dtb x1-el2.dtbo
>
> dtb-$(CONFIG_ARCH_QCOM) += purwa-iot-evk-el2.dtb
> dtb-$(CONFIG_ARCH_QCOM) += qcm6490-fairphone-fp5.dtb
> +
> dtb-$(CONFIG_ARCH_QCOM) += qcm6490-idp.dtb
> +qcm6490-idp-el2-dtbs := qcm6490-idp.dtb kodiak-el2.dtbo
> +dtb-$(CONFIG_ARCH_QCOM) += qcm6490-idp-el2.dtb
> +
> dtb-$(CONFIG_ARCH_QCOM) += qcm6490-particle-tachyon.dtb
> dtb-$(CONFIG_ARCH_QCOM) += qcm6490-shift-otter.dtb
> dtb-$(CONFIG_ARCH_QCOM) += qcs404-evb-1000.dtb
> @@ -176,12 +180,20 @@ qcs615-ride-el2-dtbs := qcs615-ride.dtb talos-el2.dtbo
> dtb-$(CONFIG_ARCH_QCOM) += qcs615-ride-el2.dtb
> dtb-$(CONFIG_ARCH_QCOM) += qcs6490-radxa-dragon-q6a.dtb
> dtb-$(CONFIG_ARCH_QCOM) += qcs6490-rb3gen2.dtb
> +qcs6490-rb3gen2-el2-dtbs := qcs6490-rb3gen2.dtb kodiak-el2.dtbo
> +dtb-$(CONFIG_ARCH_QCOM) += qcs6490-rb3gen2-el2.dtb
>
> qcs6490-rb3gen2-vision-mezzanine-dtbs := qcs6490-rb3gen2.dtb qcs6490-rb3gen2-vision-mezzanine.dtbo
> qcs6490-rb3gen2-industrial-mezzanine-dtbs := qcs6490-rb3gen2.dtb qcs6490-rb3gen2-industrial-mezzanine.dtbo
>
> dtb-$(CONFIG_ARCH_QCOM) += qcs6490-rb3gen2-industrial-mezzanine.dtb
> +qcs6490-rb3gen2-industrial-mezzanine-el2-dtbs := qcs6490-rb3gen2-industrial-mezzanine.dtb kodiak-el2.dtbo
> +dtb-$(CONFIG_ARCH_QCOM) += qcs6490-rb3gen2-industrial-mezzanine-el2.dtb
> +
> dtb-$(CONFIG_ARCH_QCOM) += qcs6490-rb3gen2-vision-mezzanine.dtb
> +qcs6490-rb3gen2-vision-mezzanine-el2-dtbs := qcs6490-rb3gen2-vision-mezzanine.dtb kodiak-el2.dtbo
> +dtb-$(CONFIG_ARCH_QCOM) += qcs6490-rb3gen2-vision-mezzanine-el2.dtb
> +
> dtb-$(CONFIG_ARCH_QCOM) += qcs6490-thundercomm-minipc-g1iot.dtb
> dtb-$(CONFIG_ARCH_QCOM) += qcs6490-thundercomm-rubikpi3.dtb
> dtb-$(CONFIG_ARCH_QCOM) += qcs8300-ride.dtb
> diff --git a/arch/arm64/boot/dts/qcom/kodiak-el2.dtso b/arch/arm64/boot/dts/qcom/kodiak-el2.dtso
> new file mode 100644
> index 000000000000..91e4cda45b49
> --- /dev/null
> +++ b/arch/arm64/boot/dts/qcom/kodiak-el2.dtso
> @@ -0,0 +1,52 @@
> +// SPDX-License-Identifier: BSD-3-Clause
> +/*
> + * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
> + *
> + * Kodiak specific modifications required to boot in EL2.
> + */
> +
> +/dts-v1/;
> +/plugin/;
> +
> +&gpu_zap_shader {
> + status = "disabled";
> +};
> +
> +&remoteproc_adsp {
> + iommus = <&apps_smmu 0x1800 0x0>;
> +};
> +
> +&remoteproc_cdsp {
> + iommus = <&apps_smmu 0x11a0 0x0400>;
> +};
> +
> +&remoteproc_mpss {
> + status = "disabled";
> +};
> +
> +&reserved_memory {
> + #address-cells = <2>;
> + #size-cells = <2>;
> +
> + wlan_ce_mem: wlan-ce@4cd000 {
> + no-map;
> + reg = <0x0 0x004cd000 0x0 0x1000>;
> + };
> +};
> +
Is it necessary to redefine |wlan_ce_mem|? Can we consider updating
|qcs6490-rb3gen2.dts|?
I have verified that with the following changes, *NON-KVM works fine*,
and |wlan_ce_mem| is only used by the WCN6750 firmware.
--- a/arch/arm64/boot/dts/qcom/qcs6490-rb3gen2.dts
+++ b/arch/arm64/boot/dts/qcom/qcs6490-rb3gen2.dts
@@ -26,7 +26,6 @@
/delete-node/ &adsp_mem;
/delete-node/ &cdsp_mem;
/delete-node/ &video_mem;
-/delete-node/ &wlan_ce_mem;
/delete-node/ &wpss_mem;
/delete-node/ &xbl_mem;
@@ -1686,7 +1685,6 @@ &venus {
};
&wifi {
- memory-region = <&wlan_fw_mem>;
qcom,calibration-variant = "Qualcomm_rb3gen2";
> +&venus {
> + status = "disabled";
> +};
> +
> +&watchdog {
> + status = "okay";
> +};
> +
> +&wifi {
> + memory-region = <&wlan_fw_mem>, <&wlan_ce_mem>;
> + status = "okay";
> +
> + wifi-firmware {
> + iommus = <&apps_smmu 0x1c02 0x1>;
> + };
> +};
> diff --git a/arch/arm64/boot/dts/qcom/kodiak.dtsi b/arch/arm64/boot/dts/qcom/kodiak.dtsi
> index fa540d8c2615..2486d15fa2ba 100644
> --- a/arch/arm64/boot/dts/qcom/kodiak.dtsi
> +++ b/arch/arm64/boot/dts/qcom/kodiak.dtsi
> @@ -91,7 +91,7 @@ sleep_clk: sleep-clk {
> };
> };
>
> - reserved-memory {
> + reserved_memory: reserved-memory {
> #address-cells = <2>;
> #size-cells = <2>;
> ranges;
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH v8] arm64: dts: qcom: kodiak: Add EL2 overlay
2026-06-25 1:14 ` Miaoqing Pan
@ 2026-06-25 6:33 ` Mukesh Ojha
2026-06-29 11:36 ` Konrad Dybcio
1 sibling, 0 replies; 9+ messages in thread
From: Mukesh Ojha @ 2026-06-25 6:33 UTC (permalink / raw)
To: Miaoqing Pan
Cc: Bjorn Andersson, Konrad Dybcio, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, linux-arm-msm, devicetree, linux-kernel,
Sumit Garg
On Thu, Jun 25, 2026 at 09:14:41AM +0800, Miaoqing Pan wrote:
>
>
> On 6/24/2026 2:39 PM, Mukesh Ojha wrote:
> > All the existing variants Kodiak 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 Kodiak IOT variant
> > devices to create -el2.dtb for each of them alongside "normal" dtb.
> >
> > Note that modem and media subsystems haven't been supported yet due
> > to missing dependencies. For GPU to work, zap shader is disabled and
> > in EL2 mode the kernel owns hardware watchdog which is enabled here.
> > And for wifi to work wpss copy engine memory need to be mapped for
> > WPSS firmware to work which is aligning with sc7280 chrome.
> >
> > [1]
> > https://docs.qualcomm.com/bundle/publicresource/topics/80-70020-4/boot-developer-touchpoints.html#uefi
> >
> > Co-developed-by: Sumit Garg <sumit.garg@oss.qualcomm.com>
> > Signed-off-by: Sumit Garg <sumit.garg@oss.qualcomm.com>
> > Signed-off-by: Mukesh Ojha <mukesh.ojha@oss.qualcomm.com>
> > ---
> > Changes in v8: https://lore.kernel.org/lkml/20260522115936.201208-2-sumit.garg@kernel.org/
> > - Added a wpss copy engine memory similar to chrome for Wifi to work.
> > - WPSS does not have firmware Stream, so that was removed.
> > - Added wifi streams similar to chrome for wifi to work.
> > - Removed this patch from Generic Pas patch series, can be followed
> > separately.
> > - Moved Sumit as co-author as part of modification done to the patch
> > in the past.
> > - Added some more kodiak's board variants in the makefile.
> >
> > Changes in v1-v7:
> > - mpss was disabled and will be enabled once the dependencies patches
> > get merged.
> >
> > arch/arm64/boot/dts/qcom/Makefile | 12 ++++++
> > arch/arm64/boot/dts/qcom/kodiak-el2.dtso | 52 ++++++++++++++++++++++++
> > arch/arm64/boot/dts/qcom/kodiak.dtsi | 2 +-
> > 3 files changed, 65 insertions(+), 1 deletion(-)
> > create mode 100644 arch/arm64/boot/dts/qcom/kodiak-el2.dtso
> >
> > diff --git a/arch/arm64/boot/dts/qcom/Makefile b/arch/arm64/boot/dts/qcom/Makefile
> > index 6f33c4e2f09c..d2cee1190954 100644
> > --- a/arch/arm64/boot/dts/qcom/Makefile
> > +++ b/arch/arm64/boot/dts/qcom/Makefile
> > @@ -164,7 +164,11 @@ purwa-iot-evk-el2-dtbs := purwa-iot-evk.dtb x1-el2.dtbo
> > dtb-$(CONFIG_ARCH_QCOM) += purwa-iot-evk-el2.dtb
> > dtb-$(CONFIG_ARCH_QCOM) += qcm6490-fairphone-fp5.dtb
> > +
> > dtb-$(CONFIG_ARCH_QCOM) += qcm6490-idp.dtb
> > +qcm6490-idp-el2-dtbs := qcm6490-idp.dtb kodiak-el2.dtbo
> > +dtb-$(CONFIG_ARCH_QCOM) += qcm6490-idp-el2.dtb
> > +
> > dtb-$(CONFIG_ARCH_QCOM) += qcm6490-particle-tachyon.dtb
> > dtb-$(CONFIG_ARCH_QCOM) += qcm6490-shift-otter.dtb
> > dtb-$(CONFIG_ARCH_QCOM) += qcs404-evb-1000.dtb
> > @@ -176,12 +180,20 @@ qcs615-ride-el2-dtbs := qcs615-ride.dtb talos-el2.dtbo
> > dtb-$(CONFIG_ARCH_QCOM) += qcs615-ride-el2.dtb
> > dtb-$(CONFIG_ARCH_QCOM) += qcs6490-radxa-dragon-q6a.dtb
> > dtb-$(CONFIG_ARCH_QCOM) += qcs6490-rb3gen2.dtb
> > +qcs6490-rb3gen2-el2-dtbs := qcs6490-rb3gen2.dtb kodiak-el2.dtbo
> > +dtb-$(CONFIG_ARCH_QCOM) += qcs6490-rb3gen2-el2.dtb
> > qcs6490-rb3gen2-vision-mezzanine-dtbs := qcs6490-rb3gen2.dtb qcs6490-rb3gen2-vision-mezzanine.dtbo
> > qcs6490-rb3gen2-industrial-mezzanine-dtbs := qcs6490-rb3gen2.dtb qcs6490-rb3gen2-industrial-mezzanine.dtbo
> > dtb-$(CONFIG_ARCH_QCOM) += qcs6490-rb3gen2-industrial-mezzanine.dtb
> > +qcs6490-rb3gen2-industrial-mezzanine-el2-dtbs := qcs6490-rb3gen2-industrial-mezzanine.dtb kodiak-el2.dtbo
> > +dtb-$(CONFIG_ARCH_QCOM) += qcs6490-rb3gen2-industrial-mezzanine-el2.dtb
> > +
> > dtb-$(CONFIG_ARCH_QCOM) += qcs6490-rb3gen2-vision-mezzanine.dtb
> > +qcs6490-rb3gen2-vision-mezzanine-el2-dtbs := qcs6490-rb3gen2-vision-mezzanine.dtb kodiak-el2.dtbo
> > +dtb-$(CONFIG_ARCH_QCOM) += qcs6490-rb3gen2-vision-mezzanine-el2.dtb
> > +
> > dtb-$(CONFIG_ARCH_QCOM) += qcs6490-thundercomm-minipc-g1iot.dtb
> > dtb-$(CONFIG_ARCH_QCOM) += qcs6490-thundercomm-rubikpi3.dtb
> > dtb-$(CONFIG_ARCH_QCOM) += qcs8300-ride.dtb
> > diff --git a/arch/arm64/boot/dts/qcom/kodiak-el2.dtso b/arch/arm64/boot/dts/qcom/kodiak-el2.dtso
> > new file mode 100644
> > index 000000000000..91e4cda45b49
> > --- /dev/null
> > +++ b/arch/arm64/boot/dts/qcom/kodiak-el2.dtso
> > @@ -0,0 +1,52 @@
> > +// SPDX-License-Identifier: BSD-3-Clause
> > +/*
> > + * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
> > + *
> > + * Kodiak specific modifications required to boot in EL2.
> > + */
> > +
> > +/dts-v1/;
> > +/plugin/;
> > +
> > +&gpu_zap_shader {
> > + status = "disabled";
> > +};
> > +
> > +&remoteproc_adsp {
> > + iommus = <&apps_smmu 0x1800 0x0>;
> > +};
> > +
> > +&remoteproc_cdsp {
> > + iommus = <&apps_smmu 0x11a0 0x0400>;
> > +};
> > +
> > +&remoteproc_mpss {
> > + status = "disabled";
> > +};
> > +
> > +&reserved_memory {
> > + #address-cells = <2>;
> > + #size-cells = <2>;
> > +
> > + wlan_ce_mem: wlan-ce@4cd000 {
> > + no-map;
> > + reg = <0x0 0x004cd000 0x0 0x1000>;
> > + };
> > +};
> > +
> Is it necessary to redefine |wlan_ce_mem|? Can we consider updating
> |qcs6490-rb3gen2.dts|?
> I have verified that with the following changes, *NON-KVM works fine*, and
> |wlan_ce_mem| is only used by the WCN6750 firmware.
Thanks for the review.
I was unsure about it, hence kept it as how Chrome kept it; I am
fine to keep as suggested as it seems to me these regions were
only needed for wifi-firmware mentioned, and we should not have deleted
it for qcs6490-rb3gen2.dts and idp too, will do the change that
will make this much cleaner.
>
> --- a/arch/arm64/boot/dts/qcom/qcs6490-rb3gen2.dts
> +++ b/arch/arm64/boot/dts/qcom/qcs6490-rb3gen2.dts
> @@ -26,7 +26,6 @@
> /delete-node/ &adsp_mem;
> /delete-node/ &cdsp_mem;
> /delete-node/ &video_mem;
> -/delete-node/ &wlan_ce_mem;
> /delete-node/ &wpss_mem;
> /delete-node/ &xbl_mem;
>
> @@ -1686,7 +1685,6 @@ &venus {
> };
>
> &wifi {
> - memory-region = <&wlan_fw_mem>;
> qcom,calibration-variant = "Qualcomm_rb3gen2";
>
>
> > +&venus {
> > + status = "disabled";
> > +};
> > +
> > +&watchdog {
> > + status = "okay";
> > +};
> > +
> > +&wifi {
> > + memory-region = <&wlan_fw_mem>, <&wlan_ce_mem>;
> > + status = "okay";
> > +
> > + wifi-firmware {
> > + iommus = <&apps_smmu 0x1c02 0x1>;
> > + };
> > +};
> > diff --git a/arch/arm64/boot/dts/qcom/kodiak.dtsi b/arch/arm64/boot/dts/qcom/kodiak.dtsi
> > index fa540d8c2615..2486d15fa2ba 100644
> > --- a/arch/arm64/boot/dts/qcom/kodiak.dtsi
> > +++ b/arch/arm64/boot/dts/qcom/kodiak.dtsi
> > @@ -91,7 +91,7 @@ sleep_clk: sleep-clk {
> > };
> > };
> > - reserved-memory {
> > + reserved_memory: reserved-memory {
> > #address-cells = <2>;
> > #size-cells = <2>;
> > ranges;
>
--
-Mukesh Ojha
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH v8] arm64: dts: qcom: kodiak: Add EL2 overlay
2026-06-25 1:14 ` Miaoqing Pan
2026-06-25 6:33 ` Mukesh Ojha
@ 2026-06-29 11:36 ` Konrad Dybcio
2026-06-29 12:22 ` Mukesh Ojha
1 sibling, 1 reply; 9+ messages in thread
From: Konrad Dybcio @ 2026-06-29 11:36 UTC (permalink / raw)
To: Miaoqing Pan, Mukesh Ojha, Bjorn Andersson, Konrad Dybcio,
Rob Herring, Krzysztof Kozlowski, Conor Dooley
Cc: linux-arm-msm, devicetree, linux-kernel, Sumit Garg
On 6/25/26 3:14 AM, Miaoqing Pan wrote:
>
>
> On 6/24/2026 2:39 PM, Mukesh Ojha wrote:
>> All the existing variants Kodiak 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].
[...]
> Is it necessary to redefine |wlan_ce_mem|? Can we consider updating |qcs6490-rb3gen2.dts|?
> I have verified that with the following changes, *NON-KVM works fine*, and |wlan_ce_mem| is only used by the WCN6750 firmware.
Is there a good reason non-chrome devices never defined that region in
the first place?
My guess-understanding is that UEFI allocates a region for it on
Qualcomm platforms already, and if unspecified, we reserve memory
again, wherever the allocator decides to
is that roughly right?
Konrad
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH v8] arm64: dts: qcom: kodiak: Add EL2 overlay
2026-06-29 11:36 ` Konrad Dybcio
@ 2026-06-29 12:22 ` Mukesh Ojha
2026-06-29 14:08 ` Konrad Dybcio
0 siblings, 1 reply; 9+ messages in thread
From: Mukesh Ojha @ 2026-06-29 12:22 UTC (permalink / raw)
To: Konrad Dybcio
Cc: Miaoqing Pan, Bjorn Andersson, Konrad Dybcio, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, linux-arm-msm, devicetree,
linux-kernel, Sumit Garg
On Mon, Jun 29, 2026 at 01:36:34PM +0200, Konrad Dybcio wrote:
> On 6/25/26 3:14 AM, Miaoqing Pan wrote:
> >
> >
> > On 6/24/2026 2:39 PM, Mukesh Ojha wrote:
> >> All the existing variants Kodiak 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].
>
> [...]
>
> > Is it necessary to redefine |wlan_ce_mem|? Can we consider updating |qcs6490-rb3gen2.dts|?
> > I have verified that with the following changes, *NON-KVM works fine*, and |wlan_ce_mem| is only used by the WCN6750 firmware.
>
> Is there a good reason non-chrome devices never defined that region in
> the first place?
This region is needed by WPSS and non-Chrome (Gunyah) has IOMMU
control, maps it for WPSS during boot up while Linux at EL2 needs
to map it for WPSS in Gunyah's absence.
>
> My guess-understanding is that UEFI allocates a region for it on
> Qualcomm platforms already, and if unspecified, we reserve memory
> again, wherever the allocator decides to
>
> is that roughly right?
>
> Konrad
--
-Mukesh Ojha
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH v8] arm64: dts: qcom: kodiak: Add EL2 overlay
2026-06-29 12:22 ` Mukesh Ojha
@ 2026-06-29 14:08 ` Konrad Dybcio
2026-06-30 6:30 ` Mukesh Ojha
0 siblings, 1 reply; 9+ messages in thread
From: Konrad Dybcio @ 2026-06-29 14:08 UTC (permalink / raw)
To: Mukesh Ojha
Cc: Miaoqing Pan, Bjorn Andersson, Konrad Dybcio, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, linux-arm-msm, devicetree,
linux-kernel, Sumit Garg
On 6/29/26 2:22 PM, Mukesh Ojha wrote:
> On Mon, Jun 29, 2026 at 01:36:34PM +0200, Konrad Dybcio wrote:
>> On 6/25/26 3:14 AM, Miaoqing Pan wrote:
>>>
>>>
>>> On 6/24/2026 2:39 PM, Mukesh Ojha wrote:
>>>> All the existing variants Kodiak 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].
>>
>> [...]
>>
>>> Is it necessary to redefine |wlan_ce_mem|? Can we consider updating |qcs6490-rb3gen2.dts|?
>>> I have verified that with the following changes, *NON-KVM works fine*, and |wlan_ce_mem| is only used by the WCN6750 firmware.
>>
>> Is there a good reason non-chrome devices never defined that region in
>> the first place?
>
> This region is needed by WPSS and non-Chrome (Gunyah) has IOMMU
> control, maps it for WPSS during boot up while Linux at EL2 needs
> to map it for WPSS in Gunyah's absence.
Right, I'm asking about it usefulness on devices *with* Gunyah
Konrad
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH v8] arm64: dts: qcom: kodiak: Add EL2 overlay
2026-06-29 14:08 ` Konrad Dybcio
@ 2026-06-30 6:30 ` Mukesh Ojha
2026-07-01 12:26 ` Konrad Dybcio
0 siblings, 1 reply; 9+ messages in thread
From: Mukesh Ojha @ 2026-06-30 6:30 UTC (permalink / raw)
To: Konrad Dybcio
Cc: Miaoqing Pan, Bjorn Andersson, Konrad Dybcio, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, linux-arm-msm, devicetree,
linux-kernel, Sumit Garg
On Mon, Jun 29, 2026 at 04:08:26PM +0200, Konrad Dybcio wrote:
> On 6/29/26 2:22 PM, Mukesh Ojha wrote:
> > On Mon, Jun 29, 2026 at 01:36:34PM +0200, Konrad Dybcio wrote:
> >> On 6/25/26 3:14 AM, Miaoqing Pan wrote:
> >>>
> >>>
> >>> On 6/24/2026 2:39 PM, Mukesh Ojha wrote:
> >>>> All the existing variants Kodiak 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].
> >>
> >> [...]
> >>
> >>> Is it necessary to redefine |wlan_ce_mem|? Can we consider updating |qcs6490-rb3gen2.dts|?
> >>> I have verified that with the following changes, *NON-KVM works fine*, and |wlan_ce_mem| is only used by the WCN6750 firmware.
> >>
> >> Is there a good reason non-chrome devices never defined that region in
> >> the first place?
> >
> > This region is needed by WPSS and non-Chrome (Gunyah) has IOMMU
> > control, maps it for WPSS during boot up while Linux at EL2 needs
> > to map it for WPSS in Gunyah's absence.
>
> Right, I'm asking about it usefulness on devices *with* Gunyah
Ideally, it does not need to be mentioned in the OS device tree when
Gunyah is present as there is no user in OS..
>
> Konrad
--
-Mukesh Ojha
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH v8] arm64: dts: qcom: kodiak: Add EL2 overlay
2026-06-30 6:30 ` Mukesh Ojha
@ 2026-07-01 12:26 ` Konrad Dybcio
2026-07-01 12:38 ` Mukesh Ojha
0 siblings, 1 reply; 9+ messages in thread
From: Konrad Dybcio @ 2026-07-01 12:26 UTC (permalink / raw)
To: Mukesh Ojha
Cc: Miaoqing Pan, Bjorn Andersson, Konrad Dybcio, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, linux-arm-msm, devicetree,
linux-kernel, Sumit Garg
On 6/30/26 8:30 AM, Mukesh Ojha wrote:
> On Mon, Jun 29, 2026 at 04:08:26PM +0200, Konrad Dybcio wrote:
>> On 6/29/26 2:22 PM, Mukesh Ojha wrote:
>>> On Mon, Jun 29, 2026 at 01:36:34PM +0200, Konrad Dybcio wrote:
>>>> On 6/25/26 3:14 AM, Miaoqing Pan wrote:
>>>>>
>>>>>
>>>>> On 6/24/2026 2:39 PM, Mukesh Ojha wrote:
>>>>>> All the existing variants Kodiak 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].
>>>>
>>>> [...]
>>>>
>>>>> Is it necessary to redefine |wlan_ce_mem|? Can we consider updating |qcs6490-rb3gen2.dts|?
>>>>> I have verified that with the following changes, *NON-KVM works fine*, and |wlan_ce_mem| is only used by the WCN6750 firmware.
>>>>
>>>> Is there a good reason non-chrome devices never defined that region in
>>>> the first place?
>>>
>>> This region is needed by WPSS and non-Chrome (Gunyah) has IOMMU
>>> control, maps it for WPSS during boot up while Linux at EL2 needs
>>> to map it for WPSS in Gunyah's absence.
>>
>> Right, I'm asking about it usefulness on devices *with* Gunyah
>
> Ideally, it does not need to be mentioned in the OS device tree when
> Gunyah is present as there is no user in OS..
But it's also reserved (in the UEFI map), right?
Konrad
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH v8] arm64: dts: qcom: kodiak: Add EL2 overlay
2026-07-01 12:26 ` Konrad Dybcio
@ 2026-07-01 12:38 ` Mukesh Ojha
0 siblings, 0 replies; 9+ messages in thread
From: Mukesh Ojha @ 2026-07-01 12:38 UTC (permalink / raw)
To: Konrad Dybcio
Cc: Miaoqing Pan, Bjorn Andersson, Konrad Dybcio, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, linux-arm-msm, devicetree,
linux-kernel, Sumit Garg
On Wed, Jul 01, 2026 at 02:26:11PM +0200, Konrad Dybcio wrote:
> On 6/30/26 8:30 AM, Mukesh Ojha wrote:
> > On Mon, Jun 29, 2026 at 04:08:26PM +0200, Konrad Dybcio wrote:
> >> On 6/29/26 2:22 PM, Mukesh Ojha wrote:
> >>> On Mon, Jun 29, 2026 at 01:36:34PM +0200, Konrad Dybcio wrote:
> >>>> On 6/25/26 3:14 AM, Miaoqing Pan wrote:
> >>>>>
> >>>>>
> >>>>> On 6/24/2026 2:39 PM, Mukesh Ojha wrote:
> >>>>>> All the existing variants Kodiak 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].
> >>>>
> >>>> [...]
> >>>>
> >>>>> Is it necessary to redefine |wlan_ce_mem|? Can we consider updating |qcs6490-rb3gen2.dts|?
> >>>>> I have verified that with the following changes, *NON-KVM works fine*, and |wlan_ce_mem| is only used by the WCN6750 firmware.
> >>>>
> >>>> Is there a good reason non-chrome devices never defined that region in
> >>>> the first place?
> >>>
> >>> This region is needed by WPSS and non-Chrome (Gunyah) has IOMMU
> >>> control, maps it for WPSS during boot up while Linux at EL2 needs
> >>> to map it for WPSS in Gunyah's absence.
> >>
> >> Right, I'm asking about it usefulness on devices *with* Gunyah
> >
> > Ideally, it does not need to be mentioned in the OS device tree when
> > Gunyah is present as there is no user in OS..
>
> But it's also reserved (in the UEFI map), right?
This is device memory and not a normal memory.
--
-Mukesh Ojha
^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2026-07-01 12:39 UTC | newest]
Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-06-24 6:39 [PATCH v8] arm64: dts: qcom: kodiak: Add EL2 overlay Mukesh Ojha
2026-06-25 1:14 ` Miaoqing Pan
2026-06-25 6:33 ` Mukesh Ojha
2026-06-29 11:36 ` Konrad Dybcio
2026-06-29 12:22 ` Mukesh Ojha
2026-06-29 14:08 ` Konrad Dybcio
2026-06-30 6:30 ` Mukesh Ojha
2026-07-01 12:26 ` Konrad Dybcio
2026-07-01 12:38 ` Mukesh Ojha
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox