public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Marcel Holtmann <marcel@holtmann.org>
To: Michael Buesch <mb@bu3sch.de>
Cc: Martin Langer <martin-langer@gmx.de>,
	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, 09 Jul 2006 16:57:02 +0200	[thread overview]
Message-ID: <1152457022.4573.10.camel@localhost> (raw)
In-Reply-To: <200607091644.53285.mb@bu3sch.de>

Hi Michael,

> > > > > 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.
> 
> I really think drivers should only allow firmware files that are known
> to work. This should be verified by a hardcoded checksum in the driver.
> I support Martin's patch.

this should be done in the driver. So why do you try to enhance the
firmware_class to do this job. If your driver has special requirements
for firmware checks, then implement them. I don't see any advantage of
doing this kind of stuff in firmware_class at the moment.

Regards

Marcel



  reply	other threads:[~2006-07-09 15:02 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
2006-07-09 13:25       ` Marcel Holtmann
2006-07-09 14:44       ` Michael Buesch
2006-07-09 14:57         ` Marcel Holtmann [this message]
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=1152457022.4573.10.camel@localhost \
    --to=marcel@holtmann.org \
    --cc=arjan@infradead.org \
    --cc=bcm43xx-dev@lists.berlios.de \
    --cc=linux-kernel@vger.kernel.org \
    --cc=martin-langer@gmx.de \
    --cc=mb@bu3sch.de \
    /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