From: Bjorn Andersson <bjorn.andersson@linaro.org>
To: Rob Herring <robh@kernel.org>
Cc: Ohad Ben-Cohen <ohad@wizery.com>,
Andy Gross <andy.gross@linaro.org>,
Mark Rutland <mark.rutland@arm.com>,
devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org,
linux-remoteproc@vger.kernel.org, linux-soc@vger.kernel.org
Subject: Re: [PATCH v2 1/4] dt-binding: remoteproc: Introduce ADSP loader binding
Date: Tue, 23 Aug 2016 11:57:20 -0700 [thread overview]
Message-ID: <20160823185720.GD15161@tuxbot> (raw)
In-Reply-To: <20160823183121.GA13010@rob-hp-laptop>
On Tue 23 Aug 11:31 PDT 2016, Rob Herring wrote:
> On Mon, Aug 22, 2016 at 10:57:43PM -0700, Bjorn Andersson wrote:
> > This document defines the binding for a component that loads firmware
> > and control the life cycle of the Qualcomm ADSP core.
> >
> > Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
> > ---
> >
> > Changes since v1:
> > - Added platform names to compatibility
> >
> > .../devicetree/bindings/remoteproc/qcom,adsp.txt | 70 ++++++++++++++++++++++
> > 1 file changed, 70 insertions(+)
> > create mode 100644 Documentation/devicetree/bindings/remoteproc/qcom,adsp.txt
> >
> > diff --git a/Documentation/devicetree/bindings/remoteproc/qcom,adsp.txt b/Documentation/devicetree/bindings/remoteproc/qcom,adsp.txt
> > new file mode 100644
> > index 000000000000..3820151ce3e9
> > --- /dev/null
> > +++ b/Documentation/devicetree/bindings/remoteproc/qcom,adsp.txt
> > @@ -0,0 +1,70 @@
> > +Qualcomm ADSP Peripheral Image Loader
> > +
> > +This document defines the binding for a component that loads and boots firmware
> > +on the Qualcomm ADSP core.
>
> ADSP is for Audio DSP? So there is another driver for the audio
> functions? Why doesn't it do the firmware loading? I'm still confused
> why this binding is separate? If you had one common interface (a rproc)
> to load and boot various other blocks like ADSP and Venus, then this
> would make sense. Or does every accel block have some separate control
> uC associated with it?
>
The ADSP is a general purpose CPU [1] mainly running services related to
audio handling - including controlling audio paths, driving the audio
blocks, audio effects, audio codec decoding.
On some platforms it also sports services for sensor batch offloading
(or whatever Google calls it) and video decoding for certain codecs.
All these services show up in a semi-probable fashion on other buses;
often on SMD, APR, QRTR.
There are a few blocks that share mechanism with the remoteproc, that
does not have a separate uC - with a destinct life cycle - I'm still
investigating how to describe these, but most likely those cases will
not show up in DT at all.
On msm8916 you have the following additional uCs; RPM, Hexagon, Wireless
and Venus; the RPM is always-on.
On msm8960 we have the following uCs; RPM, Hexagon for audio, DSPS (ARM
for sensor processing), two(?) Hexagons for modem, WCNSS (ARM core for
wireless), Venus (seems to be another ARM core) and an optional ARM core
for GPS if you don't have the modem Hexagons.
So, we have between 4 and 8 extra uCs in these SoCs; most are controlled
in a very similar fashion, but requires different resources and some
tweaks to the steps of bringing them up, down and handling crashes.
Downstream this is handled by having a "rproc" driver that's completely
generic, DT provides lists of resources controlling each step and a
callback mechanism is used to extend the rproc drivers with specific
functionality - it took me months to figure out how to boot the WCNSS
because the logic and resources are scattered throughout.
[1] https://en.wikipedia.org/wiki/Qualcomm_Hexagon
Regards,
Bjorn
next prev parent reply other threads:[~2016-08-23 18:57 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-08-23 5:57 [PATCH v2 1/4] dt-binding: remoteproc: Introduce ADSP loader binding Bjorn Andersson
2016-08-23 5:57 ` [PATCH v2 2/4] remoteproc: Introduce Qualcomm ADSP PIL Bjorn Andersson
2016-08-23 15:14 ` Stanimir Varbanov
2016-08-23 16:38 ` Bjorn Andersson
2016-08-23 5:57 ` [PATCH v2 3/4] ARM: dts: msm8974: Add ADSP smp2p and smd nodes Bjorn Andersson
2016-08-23 5:57 ` [PATCH v2 4/4] ARM: dts: msm8974: Add ADSP PIL node Bjorn Andersson
2016-08-23 18:31 ` [PATCH v2 1/4] dt-binding: remoteproc: Introduce ADSP loader binding Rob Herring
2016-08-23 18:57 ` Bjorn Andersson [this message]
2016-08-30 23:47 ` Bjorn Andersson
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20160823185720.GD15161@tuxbot \
--to=bjorn.andersson@linaro.org \
--cc=andy.gross@linaro.org \
--cc=devicetree@vger.kernel.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-arm-msm@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-remoteproc@vger.kernel.org \
--cc=linux-soc@vger.kernel.org \
--cc=mark.rutland@arm.com \
--cc=ohad@wizery.com \
--cc=robh@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).