[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <0578d070-e41b-bd22-72ca-e366ea9a5ed2@quicinc.com>
Date: Tue, 24 Oct 2023 17:53:54 +0800
From: Zhenhua Huang <quic_zhenhuah@...cinc.com>
To: Caleb Connolly <caleb.connolly@...aro.org>, <agross@...nel.org>,
<andersson@...nel.org>, <konrad.dybcio@...aro.org>,
<robh+dt@...nel.org>, <krzysztof.kozlowski+dt@...aro.org>,
<conor+dt@...nel.org>
CC: <linux-arm-msm@...r.kernel.org>, <devicetree@...r.kernel.org>,
<linux-kernel@...r.kernel.org>, <kernel@...cinc.com>,
<quic_tingweiz@...cinc.com>
Subject: Re: [PATCH v1 0/5] soc/arm64: qcom: add initial version of memory
dump
On 2023/10/23 22:31, Caleb Connolly wrote:
>
>
> On 23/10/2023 10:20, Zhenhua Huang wrote:
>> Qualcomm memory dump driver is to cooperate with firmware, providing the
>> hints(id and size) of storing useful debugging information into pre-allocated
>> memory. Firmware then does the real data capture. The debugging information
>> includes cache contents, internal memory, registers.
>>
>> The driver dynamically reserves memory and provides the hints(dump id and size)
>> following specified protocols with firmware. After crash and warm reboot,
>> firmware scans these information and stores contents into reserved memory
>> accordingly. Firmware then enters into full dump mode which dumps whole DDR
>> to host through USB.
>>
>> User then get full dump using PCAT and can parse out these informations.
>
> PCAT is a proprietary tool that requires signing up to qualcomm.com and
> installing the Qualcomm Package Manager to access. It also relies on
> another tool (QUTS) to actually interact with the board.
>
Oh.. I saw PCAT is introduced in doc of RB5 development kit so tried
with it as well. I will investigate more on this. Thanks.
> Shouldn't we have a FOSS (or at the very least OSS) tool that can be
> used to interact with these memory dumps?
>>
>> Dump id and size are provided by bootconfig. The expected format of a
>> bootconfig file is as follows:-
>> memory_dump_config {
>> <node name> {
>> id = <id of HW component>
>> size = <dump size of HW component>
>> }
>> }
>>
>> for example:
>> memory_dump_config {
>> c0_context_dump {
>> id = 0
>> size = 0x800
>> }
>> }
>>
>> Test based on 6.6-rc1.
>>
>> Zhenhua Huang (5):
>> dt-bindings: soc: qcom: Add memory_dump driver bindings
>> dt-bindings: sram: qcom,imem: document sm8250
>> soc: qcom: memory_dump: Add memory dump driver
>> arm64: defconfig: enable Qcom Memory Dump driver
>> arm64: dts: qcom: sm8250: Add memory dump node
>>
>> .../bindings/soc/qcom/qcom,mem-dump.yaml | 42 ++
>> .../devicetree/bindings/sram/qcom,imem.yaml | 45 ++
>> MAINTAINERS | 7 +
>> arch/arm64/boot/dts/qcom/sm8250.dtsi | 31 ++
>> arch/arm64/configs/defconfig | 1 +
>> drivers/soc/qcom/Kconfig | 11 +
>> drivers/soc/qcom/Makefile | 1 +
>> drivers/soc/qcom/memory_dump.c | 540 +++++++++++++++++++++
>> 8 files changed, 678 insertions(+)
>> create mode 100644 Documentation/devicetree/bindings/soc/qcom/qcom,mem-dump.yaml
>> create mode 100644 drivers/soc/qcom/memory_dump.c
>>
>
Powered by blists - more mailing lists