2022-04-21 06:51:51

by Puranjay Mohan

[permalink] [raw]
Subject: [PATCH v3 0/5] Introduce PRU remoteproc consumer API

This is the v3 of the patch series [1]. The v2 had some minor comments
which have been addressed here.

I will be posting two more patch series which depend on this series, one to
the soc tree and another to the networking tree. I had sent all the 3
series, including this one as RFC [2] to get comments and to explain the
dependencies.

The Programmable Real-Time Unit and Industrial Communication Subsystem
(PRU-ICSS or simply PRUSS) on various TI SoCs consists of dual 32-bit
RISC cores (Programmable Real-Time Units, or PRUs) for program execution.

There are 3 foundation components for PRUSS subsystem: the PRUSS platform
driver, the PRUSS INTC driver and the PRUSS remoteproc driver. All were
already merged and can be found under:
1) drivers/soc/ti/pruss.c
Documentation/devicetree/bindings/soc/ti/ti,pruss.yaml
2) drivers/irqchip/irq-pruss-intc.c
Documentation/devicetree/bindings/interrupt-controller/ti,pruss-intc.yaml
3) drivers/remoteproc/pru_rproc.c
Documentation/devicetree/bindings/remoteproc/ti,pru-rproc.yaml

The programmable nature of the PRUs provide flexibility to implement custom
peripheral interfaces, fast real-time responses, or specialized data handling.
Example of a PRU consumer drivers will be:
- Software UART over PRUSS
- PRU-ICSS Ethernet EMAC

In order to make usage of common PRU resources and allow the consumer drivers to
configure the PRU hardware for specific usage the PRU API is introduced.

[1] https://patchwork.kernel.org/project/linux-remoteproc/cover/[email protected]/
[2] https://patchwork.kernel.org/project/linux-remoteproc/cover/[email protected]/

Thanks,
Puranjay Mohan

Roger Quadros (1):
remoteproc: pru: Add pru_rproc_set_ctable() function

Suman Anna (2):
dt-bindings: remoteproc: Add PRU consumer bindings
remoteproc: pru: Make sysfs entries read-only for PRU client driven
boots

Tero Kristo (2):
remoteproc: pru: Add APIs to get and put the PRU cores
remoteproc: pru: Configure firmware based on client setup

.../bindings/remoteproc/ti,pru-consumer.yaml | 70 ++++++
drivers/remoteproc/pru_rproc.c | 234 +++++++++++++++++-
include/linux/pruss.h | 78 ++++++
3 files changed, 377 insertions(+), 5 deletions(-)
create mode 100644 Documentation/devicetree/bindings/remoteproc/ti,pru-consumer.yaml
create mode 100644 include/linux/pruss.h

--
2.17.1


2022-04-29 03:21:34

by Mathieu Poirier

[permalink] [raw]
Subject: Re: [PATCH v3 0/5] Introduce PRU remoteproc consumer API

On Thu, Apr 28, 2022 at 04:53:22PM +0530, Puranjay Mohan wrote:
> Hi Bjorn,
> Hi Mathieu,
>
> I am writing to follow up on this patch series.
> This has been on the list for the last 10 days and I have not received
> any comments on it. So, does this look good to everyone?
>

10 days - Euh!

Just to put things in perspective, I am currently reviewing patches that have
been sent around March 16th.

> I had solved the minor checkpatch issues from v2 so I guess this series
> should be good now?
>
> Looking forward to your comments.
>
> Thanks
> Puranjay Mohan
>
> On 18/04/22 16:11, Puranjay Mohan wrote:
> > This is the v3 of the patch series [1]. The v2 had some minor comments
> > which have been addressed here.
> >
> > I will be posting two more patch series which depend on this series, one to
> > the soc tree and another to the networking tree. I had sent all the 3
> > series, including this one as RFC [2] to get comments and to explain the
> > dependencies.
> >
> > The Programmable Real-Time Unit and Industrial Communication Subsystem
> > (PRU-ICSS or simply PRUSS) on various TI SoCs consists of dual 32-bit
> > RISC cores (Programmable Real-Time Units, or PRUs) for program execution.
> >
> > There are 3 foundation components for PRUSS subsystem: the PRUSS platform
> > driver, the PRUSS INTC driver and the PRUSS remoteproc driver. All were
> > already merged and can be found under:
> > 1) drivers/soc/ti/pruss.c
> > Documentation/devicetree/bindings/soc/ti/ti,pruss.yaml
> > 2) drivers/irqchip/irq-pruss-intc.c
> > Documentation/devicetree/bindings/interrupt-controller/ti,pruss-intc.yaml
> > 3) drivers/remoteproc/pru_rproc.c
> > Documentation/devicetree/bindings/remoteproc/ti,pru-rproc.yaml
> >
> > The programmable nature of the PRUs provide flexibility to implement custom
> > peripheral interfaces, fast real-time responses, or specialized data handling.
> > Example of a PRU consumer drivers will be:
> > - Software UART over PRUSS
> > - PRU-ICSS Ethernet EMAC
> >
> > In order to make usage of common PRU resources and allow the consumer drivers to
> > configure the PRU hardware for specific usage the PRU API is introduced.
> >
> > [1] https://patchwork.kernel.org/project/linux-remoteproc/cover/[email protected]/
> > [2] https://patchwork.kernel.org/project/linux-remoteproc/cover/[email protected]/
> >
> > Thanks,
> > Puranjay Mohan
> >
> > Roger Quadros (1):
> > remoteproc: pru: Add pru_rproc_set_ctable() function
> >
> > Suman Anna (2):
> > dt-bindings: remoteproc: Add PRU consumer bindings
> > remoteproc: pru: Make sysfs entries read-only for PRU client driven
> > boots
> >
> > Tero Kristo (2):
> > remoteproc: pru: Add APIs to get and put the PRU cores
> > remoteproc: pru: Configure firmware based on client setup
> >
> > .../bindings/remoteproc/ti,pru-consumer.yaml | 70 ++++++
> > drivers/remoteproc/pru_rproc.c | 234 +++++++++++++++++-
> > include/linux/pruss.h | 78 ++++++
> > 3 files changed, 377 insertions(+), 5 deletions(-)
> > create mode 100644 Documentation/devicetree/bindings/remoteproc/ti,pru-consumer.yaml
> > create mode 100644 include/linux/pruss.h
> >

2022-04-29 09:47:56

by Puranjay Mohan

[permalink] [raw]
Subject: Re: [PATCH v3 0/5] Introduce PRU remoteproc consumer API

Hi Bjorn,
Hi Mathieu,

I am writing to follow up on this patch series.
This has been on the list for the last 10 days and I have not received
any comments on it. So, does this look good to everyone?

I had solved the minor checkpatch issues from v2 so I guess this series
should be good now?

Looking forward to your comments.

Thanks
Puranjay Mohan

On 18/04/22 16:11, Puranjay Mohan wrote:
> This is the v3 of the patch series [1]. The v2 had some minor comments
> which have been addressed here.
>
> I will be posting two more patch series which depend on this series, one to
> the soc tree and another to the networking tree. I had sent all the 3
> series, including this one as RFC [2] to get comments and to explain the
> dependencies.
>
> The Programmable Real-Time Unit and Industrial Communication Subsystem
> (PRU-ICSS or simply PRUSS) on various TI SoCs consists of dual 32-bit
> RISC cores (Programmable Real-Time Units, or PRUs) for program execution.
>
> There are 3 foundation components for PRUSS subsystem: the PRUSS platform
> driver, the PRUSS INTC driver and the PRUSS remoteproc driver. All were
> already merged and can be found under:
> 1) drivers/soc/ti/pruss.c
> Documentation/devicetree/bindings/soc/ti/ti,pruss.yaml
> 2) drivers/irqchip/irq-pruss-intc.c
> Documentation/devicetree/bindings/interrupt-controller/ti,pruss-intc.yaml
> 3) drivers/remoteproc/pru_rproc.c
> Documentation/devicetree/bindings/remoteproc/ti,pru-rproc.yaml
>
> The programmable nature of the PRUs provide flexibility to implement custom
> peripheral interfaces, fast real-time responses, or specialized data handling.
> Example of a PRU consumer drivers will be:
> - Software UART over PRUSS
> - PRU-ICSS Ethernet EMAC
>
> In order to make usage of common PRU resources and allow the consumer drivers to
> configure the PRU hardware for specific usage the PRU API is introduced.
>
> [1] https://patchwork.kernel.org/project/linux-remoteproc/cover/[email protected]/
> [2] https://patchwork.kernel.org/project/linux-remoteproc/cover/[email protected]/
>
> Thanks,
> Puranjay Mohan
>
> Roger Quadros (1):
> remoteproc: pru: Add pru_rproc_set_ctable() function
>
> Suman Anna (2):
> dt-bindings: remoteproc: Add PRU consumer bindings
> remoteproc: pru: Make sysfs entries read-only for PRU client driven
> boots
>
> Tero Kristo (2):
> remoteproc: pru: Add APIs to get and put the PRU cores
> remoteproc: pru: Configure firmware based on client setup
>
> .../bindings/remoteproc/ti,pru-consumer.yaml | 70 ++++++
> drivers/remoteproc/pru_rproc.c | 234 +++++++++++++++++-
> include/linux/pruss.h | 78 ++++++
> 3 files changed, 377 insertions(+), 5 deletions(-)
> create mode 100644 Documentation/devicetree/bindings/remoteproc/ti,pru-consumer.yaml
> create mode 100644 include/linux/pruss.h
>