remoteproc: pru: Add support for various PRU cores on K3 AM64x SoCs
authorSuman Anna <s-anna@ti.com>
Wed, 23 Jun 2021 17:32:42 +0000 (12:32 -0500)
committerBjorn Andersson <bjorn.andersson@linaro.org>
Wed, 23 Jun 2021 18:39:20 +0000 (13:39 -0500)
The K3 AM64x family of SoCs have a ICSSG IP that is similar to the
version on AM65x SR2.0 SoCs with some minor differences. The AM64x
SoCs contain 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 all these PRU,
RTU and Tx_PRU 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.

Reviewed-by: Grygorii Strashko <grygorii.strashko@ti.com>
Signed-off-by: Suman Anna <s-anna@ti.com>
Link: https://lore.kernel.org/r/20210623173243.7862-3-s-anna@ti.com
Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
drivers/remoteproc/pru_rproc.c

index e5778e4..1777a01 100644 (file)
@@ -887,6 +887,9 @@ static const struct of_device_id pru_rproc_match[] = {
        { .compatible = "ti,am3356-pru",        .data = &pru_data },
        { .compatible = "ti,am4376-pru",        .data = &pru_data },
        { .compatible = "ti,am5728-pru",        .data = &pru_data },
+       { .compatible = "ti,am642-pru",         .data = &k3_pru_data },
+       { .compatible = "ti,am642-rtu",         .data = &k3_rtu_data },
+       { .compatible = "ti,am642-tx-pru",      .data = &k3_tx_pru_data },
        { .compatible = "ti,k2g-pru",           .data = &pru_data },
        { .compatible = "ti,am654-pru",         .data = &k3_pru_data },
        { .compatible = "ti,am654-rtu",         .data = &k3_rtu_data },