Re: [PATCH v8 3/5] arm64: dts: qcom: sc7180: Enable SoC sleep stats

From: Bjorn Andersson
Date: Wed Jun 02 2021 - 22:45:04 EST


On Wed 02 Jun 19:26 CDT 2021, Stephen Boyd wrote:

> Quoting Bjorn Andersson (2021-05-31 10:57:03)
> > On Wed 26 May 18:30 CDT 2021, Stephen Boyd wrote:
> >
> > > Quoting Maulik Shah (2021-05-21 04:26:09)
> > > > Add device node for SoC sleep stats driver which provides various
> > > > low power mode stats.
> > > >
> > > > Also update the reg size of aoss_qmp device to 0x400.
> > > >
> > > > Cc: devicetree@xxxxxxxxxxxxxxx
> > > > Signed-off-by: Maulik Shah <mkshah@xxxxxxxxxxxxxx>
> > > > Reviewed-by: Bjorn Andersson <bjorn.andersson@xxxxxxxxxx>
> > > > ---
> > > > arch/arm64/boot/dts/qcom/sc7180.dtsi | 7 ++++++-
> > > > 1 file changed, 6 insertions(+), 1 deletion(-)
> > > >
> > > > diff --git a/arch/arm64/boot/dts/qcom/sc7180.dtsi b/arch/arm64/boot/dts/qcom/sc7180.dtsi
> > > > index 6228ba2..889d04d 100644
> > > > --- a/arch/arm64/boot/dts/qcom/sc7180.dtsi
> > > > +++ b/arch/arm64/boot/dts/qcom/sc7180.dtsi
> > > > @@ -3215,7 +3215,7 @@
> > > >
> > > > aoss_qmp: power-controller@c300000 {
> > > > compatible = "qcom,sc7180-aoss-qmp";
> > > > - reg = <0 0x0c300000 0 0x100000>;
> > > > + reg = <0 0x0c300000 0 0x400>;
> > > > interrupts = <GIC_SPI 389 IRQ_TYPE_EDGE_RISING>;
> > > > mboxes = <&apss_shared 0>;
> > > >
> > > > @@ -3223,6 +3223,11 @@
> > > > #power-domain-cells = <1>;
> > > > };
> > > >
> > > > + rpmh-sleep-stats@c3f0000 {
> > > > + compatible = "qcom,rpmh-sleep-stats";
> > > > + reg = <0 0x0c3f0000 0 0x400>;
> > > > + };
> > > > +
> > >
> > > Does this need to be in DT? Can the sc7180-aoss-qmp driver use the
> > > aux-bus and stick the sleep stats device on there?
> > >
> >
> > The AOSS memory space has N chunks of "message ram", one is used for the
> > QMP protocol (presumably the APSS specific one), a different one is used
> > for the sleep stats.
> >
> > I presume we could have come up with a binding for the entire AOSS/AOP
> > and then describe (either implicit or explicitly) the QMP and
> > debug-stats under that.
> >
> > But we'd also have to come up with the same container-device for the RPM
> > case.
>
> Because the rpm node doesn't include this region of memory today? I
> still fail to see why we're changing the existing binding and adding a
> DT node for this new region that is basically a debug feature.

We're not changing the binding, the memory region for the "AOSS QMP"
thing was never larger than 0x400.

0x100000 is the size of all the AOSS "msg_ram" regions. We don't have
this whole thing described in a binding and we don't have an
implementation for the whole thing.

If we're going for that we'd need to extend the binding to indicate
which of the msg_ram regions are used for APSS QMP and for debug stats
on particular platform (either by compatible, explicit properties or as
some subnodes).


That said, as I looked into my other objection, for the RPM
(non-hardened) case it seems that we're actually describing the RPM
region. So there it would make sense to describe it as such in DT - but
we don't have any other code (that I'm aware of) that would implement
the "qcom,<platform>-rpm".

Regards,
Bjorn