* Patch "b43: refuse to load unsupported firmware" has been added to the 3.0-stable tree [not found] ` <1321512890.2885.92.camel@deadeye> @ 2011-11-17 8:42 ` Rafał Miłecki 2011-11-17 11:19 ` Michael Büsch 0 siblings, 1 reply; 6+ messages in thread From: Rafał Miłecki @ 2011-11-17 8:42 UTC (permalink / raw) To: b43-dev 2011/11/17 Ben Hutchings <ben@decadent.org.uk>: > On Wed, 2011-11-16 at 15:47 -0800, gregkh at suse.de wrote: > [...] >> From: Rafa Miecki <zajec5@gmail.com> >> Date: Tue, ?8 Nov 2011 17:15:03 +0100 >> Subject: b43: refuse to load unsupported firmware >> To: stable at kernel.org, <Greg KH> greg at kroah.com >> Cc: linux-wireless at vger.kernel.org, b43-dev at lists.infradead.org, roman-vl at meta.ua, Rafa Miecki <zajec5@gmail.com> >> Message-ID: <1320768903-8731-1-git-send-email-zajec5@gmail.com> >> >> [This patch is supposed to be applied in 3.1 (and maybe older) branches only.] >> >> New kernels support newer firmware that users may try to incorrectly use >> with older kernels. Display error and explain the problem in such a case > [...] >> + ? ? } else if (fwrev >= 598) { >> + ? ? ? ? ? ? b43err(dev->wl, "YOUR FIRMWARE IS TOO NEW. Support for " >> + ? ? ? ? ? ? ? ? ? ?"firmware 598 and up requires kernel 3.2 or newer. You " >> + ? ? ? ? ? ? ? ? ? ?"have to install older firmware or upgrade kernel.\n"); >> + ? ? ? ? ? ? b43_print_fw_helptext(dev->wl, 1); >> + ? ? ? ? ? ? err = -EOPNOTSUPP; >> + ? ? ? ? ? ? goto error; > [...] > > This is the wrong way to go about things. ?If the new firmware is > incompatible, change the filename (like everyone else does). ?It should > be possible to install the different firmware versions in parallel, just > as it possible to install the different kernel versions in parallel. It sounds sane. Unfortunately I see few problems right now, not sure how to solve this now... 1) Broadcom driver doesn't contain info about firmware version 2) Because of that b43-fwcutter can't name files correctly 3) Discovering firmware version requires loading it to the firmware and reading from SHM 4) Broadcom seems to be using internally API versioning. I'm afraid it's not included in drivers as well 5) The only way for b43-fwcutter seems to be hardcoding firmware version linked with specific Broadcom driver 6) We already support same-name-called-firmware-files with 2 different APIs (598 isn't the first split here) I'm afraid we won't be able to fix that for 3.0/3.1/3.2 releases. I think we can consider cleaning this in future releases, still not sure how however. -- Rafa? ^ permalink raw reply [flat|nested] 6+ messages in thread
* Patch "b43: refuse to load unsupported firmware" has been added to the 3.0-stable tree 2011-11-17 8:42 ` Patch "b43: refuse to load unsupported firmware" has been added to the 3.0-stable tree Rafał Miłecki @ 2011-11-17 11:19 ` Michael Büsch 2011-11-17 11:37 ` Rafał Miłecki 0 siblings, 1 reply; 6+ messages in thread From: Michael Büsch @ 2011-11-17 11:19 UTC (permalink / raw) To: b43-dev On Thu, 17 Nov 2011 09:42:04 +0100 Rafa? Mi?ecki <zajec5@gmail.com> wrote: > 1) Broadcom driver doesn't contain info about firmware version In fact it does. The microcode does contain the version, of course. > 2) Because of that b43-fwcutter can't name files correctly And fwcutter is even able to extract it from the dump. It also does so currently. > 3) Discovering firmware version requires loading it to the firmware > and reading from SHM No. -- Greetings, Michael. ^ permalink raw reply [flat|nested] 6+ messages in thread
* Patch "b43: refuse to load unsupported firmware" has been added to the 3.0-stable tree 2011-11-17 11:19 ` Michael Büsch @ 2011-11-17 11:37 ` Rafał Miłecki 2011-11-17 11:42 ` Michael Büsch 0 siblings, 1 reply; 6+ messages in thread From: Rafał Miłecki @ 2011-11-17 11:37 UTC (permalink / raw) To: b43-dev W dniu 17 listopada 2011 12:19 u?ytkownik Michael B?sch <m@bues.ch> napisa?: > On Thu, 17 Nov 2011 09:42:04 +0100 > Rafa? Mi?ecki <zajec5@gmail.com> wrote: >> 1) Broadcom driver doesn't contain info about firmware version > > In fact it does. The microcode does contain the version, of course. > >> 2) Because of that b43-fwcutter can't name files correctly > > And fwcutter is even able to extract it from the dump. It also > does so currently. > >> 3) Discovering firmware version requires loading it to the firmware >> and reading from SHM > > No. I had no idea about that, but I admit, I didn't read the whole b43-fwcutter code. Thanks for explaining. What about API level (revsion?)? Do you think b43-fwcutten can extract that? This would be perfect solution to include API level in firmware file name. -- Rafa? ^ permalink raw reply [flat|nested] 6+ messages in thread
* Patch "b43: refuse to load unsupported firmware" has been added to the 3.0-stable tree 2011-11-17 11:37 ` Rafał Miłecki @ 2011-11-17 11:42 ` Michael Büsch 2011-11-17 11:49 ` Rafał Miłecki 0 siblings, 1 reply; 6+ messages in thread From: Michael Büsch @ 2011-11-17 11:42 UTC (permalink / raw) To: b43-dev On Thu, 17 Nov 2011 12:37:10 +0100 Rafa? Mi?ecki <zajec5@gmail.com> wrote: > W dniu 17 listopada 2011 12:19 u?ytkownik Michael B?sch <m@bues.ch> napisa?: > > On Thu, 17 Nov 2011 09:42:04 +0100 > > Rafa? Mi?ecki <zajec5@gmail.com> wrote: > >> 1) Broadcom driver doesn't contain info about firmware version > > > > In fact it does. The microcode does contain the version, of course. > > > >> 2) Because of that b43-fwcutter can't name files correctly > > > > And fwcutter is even able to extract it from the dump. It also > > does so currently. > > > >> 3) Discovering firmware version requires loading it to the firmware > >> and reading from SHM > > > > No. > > I had no idea about that, but I admit, I didn't read the whole > b43-fwcutter code. Thanks for explaining. > > What about API level (revsion?)? Do you think b43-fwcutten can extract > that? This would be perfect solution to include API level in firmware > file name. > I'm not sure what you are referring to by "API level". I didn't follow the latest firmware development too closely. Is that something new? fwcutter contains a tiny trivial disassembler that is able to extract various immediates from the microcode. So if your versioning is stored as immediates in the code, it's trivial to add extraction for it. fwcutter currently extracts (and prints) ucode version, patchlevel, date and time. -- Greetings, Michael. ^ permalink raw reply [flat|nested] 6+ messages in thread
* Patch "b43: refuse to load unsupported firmware" has been added to the 3.0-stable tree 2011-11-17 11:42 ` Michael Büsch @ 2011-11-17 11:49 ` Rafał Miłecki 2011-11-17 11:59 ` Michael Büsch 0 siblings, 1 reply; 6+ messages in thread From: Rafał Miłecki @ 2011-11-17 11:49 UTC (permalink / raw) To: b43-dev W dniu 17 listopada 2011 12:42 u?ytkownik Michael B?sch <m@bues.ch> napisa?: > On Thu, 17 Nov 2011 12:37:10 +0100 > Rafa? Mi?ecki <zajec5@gmail.com> wrote: > >> W dniu 17 listopada 2011 12:19 u?ytkownik Michael B?sch <m@bues.ch> napisa?: >> > On Thu, 17 Nov 2011 09:42:04 +0100 >> > Rafa? Mi?ecki <zajec5@gmail.com> wrote: >> >> 1) Broadcom driver doesn't contain info about firmware version >> > >> > In fact it does. The microcode does contain the version, of course. >> > >> >> 2) Because of that b43-fwcutter can't name files correctly >> > >> > And fwcutter is even able to extract it from the dump. It also >> > does so currently. >> > >> >> 3) Discovering firmware version requires loading it to the firmware >> >> and reading from SHM >> > >> > No. >> >> I had no idea about that, but I admit, I didn't read the whole >> b43-fwcutter code. Thanks for explaining. >> >> What about API level (revsion?)? Do you think b43-fwcutten can extract >> that? This would be perfect solution to include API level in firmware >> file name. >> > > I'm not sure what you are referring to by "API level". I didn't > follow the latest firmware development too closely. Is that something new? > > fwcutter contains a tiny trivial disassembler that is able to extract various > immediates from the microcode. So if your versioning is stored as immediates > in the code, it's trivial to add extraction for it. > > fwcutter currently extracts (and prints) ucode version, patchlevel, date and time. http://git.kernel.org/?p=linux/kernel/git/dwmw2/linux-firmware.git;a=commit;h=a531257c40920de0161150091eaccbbc1182eb96 It seems Broadcom wants using some basename-apiversion syntax for their firmware files... but indeed it does not make much sense to me. According to their firmware, current API is 0. I assume it from reading file name which is bcm43xx-0.fw. It does not make much sense, as we had at least 2 earlier APIs. Looks like dead end. Don't know what else we can propose. Putting exact version and patchlevel will make it complex (a lot of firmwares are available). -- Rafa? ^ permalink raw reply [flat|nested] 6+ messages in thread
* Patch "b43: refuse to load unsupported firmware" has been added to the 3.0-stable tree 2011-11-17 11:49 ` Rafał Miłecki @ 2011-11-17 11:59 ` Michael Büsch 0 siblings, 0 replies; 6+ messages in thread From: Michael Büsch @ 2011-11-17 11:59 UTC (permalink / raw) To: b43-dev On Thu, 17 Nov 2011 12:49:44 +0100 Rafa? Mi?ecki <zajec5@gmail.com> wrote: > W dniu 17 listopada 2011 12:42 u?ytkownik Michael B?sch <m@bues.ch> napisa?: > > On Thu, 17 Nov 2011 12:37:10 +0100 > > Rafa? Mi?ecki <zajec5@gmail.com> wrote: > > > >> W dniu 17 listopada 2011 12:19 u?ytkownik Michael B?sch <m@bues.ch> napisa?: > >> > On Thu, 17 Nov 2011 09:42:04 +0100 > >> > Rafa? Mi?ecki <zajec5@gmail.com> wrote: > >> >> 1) Broadcom driver doesn't contain info about firmware version > >> > > >> > In fact it does. The microcode does contain the version, of course. > >> > > >> >> 2) Because of that b43-fwcutter can't name files correctly > >> > > >> > And fwcutter is even able to extract it from the dump. It also > >> > does so currently. > >> > > >> >> 3) Discovering firmware version requires loading it to the firmware > >> >> and reading from SHM > >> > > >> > No. > >> > >> I had no idea about that, but I admit, I didn't read the whole > >> b43-fwcutter code. Thanks for explaining. > >> > >> What about API level (revsion?)? Do you think b43-fwcutten can extract > >> that? This would be perfect solution to include API level in firmware > >> file name. > >> > > > > I'm not sure what you are referring to by "API level". I didn't > > follow the latest firmware development too closely. Is that something new? > > > > fwcutter contains a tiny trivial disassembler that is able to extract various > > immediates from the microcode. So if your versioning is stored as immediates > > in the code, it's trivial to add extraction for it. > > > > fwcutter currently extracts (and prints) ucode version, patchlevel, date and time. > > http://git.kernel.org/?p=linux/kernel/git/dwmw2/linux-firmware.git;a=commit;h=a531257c40920de0161150091eaccbbc1182eb96 > > It seems Broadcom wants using some basename-apiversion syntax for > their firmware files... but indeed it does not make much sense to me. > > According to their firmware, current API is 0. I assume it from > reading file name which is bcm43xx-0.fw. It does not make much sense, > as we had at least 2 earlier APIs. > > Looks like dead end. > > Don't know what else we can propose. Putting exact version and > patchlevel will make it complex (a lot of firmwares are available). No. Simply make up arbitrary incrementing numbers and add it to the directory name. /lib/firmware/b43 for the old ones. /lib/firmware/b43-1 for the next newer one that we support. -2, -3 and so on. What internal ucode rev/patchlevel that corresponds to doesn't really matter. In the driver you can then probe all directories (starting from the number that is the newest when the driver was released, of course) and see if there's usable firmware in there. This way it will never probe "too new" firmwares. -- Greetings, Michael. ^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2011-11-17 11:59 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <1321487254296@kroah.org>
[not found] ` <1321512890.2885.92.camel@deadeye>
2011-11-17 8:42 ` Patch "b43: refuse to load unsupported firmware" has been added to the 3.0-stable tree Rafał Miłecki
2011-11-17 11:19 ` Michael Büsch
2011-11-17 11:37 ` Rafał Miłecki
2011-11-17 11:42 ` Michael Büsch
2011-11-17 11:49 ` Rafał Miłecki
2011-11-17 11:59 ` Michael Büsch
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox