Lines Matching full:rproc
17 struct rproc *rproc; member
24 * @rproc: the remote processor handle
26 void rproc_coredump_cleanup(struct rproc *rproc) in rproc_coredump_cleanup() argument
30 list_for_each_entry_safe(entry, tmp, &rproc->dump_segments, node) { in rproc_coredump_cleanup()
39 * @rproc: handle of a remote processor
48 int rproc_coredump_add_segment(struct rproc *rproc, dma_addr_t da, size_t size) in rproc_coredump_add_segment() argument
59 list_add_tail(&segment->node, &rproc->dump_segments); in rproc_coredump_add_segment()
67 * @rproc: handle of a remote processor
79 int rproc_coredump_add_custom_segment(struct rproc *rproc, in rproc_coredump_add_custom_segment() argument
81 void (*dumpfn)(struct rproc *rproc, in rproc_coredump_add_custom_segment() argument
98 list_add_tail(&segment->node, &rproc->dump_segments); in rproc_coredump_add_custom_segment()
106 * @rproc: handle of a remote processor
114 int rproc_coredump_set_elf_info(struct rproc *rproc, u8 class, u16 machine) in rproc_coredump_set_elf_info() argument
119 rproc->elf_class = class; in rproc_coredump_set_elf_info()
120 rproc->elf_machine = machine; in rproc_coredump_set_elf_info()
152 static void rproc_copy_segment(struct rproc *rproc, void *dest, in rproc_copy_segment() argument
160 segment->dump(rproc, segment, dest, offset, size); in rproc_copy_segment()
162 ptr = rproc_da_to_va(rproc, segment->da + offset, size, &is_iomem); in rproc_copy_segment()
164 dev_err(&rproc->dev, in rproc_copy_segment()
184 struct rproc *rproc = dump_state->rproc; in rproc_coredump_read() local
201 &rproc->dump_segments, in rproc_coredump_read()
205 dev_info(&rproc->dev, "Ramdump done, %lld bytes read", in rproc_coredump_read()
212 rproc_copy_segment(rproc, buffer, seg, seg->size - seg_data, in rproc_coredump_read()
225 * @rproc: rproc handle
228 * and create a devcoredump device associated with rproc. Based on the
235 void rproc_coredump(struct rproc *rproc) in rproc_coredump() argument
243 u8 class = rproc->elf_class; in rproc_coredump()
246 enum rproc_dump_mechanism dump_conf = rproc->dump_conf; in rproc_coredump()
248 if (list_empty(&rproc->dump_segments) || in rproc_coredump()
253 dev_err(&rproc->dev, "ELF class is not set\n"); in rproc_coredump()
258 list_for_each_entry(segment, &rproc->dump_segments, node) { in rproc_coredump()
282 elf_hdr_set_e_machine(class, ehdr, rproc->elf_machine); in rproc_coredump()
284 elf_hdr_set_e_entry(class, ehdr, rproc->bootaddr); in rproc_coredump()
294 list_for_each_entry(segment, &rproc->dump_segments, node) { in rproc_coredump()
306 rproc_copy_segment(rproc, data + offset, segment, 0, in rproc_coredump()
313 dev_coredumpv(&rproc->dev, data, data_size, GFP_KERNEL); in rproc_coredump()
318 dump_state.rproc = rproc; in rproc_coredump()
322 dev_coredumpm(&rproc->dev, NULL, &dump_state, data_size, GFP_KERNEL, in rproc_coredump()
335 * @rproc: rproc handle
338 * segments and create a devcoredump device associated with rproc. Based on
345 void rproc_coredump_using_sections(struct rproc *rproc) in rproc_coredump_using_sections() argument
355 u8 class = rproc->elf_class; in rproc_coredump_using_sections()
358 unsigned int dump_conf = rproc->dump_conf; in rproc_coredump_using_sections()
361 if (list_empty(&rproc->dump_segments) || in rproc_coredump_using_sections()
366 dev_err(&rproc->dev, "ELF class is not set\n"); in rproc_coredump_using_sections()
381 list_for_each_entry(segment, &rproc->dump_segments, node) { in rproc_coredump_using_sections()
401 elf_hdr_set_e_machine(class, ehdr, rproc->elf_machine); in rproc_coredump_using_sections()
403 elf_hdr_set_e_entry(class, ehdr, rproc->bootaddr); in rproc_coredump_using_sections()
434 list_for_each_entry(segment, &rproc->dump_segments, node) { in rproc_coredump_using_sections()
447 rproc_copy_segment(rproc, data + offset, segment, 0, in rproc_coredump_using_sections()
454 dev_coredumpv(&rproc->dev, data, data_size, GFP_KERNEL); in rproc_coredump_using_sections()
459 dump_state.rproc = rproc; in rproc_coredump_using_sections()
463 dev_coredumpm(&rproc->dev, NULL, &dump_state, data_size, GFP_KERNEL, in rproc_coredump_using_sections()