Need to match driver to microcode?
Larry Finger
Larry.Finger at lwfinger.net
Thu Feb 6 11:54:10 EST 2014
On 02/06/2014 03:01 AM, grarpamp wrote:
> On Thu, Feb 6, 2014 at 2:22 AM, Larry Finger <Larry.Finger at lwfinger.net> wrote:
>
>> There is no one to one relationship. Both are internal Broadcom
>> designations.
>
> ... got it thx.
>
>> No. The firmware is just a black box.
>
> Hopefully these makers will someday stop software
> secrets. They sell primary hardware, not sw.
The firmware source would reveal trade secrets about the chip construction that
a competitor could use. For that reason, I don't expect many of the vendors to
publish those sources.
Most vendors license their binary firmware files for redistribution, and they
are available in the linux-firmware git repo. That is where the distros get
firmware. Broadcom does the same for devices driven by brcmsmac and brcmfmac.
For the b43-driven devices, the rules are different. Broadcom will not allow
their firmware files to be redistributed under any circumstances. Any web site
that contains files such as ucodeN, etc. is illegal and the operator of that
site could be sued for illegally distributing proprietary material!
To get the firmware we have, we take advantage of a loophole. Because Broadcom
uses Linux for the OS in their routers, the GPL requires them to make their
contributions available for redistribution. Of course, they only provide binary
blobs for their driver, but the firmware is contained within those binaries.
Thus we need to find a binary driver that is redistributable, determine where
the firmware is contained within that binary, and modify fwcutter to extract the
firmware files from that blob.
Not all of Broadcom's drivers are suitable. For example, it has never seemed
fruitful to download 300-500 MB of stuff to extract approximately 1 MB of
firmware. My repository contains files that are no larger than ~10 MB. Windows
drivers are stripped to the point that the firmware locations are not easily
determined, thus I avoid them.
Larry
More information about the b43-dev
mailing list