[PATCH] remoteproc: zynqmp: Add coredump support

Leonard Crestez cdleonard at gmail.com
Thu Mar 28 01:17:13 PDT 2024


On 3/18/24 18:52, Mathieu Poirier wrote:
> Hi Leonard,
> 
> I have queued patches for this driver that will break this patch.  Please
> re-submit when v6.9-rc1 is out and rproc-next has been updated, which should be
> around the middle of next week.

Hello,

It's been a while - v6.9-rc1 is out and rproc-next has been rebased on top of
it. But the coredump patch still applies? I expected some unrelated
xlnx_r5_remoteproc patches to cause conflicts but there's nothing there.

It seems to me that the patch can be applied as-is and no resend is required.
Am I missing something?

--
Regards,
Leonard

> On Sat, Mar 16, 2024 at 08:16:42PM +0200, Leonard Crestez wrote:
>> Supporting remoteproc coredump requires the platform-specific driver to
>> register coredump segments to be dumped. Do this by calling
>> rproc_coredump_add_segment for every carveout.
>>
>> Also call rproc_coredump_set_elf_info when then rproc is created. If the
>> ELFCLASS parameter is not provided then coredump fails with an error.
>> Other drivers seem to pass EM_NONE for the machine argument but for me
>> this shows a warning in gdb. Pass EM_ARM because this is an ARM R5.
>>
>> Signed-off-by: Leonard Crestez <cdleonard at gmail.com>
>> ---
>>
>> Tests were done by triggering an deliberate crash using remoteproc
>> debugfs: echo 2 > /sys/kernel/debug/remoteproc/remoteproc0/crash
>>
>> This was tested using RPU apps which use RAM for everything so TCM dump
>> was not verified. The freertos-gdb script package showed credible data:
>>
>> https://github.com/espressif/freertos-gdb
>>
>> The R5 cache is not flushed so RAM might be out of date which is
>> actually very bad because information most relevant to determining the
>> cause of a crash is lost. Possible workaround would be to flush caches
>> in some sort of R5 crash handler? I don't think Linux can do anything
>> about this limitation.
>>
>> The generated coredump doesn't contain registers, this seems to be a
>> limitation shared with other rproc coredumps. It's not clear how the apu
>> could access rpu registers on zynqmp, my only idea would be to use the
>> coresight dap but that sounds difficult.



More information about the linux-arm-kernel mailing list