[PATCH v1 1/5] dt-bindings: soc: qcom: Add memory_dump driver bindings

From: Zhenhua Huang
Date: Mon Oct 23 2023 - 05:21:40 EST


Add bindings for the QCOM Memory Dump driver providing debug
facilities. Firmware dumps system cache, internal memory,
peripheral registers to reserved DDR as per the table which
populated by the driver, after crash and warm reset.

Signed-off-by: Zhenhua Huang <quic_zhenhuah@xxxxxxxxxxx>
---
.../bindings/soc/qcom/qcom,mem-dump.yaml | 42 +++++++++++++++++++++
.../devicetree/bindings/sram/qcom,imem.yaml | 44 ++++++++++++++++++++++
2 files changed, 86 insertions(+)
create mode 100644 Documentation/devicetree/bindings/soc/qcom/qcom,mem-dump.yaml

diff --git a/Documentation/devicetree/bindings/soc/qcom/qcom,mem-dump.yaml b/Documentation/devicetree/bindings/soc/qcom/qcom,mem-dump.yaml
new file mode 100644
index 0000000..87f8f51
--- /dev/null
+++ b/Documentation/devicetree/bindings/soc/qcom/qcom,mem-dump.yaml
@@ -0,0 +1,42 @@
+# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
+%YAML 1.2
+---
+$id: "http://devicetree.org/schemas/soc/qcom/qcom,mem-dump.yaml#";
+$schema: "http://devicetree.org/meta-schemas/core.yaml#";
+
+title: Qualcomm memory dump
+
+description: |
+ Qualcomm memory dump driver dynamically reserves memory and provides hints(id and size)
+ of debugging information based on specified protocols with firmware. Firmware then does
+ the real data capture. The debugging information includes cache contents, internal
+ memory, registers. After crash and warm reboot, firmware scans ids,
+ sizes and stores contents into reserved memory accordingly. Firmware then enters into full
+ dump mode which dumps whole DDR to PC through USB.
+
+maintainers:
+ - Zhenhua Huang <quic_zhenhuah@xxxxxxxxxxx>
+
+properties:
+ compatible:
+ const: qcom,mem-dump
+
+ memory-region:
+ maxItems: 1
+ description: phandle to memory reservation for qcom,mem-dump region.
+
+required:
+ - compatible
+ - memory-region
+
+additionalProperties: false
+
+examples:
+ # minimum memory dump definition.
+ - |
+ mem-dump {
+ compatible = "qcom,mem-dump";
+ memory-region = <&dump_mem>;
+ };
+
+...
diff --git a/Documentation/devicetree/bindings/sram/qcom,imem.yaml b/Documentation/devicetree/bindings/sram/qcom,imem.yaml
index 8025a85..e9eaa7a 100644
--- a/Documentation/devicetree/bindings/sram/qcom,imem.yaml
+++ b/Documentation/devicetree/bindings/sram/qcom,imem.yaml
@@ -52,6 +52,40 @@ patternProperties:
$ref: /schemas/remoteproc/qcom,pil-info.yaml#
description: Peripheral image loader relocation region

+patternProperties:
+ "^mem-dump-table@[0-9a-f]+$":
+ type: object
+ description: Used to store dump table base addr
+ properties:
+ compatible:
+ const: "qcom,qcom-imem-mem-dump-table"
+
+ reg:
+ maxItems: 1
+
+ required:
+ - compatible
+ - reg
+
+ additionalProperties: false
+
+patternProperties:
+ "^mem-dump-table-size@[0-9a-f]+$":
+ type: object
+ description: Used to store dump table size
+ properties:
+ compatible:
+ const: "qcom,qcom-imem-mem-dump-table-size"
+
+ reg:
+ maxItems: 1
+
+ required:
+ - compatible
+ - reg
+
+ additionalProperties: false
+
required:
- compatible
- reg
@@ -76,5 +110,15 @@ examples:
compatible = "qcom,pil-reloc-info";
reg = <0x94c 0xc8>;
};
+
+ mem-dump-table@10 {
+ compatible = "qcom,qcom-imem-mem-dump-table";
+ reg = <0x10 0x8>;
+ };
+
+ mem-dump-table-size@724 {
+ compatible = "qcom,qcom-imem-mem-dump-table-size";
+ reg = <0x724 0x8>;
+ };
};
};
--
2.7.4