Firmware download functions

Holger Schurig hs4233 at mail.mn-solutions.de
Tue Jun 5 11:09:25 EDT 2007


Hi everybody !

In my current code, I can sucessfully download the helper image 
and normal firmware image. That's all done in 160 lines of code.

However, my firmware images are just "flat" files, e.g. files 
without the fwheader or FWData internal structure. Therefore I 
wasn't using the functions provided by fw.c.

On the other side, I cannot just ignore fw.c, because it does 
many things besides downloading the firmware. For example:


libertas_init_fw()
- allocates and initializes wlan_adapter
- does something with some command timer which I don't really
  understand yet
- calls wlan_setup_station_hw(), which downloads the firmware
- does some 802.11d initialization

However, even wlan_setup_station_hw() does other things besides 
downloading the firmware:

- request the firmware
- check the firmware format
- call priv->hw_prog_firmware() to download the firmware
- release firmware
- initialized adapter->current_addr
- read the hardware spec
- read the current rate


As a start, the check for the format should be put into if_usb.c, 
simply because I have a very different format of my firmware.

Also, it won't really help me if I just request one firmware 
file, I have two of them (ca. 2600 bytes for helper, ca. 96000 
for firmware image). So this request/check thingy should go into 
if_usb.c as well.

However, after this fw.c is empty of any firmware stuff. 
Therefore I mandate to put the remaining functions into main.c. 
Or to rename fw.c into adapter.c.

Thoughts?



More information about the libertas-dev mailing list