* [PATCH v6 1/5] dt-bindings: arm: qcom: Document Kalambo SoC and board
2026-08-10 8:54 [PATCH v6 0/5] arm64: dts: qcom: Add Kalambo SoC and CRD Gopikrishna Garmidi
@ 2026-08-10 8:54 ` Gopikrishna Garmidi
2026-08-10 8:54 ` [PATCH v6 2/5] arm64: dts: qcom: Add Kalambo SoC Gopikrishna Garmidi
` (3 subsequent siblings)
4 siblings, 0 replies; 7+ messages in thread
From: Gopikrishna Garmidi @ 2026-08-10 8:54 UTC (permalink / raw)
To: Bjorn Andersson, Konrad Dybcio, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Sibi Sankar, Pankaj Patil, Qiang Yu
Cc: Rajendra Nayak, linux-arm-msm, devicetree, linux-kernel,
Krzysztof Kozlowski, Gopikrishna Garmidi
Qualcomm Kalambo is a derivative of the Mahua SoC with CPU cluster 0
removed, leaving it with just cluster 1. Document the compatible strings
for the Kalambo SoC and the Compute Reference Device (CRD) board based
on it.
Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com>
Signed-off-by: Gopikrishna Garmidi <gopikrishna.garmidi@oss.qualcomm.com>
---
Documentation/devicetree/bindings/arm/qcom.yaml | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/Documentation/devicetree/bindings/arm/qcom.yaml b/Documentation/devicetree/bindings/arm/qcom.yaml
index ff8a35df7862..763f5e55d3f9 100644
--- a/Documentation/devicetree/bindings/arm/qcom.yaml
+++ b/Documentation/devicetree/bindings/arm/qcom.yaml
@@ -175,6 +175,11 @@ properties:
- qcom,kaanapali-qrd
- const: qcom,kaanapali
+ - items:
+ - enum:
+ - qcom,kalambo-crd
+ - const: qcom,kalambo
+
- items:
- enum:
- qcom,mahua-crd
--
2.34.1
^ permalink raw reply related [flat|nested] 7+ messages in thread* [PATCH v6 2/5] arm64: dts: qcom: Add Kalambo SoC
2026-08-10 8:54 [PATCH v6 0/5] arm64: dts: qcom: Add Kalambo SoC and CRD Gopikrishna Garmidi
2026-08-10 8:54 ` [PATCH v6 1/5] dt-bindings: arm: qcom: Document Kalambo SoC and board Gopikrishna Garmidi
@ 2026-08-10 8:54 ` Gopikrishna Garmidi
2026-08-10 9:04 ` sashiko-bot
2026-08-10 8:54 ` [PATCH v6 3/5] arm64: dts: qcom: Add Kalambo CRD Gopikrishna Garmidi
` (2 subsequent siblings)
4 siblings, 1 reply; 7+ messages in thread
From: Gopikrishna Garmidi @ 2026-08-10 8:54 UTC (permalink / raw)
To: Bjorn Andersson, Konrad Dybcio, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Sibi Sankar, Pankaj Patil, Qiang Yu
Cc: Rajendra Nayak, linux-arm-msm, devicetree, linux-kernel,
Abel Vesa, Gopikrishna Garmidi
Introduce support for the Qualcomm Kalambo SoC. It is derived from Mahua
with CPU cluster 0 (cpu0-cpu5) removed, leaving only cluster 1
(cpu6-cpu11). The surviving cluster is re-added in the cpu-map as
cluster0, since the kernel stops scanning at the first missing clusterN
index. cpu6-cpu11 are reassigned to SCMI performance domain 0, as domain
1 is no longer present.
Kalambo uses PDP1 for SCMI transport. The tx shmem (lpri1) sits at
offset 0x200 within imem, pushing the tx region end to 0x380, so the
imem size is overridden accordingly. The rx shmem (lpri0) remains at
offset 0x0. The PDP mailbox registers are overridden to match the
Kalambo SCP firmware.
Kalambo's PDC input mux differs from Glymur. Pins 109 and 110 carry
tsens6 and tsens7 alarms, which are absent on Kalambo, and pins 134,
138, 156, 158, 172, 181 and 202 carry gp_irq_hvm inputs with nothing
wired to them instead of wakeup GPIOs. Override the PDC ranges to
leave those pins unmapped.
Add labels to the cpus and cpu-map nodes in glymur.dtsi to allow derived
SoCs to delete and redefine the cpu-map entirely.
Reviewed-by: Abel Vesa <abel.vesa@oss.qualcomm.com>
Co-developed-by: Sibi Sankar <sibi.sankar@oss.qualcomm.com>
Signed-off-by: Sibi Sankar <sibi.sankar@oss.qualcomm.com>
Signed-off-by: Gopikrishna Garmidi <gopikrishna.garmidi@oss.qualcomm.com>
---
arch/arm64/boot/dts/qcom/glymur.dtsi | 4 +-
arch/arm64/boot/dts/qcom/kalambo.dtsi | 119 ++++++++++++++++++++++++++++++++++
2 files changed, 121 insertions(+), 2 deletions(-)
diff --git a/arch/arm64/boot/dts/qcom/glymur.dtsi b/arch/arm64/boot/dts/qcom/glymur.dtsi
index f04058d2e089..11f20751e7b4 100644
--- a/arch/arm64/boot/dts/qcom/glymur.dtsi
+++ b/arch/arm64/boot/dts/qcom/glymur.dtsi
@@ -36,7 +36,7 @@ / {
#address-cells = <2>;
#size-cells = <2>;
- cpus {
+ cpus: cpus {
#address-cells = <2>;
#size-cells = <0>;
@@ -274,7 +274,7 @@ cpu17: cpu@20500 {
#cooling-cells = <2>;
};
- cpu-map {
+ cpu_map: cpu-map {
cluster0 {
core0 {
cpu = <&cpu0>;
diff --git a/arch/arm64/boot/dts/qcom/kalambo.dtsi b/arch/arm64/boot/dts/qcom/kalambo.dtsi
new file mode 100644
index 000000000000..8e2077d9d0a8
--- /dev/null
+++ b/arch/arm64/boot/dts/qcom/kalambo.dtsi
@@ -0,0 +1,119 @@
+// SPDX-License-Identifier: BSD-3-Clause
+/*
+ * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
+ */
+
+#include "mahua.dtsi"
+
+/delete-node/ &cluster0_pd;
+/delete-node/ &cpu_map;
+/delete-node/ &cpu0;
+/delete-node/ &cpu1;
+/delete-node/ &cpu2;
+/delete-node/ &cpu3;
+/delete-node/ &cpu4;
+/delete-node/ &cpu5;
+/delete-node/ &cpu_pd0;
+/delete-node/ &cpu_pd1;
+/delete-node/ &cpu_pd2;
+/delete-node/ &cpu_pd3;
+/delete-node/ &cpu_pd4;
+/delete-node/ &cpu_pd5;
+/delete-node/ &cpu_scp_lpri1;
+
+&cpu6 {
+ power-domains = <&cpu_pd6>, <&scmi_perf 0>;
+ power-domain-names = "psci", "perf";
+};
+
+&cpu7 {
+ power-domains = <&cpu_pd7>, <&scmi_perf 0>;
+ power-domain-names = "psci", "perf";
+};
+
+&cpu8 {
+ power-domains = <&cpu_pd8>, <&scmi_perf 0>;
+ power-domain-names = "psci", "perf";
+};
+
+&cpu9 {
+ power-domains = <&cpu_pd9>, <&scmi_perf 0>;
+ power-domain-names = "psci", "perf";
+};
+
+&cpu10 {
+ power-domains = <&cpu_pd10>, <&scmi_perf 0>;
+ power-domain-names = "psci", "perf";
+};
+
+&cpu11 {
+ power-domains = <&cpu_pd11>, <&scmi_perf 0>;
+ power-domain-names = "psci", "perf";
+};
+
+&cpus {
+ cpu-map {
+ cluster0 {
+ core0 {
+ cpu = <&cpu6>;
+ };
+
+ core1 {
+ cpu = <&cpu7>;
+ };
+
+ core2 {
+ cpu = <&cpu8>;
+ };
+
+ core3 {
+ cpu = <&cpu9>;
+ };
+
+ core4 {
+ cpu = <&cpu10>;
+ };
+
+ core5 {
+ cpu = <&cpu11>;
+ };
+ };
+ };
+};
+
+&imem {
+ reg = <0x0 0x81e08600 0x0 0x380>;
+ ranges = <0x0 0x0 0x81e08600 0x380>;
+
+ cpu_scp_lpri1: scp-sram-section@200 {
+ compatible = "arm,scmi-shmem";
+ reg = <0x200 0x180>;
+ };
+};
+
+&pdc {
+ qcom,pdc-ranges = <0 745 38>,
+ <40 785 11>,
+ <51 527 4>,
+ <57 533 10>,
+ <70 546 4>,
+ <75 551 18>,
+ <108 619 1>,
+ <111 622 19>,
+ <130 717 4>,
+ <135 722 3>,
+ <139 726 3>,
+ <142 251 5>,
+ <147 796 9>,
+ <157 806 1>,
+ <159 808 4>,
+ <171 4104 1>,
+ <173 4106 8>,
+ <182 4115 20>,
+ <203 4136 4>;
+};
+
+&pdp0_mbox {
+ reg = <0x0 0x17610000 0x0 0x8000>,
+ <0x0 0x1a980000 0x0 0x8000>;
+};
--
2.34.1
^ permalink raw reply related [flat|nested] 7+ messages in thread* Re: [PATCH v6 2/5] arm64: dts: qcom: Add Kalambo SoC
2026-08-10 8:54 ` [PATCH v6 2/5] arm64: dts: qcom: Add Kalambo SoC Gopikrishna Garmidi
@ 2026-08-10 9:04 ` sashiko-bot
0 siblings, 0 replies; 7+ messages in thread
From: sashiko-bot @ 2026-08-10 9:04 UTC (permalink / raw)
To: Gopikrishna Garmidi; +Cc: robh, conor+dt, devicetree
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [High] The `bwmon_cluster0` bandwidth monitor PMU node is not deleted for the Kalambo SoC, despite its corresponding CPU cluster being removed.
--
--- Patch [2]: [PATCH v6 2/5] arm64: dts: qcom: Add Kalambo SoC ---
commit 5b1921ede3b67f6a0faacd0ff5d06c244a23debf
Author: Gopikrishna Garmidi <gopikrishna.garmidi@oss.qualcomm.com>
arm64: dts: qcom: Add Kalambo SoC
Introduces support for the Qualcomm Kalambo SoC, which is derived from
the Mahua SoC. This removes CPU cluster 0, reassigns the surviving
cluster 1 as cluster 0, and adjusts SCMI transport regions and PDC
input pins.
> diff --git a/arch/arm64/boot/dts/qcom/kalambo.dtsi b/arch/arm64/boot/dts/qcom/kalambo.dtsi
> new file mode 100644
> --- /dev/null
> +++ b/arch/arm64/boot/dts/qcom/kalambo.dtsi
> @@ -0,0 +1,119 @@
> +// SPDX-License-Identifier: BSD-3-Clause
> +/*
> + * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
> + */
> +
> +#include "mahua.dtsi"
> +
> +/delete-node/ &cluster0_pd;
> +/delete-node/ &cpu_map;
> +/delete-node/ &cpu0;
[Severity: High]
Should the bwmon_cluster0 node be deleted here as well?
Since cluster 0 is removed for Kalambo, the bandwidth monitor node
(bwmon_cluster0) inherited from the base dtsi files will still be present
and active. Will the qcom,sdm845-bwmon driver trigger a Synchronous External
Abort during boot when it probes and attempts to access the memory-mapped PMU
registers for the now non-existent hardware cluster?
[ ... ]
--
Sashiko AI review · https://sashiko.dev/#/patchset/20260810-b4-kalambo-crd-v6-0-744e8ad1dae9@oss.qualcomm.com?part=2
^ permalink raw reply [flat|nested] 7+ messages in thread
* [PATCH v6 3/5] arm64: dts: qcom: Add Kalambo CRD
2026-08-10 8:54 [PATCH v6 0/5] arm64: dts: qcom: Add Kalambo SoC and CRD Gopikrishna Garmidi
2026-08-10 8:54 ` [PATCH v6 1/5] dt-bindings: arm: qcom: Document Kalambo SoC and board Gopikrishna Garmidi
2026-08-10 8:54 ` [PATCH v6 2/5] arm64: dts: qcom: Add Kalambo SoC Gopikrishna Garmidi
@ 2026-08-10 8:54 ` Gopikrishna Garmidi
2026-08-10 8:54 ` [PATCH v6 4/5] firmware: qcom: scm: Allow QSEECOM on " Gopikrishna Garmidi
2026-08-10 8:54 ` [PATCH v6 5/5] soc: qcom: ubwc: Add Kalambo UBWC config Gopikrishna Garmidi
4 siblings, 0 replies; 7+ messages in thread
From: Gopikrishna Garmidi @ 2026-08-10 8:54 UTC (permalink / raw)
To: Bjorn Andersson, Konrad Dybcio, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Sibi Sankar, Pankaj Patil, Qiang Yu
Cc: Rajendra Nayak, linux-arm-msm, devicetree, linux-kernel,
Dmitry Baryshkov, Abel Vesa, Gopikrishna Garmidi
Introduce support for the CRD based on the Qualcomm Kalambo SoC. Similar
to Mahua, it is pin-to-pin compatible with the Glymur CRD. It reuses the
common CRD board description and drops the PMIC nodes not present on this
design.
Kalambo uses the same QREF topology as Mahua through the qcom,mahua-tcsr
compatible TCSR block. Connect the QREF and refgen supply inputs to the
corresponding CRD LDOs so that the reference clocks for the PCIe and USB
PHYs can operate.
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Reviewed-by: Abel Vesa <abel.vesa@oss.qualcomm.com>
Signed-off-by: Gopikrishna Garmidi <gopikrishna.garmidi@oss.qualcomm.com>
---
arch/arm64/boot/dts/qcom/Makefile | 1 +
arch/arm64/boot/dts/qcom/kalambo-crd.dts | 37 ++++++++++++++++++++++++++++++++
2 files changed, 38 insertions(+)
diff --git a/arch/arm64/boot/dts/qcom/Makefile b/arch/arm64/boot/dts/qcom/Makefile
index 1c86e7e98f55..4384f72dfa0c 100644
--- a/arch/arm64/boot/dts/qcom/Makefile
+++ b/arch/arm64/boot/dts/qcom/Makefile
@@ -44,6 +44,7 @@ dtb-$(CONFIG_ARCH_QCOM) += ipq9574-rdp454.dtb
dtb-$(CONFIG_ARCH_QCOM) += ipq9650-rdp488.dtb
dtb-$(CONFIG_ARCH_QCOM) += kaanapali-mtp.dtb
dtb-$(CONFIG_ARCH_QCOM) += kaanapali-qrd.dtb
+dtb-$(CONFIG_ARCH_QCOM) += kalambo-crd.dtb
dtb-$(CONFIG_ARCH_QCOM) += lemans-evk.dtb
lemans-evk-camera-csi1-imx577-dtbs := lemans-evk.dtb lemans-evk-camera-csi1-imx577.dtbo
diff --git a/arch/arm64/boot/dts/qcom/kalambo-crd.dts b/arch/arm64/boot/dts/qcom/kalambo-crd.dts
new file mode 100644
index 000000000000..9149cf6ad94b
--- /dev/null
+++ b/arch/arm64/boot/dts/qcom/kalambo-crd.dts
@@ -0,0 +1,37 @@
+// SPDX-License-Identifier: BSD-3-Clause
+/*
+ * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
+ */
+
+/dts-v1/;
+
+#include "kalambo.dtsi"
+#include "glymur-crd.dtsi"
+
+/delete-node/ &pmcx0102_d_e0;
+/delete-node/ &pmcx0102_d0_thermal;
+/delete-node/ &pmh0104_i_e0;
+/delete-node/ &pmh0104_i0_thermal;
+/delete-node/ &pmh0104_j_e0;
+/delete-node/ &pmh0104_j0_thermal;
+
+/ {
+ model = "Qualcomm Technologies, Inc. Kalambo CRD";
+ compatible = "qcom,kalambo-crd", "qcom,kalambo";
+};
+
+&tcsr {
+ vdda-qrefrpt0-0p9-supply = <&vreg_l2f_e1_0p83>;
+ vdda-qrefrpt1-0p9-supply = <&vreg_l2f_e1_0p83>;
+ vdda-qrefrpt2-0p9-supply = <&vreg_l2f_e1_0p83>;
+ vdda-qrefrpt3-0p9-supply = <&vreg_l1f_e1_0p82>;
+ vdda-qrefrpt4-0p9-supply = <&vreg_l2h_e0_0p72>;
+ vdda-qrefrpt5-0p9-supply = <&vreg_l2h_e0_0p72>;
+ vdda-qrefrx0-0p9-supply = <&vreg_l2f_e1_0p83>;
+ vdda-qrefrx1-0p9-supply = <&vreg_l2f_e1_0p83>;
+ vdda-qrefrx2-0p9-supply = <&vreg_l2f_e1_0p83>;
+ vdda-qrefrx3-0p9-supply = <&vreg_l2h_e0_0p72>;
+ vdda-qreftx1-0p9-supply = <&vreg_l1f_e1_0p82>;
+ vdda-refgen3-0p9-supply = <&vreg_l1f_e1_0p82>;
+ vdda-refgen3-1p2-supply = <&vreg_l4f_e1_1p08>;
+};
--
2.34.1
^ permalink raw reply related [flat|nested] 7+ messages in thread* [PATCH v6 4/5] firmware: qcom: scm: Allow QSEECOM on Kalambo CRD
2026-08-10 8:54 [PATCH v6 0/5] arm64: dts: qcom: Add Kalambo SoC and CRD Gopikrishna Garmidi
` (2 preceding siblings ...)
2026-08-10 8:54 ` [PATCH v6 3/5] arm64: dts: qcom: Add Kalambo CRD Gopikrishna Garmidi
@ 2026-08-10 8:54 ` Gopikrishna Garmidi
2026-08-10 8:54 ` [PATCH v6 5/5] soc: qcom: ubwc: Add Kalambo UBWC config Gopikrishna Garmidi
4 siblings, 0 replies; 7+ messages in thread
From: Gopikrishna Garmidi @ 2026-08-10 8:54 UTC (permalink / raw)
To: Bjorn Andersson, Konrad Dybcio, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Sibi Sankar, Pankaj Patil, Qiang Yu
Cc: Rajendra Nayak, linux-arm-msm, devicetree, linux-kernel,
Konrad Dybcio, Dmitry Baryshkov, Gopikrishna Garmidi
Add Kalambo CRD board to the QSEECOM allowlist for enabling access to
efivars.
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Signed-off-by: Gopikrishna Garmidi <gopikrishna.garmidi@oss.qualcomm.com>
---
drivers/firmware/qcom/qcom_scm.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/drivers/firmware/qcom/qcom_scm.c b/drivers/firmware/qcom/qcom_scm.c
index 3eaa4c9ccf3c..1f696b815493 100644
--- a/drivers/firmware/qcom/qcom_scm.c
+++ b/drivers/firmware/qcom/qcom_scm.c
@@ -2328,6 +2328,7 @@ static const struct of_device_id qcom_scm_qseecom_allowlist[] __maybe_unused = {
{ .compatible = "microsoft,romulus15", },
{ .compatible = "qcom,glymur-crd" },
{ .compatible = "qcom,hamoa-iot-evk" },
+ { .compatible = "qcom,kalambo-crd" },
{ .compatible = "qcom,mahua-crd" },
{ .compatible = "qcom,purwa-iot-evk" },
{ .compatible = "qcom,sc8180x-primus" },
--
2.34.1
^ permalink raw reply related [flat|nested] 7+ messages in thread* [PATCH v6 5/5] soc: qcom: ubwc: Add Kalambo UBWC config
2026-08-10 8:54 [PATCH v6 0/5] arm64: dts: qcom: Add Kalambo SoC and CRD Gopikrishna Garmidi
` (3 preceding siblings ...)
2026-08-10 8:54 ` [PATCH v6 4/5] firmware: qcom: scm: Allow QSEECOM on " Gopikrishna Garmidi
@ 2026-08-10 8:54 ` Gopikrishna Garmidi
4 siblings, 0 replies; 7+ messages in thread
From: Gopikrishna Garmidi @ 2026-08-10 8:54 UTC (permalink / raw)
To: Bjorn Andersson, Konrad Dybcio, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Sibi Sankar, Pankaj Patil, Qiang Yu
Cc: Rajendra Nayak, linux-arm-msm, devicetree, linux-kernel,
Konrad Dybcio, Dmitry Baryshkov, Gopikrishna Garmidi
Qualcomm Kalambo is a derivative of the Mahua SoC and shares the same
Universal Bandwidth Compression (UBWC) configuration. Add the Kalambo
compatible to the UBWC configuration table to enable support.
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Signed-off-by: Gopikrishna Garmidi <gopikrishna.garmidi@oss.qualcomm.com>
---
drivers/soc/qcom/ubwc_config.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/drivers/soc/qcom/ubwc_config.c b/drivers/soc/qcom/ubwc_config.c
index 23901a4c51f7..9367ab5b3062 100644
--- a/drivers/soc/qcom/ubwc_config.c
+++ b/drivers/soc/qcom/ubwc_config.c
@@ -113,6 +113,7 @@ static const struct of_device_id qcom_ubwc_configs[] __maybe_unused = {
{ .compatible = "qcom,eliza", .data = &ubwc_5_0_hbb15 },
{ .compatible = "qcom,glymur", .data = &glymur_data},
{ .compatible = "qcom,kaanapali", .data = &ubwc_6_0_hbb16 },
+ { .compatible = "qcom,kalambo", .data = &glymur_data },
{ .compatible = "qcom,mahua", .data = &glymur_data },
{ .compatible = "qcom,milos", .data = &milos_data },
{ .compatible = "qcom,msm8226", .data = &no_ubwc_data },
--
2.34.1
^ permalink raw reply related [flat|nested] 7+ messages in thread