diff options
author | Juan Gutierrez <jgutierrez@ti.com> | 2012-02-29 17:17:29 -0600 |
---|---|---|
committer | Ziyann <jaraidaniel@gmail.com> | 2014-10-01 12:57:08 +0200 |
commit | 5de1aae0e7bf0356c129624fad47ad136d139f87 (patch) | |
tree | 9fdb63f2847c98fc78fb8de8ce2d9f58baac27a7 /drivers/remoteproc | |
parent | 6ba5bdc9d36b5215823e574e85d70867376a94c5 (diff) | |
download | kernel_samsung_tuna-5de1aae0e7bf0356c129624fad47ad136d139f87.zip kernel_samsung_tuna-5de1aae0e7bf0356c129624fad47ad136d139f87.tar.gz kernel_samsung_tuna-5de1aae0e7bf0356c129624fad47ad136d139f87.tar.bz2 |
remoteproc: enable core dump and halt-on-crash for dsp
Support for halt-on-crash feature is enabled for dsp. The
generation of code dump file is also enabled for dsp. DSP
memory can be pulled from following file for offline
analysis:
/d/remoteproc/omap-rproc.0/core
Currently dsp registers are not saved. The DSP IO buffer
area is skipped as per core-dump design.
Change-Id: I705d22707ef95bdd9cd722257668595622b5bb42
Signed-off-by: Juan Gutierrez <jgutierrez@ti.com>
Signed-off-by: Suman Anna <s-anna@ti.com>
Diffstat (limited to 'drivers/remoteproc')
-rw-r--r-- | drivers/remoteproc/remoteproc.c | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/drivers/remoteproc/remoteproc.c b/drivers/remoteproc/remoteproc.c index 92c6bbb..5228f99 100644 --- a/drivers/remoteproc/remoteproc.c +++ b/drivers/remoteproc/remoteproc.c @@ -272,9 +272,8 @@ static int setup_rproc_elf_core_dump(struct core_rproc *d) { short __phnum; struct elf_phdr *nphdr; - struct exc_regs *xregs = d->rproc->cdump_buf1; - struct pt_regs *regs = - (struct pt_regs *)&d->core.core_note.prstatus.pr_reg; + struct exc_regs *xregs; + struct pt_regs *regs; memset(&d->core.elf, 0, sizeof(d->core.elf)); @@ -309,8 +308,12 @@ static int setup_rproc_elf_core_dump(struct core_rproc *d) d->core.core_note.note_prstatus.n_type = NT_PRSTATUS; memcpy(d->core.core_note.name, CORE_STR, sizeof(CORE_STR)); - remoteproc_fill_pt_regs(regs, xregs); - + /* fill in registers for ipu only, dsp yet to be supported */ + if (!strcmp(d->rproc->name, "ipu")) { + xregs = d->rproc->cdump_buf1; + regs = (struct pt_regs *)&d->core.core_note.prstatus.pr_reg; + remoteproc_fill_pt_regs(regs, xregs); + } /* We ignore the NVIC registers for now */ d->offset = sizeof(struct core); @@ -770,7 +773,8 @@ static int rproc_add_mem_entry(struct rproc *rproc, struct fw_resource *rsc) * Perhaps the ION carveout should be reported as RSC_DEVMEM. */ me->core = (rsc->type == RSC_CARVEOUT && - strcmp(rsc->name, "IPU_MEM_IOBUFS")); + strcmp(rsc->name, "IPU_MEM_IOBUFS") && + strcmp(rsc->name, "DSP_MEM_IOBUFS")); #endif } |