• Home
  • Raw
  • Download

Lines Matching full:tcm

75  * Hardcoded TCM bank values. This will be removed once TCM bindings are
79 {0xffe00000UL, 0x10000UL, PD_R5_0_ATCM, "atcm0"}, /* TCM 64KB each */
90 * @tcm_bank_count: number TCM banks accessible to this RPU
91 * @tcm_banks: array of each TCM bank data
296 * set RPU cluster and TCM operation mode
300 * @tcm_mode: value expected by fw to configure TCM mode (lockstep or split)
318 dev_err(r5_core->dev, "failed to configure TCM\n"); in zynqmp_r5_set_mode()
358 bootmem == PM_RPU_BOOTMEM_HIVEC ? "OCM" : "TCM"); in zynqmp_r5_rproc_start()
491 * @mem: tcm mem entry to unmap
493 * Unmap TCM banks when powering down R5 core.
507 * @mem: tcm memory entry descriptor
509 * Given TCM bank entry, this func setup virtual address for TCM bank
530 * The R5s expect their TCM banks to be at address 0x0 and 0x2000, in tcm_mem_map()
534 * expected values for TCM Banks 0A and 0B (0x0 and 0x20000). in tcm_mem_map()
539 * TCM Banks 1A and 1B still have to be translated. in tcm_mem_map()
548 /* if translated TCM bank address is not valid report error */ in tcm_mem_map()
550 dev_err(&rproc->dev, "invalid TCM address: %x\n", mem->da); in tcm_mem_map()
560 * allocate and add remoteproc carveout for TCM memory in split mode
580 * Power-on Each 64KB TCM, in add_tcm_carveout_split_mode()
594 dev_err(dev, "failed to turn on TCM 0x%x", pm_domain_id); in add_tcm_carveout_split_mode()
598 dev_dbg(dev, "TCM carveout split mode %s addr=%llx, size=0x%lx", in add_tcm_carveout_split_mode()
617 /* If failed, Turn off all TCM banks turned on before */ in add_tcm_carveout_split_mode()
629 * allocate and add remoteproc carveout for TCM memory in lockstep mode
651 * In lockstep mode, TCM is contiguous memory block in add_tcm_carveout_lockstep_mode()
652 * However, each TCM block still needs to be enabled individually. in add_tcm_carveout_lockstep_mode()
653 * So, Enable each TCM block individually, but add their size in add_tcm_carveout_lockstep_mode()
663 /* Turn on each TCM bank individually */ in add_tcm_carveout_lockstep_mode()
668 dev_err(dev, "failed to turn on TCM 0x%x", pm_domain_id); in add_tcm_carveout_lockstep_mode()
673 dev_dbg(dev, "TCM add carveout lockstep mode %s addr=0x%llx, size=0x%lx", in add_tcm_carveout_lockstep_mode()
676 /* Register TCM address range, TCM map and unmap functions */ in add_tcm_carveout_lockstep_mode()
692 /* If failed, Turn off all TCM banks turned on before */ in add_tcm_carveout_lockstep_mode()
704 * allocate and add remoteproc carveouts for TCM memory based on cluster mode
727 * In lockstep mode TCM banks are one contiguous memory region of 256Kb in add_tcm_banks()
728 * In split mode, each TCM bank is 64Kb and not contiguous. in add_tcm_banks()
768 * adds carveouts for TCM bank and reserved memory regions
780 dev_err(&rproc->dev, "failed to get TCM banks, err %d\n", ret); in zynqmp_r5_rproc_prepare()
795 * Turns off TCM banks using power-domain id
813 "can't turn off TCM bank 0x%x", pm_domain_id); in zynqmp_r5_rproc_unprepare()
888 * Ideally this function should parse tcm node and store information
889 * in r5_core instance. For now, Hardcoded TCM information is used.
890 * This approach is used as TCM bindings for system-dt is being developed
905 /* count per core tcm banks */ in zynqmp_r5_get_tcm_node()
909 * r5 core 0 will use all of TCM banks in lockstep mode. in zynqmp_r5_get_tcm_node()
911 * 128k. Assign TCM banks to each core accordingly in zynqmp_r5_get_tcm_node()
924 * Use pre-defined TCM reg values. in zynqmp_r5_get_tcm_node()
945 * @tcm_mode: value expected by fw to configure TCM mode (lockstep or split)
959 dev_err(dev, "can't get tcm node, err %d\n", ret); in zynqmp_r5_core_init()