Martin T wrote:
> some Wi-Fi adapters(for example Intel ipw2200 family and many Ralink
> cards) require both firmware and drivers in order to operate properly.

Yes.

> 1) As I understand, firmware is usually a closed-source binary image
> provided by Wi-Fi card manufacturer?

Yes.  And because of this it doesn't meet the Debian Free Software
Guidelines and can't be part of Debian.  Packages of this firmware
can only go in the non-free repository.

> 2) What happens with the firmware when card becomes operational? I
> mean by definition it should be written to device non-volatile
> memory(for example flash memory), but I doubt that this is the case
> for Wi-Fi adapters.. Or is it?

No.  The image is simply loaded into the adapter's ram.  After the
device loses power the memory evaporates.  When power is applied again
the device is once again blank or back to the default power on state
and the firmware must be loaded again.

> 3) Last but not least, which aspects are controlled by Wi-Fi card
> firmware and what role plays the Wi-Fi adapter driver?

Most devices today are designed using semi-general purpose hardware
which includes a firmware part to configure and program the device.
Vendors do this because it allows them to ship hardware early and to
fix hardware bugs by making changes to the firmware later.  They can
do this very late and often after shipping the product.  They simply
update the device driver and put it on their web site and their
customers load the new driver.  This can effectively fix an
incorrectly designed piece of hardware in the field.  And that is why
vendors like to design devices that use a firmware component.

That they are programmable does not make them a computer.  They are
usually simply logic devices with memory to program the operation of
them.  There are various techniques such as state machines implemented
with FPGAs and so forth.  Programmable state machines almost always
play a huge part in any electronic chip design.

There isn't a simple rule that says every adapter behaves a certain
way and the firmware does a certain thing on every one of them.  Every
vendor designs their device independently.  Every one of them may be
different.  Which makes it hard to produce a generally correct answer.
All that can really be said is that the firmware is used by the device
to set itself up for the operation it was designed to do.

After loading the device firmware then the kernel device driver has
the task of interacting with the device.  It provides the software
layer that translates between a physical hardware device and the
kernel's software.

Bob
Speaking as a past chip designer.

Attachment: signature.asc
Description: Digital signature

Reply via email to