[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: understanding the role/relationship of the firmware and driver in case of Wi-Fi adapters



Bob,

thank you for this exhaustive reply!

1) Are there Wi-Fi adapters which do not need firmware? I guess there
are if manufacturer does not use semi-general purpose hardware?

2) Is the RAM built into the Wi-Fi card chipset? If I inspect my
Ralink W-Fi card, which loads the 4096 byte /lib/firmware/rt2870.bin
firmware file once the interface is brought up, then I don't see a
separate RAM chip:

https://www.dropbox.com/s/9z5rir3byfr9sg2/TEW-624UB-front.png
https://www.dropbox.com/s/8p4iw8dpnfiphqb/TEW-624UB-back.png

So in this case the RAM which stores the rt2870.bin firmware file is
probably part of the RT2870F chip?


regards,
Martin


2013/1/2 Bob Proulx <bob@proulx.com>:
> 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.


Reply to: