2019-07-03 19:05:28

by Daniel Baluta

[permalink] [raw]
Subject: [PATCH 2/3] firmware: imx: scu-pd: Add mu_b side PD range

LSIO subsystem contains 14 MU instances.

5 MUs to communicate between AP <-> SCU
- side-A PD range managed by AP
- side-B PD range managed by SCU

9 MUs to communicate between AP <-> M4
- side-A PD range managed by AP
- side-B PD range managed by AP

Signed-off-by: Daniel Baluta <[email protected]>
---
drivers/firmware/imx/scu-pd.c | 1 +
1 file changed, 1 insertion(+)

diff --git a/drivers/firmware/imx/scu-pd.c b/drivers/firmware/imx/scu-pd.c
index 950d30238186..30adc3104347 100644
--- a/drivers/firmware/imx/scu-pd.c
+++ b/drivers/firmware/imx/scu-pd.c
@@ -93,6 +93,7 @@ static const struct imx_sc_pd_range imx8qxp_scu_pd_ranges[] = {
{ "kpp", IMX_SC_R_KPP, 1, false, 0 },
{ "fspi", IMX_SC_R_FSPI_0, 2, true, 0 },
{ "mu_a", IMX_SC_R_MU_0A, 14, true, 0 },
+ { "mu_b", IMX_SC_R_MU_5B, 9, true, 0 },

/* CONN SS */
{ "usb", IMX_SC_R_USB_0, 2, true, 0 },
--
2.17.1


2019-07-18 03:29:46

by Aisheng Dong

[permalink] [raw]
Subject: RE: [PATCH 2/3] firmware: imx: scu-pd: Add mu_b side PD range

> From: Daniel Baluta <[email protected]>
> Sent: Thursday, July 4, 2019 3:04 AM
> Subject: [PATCH 2/3] firmware: imx: scu-pd: Add mu_b side PD range
>
> LSIO subsystem contains 14 MU instances.
>
> 5 MUs to communicate between AP <-> SCU
> - side-A PD range managed by AP
> - side-B PD range managed by SCU
>
> 9 MUs to communicate between AP <-> M4

The left 9MUs are general and can be used by all cores,
e.g AP/M4/DSP.
So below description is not correct.

> - side-A PD range managed by AP
> - side-B PD range managed by AP
>
> Signed-off-by: Daniel Baluta <[email protected]>
> ---
> drivers/firmware/imx/scu-pd.c | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/drivers/firmware/imx/scu-pd.c b/drivers/firmware/imx/scu-pd.c
> index 950d30238186..30adc3104347 100644
> --- a/drivers/firmware/imx/scu-pd.c
> +++ b/drivers/firmware/imx/scu-pd.c
> @@ -93,6 +93,7 @@ static const struct imx_sc_pd_range
> imx8qxp_scu_pd_ranges[] = {
> { "kpp", IMX_SC_R_KPP, 1, false, 0 },
> { "fspi", IMX_SC_R_FSPI_0, 2, true, 0 },
> { "mu_a", IMX_SC_R_MU_0A, 14, true, 0 },
> + { "mu_b", IMX_SC_R_MU_5B, 9, true, 0 },

Should start from 5?
{ "mu_b", IMX_SC_R_MU_5B, 9, true, 5 },

Regards
Aisheng

>
> /* CONN SS */
> { "usb", IMX_SC_R_USB_0, 2, true, 0 },
> --
> 2.17.1

2019-07-18 06:52:02

by Daniel Baluta

[permalink] [raw]
Subject: Re: [PATCH 2/3] firmware: imx: scu-pd: Add mu_b side PD range

On Thu, Jul 18, 2019 at 6:30 AM Aisheng Dong <[email protected]> wrote:
>
> > From: Daniel Baluta <[email protected]>
> > Sent: Thursday, July 4, 2019 3:04 AM
> > Subject: [PATCH 2/3] firmware: imx: scu-pd: Add mu_b side PD range
> >
> > LSIO subsystem contains 14 MU instances.
> >
> > 5 MUs to communicate between AP <-> SCU
> > - side-A PD range managed by AP
> > - side-B PD range managed by SCU
> >
> > 9 MUs to communicate between AP <-> M4
>
> The left 9MUs are general and can be used by all cores,
> e.g AP/M4/DSP.
> So below description is not correct.
>
Indeed. In the particular case of the DSP it is true.

I don't know exactly who will use MUs 5..12. I only
know that MU 13 is assigned to DSP and we prefer
to power up side-b from AP because powering up
from DSP would be a pain.

This means that DSP needs a way to communicate with SCU
so basically it needs another MU for that.

> > - side-A PD range managed by AP
> > - side-B PD range managed by AP
> >
> > Signed-off-by: Daniel Baluta <[email protected]>
> > ---
> > drivers/firmware/imx/scu-pd.c | 1 +
> > 1 file changed, 1 insertion(+)
> >
> > diff --git a/drivers/firmware/imx/scu-pd.c b/drivers/firmware/imx/scu-pd.c
> > index 950d30238186..30adc3104347 100644
> > --- a/drivers/firmware/imx/scu-pd.c
> > +++ b/drivers/firmware/imx/scu-pd.c
> > @@ -93,6 +93,7 @@ static const struct imx_sc_pd_range
> > imx8qxp_scu_pd_ranges[] = {
> > { "kpp", IMX_SC_R_KPP, 1, false, 0 },
> > { "fspi", IMX_SC_R_FSPI_0, 2, true, 0 },
> > { "mu_a", IMX_SC_R_MU_0A, 14, true, 0 },
> > + { "mu_b", IMX_SC_R_MU_5B, 9, true, 0 },
>
> Should start from 5?
> { "mu_b", IMX_SC_R_MU_5B, 9, true, 5 },

I guess you are right. I think start_from is used
to form the pd name, because the actual rsrc
is computed as follows:

sc_pd->rsrc = pd_ranges->rsrc + idx;

So, I think for this reason it just worked for me.

Anyhow, I'm thinking about powering up only MU13_B from AP side
and let the user of other MU sides B to decide from themselves.

So, the change will be:

> > + { "mu_b", IMX_SC_R_MU_13B, 1, true, 13 },

Will send v2 asap.