2020-11-19 14:12:07

by Grzegorz Jaszczyk

[permalink] [raw]
Subject: [PATCH v2 6/6] remoteproc/pru: Add support for various PRU cores on K3 J721E SoCs

From: Suman Anna <[email protected]>

The K3 J721E family of SoCs have a revised version of the AM65x ICSSG IP
and contains two instances of this newer ICSSG IP. Each ICSSG processor
subsystem contains 2 primary PRU cores, 2 auxiliary PRU cores called RTUs,
and 2 new auxiliary cores called Transmit PRUs (Tx_PRUs).

Enhance the existing PRU remoteproc driver to support these new PRU
and RTU cores by using specific compatibles. The cores have the same
memory copying limitations as on AM65x, so reuses the custom memcpy
function within the driver's ELF loader implementation. The initial
names for the firmware images for each PRU core are retrieved from
DT nodes, and can be adjusted through sysfs if required.

Signed-off-by: Suman Anna <[email protected]>
Co-developed-by: Grzegorz Jaszczyk <[email protected]>
Signed-off-by: Grzegorz Jaszczyk <[email protected]>
---
drivers/remoteproc/pru_rproc.c | 3 +++
1 file changed, 3 insertions(+)

diff --git a/drivers/remoteproc/pru_rproc.c b/drivers/remoteproc/pru_rproc.c
index 48c1c51e0d42..96f689283a8b 100644
--- a/drivers/remoteproc/pru_rproc.c
+++ b/drivers/remoteproc/pru_rproc.c
@@ -852,6 +852,9 @@ static const struct of_device_id pru_rproc_match[] = {
{ .compatible = "ti,am654-pru", .data = &k3_pru_data },
{ .compatible = "ti,am654-rtu", .data = &k3_rtu_data },
{ .compatible = "ti,am654-tx-pru", .data = &k3_tx_pru_data },
+ { .compatible = "ti,j721e-pru", .data = &k3_pru_data },
+ { .compatible = "ti,j721e-rtu", .data = &k3_rtu_data },
+ { .compatible = "ti,j721e-tx-pru", .data = &k3_tx_pru_data },
{},
};
MODULE_DEVICE_TABLE(of, pru_rproc_match);
--
2.29.0


2020-12-03 18:58:45

by Mathieu Poirier

[permalink] [raw]
Subject: Re: [PATCH v2 6/6] remoteproc/pru: Add support for various PRU cores on K3 J721E SoCs

On Thu, Nov 19, 2020 at 03:08:50PM +0100, Grzegorz Jaszczyk wrote:
> From: Suman Anna <[email protected]>
>
> The K3 J721E family of SoCs have a revised version of the AM65x ICSSG IP
> and contains two instances of this newer ICSSG IP. Each ICSSG processor
> subsystem contains 2 primary PRU cores, 2 auxiliary PRU cores called RTUs,
> and 2 new auxiliary cores called Transmit PRUs (Tx_PRUs).
>
> Enhance the existing PRU remoteproc driver to support these new PRU
> and RTU cores by using specific compatibles. The cores have the same
> memory copying limitations as on AM65x, so reuses the custom memcpy
> function within the driver's ELF loader implementation. The initial
> names for the firmware images for each PRU core are retrieved from
> DT nodes, and can be adjusted through sysfs if required.
>
> Signed-off-by: Suman Anna <[email protected]>
> Co-developed-by: Grzegorz Jaszczyk <[email protected]>
> Signed-off-by: Grzegorz Jaszczyk <[email protected]>

Reviewed-by: Mathieu Poirier <[email protected]>

> ---
> drivers/remoteproc/pru_rproc.c | 3 +++
> 1 file changed, 3 insertions(+)
>
> diff --git a/drivers/remoteproc/pru_rproc.c b/drivers/remoteproc/pru_rproc.c
> index 48c1c51e0d42..96f689283a8b 100644
> --- a/drivers/remoteproc/pru_rproc.c
> +++ b/drivers/remoteproc/pru_rproc.c
> @@ -852,6 +852,9 @@ static const struct of_device_id pru_rproc_match[] = {
> { .compatible = "ti,am654-pru", .data = &k3_pru_data },
> { .compatible = "ti,am654-rtu", .data = &k3_rtu_data },
> { .compatible = "ti,am654-tx-pru", .data = &k3_tx_pru_data },
> + { .compatible = "ti,j721e-pru", .data = &k3_pru_data },
> + { .compatible = "ti,j721e-rtu", .data = &k3_rtu_data },
> + { .compatible = "ti,j721e-tx-pru", .data = &k3_tx_pru_data },
> {},
> };
> MODULE_DEVICE_TABLE(of, pru_rproc_match);
> --
> 2.29.0
>

2020-12-04 14:17:48

by Grzegorz Jaszczyk

[permalink] [raw]
Subject: Re: [PATCH v2 6/6] remoteproc/pru: Add support for various PRU cores on K3 J721E SoCs

Hi Mathieu,

On Thu, 3 Dec 2020 at 19:53, Mathieu Poirier <[email protected]> wrote:
>
> On Thu, Nov 19, 2020 at 03:08:50PM +0100, Grzegorz Jaszczyk wrote:
> > From: Suman Anna <[email protected]>
> >
> > The K3 J721E family of SoCs have a revised version of the AM65x ICSSG IP
> > and contains two instances of this newer ICSSG IP. Each ICSSG processor
> > subsystem contains 2 primary PRU cores, 2 auxiliary PRU cores called RTUs,
> > and 2 new auxiliary cores called Transmit PRUs (Tx_PRUs).
> >
> > Enhance the existing PRU remoteproc driver to support these new PRU
> > and RTU cores by using specific compatibles. The cores have the same
> > memory copying limitations as on AM65x, so reuses the custom memcpy
> > function within the driver's ELF loader implementation. The initial
> > names for the firmware images for each PRU core are retrieved from
> > DT nodes, and can be adjusted through sysfs if required.
> >
> > Signed-off-by: Suman Anna <[email protected]>
> > Co-developed-by: Grzegorz Jaszczyk <[email protected]>
> > Signed-off-by: Grzegorz Jaszczyk <[email protected]>
>
> Reviewed-by: Mathieu Poirier <[email protected]>

Thank you for all your review,
Grzegorz

>
> > ---
> > drivers/remoteproc/pru_rproc.c | 3 +++
> > 1 file changed, 3 insertions(+)
> >
> > diff --git a/drivers/remoteproc/pru_rproc.c b/drivers/remoteproc/pru_rproc.c
> > index 48c1c51e0d42..96f689283a8b 100644
> > --- a/drivers/remoteproc/pru_rproc.c
> > +++ b/drivers/remoteproc/pru_rproc.c
> > @@ -852,6 +852,9 @@ static const struct of_device_id pru_rproc_match[] = {
> > { .compatible = "ti,am654-pru", .data = &k3_pru_data },
> > { .compatible = "ti,am654-rtu", .data = &k3_rtu_data },
> > { .compatible = "ti,am654-tx-pru", .data = &k3_tx_pru_data },
> > + { .compatible = "ti,j721e-pru", .data = &k3_pru_data },
> > + { .compatible = "ti,j721e-rtu", .data = &k3_rtu_data },
> > + { .compatible = "ti,j721e-tx-pru", .data = &k3_tx_pru_data },
> > {},
> > };
> > MODULE_DEVICE_TABLE(of, pru_rproc_match);
> > --
> > 2.29.0
> >