Lines Matching full:rproc

92  * @rproc: rproc handle
101 struct rproc *rproc; member
123 * @id: rproc->notify id
134 struct rproc *rproc = data; in event_notified_idr_cb() local
136 if (rproc_vq_interrupt(rproc, id) == IRQ_NONE) in event_notified_idr_cb()
137 dev_dbg(&rproc->dev, "data not found for vqid=%d\n", id); in event_notified_idr_cb()
151 struct rproc *rproc; in handle_event_notified() local
154 rproc = ipi->r5_core->rproc; in handle_event_notified()
163 idr_for_each(&rproc->notifyids, event_notified_idr_cb, rproc); in handle_event_notified()
270 * @rproc: r5 core's corresponding rproc structure
273 static void zynqmp_r5_rproc_kick(struct rproc *rproc, int vqid) in zynqmp_r5_rproc_kick() argument
275 struct zynqmp_r5_core *r5_core = rproc->priv; in zynqmp_r5_rproc_kick()
325 * @rproc: single R5 core's corresponding rproc instance
331 static int zynqmp_r5_rproc_start(struct rproc *rproc) in zynqmp_r5_rproc_start() argument
333 struct zynqmp_r5_core *r5_core = rproc->priv; in zynqmp_r5_rproc_start()
354 bootmem = (rproc->bootaddr >= 0xFFFC0000) ? in zynqmp_r5_rproc_start()
357 dev_dbg(r5_core->dev, "RPU boot addr 0x%llx from %s.", rproc->bootaddr, in zynqmp_r5_rproc_start()
370 * @rproc: single R5 core's corresponding rproc instance
376 static int zynqmp_r5_rproc_stop(struct rproc *rproc) in zynqmp_r5_rproc_stop() argument
378 struct zynqmp_r5_core *r5_core = rproc->priv; in zynqmp_r5_rproc_stop()
391 * @rproc: single R5 core's corresponding rproc instance
398 static int zynqmp_r5_mem_region_map(struct rproc *rproc, in zynqmp_r5_mem_region_map() argument
414 * @rproc: single R5 core's corresponding rproc instance
421 static int zynqmp_r5_mem_region_unmap(struct rproc *rproc, in zynqmp_r5_mem_region_unmap() argument
430 * @rproc: single R5 core's corresponding rproc instance
432 * Construct rproc mem carveouts from memory-region property nodes
436 static int add_mem_regions_carveout(struct rproc *rproc) in add_mem_regions_carveout() argument
444 r5_core = rproc->priv; in add_mem_regions_carveout()
453 dev_err(&rproc->dev, "unable to acquire memory-region\n"); in add_mem_regions_carveout()
459 rproc_mem = rproc_of_resm_mem_entry_init(&rproc->dev, i, in add_mem_regions_carveout()
465 rproc_mem = rproc_mem_entry_init(&rproc->dev, NULL, in add_mem_regions_carveout()
478 rproc_add_carveout(rproc, rproc_mem); in add_mem_regions_carveout()
480 dev_dbg(&rproc->dev, "reserved mem carveout %s addr=%llx, size=0x%llx", in add_mem_regions_carveout()
490 * @rproc: single R5 core's corresponding rproc instance
497 static int tcm_mem_unmap(struct rproc *rproc, struct rproc_mem_entry *mem) in tcm_mem_unmap() argument
506 * @rproc: single R5 core's corresponding rproc instance
514 static int tcm_mem_map(struct rproc *rproc, in tcm_mem_map() argument
550 dev_err(&rproc->dev, "invalid TCM address: %x\n", mem->da); in tcm_mem_map()
558 * @rproc: single R5 core's corresponding rproc instance
564 static int add_tcm_carveout_split_mode(struct rproc *rproc) in add_tcm_carveout_split_mode() argument
575 r5_core = rproc->priv; in add_tcm_carveout_split_mode()
611 rproc_add_carveout(rproc, rproc_mem); in add_tcm_carveout_split_mode()
627 * @rproc: single R5 core's corresponding rproc instance
633 static int add_tcm_carveout_lockstep_mode(struct rproc *rproc) in add_tcm_carveout_lockstep_mode() argument
644 r5_core = rproc->priv; in add_tcm_carveout_lockstep_mode()
687 rproc_add_carveout(rproc, rproc_mem); in add_tcm_carveout_lockstep_mode()
702 * @rproc: single R5 core's corresponding rproc instance
708 static int add_tcm_banks(struct rproc *rproc) in add_tcm_banks() argument
714 r5_core = rproc->priv; in add_tcm_banks()
732 return add_tcm_carveout_split_mode(rproc); in add_tcm_banks()
734 return add_tcm_carveout_lockstep_mode(rproc); in add_tcm_banks()
741 * @rproc: single R5 core's corresponding rproc instance
748 static int zynqmp_r5_parse_fw(struct rproc *rproc, const struct firmware *fw) in zynqmp_r5_parse_fw() argument
752 ret = rproc_elf_load_rsc_table(rproc, fw); in zynqmp_r5_parse_fw()
760 dev_info(&rproc->dev, "no resource table found.\n"); in zynqmp_r5_parse_fw()
770 * @rproc: Device node of each rproc
774 static int zynqmp_r5_rproc_prepare(struct rproc *rproc) in zynqmp_r5_rproc_prepare() argument
778 ret = add_tcm_banks(rproc); in zynqmp_r5_rproc_prepare()
780 dev_err(&rproc->dev, "failed to get TCM banks, err %d\n", ret); in zynqmp_r5_rproc_prepare()
784 ret = add_mem_regions_carveout(rproc); in zynqmp_r5_rproc_prepare()
786 dev_err(&rproc->dev, "failed to get reserve mem regions %d\n", ret); in zynqmp_r5_rproc_prepare()
797 * @rproc: Device node of each rproc
801 static int zynqmp_r5_rproc_unprepare(struct rproc *rproc) in zynqmp_r5_rproc_unprepare() argument
807 r5_core = rproc->priv; in zynqmp_r5_rproc_unprepare()
834 * Allocate and add struct rproc object for each r5f core
844 struct rproc *r5_rproc; in zynqmp_r5_add_rproc_core()
857 dev_err(cdev, "failed to allocate memory for rproc instance\n"); in zynqmp_r5_add_rproc_core()
878 r5_core->rproc = r5_rproc; in zynqmp_r5_add_rproc_core()
1076 /* create and add remoteproc instance of type struct rproc */ in zynqmp_r5_cluster_init()
1118 * at this point rproc resources for each core are allocated. in zynqmp_r5_cluster_init()
1134 rproc_del(r5_cores[i]->rproc); in zynqmp_r5_cluster_init()
1135 rproc_free(r5_cores[i]->rproc); in zynqmp_r5_cluster_init()
1160 rproc_del(r5_core->rproc); in zynqmp_r5_cluster_exit()
1161 rproc_free(r5_core->rproc); in zynqmp_r5_cluster_exit()