What are the types of Prism54-based devices ?
- PCI devices with an ISL38xx chip. The ISL3886 supports SoftMAC only.
- USB devices with an ISL38xx and a NET2280. Only SoftMAC is supported. These are known as "version 1 USB devices".
- USB devices with a GW3887 (SoftMAC only). These are known as "version 2 USB devices".
Is the difference between SoftMAC and FullMAC only related to the MAC address ?
No, although this can be read in various forums. These two firmwares are deeply different (see "firmware" section below).
What is the current support of Prism54-based devices ?
They should be all supported under Linux and FreeBSD with a free software driver, including the new ones.
Are USB devices supported ?
So this means I don't have to use NDISWrapper anymore with my Prism54 card ?
How stable is it ?
Devices with a GW3887 chip are prone to (yet) unexplained random crashes, requiring a power-cycle of the wireless device when they happen. USB devices with an ISL38xx and a NET2280 are quite stable, but sometimes their memory saturates and requires manual freeing. PCI devices are all OK.
What is the firmware ?
Every ISL38xx-based device contains an embedded microcomputer based on an ARM946E CPU. The firmware is the software run by that CPU, which is sent by the device driver every time the device is detected.
What is FullMAC ?
FullMAC is the first 802.11 software solution for 802.11, developed by Intersil. It requires a big (~90k) firmware to be loaded into the device, which takes care of most of the 802.11 protocol. FullMAC requires a supported chipset, with a lot of memory. FullMAC firmwares have a 1.x version number.
What is SoftMAC ?
This is the successor of FullMAC, developed to reduce costs. We don't know exactly who designed it. The 802.11 medium access control which was entirely implemented in the FullMAC firmware has been split in two parts, the LMAC (Lower MAC), which is the device firmware itself, executed on its embedded ARM CPU, and the UMAC (Upper MAC) which is a binary library executed on the host, which provides a completely opaque API for the device driver it's (statically) linked with. This scheme allows the RAM embedded in the device to be divided by 4. SoftMAC works with all chipsets, even those designed for FullMAC. SoftMAC firmwares have a 2.x version number.
What are HardMAC, NewMAC, ThinMAC ?
Those are nicknames for FullMAC (= HardMAC), and SoftMAC (= NewMAC and ThinMAC).
Do your SoftMAC drivers depend on UMAC ?
Absolutely not. We reverse engineered the protocol between UMAC and LMAC and wrote a free software implementation from scratch. It is incomplete, though, and is suboptimal (some things that can be offloaded to the device are not, and even some are done twice, once by the host and once by the device). We don't plan to fix that, as SoftMAC will be made obsolete by FreeMAC.
What is FreeMAC ?
FreeMAC is our attempt to write a reverse engineered GPL-licensed firmware from scratch. See this page
How to get a firmware ?
FullMAC firmwares were available as such in .arm files in the Windows drivers. SoftMAC firmwares are hidden as binary content in the .sys file of the Windows driver ; the tool fwextract
was written to extract them. Anyway, if you are just an user, you won't probably need to grab a firmware by yourself, since they are available for download at this site.
How to report a bug ?
You can post in the forum, or contact the appropriate developer
How can I help ?
If you are a programmer, you are obviously welcome to join the project :-) If not :
- We are collecting EEPROM dumps of the devices. These are really easy to obtain with p54u - see its README file.
- You can donate hardware - I'm looking for ISL38xx-based PCI devices to add PCI support to p54u.