Table of Contents

Prism2 flashing

Windows

The simplest is to upgrade the firmware with WinUpdate.
This also requires to have the WPC11 driver v2.5 installed.

Flashing steps

  1. Plug your card
  2. Start WinUpdate. If you have only one prism card running, it will detect it. If you have more than one, it allows you to select one to upgrade.
  3. Pick the right primary and station firmware files. It is safest if you upgrade the companion versions of them together. Some times it is OK to just upgrade station firmware. According to Pavel Roskin, “Upgrading primary firmware without secondary firmware make the card non-functional. That card acts as if it only has primary firmware”. So NEVER NEVER flash primary firmware alone!!!!
  4. Click “Continue”. It reports current chip information, including current firmware versions, and gives you a chance to cancel. Double-confirm. If it says platform mismatches, most likely you picked the wrong hex files.
  5. Click “Upgrade”. That is it.

Versions

Some example files:

All WPC11 versions including v3 are prism 2. v4 is rtl8180 and we don't know if there are other versions released.

WinUpdate does require a prism 2 driver to recognize the card.

Linux

To update the firmware, you'll need prism2_srec from the hostap-utils (and hostap loaded) package; if it's not present on your system, download and compile hostap-utils:

wget http://hostap.epitest.fi/releases/hostap-utils-0.4.7.tar.gz
tar -xvzf hostap-utils-0.4.7.tar.gz
cd hostap-utils-0.4.7
make

Some Prism2 cards have been restricted to a certain set of channels because of country regulation. You can activate all 14 channels (it may be illegal) with the following commands:

./prism2_srec wlan0 -D > pda; cp pda pda.bak

Edit pda and put 3FFF at offset 0104 (line 24). Finally, download the firmware and flash your card.

If the NIC id is between 0x8002 and 0x8008:

wget http://linux.junsun.net/intersil-prism/firmware/1.5.6/s1010506.hex  
./prism2_srec -v -f wlan0 s1010506.hex -P pda

otherwise

wget http://linux.junsun.net/intersil-prism/firmware/1.7.4/pk010101.hex
wget http://linux.junsun.net/intersil-prism/firmware/1.7.4/sf010704.hex
./prism2_srec -v -f wlan0 pk010101.hex sf010704.hex -P pda

You can check your firmware's primary and station version with this command:

# dmesg | grep wifi
hostap_cs: Registered netdevice wifi0
wifi0: NIC: id=0x800c v1.0.0
wifi0: PRI: id=0x15 v1.1.1  (primary firmware is 1.1.1)
wifi0: STA: id=0x1f v1.7.4  (station firmware is 1.7.4)
wifi0: registered netdevice wlan0

or

# hostap_diag wlan0 
NICID: id=0x800c v1.0.0 (PRISM II (2.5) Mini-PCI (SST parallel flash))
PRIID: id=0x0015 v1.1.1
STAID: id=0x001f v1.7.4 (station firmware)

With WinUpdate, I think you can check it via menu Tools then Query firmware version or somewhere else.

If the NIC id above is between 0x8002 and 0x8008, you have an old Prism2 and MUST use STA firmware version 1.5.6 (s1010506.hex). Otherwise, you should use PRI 1.1.1 / STA 1.7.4 which is the most stable firmware version for newer Prism2 cards. Do NOT use firmware 1.7.1 or 1.8.x, people have reported having trouble with them.

Firmware files

Firmware files are S-record files with .hex (or .HEX) suffix. S-record is a format to denote binary files, including their memory locations, in ASCII format. The base name of the file follows a certain convention. You can find more details in this document.

A image file looks like the following:

<type><platform><Version_Major/Minor><Version_Variant>.HEX

For example

pk010004.hex 
 Primary firmware v1.0.4 for NICID 800C, 8013, 8017, 801B. 
sf010409.hex 
 Station firmware v1.4.9 for NICID 800B, 800C, 800D, 8012, 8013, 8014, 8016, 8017,  8018, 801A, 801B, 801C. 
s1010409.hex 
  Station firmware v1.4.9 for NICID 8003, 8008.

This document may also help: linux.junsun.net/intersil-prism

Additional Resources

Here are links to a variety of additional information and resources.

This provides a detailed explanation of how to upgrade the firmware: click here

Brief description of the types of firmware and status of each: old site (no longer working) possible mirror

Table which provides the current mapping of the platform release code IDs with the component ID or IDs: html version or the full document

Source of the firmware files: click here or another set or yet another set