Lines Matching full:rproc
140 * @rproc: rproc handle
153 struct rproc *rproc; member
176 * @id: rproc->notify id
187 struct rproc *rproc = data; in event_notified_idr_cb() local
189 if (rproc_vq_interrupt(rproc, id) == IRQ_NONE) in event_notified_idr_cb()
190 dev_dbg(&rproc->dev, "data not found for vqid=%d\n", id); in event_notified_idr_cb()
204 struct rproc *rproc; in handle_event_notified() local
207 rproc = ipi->r5_core->rproc; in handle_event_notified()
216 idr_for_each(&rproc->notifyids, event_notified_idr_cb, rproc); in handle_event_notified()
323 * @rproc: r5 core's corresponding rproc structure
326 static void zynqmp_r5_rproc_kick(struct rproc *rproc, int vqid) in zynqmp_r5_rproc_kick() argument
328 struct zynqmp_r5_core *r5_core = rproc->priv; in zynqmp_r5_rproc_kick()
348 * @rproc: single R5 core's corresponding rproc instance
354 static int zynqmp_r5_rproc_start(struct rproc *rproc) in zynqmp_r5_rproc_start() argument
356 struct zynqmp_r5_core *r5_core = rproc->priv; in zynqmp_r5_rproc_start()
377 bootmem = (rproc->bootaddr >= 0xFFFC0000) ? in zynqmp_r5_rproc_start()
380 dev_dbg(r5_core->dev, "RPU boot addr 0x%llx from %s.", rproc->bootaddr, in zynqmp_r5_rproc_start()
393 * @rproc: single R5 core's corresponding rproc instance
399 static int zynqmp_r5_rproc_stop(struct rproc *rproc) in zynqmp_r5_rproc_stop() argument
401 struct zynqmp_r5_core *r5_core = rproc->priv; in zynqmp_r5_rproc_stop()
414 * @rproc: single R5 core's corresponding rproc instance
421 static int zynqmp_r5_mem_region_map(struct rproc *rproc, in zynqmp_r5_mem_region_map() argument
437 * @rproc: single R5 core's corresponding rproc instance
444 static int zynqmp_r5_mem_region_unmap(struct rproc *rproc, in zynqmp_r5_mem_region_unmap() argument
453 * @rproc: single R5 core's corresponding rproc instance
455 * Construct rproc mem carveouts from memory-region property nodes
459 static int add_mem_regions_carveout(struct rproc *rproc) in add_mem_regions_carveout() argument
467 r5_core = rproc->priv; in add_mem_regions_carveout()
476 dev_err(&rproc->dev, "unable to acquire memory-region\n"); in add_mem_regions_carveout()
482 rproc_mem = rproc_of_resm_mem_entry_init(&rproc->dev, i, in add_mem_regions_carveout()
488 rproc_mem = rproc_mem_entry_init(&rproc->dev, NULL, in add_mem_regions_carveout()
501 rproc_add_carveout(rproc, rproc_mem); in add_mem_regions_carveout()
502 rproc_coredump_add_segment(rproc, rmem->base, rmem->size); in add_mem_regions_carveout()
504 dev_dbg(&rproc->dev, "reserved mem carveout %s addr=%llx, size=0x%llx", in add_mem_regions_carveout()
512 static int add_sram_carveouts(struct rproc *rproc) in add_sram_carveouts() argument
514 struct zynqmp_r5_core *r5_core = rproc->priv; in add_sram_carveouts()
529 rproc_mem = rproc_mem_entry_init(&rproc->dev, NULL, in add_sram_carveouts()
536 dev_err(&rproc->dev, "failed to add sram %s da=0x%x, size=0x%lx", in add_sram_carveouts()
541 rproc_add_carveout(rproc, rproc_mem); in add_sram_carveouts()
542 rproc_coredump_add_segment(rproc, da, len); in add_sram_carveouts()
544 dev_dbg(&rproc->dev, "sram carveout %s addr=%llx, da=0x%x, size=0x%lx", in add_sram_carveouts()
553 * @rproc: single R5 core's corresponding rproc instance
560 static int tcm_mem_unmap(struct rproc *rproc, struct rproc_mem_entry *mem) in tcm_mem_unmap() argument
569 * @rproc: single R5 core's corresponding rproc instance
577 static int tcm_mem_map(struct rproc *rproc, in tcm_mem_map() argument
597 * @rproc: single R5 core's corresponding rproc instance
603 static int add_tcm_banks(struct rproc *rproc) in add_tcm_banks() argument
615 r5_core = rproc->priv; in add_tcm_banks()
647 if (rproc->state == RPROC_DETACHED) in add_tcm_banks()
660 rproc_add_carveout(rproc, rproc_mem); in add_tcm_banks()
661 rproc_coredump_add_segment(rproc, da, bank_size); in add_tcm_banks()
677 * @rproc: single R5 core's corresponding rproc instance
684 static int zynqmp_r5_parse_fw(struct rproc *rproc, const struct firmware *fw) in zynqmp_r5_parse_fw() argument
688 ret = rproc_elf_load_rsc_table(rproc, fw); in zynqmp_r5_parse_fw()
696 dev_info(&rproc->dev, "no resource table found.\n"); in zynqmp_r5_parse_fw()
706 * @rproc: Device node of each rproc
710 static int zynqmp_r5_rproc_prepare(struct rproc *rproc) in zynqmp_r5_rproc_prepare() argument
714 ret = add_tcm_banks(rproc); in zynqmp_r5_rproc_prepare()
716 dev_err(&rproc->dev, "failed to get TCM banks, err %d\n", ret); in zynqmp_r5_rproc_prepare()
720 ret = add_mem_regions_carveout(rproc); in zynqmp_r5_rproc_prepare()
722 dev_err(&rproc->dev, "failed to get reserve mem regions %d\n", ret); in zynqmp_r5_rproc_prepare()
726 ret = add_sram_carveouts(rproc); in zynqmp_r5_rproc_prepare()
728 dev_err(&rproc->dev, "failed to get sram carveout %d\n", ret); in zynqmp_r5_rproc_prepare()
739 * @rproc: Device node of each rproc
743 static int zynqmp_r5_rproc_unprepare(struct rproc *rproc) in zynqmp_r5_rproc_unprepare() argument
749 r5_core = rproc->priv; in zynqmp_r5_rproc_unprepare()
761 static struct resource_table *zynqmp_r5_get_loaded_rsc_table(struct rproc *rproc, in zynqmp_r5_get_loaded_rsc_table() argument
766 r5_core = rproc->priv; in zynqmp_r5_get_loaded_rsc_table()
843 static int zynqmp_r5_attach(struct rproc *rproc) in zynqmp_r5_attach() argument
845 dev_dbg(&rproc->dev, "rproc %d attached\n", rproc->index); in zynqmp_r5_attach()
850 static int zynqmp_r5_detach(struct rproc *rproc) in zynqmp_r5_detach() argument
857 zynqmp_r5_rproc_kick(rproc, 0); in zynqmp_r5_detach()
880 * Allocate and add struct rproc object for each r5f core
890 struct rproc *r5_rproc; in zynqmp_r5_add_rproc_core()
903 dev_err(cdev, "failed to allocate memory for rproc instance\n"); in zynqmp_r5_add_rproc_core()
927 * If firmware is already available in the memory then move rproc state in zynqmp_r5_add_rproc_core()
931 * found, then rproc state remains OFFLINE. in zynqmp_r5_add_rproc_core()
936 r5_core->rproc = r5_rproc; in zynqmp_r5_add_rproc_core()
1340 /* create and add remoteproc instance of type struct rproc */ in zynqmp_r5_cluster_init()
1382 * at this point rproc resources for each core are allocated. in zynqmp_r5_cluster_init()
1398 rproc_del(r5_cores[i]->rproc); in zynqmp_r5_cluster_init()
1399 rproc_free(r5_cores[i]->rproc); in zynqmp_r5_cluster_init()
1425 rproc_del(r5_core->rproc); in zynqmp_r5_cluster_exit()
1426 rproc_free(r5_core->rproc); in zynqmp_r5_cluster_exit()