[PATCH 1/4] dt-bindings: firmware: qcom,scm: Add minidump SRAM property
From: Mukesh Ojha
Date: Thu May 07 2026 - 04:08:11 EST
On most Qualcomm SoCs where minidump is supported, a word in always-on
SRAM is shared between the kernel and boot firmware. Before DDR is
initialised on the warm reset following a crash, firmware reads this
word to decide if minidump is enabled and collect a minidump and where
to deliver it (USB upload to a host, or save to local storage).
Add 'sram' and 'sram-names' properties to the SCM binding to describe
a region in always-on SRAM where the minidump download destination
value could be written. Boot firmware reads it before DDR is initialised
on a warm reset to decide where to store the minidump either to host
PC or to on device storage.
Most of the Qualcomm SoC supporting minidump supports this, added the
kaanapali SoC for now.
Suggested-by: Konrad Dybcio <konrad.dybcio@xxxxxxxxxxxxxxxx>
Signed-off-by: Mukesh Ojha <mukesh.ojha@xxxxxxxxxxxxxxxx>
---
.../bindings/firmware/qcom,scm.yaml | 57 +++++++++++++++++++
1 file changed, 57 insertions(+)
diff --git a/Documentation/devicetree/bindings/firmware/qcom,scm.yaml b/Documentation/devicetree/bindings/firmware/qcom,scm.yaml
index 7918d31f58b4..6813081fd74a 100644
--- a/Documentation/devicetree/bindings/firmware/qcom,scm.yaml
+++ b/Documentation/devicetree/bindings/firmware/qcom,scm.yaml
@@ -127,6 +127,22 @@ properties:
- description: offset of the download mode control register
description: TCSR hardware block
+ sram:
+ $ref: /schemas/types.yaml#/definitions/phandle-array
+ description:
+ Phandle to a region in always-on SRAM used to store the download
+ mode value for boot firmware to read before DDR is initialised on
+ the next warm reset.
+ maxItems: 1
+
+ sram-names:
+ items:
+ - const: minidump
+
+dependencies:
+ sram: [ sram-names ]
+ sram-names: [ sram ]
+
allOf:
# Clocks
- if:
@@ -229,6 +245,18 @@ allOf:
properties:
memory-region: false
+ - if:
+ not:
+ properties:
+ compatible:
+ contains:
+ enum:
+ - qcom,scm-kaanapali
+ then:
+ properties:
+ sram: false
+ sram-names: false
+
required:
- compatible
@@ -247,3 +275,32 @@ examples:
clock-names = "core", "bus", "iface";
};
};
+
+ - |
+ /* kaanapali — minidump SRAM */
+ / {
+ #address-cells = <2>;
+ #size-cells = <2>;
+
+ sram@14680000 {
+ compatible = "qcom,kaanapali-imem", "mmio-sram";
+ reg = <0x0 0x14680000 0x0 0x1000>;
+ ranges = <0x0 0x0 0x14680000 0x1000>;
+ no-memory-wc;
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ minidump_config: minidump-config@1c {
+ reg = <0x1c 0x4>;
+ };
+ };
+
+ firmware {
+ scm {
+ compatible = "qcom,scm-kaanapali", "qcom,scm";
+ sram = <&minidump_config>;
+ sram-names = "minidump";
+ #reset-cells = <1>;
+ };
+ };
+ };
--
2.53.0