From: Martin Langer <martin-langer@gmx.de>
To: Marcel Holtmann <marcel@holtmann.org>
Cc: Arjan van de Ven <arjan@infradead.org>,
linux-kernel@vger.kernel.org, bcm43xx-dev@lists.berlios.de
Subject: Re: [RFC][PATCH 1/2] firmware version management: add firmware_version()
Date: Sun, 9 Jul 2006 14:21:18 +0200 [thread overview]
Message-ID: <20060709122118.GA3678@tuba> (raw)
In-Reply-To: <1152366597.29506.13.camel@localhost>
On Sat, Jul 08, 2006 at 03:49:57PM +0200, Marcel Holtmann wrote:
> Hi Arjan,
>
> > > It would be good if a driver knows which firmware version will be
> > > written to the hardware. I'm talking about external firmware files
> > > claimed by request_firmware().
> > >
> > > We know so many different firmware files for bcm43xx and it becomes
> > > more and more complicated without some firmware version management.
> > >
> > > This patch can create the md5sum of a firmware file. Then it looks into
> > > a table to figure out which version number is assigned to the hashcode.
> > > That table is placed in the driver code and an example for bcm43xx comes
> > > in my next mail. Any comments?
> >
> > why does this have to happen on the kernel side? Isn't it a lot easier
> > and better to let the userspace side of things do this work, and even
> > have a userspace file with the md5->version mapping? Or are there some
> > practical considerations that make that hard to impossible?
>
> I fully agree that we shouldn't put firmware versioning into the kernel
> drivers. The pattern you give to request_firmware() can be mapped to any
> file on the file system. And you also have the link to the device object
> and I prefer you export a sysfs file for the version so that the helper
> application loading the firmware can pick the right file.
Bcm43xx has no helper application to upload the firmware. This is done
in the driver. It's RAM based hardware without a Flash-ROM. The driver
has to upload the firmware in the init phase after each reset.
The driver gets a firmware file from /lib/firmware/ without knowing
which version this is. It's not possible to say enable this in the
driver if you find a firmware x and disable that if it's only version
y. That was my motivation to start thinking about firmware versioning.
But in the meantime I think it's a security issue, too. A driver
should only accept firmware files with certified checksums. I guess it
would be really difficult to enter a machine by firmware hijacking. So,
I'm still in hope that this is only a paranoia on my side. But it's
worth to think about it.
Martin
next prev parent reply other threads:[~2006-07-09 12:15 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-07-08 13:09 [RFC][PATCH 1/2] firmware version management: add firmware_version() Martin Langer
2006-07-08 13:31 ` Arjan van de Ven
2006-07-08 13:49 ` Marcel Holtmann
2006-07-09 12:21 ` Martin Langer [this message]
2006-07-09 13:25 ` Marcel Holtmann
2006-07-09 14:44 ` Michael Buesch
2006-07-09 14:57 ` Marcel Holtmann
2006-07-09 15:00 ` Jon Smirl
2006-07-09 14:51 ` Jon Smirl
2006-07-09 15:01 ` Arjan van de Ven
2006-07-09 15:25 ` Martin Langer
2006-07-09 19:09 ` Michael Buesch
2006-07-09 21:07 ` Arjan van de Ven
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=20060709122118.GA3678@tuba \
--to=martin-langer@gmx.de \
--cc=arjan@infradead.org \
--cc=bcm43xx-dev@lists.berlios.de \
--cc=linux-kernel@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 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.