Home
last modified time | relevance | path

Searched full:pru (Results 1 – 25 of 35) sorted by relevance

12

/openbmc/linux/drivers/remoteproc/
H A Dpru_rproc.c3 * 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 …]
H A Dpru_rproc.h13 * 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
H A DKconfig153 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.
/openbmc/linux/Documentation/devicetree/bindings/remoteproc/
H A Dti,pru-rproc.yaml4 $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 …]
H A Dti,pru-consumer.yaml4 $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 …]
/openbmc/linux/Documentation/devicetree/bindings/soc/ti/
H A Dti,pruss.yaml16 (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
99 The various Data RAMs within a single PRU-ICSS unit are represented as a
130 PRU-ICSS configuration space. CFG sub-module represented as a SysCon.
[all …]
/openbmc/linux/include/linux/remoteproc/
H A Dpruss.h3 * 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.
/openbmc/linux/Documentation/devicetree/bindings/interrupt-controller/
H A Dti,pruss-intc.yaml7 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 */
/openbmc/linux/drivers/soc/ti/
H A Dpruss.c3 * 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 …]
H A DKconfig87 tristate "TI PRU-ICSS Subsystem Platform drivers"
91 TI PRU-ICSS Subsystem platform specific support.
93 Say Y or M here to support the Programmable Realtime Unit (PRU)
95 not interested in the PRU or if you are unsure.
H A Dpruss.h3 * PRU-ICSS Subsystem user interfaces
/openbmc/linux/arch/arm/boot/dts/ti/omap/
H A Dam57-pruss.dtsi88 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";
H A Dam4372.dtsi499 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";
/openbmc/linux/drivers/net/ethernet/ti/
H A DKconfig191 tristate "TI Gigabit PRU Ethernet driver"
198 Support dual Gigabit Ethernet ports over the ICSSG PRU Subsystem.
206 tristate "TI PRU ICSS IEP driver"
211 This driver enables support for the PRU-ICSS Industrial Ethernet
212 Peripheral within a PRU-ICSS subsystem present on various TI SoCs.
/openbmc/linux/include/linux/
H A Dpruss_driver.h3 * PRU-ICSS sub-system specific definitions
48 * enum pru_type - PRU core type identifier
101 struct mutex lock; /* PRU resource lock */
/openbmc/linux/arch/arm64/boot/dts/ti/
H A Dk3-am65-main.dtsi1184 pru0_0: pru@34000 {
1185 compatible = "ti,am654-pru";
1203 compatible = "ti,am654-tx-pru";
1211 pru0_1: pru@38000 {
1212 compatible = "ti,am654-pru";
1230 compatible = "ti,am654-tx-pru";
1326 pru1_0: pru@34000 {
1327 compatible = "ti,am654-pru";
1345 compatible = "ti,am654-tx-pru";
1353 pru1_1: pru@38000 {
[all …]
H A Dk3-am64-main.dtsi1262 pru0_0: pru@34000 {
1263 compatible = "ti,am642-pru";
1281 compatible = "ti,am642-tx-pru";
1289 pru0_1: pru@38000 {
1290 compatible = "ti,am642-pru";
1308 compatible = "ti,am642-tx-pru";
1403 pru1_0: pru@34000 {
1404 compatible = "ti,am642-pru";
1422 compatible = "ti,am642-tx-pru";
1430 pru1_1: pru@38000 {
[all …]
H A Dk3-j721e-main.dtsi2230 pru0_0: pru@34000 {
2231 compatible = "ti,j721e-pru";
2249 compatible = "ti,j721e-tx-pru";
2257 pru0_1: pru@38000 {
2258 compatible = "ti,j721e-pru";
2276 compatible = "ti,j721e-tx-pru";
2372 pru1_0: pru@34000 {
2373 compatible = "ti,j721e-pru";
2391 compatible = "ti,j721e-tx-pru";
2399 pru1_1: pru@38000 {
[all …]
/openbmc/linux/drivers/net/ethernet/ti/icssg/
H A Dicssg_prueth.c890 char *pru; member
897 .pru = "ti-pruss/am65x-sr2-pru0-prueth-fw.elf",
902 .pru = "ti-pruss/am65x-sr2-pru1-prueth-fw.elf",
926 ret = rproc_set_firmware(prueth->pru[slice], firmwares[slice].pru); in prueth_emac_start()
927 ret = rproc_boot(prueth->pru[slice]); in prueth_emac_start()
929 dev_err(dev, "failed to boot PRU%d: %d\n", slice, ret); in prueth_emac_start()
954 rproc_shutdown(prueth->pru[slice]); in prueth_emac_start()
979 rproc_shutdown(prueth->pru[slice]); in prueth_emac_stop()
1374 /* reset and start PRU firmware */ in emac_ndo_open()
1903 prueth->pru[slice] = pru_rproc_get(np, idx, &pruss_id); in prueth_get_cores()
[all …]
H A Dicssg_prueth.h194 * @pru: rproc instances of PRUs
216 struct rproc *pru[PRUSS_NUM_PRUS]; member
H A Dicssg_mii_rt.h3 /* PRU-ICSS MII_RT register definitions
/openbmc/u-boot/arch/arm/mach-omap2/
H A DKconfig113 ARM core, a quad core PRU-ICSS for industrial Ethernet
131 ARM core, a dual core PRU-ICSS for industrial Ethernet
/openbmc/linux/drivers/uio/
H A Duio_pruss.c37 * firmware and user space application, async notification from PRU firmware
124 /* Power on PRU in case its not done as part of boot-loader */ in pruss_probe()
/openbmc/linux/drivers/irqchip/
H A DKconfig533 This enables support for the PRU-ICSS Local Interrupt Controller
534 present within a PRU-ICSS subsystem present on various TI SoCs.
H A Dirq-pruss-intc.c3 * PRU-ICSS INTC IRQChip driver for various TI SoCs
218 * Undo whatever was done in pruss_intc_map() for a PRU core.
660 MODULE_DESCRIPTION("TI PRU-ICSS INTC Driver");

12