This is a Linux driver for Cisco wireless PCMCIA cards to operate on a PCI bus with the common and cheap PLX PCI9052 chipset cards that are everywhere now.
It's current state is very alpha but it's designed to work with the cards supported by airo.c in the kernel. I'd appreciate it very much if anyone who's interested would check it out and help debug or point out any kernel driver nasties. I am very new to Linux driver writing. This code is derived from orinoco_plx.c .
Grab v0.01b of airo_plx.c
WARNING: It's alpha driver code and may hang your system completely. Don't try it if you can't live with this risk.
gcc -D__KERNEL__ -I/usr/src/linux-2.4.18/include -Wall -Wstrict-prototypes -Wno-trigraphs -O2 -fomit-frame-pointer -fno-strict-aliasing -fno-common -pipe -mpreferred-stack-boundary=2 -march=athlon -DMODULE -DMODVERSIONS -include /usr/src/linux-2.4.18/include/linux/modversions.h -DKBUILD_BASENAME=airo_plx -DEXPORT_SYMTAB -c airo_plx.c
I also built airo.c, placed both in the proper modules directory and loaded them with insmod.
dmesg reports:
airo_plx: pci enabled
airo_plx: attribmem = 0xe08e7000
airo_plx: pdev2 = 0xe3001000
airo_plx: Cisco Airo 352 detected
<7>airo_plx: CIS COR found at 0x300
airo_plx: PLX Local Interrupt already
enabled
airo_plx: Detected Airo PLX device
at 00:08.0 irq:11, io addr:0xe000
airo: Doing fast bap_reads
airo: MAC enabled eth1 0:7:85:92:5b:fa
I can bring up the interface, eth1 in my case thus:
eth1
Link encap:Ethernet HWaddr 00:07:85:92:5B:FA
inet addr:192.168.3.1 Bcast:192.168.3.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:0 errors:245 dropped:0 overruns:0 frame:245
TX packets:7 errors:4 dropped:0 overruns:0 carrier:4
collisions:0 txqueuelen:100
RX bytes:0 (0.0 b) TX bytes:336 (336.0 b)
Interrupt:11 Base address:0xe000
/proc/driver/aironet/eth1/Status says:
Status: CFG ACT
Mode: f
Signal Strength: 100
Signal Quality: 15
SSID:
AP:
Freq: 0
BitRate: 11mbs
Driver Version: airo.c 0.3 (Ben Reed
& Javier Achirica)
Device: 350 Series
Manufacturer: Cisco Systems
Firmware Version: 4.25.30
Radio type: 2
Country: 0
Hardware Version: 22
Software Version: 425
Software Subversion: 1e
Boot block version: 150
iwconfig gives:
eth1
IEEE 802.11-DS ESSID:"Spam"
Mode:Ad-Hoc Frequency:2.412GHz Cell: 66:00:5F:00:70:00
Bit Rate:11Mb/s Tx-Power=0 dBm Sensitivity=0/65535
Retry limit:16 RTS thr:off Fragment thr:off
Encryption key:off
Power Management:off
Link Quality:13/10 Signal level:-10 dBm Noise level:-256 dBm
Rx invalid nwid:377 Rx invalid crypt:0 Rx invalid frag:0
Tx excessive retries:26 Invalid misc:839 Missed beacon:0
I have been able to successfully run the Linux Cisco Client Utility v1.6.7 and update the firmware from 4.25.05 to 4.25.30. The 0.01a driver looks like it was fine. 0.01b just gets rid of some compiler warnings. At this stage I have been able to get this Airo/PLX combo talking to my DWL-520 in the same box. They swap 802.11b stuff but it's hardly ideal to properly test IP packets.
So, at this stage, I would say Cisco Airo PCMCIA cards and PLX adapters are a go in PCI2.1/2.2 systems. I haven't been able to get it to work in my Super 7 FIC PA-2007 board. Nothing PCI2.2 works on this board.
This driver has only been successfully tested against Linux kernel 2.4.18.
Update: I have disposed of the PLX adapter as I am now taking
the USB path. I'll leave this here for anyone else who wants to try PLX and
Cisco cards. This code is a good basis for trying to get other PCMCIA
devices working in a PLX adapter in Linux.
Note, this driver will work on a 2.4 series kernel. It will need to be modified to work on a 2.6 series kernel.
(C) 2003 Jason Hecker
Email:
2-March-2004