From: Daniel Thompson <daniel.thompson-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
To: Lee Jones <lee.jones-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>,
Peter Griffin
<peter.griffin-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
Cc: Rob Herring <robherring2-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>,
Pawel Moll <pawel.moll-5wv7dgnIgG8@public.gmane.org>,
Mark Rutland <mark.rutland-5wv7dgnIgG8@public.gmane.org>,
Ian Campbell
<ijc+devicetree-KcIKpvwj1kUDXYZnReoRVg@public.gmane.org>,
Kumar Gala <galak-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org>,
Vinod Koul <vinod.koul-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>,
"devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org"
<devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>,
Maxime Coquelin <maxime.coquelin-qxv4g6HH51o@public.gmane.org>,
Patrice Chotard <patrice.chotard-qxv4g6HH51o@public.gmane.org>,
Ludovic Barre <ludovic.barre-qxv4g6HH51o@public.gmane.org>,
"devicetree-spec-u79uwXL29TY76Z2rM5mHXA@public.gmane.org"
<devicetree-spec-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>
Subject: Re: st_fdma: Firmware filename in DT?
Date: Fri, 4 Sep 2015 17:19:40 +0100 [thread overview]
Message-ID: <55E9C49C.6020107@linaro.org> (raw)
In-Reply-To: <20150904102130.GA4796@x1>
On 04/09/15 11:21, Lee Jones wrote:
>>> Absolutely not. Firmwares have no direct link to DT or platforms that
>>> run DT specifically. They are carried by most platforms these days.
>>> Insisting on firmwares using a DT compatible string format is way off.
>>>
>>> If we flip it the other way round, some subsystems derive the firmware
>>> name from the 'node name'. For instance, our zeroth General Purpose
>>> Co-Processor RemoteProc driver has a corresponding node called
>>> 'st231-gp0@40000000'. RemoteProc adds an 'rproc-' prefix and a '-fw'
>>> suffix and et voilà , we load file:
>>>
>>> lib/firmware/rproc-st231-gp0-fw
>>
>> IMO deriving from the node name seems fragile. Also imposing a linux'ism
>> "rproc" prefix on the firmware name doesn't seem correct as the firmwares
>> can be shared across OS's. Although this is how remoteproc subsys core
>> is currently working. It seems a generic DT firmware binding would actually
>> be most useful for the remoteproc subsystem.
>
> The "rproc-%s-fw", where %s == driver name, is only a fall-back. The
> RProc driver is welcome to supply a different firmware name if it
> desires. This is where I think a generic 'firmware' property would be
> of use.
Hmnnn... That default looks really inappropriate for the ST platforms!
Different generations of the hardware have co-processors with similar
roles (and hence all with names like st231-gp0) but its very rare for
the co-processors to have the same firmware binary.
Thus if the default were applied naively we will end up with a bizarre
situation where the kernel is multi-platform but because the kernel does
not select a unique name for the different firmwares, it becomes
needlessly difficult for the userspace to support multiple platforms.
If there was a generic firmware property for this kind of situation it
is fairly natural to note in the bindings docs the importance of
uniqueness through the generations regarding of the choice of name.
There are other ways a driver can generate a unique name as the
generations of chip develop (compatible strings actually very good for
this) but I don't see it fitting quite so naturally into the binding
docs where it can help future adventurers.
>> I guess I should also comment about this on the ST remoteproc thread.
>>
>> I'm curious though as to how the ST remoteproc driver then loads the firmware,
>> as that name doesn't look like a video or audio firmware filename that I've
>> seen shipped from ST. IIRC Usually it is named something like
>>
>> vid_firmware-stih407.elf or audio_firmware-bd-stih407.elf
>
> This driver came direct from ST. I'm using their conventions as a
> default, although I would be happy to conduct some investigation into
> how this works for releases and suggest a better interface. The only
> reason I mentioned it here was because this is how others are using
> other SS which are similar in some way. Same for the Firmware SS I
> guess.
>
> In my unbiased PoV, I'd much prefer the name was derived from a
> predefined propertly.
>
>> IMO we should be treating the firmware as a blackbox, and for me that also
>> includes the filename it is shipped with. Linux drivers making up their own
>> firmware names based on the name of their subsystem doesn't seem like a
>> good way forward to me.
>
> I guess the driver author was just using the fall-back convention for
> testing. I'm pretty sure RemoteProc isn't being shipped in products
> yet.
Both for fdma and co-processors, it is important that the kernel (or
kernel informed by DT properties/compatible strings) is "assertive"
enough to choose names that are sufficiently unique.
That is far more important than honoring vendor filenames.
Vendor filenames could easily be both too simple ("firmware.bin") or too
detailed ("fdma-foo+bar-v1.8_20140811.fw"; the DT should not be encoding
the version number of a firmware loaded from userspace since its not a
fixed property of the platform).
Daniel.
next prev parent reply other threads:[~2015-09-04 16:19 UTC|newest]
Thread overview: 31+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <20150903144944.GC7093@griffinp-ThinkPad-X1-Carbon-2nd>
2015-09-03 21:45 ` st_fdma: Firmware filename in DT? Rob Herring
[not found] ` <CAL_JsqKQqbAQCPR6xuR2Ke5gEdX4kQYb29-W3qNaZqjM_JBoYg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-09-04 6:59 ` Lee Jones
2015-09-04 9:20 ` Peter Griffin
2015-09-04 10:21 ` Lee Jones
2015-09-04 13:04 ` Arnd Bergmann
[not found] ` <201509041504.38412.arnd-r2nGTMty4D4@public.gmane.org>
2015-09-04 13:26 ` Lee Jones
2015-09-04 13:44 ` Rob Herring
[not found] ` <CAL_Jsq+XpBV+BMMq1gYnvKtv6O5mjqVw6zsP4G-4Za3cQm9PzQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-09-04 13:54 ` Lee Jones
2015-09-04 14:36 ` Warner Losh
2015-09-05 9:17 ` Arnd Bergmann
[not found] ` <201509051117.59751.arnd-r2nGTMty4D4@public.gmane.org>
2015-09-08 3:14 ` David Gibson
2015-09-04 14:30 ` Warner Losh
[not found] ` <C93CEE95-AF30-4B2D-BD96-66733B282414-uzTCJ5RojNnQT0dZR+AlfA@public.gmane.org>
2015-09-05 8:58 ` Arnd Bergmann
[not found] ` <CANCZdfrLbbN_nGJ8WLsBHHGuM3SxGgiLgjkZ+YG4zP4BBA68YQ@mail.gmail.com>
[not found] ` <CANCZdfrLbbN_nGJ8WLsBHHGuM3SxGgiLgjkZ+YG4zP4BBA68YQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-09-07 12:41 ` Arnd Bergmann
2015-09-04 14:27 ` Warner Losh
[not found] ` <5E0DCAA5-DB90-4682-92F2-061A07FE973E-uzTCJ5RojNnQT0dZR+AlfA@public.gmane.org>
2015-09-04 19:04 ` Rob Herring
[not found] ` <CAL_Jsq+bw1TcXt0c8L4BSvwWK82L2cG-qdw369EkvxWe-5RXbQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-09-05 9:25 ` Arnd Bergmann
[not found] ` <201509051125.43527.arnd-r2nGTMty4D4@public.gmane.org>
2015-09-07 10:30 ` Daniel Thompson
[not found] ` <55ED6733.7050807-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
2015-09-07 12:33 ` Arnd Bergmann
2015-09-07 14:36 ` Daniel Thompson
[not found] ` <55EDA0EB.1040501-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
2015-09-07 15:59 ` Arnd Bergmann
2015-09-10 14:18 ` Peter Griffin
2015-09-11 9:17 ` Lee Jones
2015-09-11 9:21 ` Arnd Bergmann
2015-09-11 9:39 ` Lee Jones
2015-09-11 9:46 ` Peter Griffin
2015-09-11 10:25 ` Lee Jones
2015-09-11 12:31 ` Peter Griffin
2015-09-04 16:19 ` Daniel Thompson [this message]
2015-09-04 8:46 ` Peter Griffin
2015-09-08 2:57 ` David Gibson
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=55E9C49C.6020107@linaro.org \
--to=daniel.thompson-qsej5fyqhm4dnm+yrofe0a@public.gmane.org \
--cc=devicetree-spec-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=galak-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org \
--cc=ijc+devicetree-KcIKpvwj1kUDXYZnReoRVg@public.gmane.org \
--cc=lee.jones-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org \
--cc=ludovic.barre-qxv4g6HH51o@public.gmane.org \
--cc=mark.rutland-5wv7dgnIgG8@public.gmane.org \
--cc=maxime.coquelin-qxv4g6HH51o@public.gmane.org \
--cc=patrice.chotard-qxv4g6HH51o@public.gmane.org \
--cc=pawel.moll-5wv7dgnIgG8@public.gmane.org \
--cc=peter.griffin-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org \
--cc=robherring2-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org \
--cc=vinod.koul-ral2JQCrhuEAvxtiuMwx3w@public.gmane.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).