Lines Matching full:rproc
102 * @rproc: rproc handle
111 struct rproc *rproc; member
133 * @id: rproc->notify id
144 struct rproc *rproc = data; in event_notified_idr_cb() local
146 if (rproc_vq_interrupt(rproc, id) == IRQ_NONE) in event_notified_idr_cb()
147 dev_dbg(&rproc->dev, "data not found for vqid=%d\n", id); in event_notified_idr_cb()
161 struct rproc *rproc; in handle_event_notified() local
164 rproc = ipi->r5_core->rproc; in handle_event_notified()
173 idr_for_each(&rproc->notifyids, event_notified_idr_cb, rproc); in handle_event_notified()
280 * @rproc: r5 core's corresponding rproc structure
283 static void zynqmp_r5_rproc_kick(struct rproc *rproc, int vqid) in zynqmp_r5_rproc_kick() argument
285 struct zynqmp_r5_core *r5_core = rproc->priv; in zynqmp_r5_rproc_kick()
335 * @rproc: single R5 core's corresponding rproc instance
341 static int zynqmp_r5_rproc_start(struct rproc *rproc) in zynqmp_r5_rproc_start() argument
343 struct zynqmp_r5_core *r5_core = rproc->priv; in zynqmp_r5_rproc_start()
364 bootmem = (rproc->bootaddr >= 0xFFFC0000) ? in zynqmp_r5_rproc_start()
367 dev_dbg(r5_core->dev, "RPU boot addr 0x%llx from %s.", rproc->bootaddr, in zynqmp_r5_rproc_start()
380 * @rproc: single R5 core's corresponding rproc instance
386 static int zynqmp_r5_rproc_stop(struct rproc *rproc) in zynqmp_r5_rproc_stop() argument
388 struct zynqmp_r5_core *r5_core = rproc->priv; in zynqmp_r5_rproc_stop()
401 * @rproc: single R5 core's corresponding rproc instance
408 static int zynqmp_r5_mem_region_map(struct rproc *rproc, in zynqmp_r5_mem_region_map() argument
424 * @rproc: single R5 core's corresponding rproc instance
431 static int zynqmp_r5_mem_region_unmap(struct rproc *rproc, in zynqmp_r5_mem_region_unmap() argument
440 * @rproc: single R5 core's corresponding rproc instance
442 * Construct rproc mem carveouts from memory-region property nodes
446 static int add_mem_regions_carveout(struct rproc *rproc) in add_mem_regions_carveout() argument
454 r5_core = rproc->priv; in add_mem_regions_carveout()
463 dev_err(&rproc->dev, "unable to acquire memory-region\n"); in add_mem_regions_carveout()
469 rproc_mem = rproc_of_resm_mem_entry_init(&rproc->dev, i, in add_mem_regions_carveout()
475 rproc_mem = rproc_mem_entry_init(&rproc->dev, NULL, in add_mem_regions_carveout()
488 rproc_add_carveout(rproc, rproc_mem); in add_mem_regions_carveout()
490 dev_dbg(&rproc->dev, "reserved mem carveout %s addr=%llx, size=0x%llx", in add_mem_regions_carveout()
500 * @rproc: single R5 core's corresponding rproc instance
507 static int tcm_mem_unmap(struct rproc *rproc, struct rproc_mem_entry *mem) in tcm_mem_unmap() argument
516 * @rproc: single R5 core's corresponding rproc instance
524 static int tcm_mem_map(struct rproc *rproc, in tcm_mem_map() argument
544 * @rproc: single R5 core's corresponding rproc instance
550 static int add_tcm_carveout_split_mode(struct rproc *rproc) in add_tcm_carveout_split_mode() argument
562 r5_core = rproc->priv; in add_tcm_carveout_split_mode()
599 rproc_add_carveout(rproc, rproc_mem); in add_tcm_carveout_split_mode()
615 * @rproc: single R5 core's corresponding rproc instance
621 static int add_tcm_carveout_lockstep_mode(struct rproc *rproc) in add_tcm_carveout_lockstep_mode() argument
633 r5_core = rproc->priv; in add_tcm_carveout_lockstep_mode()
678 rproc_add_carveout(rproc, rproc_mem); in add_tcm_carveout_lockstep_mode()
697 * @rproc: single R5 core's corresponding rproc instance
703 static int add_tcm_banks(struct rproc *rproc) in add_tcm_banks() argument
709 r5_core = rproc->priv; in add_tcm_banks()
727 return add_tcm_carveout_split_mode(rproc); in add_tcm_banks()
729 return add_tcm_carveout_lockstep_mode(rproc); in add_tcm_banks()
736 * @rproc: single R5 core's corresponding rproc instance
743 static int zynqmp_r5_parse_fw(struct rproc *rproc, const struct firmware *fw) in zynqmp_r5_parse_fw() argument
747 ret = rproc_elf_load_rsc_table(rproc, fw); in zynqmp_r5_parse_fw()
755 dev_info(&rproc->dev, "no resource table found.\n"); in zynqmp_r5_parse_fw()
765 * @rproc: Device node of each rproc
769 static int zynqmp_r5_rproc_prepare(struct rproc *rproc) in zynqmp_r5_rproc_prepare() argument
773 ret = add_tcm_banks(rproc); in zynqmp_r5_rproc_prepare()
775 dev_err(&rproc->dev, "failed to get TCM banks, err %d\n", ret); in zynqmp_r5_rproc_prepare()
779 ret = add_mem_regions_carveout(rproc); in zynqmp_r5_rproc_prepare()
781 dev_err(&rproc->dev, "failed to get reserve mem regions %d\n", ret); in zynqmp_r5_rproc_prepare()
792 * @rproc: Device node of each rproc
796 static int zynqmp_r5_rproc_unprepare(struct rproc *rproc) in zynqmp_r5_rproc_unprepare() argument
802 r5_core = rproc->priv; in zynqmp_r5_rproc_unprepare()
829 * Allocate and add struct rproc object for each r5f core
839 struct rproc *r5_rproc; in zynqmp_r5_add_rproc_core()
852 dev_err(cdev, "failed to allocate memory for rproc instance\n"); in zynqmp_r5_add_rproc_core()
873 r5_core->rproc = r5_rproc; in zynqmp_r5_add_rproc_core()
1078 /* create and add remoteproc instance of type struct rproc */ in zynqmp_r5_cluster_init()
1120 * at this point rproc resources for each core are allocated. in zynqmp_r5_cluster_init()
1136 rproc_del(r5_cores[i]->rproc); in zynqmp_r5_cluster_init()
1137 rproc_free(r5_cores[i]->rproc); in zynqmp_r5_cluster_init()
1162 rproc_del(r5_core->rproc); in zynqmp_r5_cluster_exit()
1163 rproc_free(r5_core->rproc); in zynqmp_r5_cluster_exit()