Skip to contentSkip to conversation

orinoco: Agere/Lucent firmware download

PATCH In review Dave 3 participants 7 messages Sep 12, 2007 – Sep 14, 2007

lore
Share & tools
lore

Dave

author
#0 lore raw

cover orinoco: Agere/Lucent firmware download

Implements firmware download to RAM for Lucent-Agere firmware. Firmware download is a requirement to implement WPA on these cards.

The patchset is against v2.6.23-rc5 from Linus' git tree. The complete patch is available at <http://www.virtualsoup.org/files/orinoco_fw_dl.patch>

Programs to generate the necessary firmware are available at
<http://www.virtualsoup.org/files/orinoco_dump_fw.tar.bz2>. They require either the wl_lkm_714/8 sources or a windows driver. See README.dump_fw for more information.

The following firmwares download and run on my Dell TrueMobile 1150:
7.65, 8.10, 8.42, 8.58

The following firmwares download, but are not compatible with the current orinoco_cs driver:
9.40, 9.42, 9.48

All my testing done on a pentium3 Dell C600. FW 9.48 download also confirmed on a powerbook using a modified airport driver compiled with a static copy of the firmware

An earlier version of this patch was posted to the orinoco-devel list. This version has been cleaned up and updated for big endian architectures.

Regards,

Dave Kilroy.

#1 lore raw

Hello, Dave!

Quoted 2 lines · Dave

Implements firmware download to RAM for Lucent-Agere firmware. Firmware download is a requirement to implement WPA on these cards.

I really appreciate your efforts.

Please avoid copying to David Gibson in the future, as he stepped down as the maintainer.

Also, it may work better if you post your patches to orinoco-devel first, and then to linux-wireless. Many people hesitate to reply to messages cross-posted to several lists. orinoco-users doesn't need to be involved at all.

I understand that it's a major change, and in needs to be tested thoroughly. I don't have time to review the patches right now, but it is on my TODO list.

Quoted 2 lines

The following firmwares download and run on my Dell TrueMobile 1150:
7.65, 8.10, 8.42, 8.58

What some users may want to run is 6.06 or 6.16, as the 7.xx and 8.xx firmwares have stability issues with the monitor mode.

Quoted 3 lines

The following firmwares download, but are not compatible with the current orinoco_cs driver:
9.40, 9.42, 9.48

That's great news anyway. We may see Hermes II supported eventually.

Quoted 3 lines

All my testing done on a pentium3 Dell C600. FW 9.48 download also confirmed on a powerbook using a modified airport driver compiled with a static copy of the firmware

Please use sparse to check endianess and other issues. You can use this command once sparse is in PATH:

make C=2 CF="-Wall -D__CHECK_ENDIAN__"

Signature · 2 lines
Regards,
Pavel Roskin
author
#2 lore raw
Quoted 3 lines · Pavel Roskin
Quoted 2 lines · Dave

Implements firmware download to RAM for Lucent-Agere firmware. Firmware download is a requirement to implement WPA on these cards.

Hi Pavel,

Thanks for the tips - not sure I was e-mailing the right lists/people.

Quoted 5 lines
Quoted 2 lines

The following firmwares download and run on my Dell TrueMobile 1150:
7.65, 8.10, 8.42, 8.58

What some users may want to run is 6.06 or 6.16, as the 7.xx and 8.xx firmwares have stability issues with the monitor mode.

RAM only firmware (ie. Variant 2) is not available prior to firmware 7.52, so unfortunately this patch won't help those users. See driver readme for Summer 2001 release (driver ~v7.06) for the first announcements of variant 2.

Quoted 5 lines
Quoted 3 lines

The following firmwares download, but are not compatible with the current orinoco_cs driver:
9.40, 9.42, 9.48

That's great news anyway. We may see Hermes II supported eventually.

Those are Hermes I firmwares. Hermes II versions of the same era are ~2.26, and I haven't tried to download these to my Hermes I card :). Also Hermes II download is slightly different.

Quoted 4 lines

Please use sparse to check endianess and other issues. You can use this command once sparse is in PATH:

make C=2 CF="-Wall -D__CHECK_ENDIAN__"

I'll have a go at that shortly.

Thanks,

Dave.

author
#3 lore raw
Quoted 9 lines · Dave
Quoted 8 lines · Pavel Roskin
Quoted 2 lines · Dave

Implements firmware download to RAM for Lucent-Agere firmware. Firmware download is a requirement to implement WPA on these cards.

Please use sparse to check endianess and other issues. You can use this command once sparse is in PATH:

make C=2 CF="-Wall -D__CHECK_ENDIAN__"

Either that was painless, or I did it wrong. Using sparse 3.0 the only warnings were in orinoco.c, related to the use of ARRAY_SIZE. Errors are false positives.

$ make O=../build C=2 CF="-Wall -D__CHECK_ENDIAN__" > ../sparse.log 2>&1

