mbox series

[v3,0/5] Introduce PRU remoteproc consumer API

Message ID 20220418104118.12878-1-p-mohan@ti.com (mailing list archive)
Headers show
Series Introduce PRU remoteproc consumer API | expand

Message

Puranjay Mohan April 18, 2022, 10:41 a.m. UTC
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/20201216165239.2744-1-grzegorz.jaszczyk@linaro.org/
[2] https://patchwork.kernel.org/project/linux-remoteproc/cover/20220406094358.7895-1-p-mohan@ti.com/

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

Comments

Puranjay Mohan April 28, 2022, 11:23 a.m. UTC | #1
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/20201216165239.2744-1-grzegorz.jaszczyk@linaro.org/
> [2] https://patchwork.kernel.org/project/linux-remoteproc/cover/20220406094358.7895-1-p-mohan@ti.com/
> 
> 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
>
Mathieu Poirier April 28, 2022, 4:39 p.m. UTC | #2
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/20201216165239.2744-1-grzegorz.jaszczyk@linaro.org/
> > [2] https://patchwork.kernel.org/project/linux-remoteproc/cover/20220406094358.7895-1-p-mohan@ti.com/
> > 
> > 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
> >