From: Bjorn Andersson <bjorn.andersson@linaro.org>
To: Rob Herring <robh@kernel.org>
Cc: Stanimir Varbanov <stanimir.varbanov@linaro.org>,
Andy Gross <andy.gross@linaro.org>,
Ohad Ben-Cohen <ohad@wizery.com>,
Stephen Boyd <sboyd@codeaurora.org>,
Mark Rutland <mark.rutland@arm.com>,
Rob Clark <robdclark@gmail.com>,
Srinivas Kandagatla <srinivas.kandagatla@linaro.org>,
linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org,
linux-remoteproc@vger.kernel.org, devicetree@vger.kernel.org
Subject: Re: [PATCH 3/4] dt-binding: remoteproc: venus rproc dt binding document
Date: Tue, 23 Aug 2016 11:21:57 -0700 [thread overview]
Message-ID: <20160823182157.GC15161@tuxbot> (raw)
In-Reply-To: <20160823173259.GA13327@rob-hp-laptop>
On Tue 23 Aug 10:32 PDT 2016, Rob Herring wrote:
> On Fri, Aug 19, 2016 at 06:53:19PM +0300, Stanimir Varbanov wrote:
> > Add devicetree binding document for Venus remote processor.
> >
> > Signed-off-by: Stanimir Varbanov <stanimir.varbanov@linaro.org>
> > ---
> > .../devicetree/bindings/remoteproc/qcom,venus.txt | 33 ++++++++++++++++++++++
> > 1 file changed, 33 insertions(+)
> > create mode 100644 Documentation/devicetree/bindings/remoteproc/qcom,venus.txt
> >
> > diff --git a/Documentation/devicetree/bindings/remoteproc/qcom,venus.txt b/Documentation/devicetree/bindings/remoteproc/qcom,venus.txt
> > new file mode 100644
> > index 000000000000..06a2db60fa38
> > --- /dev/null
> > +++ b/Documentation/devicetree/bindings/remoteproc/qcom,venus.txt
> > @@ -0,0 +1,33 @@
> > +Qualcomm Venus Peripheral Image Loader
> > +
> > +This document defines the binding for a component that loads and boots firmware
> > +on the Qualcomm Venus remote processor core.
>
> This does not make sense to me. Venus is the video encoder/decoder h/w,
> right?
Yes, Venus is an ARM based thing doing video encoding and decoding.
> Why is the firmware loader separate from the codec block?
> Why rproc is used?
Implementation wise it shares structure and almost all the logic with
other remoteprocs in the Qualcomm platform; you load firmware into a
memory region, you grab a few resources (clocks, regulators,
power-domains), you jump into TrustZone for signature checks and you
release the resources as the remote is booted and have voted for these
with the RPM.
But there is also a second operation mode, where one of the Hexagon DSPs
"imitates" a Venus core; with slightly different transport mechanism for
transferring the command stream - so the Venus node might operate on a
non-Venus hardware.
That said, the Venus node (in Venus-hw mode) has a 1:1 life cycle with
the power-on-state of the remoteproc. So perhaps we should describe the
two parts in one DT node and have the rproc-venus implementation spawn
the v4l driver when the remote is running...
But that would mean that on a 8064 we would have 5-6 nodes describing
standalone remoteprocs and one describing the exact same thing but in a
completely different way.
If we keep it as two nodes, I think it would be better to describe the
video-part as a child of the venus-rproc; to show the link between the
two parts.
> Are there multiple clients?
> Naming it rproc_venus implies there aren't.
I'm still investigating this, but it looks like rproc part of the
8060/8960/8064 "vidc" is very similar.
> And why does the firmware loading need 8MB of memory at a fixed address?
>
On msm8974 the Venus should be loaded into a 5MB region with a fixed
address, perhaps just because of some memory budgeting document. On 8916
it looks (downstream) like all we need is the size and it can be
positioned wherever.
But I would say this is not a property of the rproc-venus, but rather
about system configuration and the firmware. As such I think we should
omit the memory reserve from the example and make sure the
implementation can deal with either a fixed or only-sized reserved
memory region.
Regards,
Bjorn
next prev parent reply other threads:[~2016-08-23 18:21 UTC|newest]
Thread overview: 34+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-08-19 15:53 [PATCH 0/4] Venus remoteproc driver Stanimir Varbanov
2016-08-19 15:53 ` Stanimir Varbanov
[not found] ` <1471622000-1906-1-git-send-email-stanimir.varbanov-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
2016-08-19 15:53 ` [PATCH 1/4] firmware: qcom: scm: add a video command for state setting Stanimir Varbanov
2016-08-19 15:53 ` Stanimir Varbanov
2016-08-19 15:53 ` [PATCH 2/4] firmware: qcom: scm: add iommu scm calls for pg table Stanimir Varbanov
[not found] ` <1471622000-1906-3-git-send-email-stanimir.varbanov-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
2016-08-22 16:29 ` kbuild test robot
2016-08-22 16:29 ` kbuild test robot
2016-08-22 16:29 ` kbuild test robot
2016-08-24 18:35 ` Gupta, Puja
2016-08-25 9:08 ` Stanimir Varbanov
2016-08-30 21:15 ` Andy Gross
2016-08-19 15:53 ` [PATCH 3/4] dt-binding: remoteproc: venus rproc dt binding document Stanimir Varbanov
2016-08-23 17:32 ` Rob Herring
2016-08-23 18:21 ` Bjorn Andersson [this message]
2016-08-24 15:36 ` Stanimir Varbanov
2016-08-24 15:36 ` Stanimir Varbanov
2016-08-25 0:05 ` Bjorn Andersson
2016-08-25 11:10 ` Stanimir Varbanov
2016-08-25 11:10 ` Stanimir Varbanov
[not found] ` <3429173a-d55a-51e1-0973-7e5bd31be297-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
2016-08-26 22:23 ` Bjorn Andersson
2016-08-26 22:23 ` Bjorn Andersson
2016-08-29 11:48 ` Stanimir Varbanov
2016-08-30 17:17 ` Bjorn Andersson
2016-09-01 14:58 ` Stanimir Varbanov
[not found] ` <b7314a89-2215-4961-6e8a-be5ef536624a-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
2016-09-01 20:46 ` Andy Gross
2016-09-01 20:46 ` Andy Gross
2016-09-02 11:52 ` Marek Szyprowski
2016-09-02 20:12 ` Bjorn Andersson
2016-09-07 11:52 ` Stanimir Varbanov
2016-09-07 11:52 ` Stanimir Varbanov
2016-09-15 8:46 ` Marek Szyprowski
2016-08-19 15:53 ` [PATCH 4/4] remoteproc: qcom: add Venus video core firmware loader driver Stanimir Varbanov
[not found] ` <1471622000-1906-5-git-send-email-stanimir.varbanov-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
2016-10-18 16:23 ` Stanimir Varbanov
2016-10-18 16:23 ` Stanimir Varbanov
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=20160823182157.GC15161@tuxbot \
--to=bjorn.andersson@linaro.org \
--cc=andy.gross@linaro.org \
--cc=devicetree@vger.kernel.org \
--cc=linux-arm-msm@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-remoteproc@vger.kernel.org \
--cc=mark.rutland@arm.com \
--cc=ohad@wizery.com \
--cc=robdclark@gmail.com \
--cc=robh@kernel.org \
--cc=sboyd@codeaurora.org \
--cc=srinivas.kandagatla@linaro.org \
--cc=stanimir.varbanov@linaro.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.