<snip>
CHECK /usr/src/linux-current/linux-2.6/drivers/net/irda/sir_dongle.c
CHECK /usr/src/linux-current/linux-2.6/drivers/net/wireless/orinoco.c
/usr/src/linux-current/linux-2.6/drivers/net/wireless/orinoco.c:1391:27: error: cannot size expression /usr/src/linux-current/linux-2.6/drivers/net/wireless/orinoco.c:2542:35: error: cannot size expression /usr/src/linux-current/linux-2.6/drivers/net/wireless/orinoco.c:2771:24: error: cannot size expression /usr/src/linux-current/linux-2.6/drivers/net/wireless/orinoco.c:2773:18: error: cannot size expression /usr/src/linux-current/linux-2.6/drivers/net/wireless/orinoco.c:3118:19: error: cannot size expression /usr/src/linux-current/linux-2.6/drivers/net/wireless/orinoco.c:3123:29: error: cannot size expression /usr/src/linux-current/linux-2.6/drivers/net/wireless/orinoco.c:3357:18: error: cannot size expression /usr/src/linux-current/linux-2.6/drivers/net/wireless/orinoco.c:3393:2: error: cannot size expression /usr/src/linux-current/linux-2.6/drivers/net/wireless/orinoco.c:3421:20: error: cannot size expression /usr/src/linux-current/linux-2.6/drivers/net/wireless/orinoco.c:3426:13: error: cannot size expression /usr/src/linux-current/linux-2.6/drivers/net/wireless/orinoco.c:4007:38: error: cannot size expression /usr/src/linux-current/linux-2.6/drivers/net/wireless/orinoco.c:4278:18: error: cannot size expression /usr/src/linux-current/linux-2.6/drivers/net/wireless/orinoco.c:4279:17: error: cannot size expression /usr/src/linux-current/linux-2.6/drivers/net/wireless/orinoco.c:4280:22: error: cannot size expression

  CHECK   /usr/src/linux-current/linux-2.6/drivers/net/wireless/hermes.c
  CHECK   /usr/src/linux-current/linux-2.6/drivers/net/wireless/hermes_dld.c
  CHECK   /usr/src/linux-current/linux-2.6/drivers/net/wireless/orinoco_cs.c
  CHECK   /usr/src/linux-current/linux-2.6/drivers/net/wireless/orinoco_plx.c
  CHECK   /usr/src/linux-current/linux-2.6/drivers/net/wireless/orinoco_pci.c
  CHECK   /usr/src/linux-current/linux-2.6/drivers/net/wireless/orinoco_tmd.c
  CHECK   /usr/src/linux-current/linux-2.6/drivers/net/wireless/orinoco_nortel.c
  CHECK   /usr/src/linux-current/linux-2.6/drivers/net/wireless/spectrum_cs.c
  CHECK   /usr/src/linux-current/linux-2.6/drivers/net/wireless/zd1201.c

<snip>

Regards,

Dave.

#4 lore raw
Quoted 3 lines · Dave

Either that was painless, or I did it wrong. Using sparse 3.0 the only warnings were in orinoco.c, related to the use of ARRAY_SIZE. Errors are false positives.

They're errors tho so sparse aborts and stops parsing the file at that point. A new git sparse can actually parse ARRAY_SIZE though, I can only recommend getting that.

johannes

author
#5 lore raw
Quoted 8 lines · Johannes Berg
Quoted 3 lines · Dave

Either that was painless, or I did it wrong. Using sparse 3.0 the only warnings were in orinoco.c, related to the use of ARRAY_SIZE. Errors are false positives.

They're errors tho so sparse aborts and stops parsing the file at that point. A new git sparse can actually parse ARRAY_SIZE though, I can only recommend getting that.

Repeated with latest sparse from git. No warnings.

<snip>

  CHECK   /usr/src/linux-current/linux-2.6/drivers/net/irda/sir_dongle.c
  CHECK   /usr/src/linux-current/linux-2.6/drivers/net/wireless/orinoco.c
  CHECK   /usr/src/linux-current/linux-2.6/drivers/net/wireless/hermes.c
  CHECK   /usr/src/linux-current/linux-2.6/drivers/net/wireless/hermes_dld.c
  CHECK   /usr/src/linux-current/linux-2.6/drivers/net/wireless/orinoco_cs.c
  CHECK   /usr/src/linux-current/linux-2.6/drivers/net/wireless/orinoco_plx.c
  CHECK   /usr/src/linux-current/linux-2.6/drivers/net/wireless/orinoco_pci.c
  CHECK   /usr/src/linux-current/linux-2.6/drivers/net/wireless/orinoco_tmd.c
  CHECK   /usr/src/linux-current/linux-2.6/drivers/net/wireless/orinoco_nortel.c
  CHECK   /usr/src/linux-current/linux-2.6/drivers/net/wireless/spectrum_cs.c
  CHECK   /usr/src/linux-current/linux-2.6/drivers/net/wireless/zd1201.c

<snip>

Regards,

Dave.

#6 lore raw
Quoted 11 lines · Dave
Quoted 8 lines · Johannes Berg
Quoted 3 lines · Dave

Either that was painless, or I did it wrong. Using sparse 3.0 the only warnings were in orinoco.c, related to the use of ARRAY_SIZE. Errors are false positives.

They're errors tho so sparse aborts and stops parsing the file at that point. A new git sparse can actually parse ARRAY_SIZE though, I can only recommend getting that.

Repeated with latest sparse from git. No warnings.

:)

johannes