From: Thierry Reding <thierry.reding@gmail.com>
To: Ohad Ben-Cohen <ohad@wizery.com>
Cc: Arjun Gopalan <agopalan@nvidia.com>,
Brian Swetland <swetland@google.com>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
"linux-tegra@vger.kernel.org" <linux-tegra@vger.kernel.org>,
Paul Walmsley <pwalmsley@nvidia.com>
Subject: Re: permission to move definition of struct rpmsg_channel_info
Date: Mon, 9 Sep 2013 14:57:46 +0200 [thread overview]
Message-ID: <20130909125745.GD22197@ulmo> (raw)
In-Reply-To: <CAK=WgbZ2JgtAonvdyeDZazYBGdKpPAieJtjzi7MM6nwqhVfs7g@mail.gmail.com>
[-- Attachment #1: Type: text/plain, Size: 3078 bytes --]
On Sun, Sep 08, 2013 at 02:27:11PM +0200, Ohad Ben-Cohen wrote:
> Hi Arjun,
>
> On Fri, Aug 30, 2013 at 9:20 PM, Arjun Gopalan <agopalan@nvidia.com> wrote:
> >
> > Hi Ohad/Brian,
> >
> > I have been working on rpmsg and I need to be able to create static
> > rpmsg channels. Channel information needs to be specified by other
> > drivers and for this, the drivers need access to struct
> > rpmsg_channel_info.
>
> I'm not convinced how useful it is for other Linux drivers to create
> static rpmsg channels?
>
> Usually these channels reflect the existence of services running on
> the remote processor, and their creation (or lack thereof) should be
> specified in the remote image. This way an rpmsg channel is published
> iff there is a matching remote service.
If I understand correctly, the way that the services should be announced
is via RSC_VDEV entries in the resource table?
Looking at the remoteproc core and ELF loader, it seems like the way to
pass in the resource table is either via an extra ELF section or driver
specific. TI drivers seem to use ELF, but the STE modem driver seems to
employ some custom format.
From what I understand this resource table can also be processed by the
host to provide some of the resources such as carveout memory. So that
the normal way for this to work would be something like:
- load firmware image
- obtain pointer to resource table
- process resource table
- allocate resources
- update table
- upload firmware to remote processor
Upon which the remote processor probably needs to parse the resource
table to set itself up. Does that sound about right?
> The way we were planning to add static channels functionality (I
> should still have preliminary patches doing this somewhere but the
> entire work was put on hold since TI changed its focus) is by
> statically publishing them in the resource table, which is coupled
> with a specific remote image.
While I see that the format of all this is pretty well documented, are
there any standard tools that can be used to embed the resource table
into an ELF binary? I have a pretty good idea on how it could be done,
but I wonder if it might make sense to provide some kind of a standard
set of headers to make things easier so that not everyone has to
reinvent the wheel.
Looking at the remoteproc core, it seems that there's no direct way to
change the firmware running on a remoteproc at runtime. The firmware
image is bound to one specific struct rproc. Is there something
fundamental that would prevent us from adding some sort of hotplug
support so that we could reload the remote processor with a different
firmware using a different resource table at runtime? A remote processor
is only exposed via sysfs, so I assume that's probably where we'd need
to hook that up to?
Perhaps I should mention that I'm investigating on using remoteproc for
something semi-related to what Arjun is working on, so I expect most of
these questions to be relevant to his work as well.
Thierry
[-- Attachment #2: Type: application/pgp-signature, Size: 836 bytes --]
next prev parent reply other threads:[~2013-09-09 12:58 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-08-30 19:20 permission to move definition of struct rpmsg_channel_info Arjun Gopalan
2013-09-08 12:27 ` Ohad Ben-Cohen
2013-09-09 12:57 ` Thierry Reding [this message]
2013-09-09 20:06 ` Ohad Ben-Cohen
2013-09-10 17:00 ` Thierry Reding
2013-09-10 19:18 ` Arjun Gopalan
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=20130909125745.GD22197@ulmo \
--to=thierry.reding@gmail.com \
--cc=agopalan@nvidia.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-tegra@vger.kernel.org \
--cc=ohad@wizery.com \
--cc=pwalmsley@nvidia.com \
--cc=swetland@google.com \
/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