/linux-6.14.4/drivers/remoteproc/ |
D | pru_rproc.c | 3 * PRU-ICSS remoteproc driver for various TI SoCs 53 /* PRU/RTU/Tx_PRU Core IRAM address masks */ 62 /* PRU device addresses for various type of PRU RAMs */ 71 * enum pru_iomem - PRU core memory/register range identifiers 73 * @PRU_IOMEM_IRAM: PRU Instruction RAM range 74 * @PRU_IOMEM_CTRL: PRU Control register range 75 * @PRU_IOMEM_DEBUG: PRU Debug register range 86 * struct pru_private_data - device data for a PRU core 87 * @type: type of the PRU core (PRU, RTU, Tx_PRU) 96 * struct pru_rproc - PRU remoteproc structure [all …]
|
D | pru_rproc.h | 13 * struct pruss_int_map - PRU system events _to_ channel and host mapping 18 * PRU system events are mapped to channels, and these channels are mapped 31 * struct pru_irq_rsc - PRU firmware section header for IRQ data 34 * @pru_intc_map: PRU interrupt routing description 36 * The PRU firmware blob can contain optional .pru_irq_map ELF section, which
|
D | Kconfig | 153 tristate "TI PRU remoteproc support" 157 Support for TI PRU remote processors present within a PRU-ICSS 160 Say Y or M here to support the Programmable Realtime Unit (PRU) 162 not interested in the PRU or if you are unsure.
|
/linux-6.14.4/Documentation/devicetree/bindings/remoteproc/ |
D | ti,pru-rproc.yaml | 4 $id: http://devicetree.org/schemas/remoteproc/ti,pru-rproc.yaml# 7 title: TI Programmable Realtime Unit (PRU) cores 14 (PRU-ICSS or PRUSS) has two 32-bit load/store RISC CPU cores called 15 Programmable Real-Time Units (PRUs), each represented by a node. Each PRU 17 use the Data RAMs present within the PRU-ICSS for code execution. 20 PRU cores called RTUs with slightly different IP integration. The K3 SoCs 22 auxiliary Transmit PRU cores called Tx_PRUs that augment the PRUs. Each RTU 23 or Tx_PRU core can also be used independently like a PRU, or alongside a 24 corresponding PRU core to provide/implement auxiliary functionality/support. 26 Each PRU, RTU or Tx_PRU core node should be defined as a child node of the [all …]
|
D | ti,pru-consumer.yaml | 4 $id: http://devicetree.org/schemas/remoteproc/ti,pru-consumer.yaml# 7 title: TI PRU Consumer Common Properties 13 A PRU application/consumer/user node typically uses one or more PRU device 14 nodes to implement a PRU application/functionality. Each application/client 15 node would need a reference to at least a PRU node, and optionally define 17 properties are a list of common properties supported by the PRU remoteproc 26 description: phandles to the PRU, RTU or Tx_PRU nodes used 37 firmwares for the PRU cores, the default firmware for the core from 38 the PRU node will be used if not provided. The firmware names should 39 correspond to the PRU cores listed in the 'ti,prus' property [all …]
|
/linux-6.14.4/Documentation/devicetree/bindings/soc/ti/ |
D | ti,pruss.yaml | 16 (PRU-ICSS a.k.a. PRUSS) is present on various TI SoCs such as AM335x, AM437x, 34 A PRU-ICSS subsystem can have up to three shared data memories. A PRU core 36 0x0, but also has access to a secondary Data RAM (primary to the other PRU 38 by both the PRU cores. The Interrupt Controller (INTC) and a CFG module are 39 common to both the PRU cores. Each PRU core also has a private instruction 42 Various sub-modules within a PRU-ICSS subsystem are represented as individual 48 PRU-ICSS Node 50 Each PRU-ICSS instance is represented as its own node with the individual PRU 109 The various Data RAMs within a single PRU-ICSS unit are represented as a 140 PRU-ICSS configuration space. CFG sub-module represented as a SysCon. [all …]
|
/linux-6.14.4/include/linux/remoteproc/ |
D | pruss.h | 3 * PRU-ICSS Subsystem user interfaces 15 #define PRU_RPROC_DRVNAME "pru-rproc" 18 * enum pruss_pru_id - PRU core identifiers 19 * @PRUSS_PRU0: PRU Core 0. 20 * @PRUSS_PRU1: PRU Core 1. 21 * @PRUSS_NUM_PRUS: Total number of PRU Cores available.
|
/linux-6.14.4/Documentation/devicetree/bindings/interrupt-controller/ |
D | ti,pruss-intc.yaml | 7 title: TI PRU-ICSS Local Interrupt Controller 13 Each PRU-ICSS has a single interrupt controller instance that is common 14 to all the PRU cores. Most interrupt controllers can route 64 input events 18 interrupts (0, 1) are fed exclusively to the internal PRU cores, with the 77 Client users shall use the PRU System event number (the interrupt source 78 that the client is interested in) [cell 1], PRU channel [cell 2] and PRU 113 /* AM33xx PRU-ICSS */ 136 /* AM4376 PRU-ICSS */
|
/linux-6.14.4/drivers/soc/ti/ |
D | pruss.c | 3 * PRU-ICSS platform driver for various TI SoCs 39 * pruss_get() - get the pruss for a given PRU remoteproc 40 * @rproc: remoteproc handle of a PRU instance 42 * Finds the parent pruss device for a PRU given the @rproc handle of the 43 * PRU remote processor. This function increments the pruss device's refcount, 54 * -ENODEV if PRU device or PRUSS device is not found 67 /* make sure it is PRU rproc */ in pruss_get() 175 * pruss_cfg_get_gpmux() - get the current GPMUX value for a PRU device 177 * @pru_id: PRU identifier (0-1) 199 * pruss_cfg_set_gpmux() - set the GPMUX value for a PRU device [all …]
|
D | Kconfig | 75 tristate "TI PRU-ICSS Subsystem Platform drivers" 79 TI PRU-ICSS Subsystem platform specific support. 81 Say Y or M here to support the Programmable Realtime Unit (PRU) 83 not interested in the PRU or if you are unsure.
|
D | pruss.h | 3 * PRU-ICSS Subsystem user interfaces
|
/linux-6.14.4/arch/arm/boot/dts/ti/omap/ |
D | am57-pruss.dtsi | 88 pru1_0: pru@34000 { 89 compatible = "ti,am5728-pru"; 97 pru1_1: pru@38000 { 98 compatible = "ti,am5728-pru"; 197 pru2_0: pru@34000 { 198 compatible = "ti,am5728-pru"; 206 pru2_1: pru@38000 { 207 compatible = "ti,am5728-pru";
|
D | am4372.dtsi | 499 pru1_0: pru@34000 { 500 compatible = "ti,am4376-pru"; 508 pru1_1: pru@38000 { 509 compatible = "ti,am4376-pru"; 586 pru0_0: pru@74000 { 587 compatible = "ti,am4376-pru"; 595 pru0_1: pru@78000 { 596 compatible = "ti,am4376-pru";
|
/linux-6.14.4/drivers/net/ethernet/ti/ |
D | Kconfig | 187 tristate "TI Gigabit PRU Ethernet driver" 196 Support dual Gigabit Ethernet ports over the ICSSG PRU Subsystem. 204 tristate "TI Gigabit PRU SR1.0 Ethernet driver" 212 Support dual Gigabit Ethernet ports over the ICSSG PRU Subsystem. 220 tristate "TI PRU ICSS IEP driver" 225 This driver enables support for the PRU-ICSS Industrial Ethernet 226 Peripheral within a PRU-ICSS subsystem present on various TI SoCs.
|
/linux-6.14.4/include/linux/ |
D | pruss_driver.h | 3 * PRU-ICSS sub-system specific definitions 48 * enum pru_type - PRU core type identifier 101 struct mutex lock; /* PRU resource lock */
|
/linux-6.14.4/drivers/net/ethernet/ti/icssg/ |
D | icssg_prueth_sr1.c | 404 .pru = "ti-pruss/am65x-pru0-prueth-fw.elf", 408 .pru = "ti-pruss/am65x-pru1-prueth-fw.elf", 429 ret = rproc_set_firmware(prueth->pru[slice], firmwares[slice].pru); in prueth_emac_start() 430 ret = rproc_boot(prueth->pru[slice]); in prueth_emac_start() 432 dev_err(dev, "failed to boot PRU%d: %d\n", slice, ret); in prueth_emac_start() 446 rproc_shutdown(prueth->pru[slice]); in prueth_emac_start() 471 rproc_shutdown(prueth->pru[slice]); in prueth_emac_stop() 567 /* reset and start PRU firmware */ in emac_ndo_open() 996 prueth->pru[ICSS_SLICE0] : prueth->pru[ICSS_SLICE1]); in prueth_probe() 1114 dev_info(dev, "TI PRU SR1.0 ethernet driver initialized: %s EMAC mode\n", in prueth_probe()
|
D | icssg_prueth.c | 130 .pru = "ti-pruss/am65x-sr2-pru0-pruhsr-fw.elf", 135 .pru = "ti-pruss/am65x-sr2-pru1-pruhsr-fw.elf", 143 .pru = "ti-pruss/am65x-sr2-pru0-prusw-fw.elf", 148 .pru = "ti-pruss/am65x-sr2-pru1-prusw-fw.elf", 156 .pru = "ti-pruss/am65x-sr2-pru0-prueth-fw.elf", 161 .pru = "ti-pruss/am65x-sr2-pru1-prueth-fw.elf", 196 ret = prueth_start(prueth->pru[slice], firmwares[slice].pru); in prueth_emac_start() 198 dev_err(dev, "failed to boot PRU%d: %d\n", slice, ret); in prueth_emac_start() 205 rproc_shutdown(prueth->pru[slice]); in prueth_emac_start() 213 rproc_shutdown(prueth->pru[slice]); in prueth_emac_start() [all …]
|
D | icssg_common.c | 1167 prueth->pru[slice] = pru_rproc_get(np, idx, &pruss_id); in prueth_get_cores() 1168 if (IS_ERR(prueth->pru[slice])) { in prueth_get_cores() 1169 ret = PTR_ERR(prueth->pru[slice]); in prueth_get_cores() 1170 prueth->pru[slice] = NULL; in prueth_get_cores() 1171 return dev_err_probe(dev, ret, "unable to get PRU%d\n", slice); in prueth_get_cores() 1206 if (prueth->pru[slice]) in prueth_put_cores() 1207 pru_rproc_put(prueth->pru[slice]); in prueth_put_cores()
|
D | icssg_prueth.h | 226 char *pru; member 235 * @pru: rproc instances of PRUs 271 struct rproc *pru[PRUSS_NUM_PRUS]; member
|
/linux-6.14.4/arch/arm64/boot/dts/ti/ |
D | k3-am65-main.dtsi | 1194 pru0_0: pru@34000 { 1195 compatible = "ti,am654-pru"; 1219 compatible = "ti,am654-tx-pru"; 1227 pru0_1: pru@38000 { 1228 compatible = "ti,am654-pru"; 1252 compatible = "ti,am654-tx-pru"; 1365 pru1_0: pru@34000 { 1366 compatible = "ti,am654-pru"; 1390 compatible = "ti,am654-tx-pru"; 1398 pru1_1: pru@38000 { [all …]
|
D | k3-am64-main.dtsi | 1324 pru0_0: pru@34000 { 1325 compatible = "ti,am642-pru"; 1349 compatible = "ti,am642-tx-pru"; 1357 pru0_1: pru@38000 { 1358 compatible = "ti,am642-pru"; 1382 compatible = "ti,am642-tx-pru"; 1503 pru1_0: pru@34000 { 1504 compatible = "ti,am642-pru"; 1528 compatible = "ti,am642-tx-pru"; 1536 pru1_1: pru@38000 { [all …]
|
D | k3-am642-sr-som.dtsi | 27 /* PRU Ethernet Controller */ 50 * Configure icssg interrupt controller to map pru-internal 433 pru_rgmii1_default_pins: pru-rgmii1-default-pins { 450 pru_rgmii2_default_pins: pru-rgmii2-default-pins {
|
D | k3-j721e-main.dtsi | 2348 pru0_0: pru@34000 { 2349 compatible = "ti,j721e-pru"; 2367 compatible = "ti,j721e-tx-pru"; 2375 pru0_1: pru@38000 { 2376 compatible = "ti,j721e-pru"; 2394 compatible = "ti,j721e-tx-pru"; 2490 pru1_0: pru@34000 { 2491 compatible = "ti,j721e-pru"; 2509 compatible = "ti,j721e-tx-pru"; 2517 pru1_1: pru@38000 { [all …]
|
/linux-6.14.4/drivers/irqchip/ |
D | irq-pruss-intc.c | 3 * PRU-ICSS INTC IRQChip driver for various TI SoCs 218 * Undo whatever was done in pruss_intc_map() for a PRU core. 658 MODULE_DESCRIPTION("TI PRU-ICSS INTC Driver");
|
D | Kconfig | 566 This enables support for the PRU-ICSS Local Interrupt Controller 567 present within a PRU-ICSS subsystem present on various TI SoCs.
|