Simple answer, because the firmware is needed to operate the device correctly.
If somebody were able to write a driver without the need of a firmware (yes, such drivers exist for other cards/chipsets), it would have been tried (or even done) already, nobody likes binary blobs if they can be avoided.
There is a project which aims at implementing a free firmware:
Barry Nichols wrote:
> A little? I would say very.
> I was just asking a simple question, I don’t know what improvements
> have been made for wireless in 11.2.
> Why should it is: I expect there to be changes, hopefully improvements
> in 11.2. If I knew everything about it I wouldn’t be asking anything.
> You could be a little more helpful in sharing your knowledge, instead
> of asking my why I asked anything.
If I were to rephrase your question, it would be “Why doesn’t my
computer work without an Operating System?”. That sounds rather
stupid, doesn’t it?
That is exactly the question you are asking about the BCM43xx devices.
Firmware is the OS for the on-board processor. All wireless devices
need firmware. Sometimes the manufacturer encodes it in ROM, but many
load it into volatile RAM so that it is easy to change. That is what
Broadcom does. The drivers written by Broadcom embed the firmware into
the host driver, which loads it on startup. Why doesn’t b43 do that?
The reason is that the firmware is copyrighted by Broadcom, and they
do not allow others to copy it. The only way we get their firmware is
by downloading one of those Broadcom-written drivers and running a
separate program (fwcutter) to extract the firmware from that driver.
If the OpenFWWF project gets code for all the devices, then we will be
able to forgo Broadcom’s code, but that might be a long time in the
future. They have running code for only one version of the firmware;
whereas Broadcom distributes 16 different versions!