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