From: "Luis R. Rodriguez" <mcgrof@gmail.com>
To: Marcel Holtmann <marcel@holtmann.org>
Cc: David Woodhouse <dwmw2@infradead.org>,
Johannes Berg <johannes@sipsolutions.net>,
linux-kernel@vger.kernel.org,
linux-wireless <linux-wireless@vger.kernel.org>,
Vipin Mehta <Vipin.Mehta@atheros.com>
Subject: Re: Firmware versioning best practices II
Date: Mon, 22 Feb 2010 13:03:52 -0800 [thread overview]
Message-ID: <43e72e891002221303ne571d07g9bb9cbeace40ce0c@mail.gmail.com> (raw)
In-Reply-To: <1266866854.18491.42.camel@violet>
On Mon, Feb 22, 2010 at 11:27 AM, Marcel Holtmann <marcel@holtmann.org> wrote:
> Hi Luis,
>
>> >> > > > That doesn't make much sense anyway. If the firmware filename is
>> >> > > > foo-$APIVER-$CODEVER every code change would need a corresponding
>> >> > > driver
>> >> > > > change. If it is just foo-$APIVER then the $CODEVER can be embedded
>> >> > > in
>> >> > > > the firmware file and printed so you know which code you're using,
>> >> > > but
>> >> > > > if it doesn't influence the API I don't see why it should be part of
>> >> > > the
>> >> > > > filename?
>> >> > >
>> >> > > The idea is that just like with shared libraries, you have a symlink
>> >> > > from the 'soname' foo-3.fw to the actual file foo-3-1.4.1.fw.
>> >> >
>> >> > Ah ok. I indeed do that manually with iwlwifi firmware :)
>> >> >
>> >> > > For shared libraries, it's easy to create those symlinks automatically
>> >> > > using ldconfig. For firmware that doesn't really work though -- since
>> >> > > the soname isn't encoded in the file like it is in ELF libraries.
>> >> >
>> >> > Right. Though I guess we could come up with a unified firmware wrapper
>> >> > format that the firmware loader can unwrap.
>> >>
>> >> I suppose we could, but this seems like overkill to me.
>> >
>> > I have to agree. This looks like total overkill to me.
>> >
>> > Just use the $APIVER in the firmware filename.
>>
>> OK -- so what goes into linux-firmware is just the latest
>>
>> foo-$(API)
>>
>> > And if someone wants to
>> > keep track of more details then they can manually symlink them.
>>
>> Well do we want the older foo-$(API)-$(VAR) files in linux-firmware
>> too for those companies/developers wishing to do this?
>
> personally I would say no, but for some projects it might make sense. I
> would just leave this up to the project/driver itself.
OK
>> What about deprecating APIs of the firmware based on kernel releases.
>> I see it reasonable to deprecate a firmware API completely for a
>> future kernel release provided you maintain all features and
>> functionality in par. Does that sound reasonable?
>
> Realistically you have to deprecate firmware versions at some point
> anyway. So yes, that makes sense.
OK
> However I would leave this again up to
> the driver itself and how far the maintainers wanna go in supported
> older API versions.
I was looking for general rules and guidelines to document. That
includes things to do and things to not do. It sounds we are flexible
with what people can do with their firmware and their driver firmware
API. The things to not do are not so clear though still. I am
wondering specifically about deprecation of older firmware APIs, or
are we flexible enough to allow any firmware API rewrite so long as
its properly supported?
>> > Unless we have full control over the source code of every firmware used
>> > in the kernel, why bother. It is up to the companies providing them
>> > anyway to make sure everything works as expected and the community can't
>> > fix it.
>>
>> Well that's exactly it -- we do have access to the code for ar9170 for
>> example, so these details will become more relevant in the future.
>
> That is one of the few exception. However even for ar9170 there has to
> be release engineering team that creates the binary and uploads it into
> linux-firmware.git
Release engineering team? Hah.
> since I don't see the majority of people compiling it
> from source.
I am curious how distributions will want to handle this. Distributions
with sane people might just ship a gcc built open firmware binary but
utopian distributions like Debian might require to build the whole
thing for redistribution. I don't know.
> And at that point the release engineering needs to test the
> API compatibility.
Release engineering.. heh...
Luis
next prev parent reply other threads:[~2010-02-22 21:09 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-02-20 2:23 Luis R. Rodriguez
2010-02-20 10:35 ` David Woodhouse
2010-02-20 11:00 ` Johannes Berg
2010-02-20 11:09 ` David Woodhouse
2010-02-20 11:10 ` Johannes Berg
2010-02-20 11:32 ` David Woodhouse
2010-02-21 10:13 ` Marcel Holtmann
2010-02-22 19:14 ` Luis R. Rodriguez
2010-02-22 19:27 ` Marcel Holtmann
2010-02-22 21:03 ` Luis R. Rodriguez [this message]
2010-02-23 7:06 ` Marcel Holtmann
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=43e72e891002221303ne571d07g9bb9cbeace40ce0c@mail.gmail.com \
--to=mcgrof@gmail.com \
--cc=Vipin.Mehta@atheros.com \
--cc=dwmw2@infradead.org \
--cc=johannes@sipsolutions.net \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-wireless@vger.kernel.org \
--cc=marcel@holtmann.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
all inboxes | Powered by JetHome®