Re: [PATCH 1/4] dt-bindings: firmware: qcom,scm: Add minidump SRAM property
From: Rob Herring
Date: Fri May 08 2026 - 08:10:17 EST
On Thu, May 7, 2026 at 3:07 AM Mukesh Ojha <mukesh.ojha@xxxxxxxxxxxxxxxx> wrote:
>
> 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
Drop. This is a common property though we need to create a common definition.
> + 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
You don't need -names with 1 entry and sram-names is not a common property.
> +
> +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>;
> + };
> + };
You don't need providers in examples. Really, don't need a whole other
example for 1 added property.
> +
> + firmware {
> + scm {
> + compatible = "qcom,scm-kaanapali", "qcom,scm";
> + sram = <&minidump_config>;
> + sram-names = "minidump";
> + #reset-cells = <1>;
> + };
> + };
> + };
> --
> 2.53.0
>