remoteproc: Introduce custom dump function for each remoteproc segment
Introduce custom dump function and private data per remoteproc dump segment. The dump function is responsible for filling the device memory segment associated with coredump Signed-off-by: Sibi Sankar <sibis@codeaurora.org> Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
This commit is contained in:

committed by
Bjorn Andersson

parent
c6aed238b7
commit
3952105df4
@@ -1508,14 +1508,18 @@ static void rproc_coredump(struct rproc *rproc)
|
||||
phdr->p_flags = PF_R | PF_W | PF_X;
|
||||
phdr->p_align = 0;
|
||||
|
||||
ptr = rproc_da_to_va(rproc, segment->da, segment->size);
|
||||
if (!ptr) {
|
||||
dev_err(&rproc->dev,
|
||||
"invalid coredump segment (%pad, %zu)\n",
|
||||
&segment->da, segment->size);
|
||||
memset(data + offset, 0xff, segment->size);
|
||||
if (segment->dump) {
|
||||
segment->dump(rproc, segment, data + offset);
|
||||
} else {
|
||||
memcpy(data + offset, ptr, segment->size);
|
||||
ptr = rproc_da_to_va(rproc, segment->da, segment->size);
|
||||
if (!ptr) {
|
||||
dev_err(&rproc->dev,
|
||||
"invalid coredump segment (%pad, %zu)\n",
|
||||
&segment->da, segment->size);
|
||||
memset(data + offset, 0xff, segment->size);
|
||||
} else {
|
||||
memcpy(data + offset, ptr, segment->size);
|
||||
}
|
||||
}
|
||||
|
||||
offset += phdr->p_filesz;
|
||||
|
Reference in New Issue
Block a user