2021-06-04 06:52:09

by Peng Fan (OSS)

[permalink] [raw]
Subject: [PATCH 2/2] remoteproc: imx_rproc: support i.MX8ULP

From: Peng Fan <[email protected]>

i.MX8ULP is a new SoC with Ultra low power support, it has a Cortex-M33
core and two Cortex-A35 cores. We need to add new configuration because
it could not reuse the previous i.MX7/8 configuration.

i.MX8ULP M33 core is kicked by ROM, it is not under control of A35 core.
So need to mark the method is IMX_RPROC_NONE.

Signed-off-by: Peng Fan <[email protected]>
---
drivers/remoteproc/imx_rproc.c | 13 +++++++++++++
1 file changed, 13 insertions(+)

diff --git a/drivers/remoteproc/imx_rproc.c b/drivers/remoteproc/imx_rproc.c
index 7cc0cadea1cc..d88f76f5305e 100644
--- a/drivers/remoteproc/imx_rproc.c
+++ b/drivers/remoteproc/imx_rproc.c
@@ -172,6 +172,12 @@ static const struct imx_rproc_att imx_rproc_att_imx8mq[] = {
{ 0x40000000, 0x40000000, 0x80000000, 0 },
};

+static const struct imx_rproc_att imx_rproc_att_imx8ulp[] = {
+ {0x1FFC0000, 0x1FFC0000, 0xC0000, ATT_OWN},
+ {0x21000000, 0x21000000, 0x10000, ATT_OWN},
+ {0x80000000, 0x80000000, 0x60000000, 0}
+};
+
static const struct imx_rproc_att imx_rproc_att_imx7ulp[] = {
{0x1FFD0000, 0x1FFD0000, 0x30000, ATT_OWN},
{0x20000000, 0x20000000, 0x10000, ATT_OWN},
@@ -246,6 +252,12 @@ static const struct imx_rproc_dcfg imx_rproc_cfg_imx8mq = {
.method = IMX_RPROC_MMIO,
};

+static const struct imx_rproc_dcfg imx_rproc_cfg_imx8ulp = {
+ .att = imx_rproc_att_imx8ulp,
+ .att_size = ARRAY_SIZE(imx_rproc_att_imx8ulp),
+ .method = IMX_RPROC_NONE,
+};
+
static const struct imx_rproc_dcfg imx_rproc_cfg_imx7ulp = {
.att = imx_rproc_att_imx7ulp,
.att_size = ARRAY_SIZE(imx_rproc_att_imx7ulp),
@@ -824,6 +836,7 @@ static const struct of_device_id imx_rproc_of_match[] = {
{ .compatible = "fsl,imx8mm-cm4", .data = &imx_rproc_cfg_imx8mq },
{ .compatible = "fsl,imx8mn-cm7", .data = &imx_rproc_cfg_imx8mn },
{ .compatible = "fsl,imx8mp-cm7", .data = &imx_rproc_cfg_imx8mn },
+ { .compatible = "fsl,imx8ulp-cm33", .data = &imx_rproc_cfg_imx8ulp },
{},
};
MODULE_DEVICE_TABLE(of, imx_rproc_of_match);
--
2.30.0


2021-06-10 17:08:51

by Mathieu Poirier

[permalink] [raw]
Subject: Re: [PATCH 2/2] remoteproc: imx_rproc: support i.MX8ULP

On Fri, Jun 04, 2021 at 03:23:11PM +0800, Peng Fan (OSS) wrote:
> From: Peng Fan <[email protected]>
>
> i.MX8ULP is a new SoC with Ultra low power support, it has a Cortex-M33
> core and two Cortex-A35 cores. We need to add new configuration because
> it could not reuse the previous i.MX7/8 configuration.
>
> i.MX8ULP M33 core is kicked by ROM, it is not under control of A35 core.
> So need to mark the method is IMX_RPROC_NONE.
>
> Signed-off-by: Peng Fan <[email protected]>
> ---
> drivers/remoteproc/imx_rproc.c | 13 +++++++++++++
> 1 file changed, 13 insertions(+)
>

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

> diff --git a/drivers/remoteproc/imx_rproc.c b/drivers/remoteproc/imx_rproc.c
> index 7cc0cadea1cc..d88f76f5305e 100644
> --- a/drivers/remoteproc/imx_rproc.c
> +++ b/drivers/remoteproc/imx_rproc.c
> @@ -172,6 +172,12 @@ static const struct imx_rproc_att imx_rproc_att_imx8mq[] = {
> { 0x40000000, 0x40000000, 0x80000000, 0 },
> };
>
> +static const struct imx_rproc_att imx_rproc_att_imx8ulp[] = {
> + {0x1FFC0000, 0x1FFC0000, 0xC0000, ATT_OWN},
> + {0x21000000, 0x21000000, 0x10000, ATT_OWN},
> + {0x80000000, 0x80000000, 0x60000000, 0}
> +};
> +
> static const struct imx_rproc_att imx_rproc_att_imx7ulp[] = {
> {0x1FFD0000, 0x1FFD0000, 0x30000, ATT_OWN},
> {0x20000000, 0x20000000, 0x10000, ATT_OWN},
> @@ -246,6 +252,12 @@ static const struct imx_rproc_dcfg imx_rproc_cfg_imx8mq = {
> .method = IMX_RPROC_MMIO,
> };
>
> +static const struct imx_rproc_dcfg imx_rproc_cfg_imx8ulp = {
> + .att = imx_rproc_att_imx8ulp,
> + .att_size = ARRAY_SIZE(imx_rproc_att_imx8ulp),
> + .method = IMX_RPROC_NONE,
> +};
> +
> static const struct imx_rproc_dcfg imx_rproc_cfg_imx7ulp = {
> .att = imx_rproc_att_imx7ulp,
> .att_size = ARRAY_SIZE(imx_rproc_att_imx7ulp),
> @@ -824,6 +836,7 @@ static const struct of_device_id imx_rproc_of_match[] = {
> { .compatible = "fsl,imx8mm-cm4", .data = &imx_rproc_cfg_imx8mq },
> { .compatible = "fsl,imx8mn-cm7", .data = &imx_rproc_cfg_imx8mn },
> { .compatible = "fsl,imx8mp-cm7", .data = &imx_rproc_cfg_imx8mn },
> + { .compatible = "fsl,imx8ulp-cm33", .data = &imx_rproc_cfg_imx8ulp },
> {},
> };
> MODULE_DEVICE_TABLE(of, imx_rproc_of_match);
> --
> 2.30.0
>