@database "prism2.device Manual"
@$VER: "prism2.device Manual" 2.9 (4.3.2025)
@author "Neil Cafferkey"
@(c) "Neil Cafferkey"

Copyright (C) 2005-2025 Neil Cafferkey


@node "main" "prism2.device Manual"

  @{b}@{u}prism2.device 2.9@{uu}@{ub} - A WPA/WPA2-capable wireless network driver


    @{"Introduction" link "intro"}

    @{"Card Compatibility" link "compatibility"}

    @{"Installation and Usage" link "install"}

    @{"Author and Legal Information" link "author-legal"}

    @{"History" link "history"}

@endnode


@node "intro" "Introduction"

@{u}@{b}Introduction@{ub}@{uu}

prism2.device is a SANA-II network driver for 11Mbps wireless Ethernet cards
based on the Prism II chipset and variants. It supports PCMCIA and
Compact Flash (CF) cards in the A1200/A600, and PCI cards in all AmigaOS 4
systems and in PCs running Amithlon.

This version of prism2.device supports WPA and WPA2 encryption, including
both TKIP and CCMP/AES encryption modes. However, not all hardware supports
all encryption modes (see below for details). The driver also supports
unencrypted networks and the old WEP encryption standard if needed.

@{u}@{b}Card Types@{ub}@{uu}

A number of related card types are supported by the driver. They can be
categorised according to their chipset and firmware into the following
groups.

@{b}Prism II@{ub}

This category includes all cards based on true Prism II, 2.5 and 3 chipsets
that use Intersil firmware.

Advantages:
  - Supports WPA/WPA2 encryption (both TKIP and CCMP/AES).

Disadvantages:
  - WPA/WPA2 encryption is not hardware accelerated.
  - Firmware upgrade must be performed on a PC in order to support WPA/WPA2.

@{b}Hermes@{ub}

These cards use Lucent/Agere firmware. They are only available in the PCMCIA
form factor, and are recognisable by their white pin connectors.

Advantages:
  - Supports hardware-accelerated WPA encryption (TKIP only).
  - No requirement to upgrade firmware on a PC for WPA support.

Disadvantages:
  - WPA2 encryption (CCMP/AES) is not supported.
  - Cannot connect to some modern routers due to a firmware bug.
  - Takes a few seconds to load firmware from disk when started on an
    unaccelerated Amiga.

@{b}Hermes II@{ub}

These later generation Hermes cards are similar in functionality to the
original, but have the additional disadvantage that they may cause a crash
if an attempt is made to connect to a modern router. However, once you have
found a router that works with the card, that problem should not matter.

In terms of appearance, they have the same white pin connector but a
smaller antenna.

@endnode


@node "compatibility" "Card Compatibility"

@{u}@{b}Card Compatibility@{ub}@{uu}

The table below shows compatibility information for prism2.device with a
variety of wireless cards. For cards not listed below, you will have to do
some research. If a card's chipset is stated as Orinoco, Lucent, Agere,
Prism II or Prism 2.5 @{u}and@{uu} its bus type is PCMCIA, CF or PCI, it is likely to
work. Some Prism 3 cards also work if they have a flash memory. Note that a
few otherwise-compatible PCMCIA cards are 3.3V-only and therefore
incompatible with the A1200/A600 (such cards will not fit in the computer's
slot if they are designed properly). If the card doesn't match these
requirements, it will definitely @{u}not@{uu} work.

All compatible PCI cards use Intersil firmware and therefore support WEP,
TKIP and CCMP/AES. Lucent/Agere PCMCIA cards can be identified by their
white pin connectors.

@{b}@{u}Company/Brand@{uu}	@{u}Model@{uu}				@{u}Bus@{uu}	@{u}Works@{uu}	@{u}FCC ID@{uu}@{ub}

@{b}3Com@{ub}		AirConnect			PCMCIA	No
		3CRDW696			PCI	Yes	MXF-C910729

@{b}Adaptec@{ub}		ANW-8030			PCMCIA	Maybe

@{b}Allied Telesyn@{ub}	AT-WCL452			PCMCIA	Yes	O6M-WE300

@{b}Apple@{ub}		AirPort				PCMCIA	No

@{b}Archtek@{ub}		see @{b}SmartLink@{ub}

@{b}Artem@{ub}		CC-PC-b-H2-STD			PCMCIA	Yes
		CC-EMB-PC-b			PCMCIA	Yes
		CC-STD-PC-b			PCMCIA	Yes
		CC-W11-EMB			PCMCIA	Yes

@{b}AT&T@{ub}		see @{b}Lucent@{ub}

@{b}Avaya@{ub}		World Card			PCMCIA	Yes

@{b}Belkin@{ub}		F5D6020				PCMCIA	Yes	K7SF5D6020
		F5D6020 v2			PCMCIA	No	K7SF5D6021
		F5D6020 v3			CardBus	No	NDD9571060301

@{b}Buffalo@{ub}		WLI-PCM-S11			PCMCIA	Maybe
		WLI-PCM-L11			PCMCIA	Yes	IMRWLPCE24H
		WLI-PCM-L11G			PCMCIA	Yes

@{b}Cabletron@{ub}	RoamAbout 802.11 DS		PCMCIA	Yes

@{b}Compaq@{ub}		HNW-100				PCMCIA	Maybe	MXF-WL211F
		WL100				PCMCIA	No	E2XSWL-2000N
		WL110				PCMCIA	Yes	IMRWLPCE24H

@{b}Compex@{ub}		WL11A+				PCMCIA	Yes
		WL11B+				PCMCIA	Yes	IXMPCBAG

@{b}Conceptronic@{ub}	CON11C				PCMCIA	Yes
		CON11CC				PCMCIA	Yes

@{b}Corega@{ub}		COR-PCCL-11			PCMCIA	Yes

@{b}D-Link@{ub}		DWL-520 (HW rev. B2 or earlier)	PCI	Yes
		DWL-520 (all other HW rev.)	PCI	No
		DWL-520+			PCI	No
		DWL-650 (HW rev. A1, I2, J3)	PCMCIA	Maybe	MXF-WL211F
		DWL-650 (HW rev. P1)		PCMCIA	No	KA22003070026-1
		DWL-650 (HW rev. K1, L1, M1)	CardBus	No
		DWL-660				PCMCIA	Yes	IMRWLPCE24H

@{b}Elsa@{ub}		MC-11				PCMCIA	Yes

@{b}Epson@{ub}		TMW1008				PCMCIA	Yes	NUSTMW1008

@{b}Farallon@{ub}	PN473				PCMCIA	Yes	MXF-WL211F

@{b}Funkwerk@{ub}	see @{b}Artem@{ub}

@{b}IBM@{ub}		26P8030/26P8087			PCMCIA	Yes

@{b}Intel@{ub}		PRO/Wireless 2011		PCMCIA	No
		AP311				PCMCIA	Yes	EJM-AP311

@{b}Linksys@{ub}		WCF12				CF	Maybe	PKW-WCF12
		WPC11 v.3			PCMCIA	Yes	PKW-WPC11-V3
		WPC11 v.4			CardBus	No	PKW-WPC11-V4

@{b}Longshine@{ub}	GL2411V1-A			PCMCIA	Yes	O7J-GL2411V1A

@{b}Lucent Tech.@{ub}	WaveLAN version 2.0		PCMCIA	No
		Orinoco	Bronze			PCMCIA	Yes
		Orinoco	Gold			PCMCIA	Yes
		Orinoco	Silver			PCMCIA	Yes
		Orinoco WaveLAN/IEEE 802.11(b)	PCMCIA	Yes
		WaveLAN Turbo Bronze		PCMCIA	No	IMRWLPC24
		WaveLAN Turbo 11Mb Silver	PCMCIA	Yes	IMRWLPCE24H

@{b}Melco@{ub}		see @{b}Buffalo@{ub}

@{b}Microsoft@{ub}	MN-520				PCMCIA	Yes	HEDACC3501D68

@{b}NCR@{ub}		see @{b}Lucent@{ub}

@{b}Netgear@{ub}		MA301				PCI	Yes
		MA311				PCI	Yes	M4Y-06260
		MA401				PCMCIA	Yes

@{b}Planex@{ub}		GW-NS110			PCMCIA	Maybe	M4Y-XI-300
		GW-NS11H			PCMCIA	Maybe

@{b}Proxim@{ub}		8420-WD/8421-WD			PCMCIA	Yes	IMRPC2411B

@{b}Samsung@{ub}		SWL-2000N			PCMCIA	No	E2XSWL-2000N

@{b}Senao@{ub}		NL-2511CF			CF	Yes	NI3-IS20V315

@{b}Siemens@{ub}	SS1021 764-0003-001			PCMCIA	Maybe	LLM002WL11000-1
		SS1021 764-0003-002		PCMCIA	Yes	O6M-WE300
		SS1021 764-0003-003		CardBus	No	O6M-WE302TF

@{b}SmartLink@{ub}	WE300-IF			PCMCIA	Yes	O6M-WE300

@{b}SMC@{ub}		SMC2532W-B			PCMCIA	Maybe
		SMC2532W-B v2			PCMCIA	Maybe	M4Y-X1330HP
		SMC2632W			PCMCIA	Yes	LLM002SMC2632W
		SMC2632W			PCMCIA	Maybe	LLM002WL11000-1
		SMC2632W V.2			PCMCIA	No	HEDACC2632WV2
		SMC2632W V.3			CardBus	No
		SMC2632W-B			PCMCIA	Maybe	M4Y-0325H

@{b}SpeedStream@{ub}	see @{b}Siemens@{ub}

@{b}Sony@{ub}		Vaio PCWA-C100			PCMCIA	Yes
		Vaio PCWA-C150S			PCMCIA	Yes	AK8PCWAC150S

@{b}Thomson@{ub}		SpeedTouch 110			PCMCIA	Yes

@{b}Toko@{ub}		see @{b}Epson@{ub}

@{b}Toshiba@{ub}		PA3064U-1PCC			PCMCIA	Yes	IMRWLPCE24H

@{b}Unex@{ub}		NexAir MR011-001		PCMCIA	Yes

@{b}Z-Com@{ub}		XI-300				PCMCIA	Yes	M4Y-XI-300
		XI-325H+			PCMCIA	Yes
		XI-330				PCMCIA	Maybe	M4Y-0XI330

@{b}Zyxel@{ub}		ZyAIR B-100			PCMCIA	Yes	O6M-WE302

@{b}[unbranded]@{ub}					PCMCIA	No	PB6-TWLC11
						PCMCIA	No	PY4-WP320

@endnode


@node "install" "Installation and Usage"

@{u}@{b}Hardware requirements@{ub}@{uu}

One of the following systems is required:
 - An A600 or A1200.
 - An AmigaOS 4 system.
 - A PC running Amithlon.

@{u}@{b}Software requirements@{ub}@{uu}

prism2.device needs AmigaOS 2.05 or greater.

@{u}@{b}Firmware upgrade@{ub}@{uu}

@{"Prism II" link "intro"} cards need to have their firmware upgraded before they can use
WPA/WPA2. This procedure cannot be done in AmigaOS, and it is recommended
that it be done in a Windows PC.

Instructions on reflashing the firmware, and the required firmware files,
can be found at http://junsun.net/old/linux/intersil-prism/

Note that some of the firmware links in the web page above are dead, but
the first one given is part of the same site and is still live at the time
of writing: http://junsun.net/old/linux/intersil-prism/firmware/

It is advised that cards be reflashed with primary firmware 1.1.1 and
secondary firmware 1.7.4, as prism2.device has been tested with these
versions (there are a few cards for which these firmware versions are not
available, in which case the closest alternative versions should be used).

@{u}@{b}Installation@{ub}@{uu}

To install prism2.device, run the 'Install' script. In your networking
software, set the SANA-II device name to @{b}networks/prism2.device@{ub}
and the unit number to @{b}0@{ub}.

This package includes a utility called WirelessManager that runs in the
background and sets up connections to wireless networks. Under AmigaOS 3 and
4.1, the install script will add commands to the S:User-Startup script to
start WirelessManager at boot and wait for a connection to be established.

Under AmigaOS 4.0, however, it is necessary to start WirelessManager from
the S:Startup-Sequence script instead to ensure that a wireless connection
is established before the TCP/IP stack starts its DHCP client. Since this
cannot be easily done by the install script, the following lines should be
manually inserted just before AddNetInterface or Network-Startup is called:

    Run <>NIL: C:WirelessManager prism2.device
    C:WaitForLink prism2.device

@{u}@{b}Wireless parameters@{ub}@{uu}

Parameters for your wireless networks are specified in the file
'ENVARC:Sys/Wireless.prefs'. You can choose to have this file created
automatically while running the 'Install' script. The installer lets you
create a configuration for a single WPA/WPA2-encrypted network. If you need
other options, or want to configure more than one network, you will need to
edit 'ENVARC:Sys/Wireless.prefs' in a text editor. Below are some examples
of network configurations that can be used.

# A WPA/WPA2-encrypted network with a textual passphrase
# (using a textual WPA/WPA2 passphrase will cause a start-up delay of up to
# several minutes on a slow CPU)

network={
	ssid="mynet1"
	psk="yOuRsEcRetwpAKeY"
}

# A WPA/WPA2-encrypted network with a hexadecimal key
# (note that the key will need to be recalculated using the wpa_passphrase
# utility if the SSID is changed)

network={
	ssid="mynet1"
	psk=b368b34a7ba4051bea1f9aed30a179d4e56ae1c8624c1fabd2f5f0f7c0db12a3
}

# A *hidden* WPA/WPA2-encrypted network with a textual passphrase

network={
	ssid="mynet2"
	scan_ssid=1
	psk="yOuRsEcRetwpAKeY"
}

# A WEP-encrypted network with a hexadecimal key

network={
	ssid="mynet2"
	key_mgmt=NONE
	wep_key0=123456789abcdef123456789ab
	wep_tx_keyidx=0
}

# A WEP-encrypted network with a textual password

network={
	ssid="mynet3"
	key_mgmt=NONE
	wep_key0="yourpassword1"
	wep_tx_keyidx=0
}

# Match any unencrypted network

network={
	key_mgmt=NONE
}


@{u}@{b}A1200 hardware bug@{ub}@{uu}

The A1200 (but not the A600) has a hardware bug which prevents a PCMCIA card
being reset except on insertion or removal. There are both hardware and
software remedies for this problem. The software solution is CardReset
(util/boot/CardReset.lha on Aminet). There are several different types of
hardware fixes, both DIY and commercial.

@{u}@{b}Problems@{ub}@{uu}

If you are using a Hermes or Hermes II card, there is a bug in the firmware
that prevents connection to some routers (and even crashes the Amiga in the
case of Hermes II). However, these problems can sometimes be overcome by
tweaking settings on the router. For example, try turning WPS on or off, or
changing the length of the network name (especially making it shorter). The
mechanism that triggers the bug is unclear, so changing any setting might
help. Surprisingly, there are routers that can be connected to when they are
configured for 802.11b/g/n, but not when they are configured for just
802.11b/g.

If you install CardPatch, the driver will fail to open for a PCMCIA card
that is inserted (or re-inserted) after CardPatch is started.

Miami will cause the system to hang if a PCMCIA card is removed while
online. Re-insertion won't help.

@endnode


@node "author-legal" "Author and Legal Information"

@{u}@{b}Author and Legal Information@{ub}@{uu}

prism2.device, pccard.library and WaitForLink were written by
Neil Cafferkey.

Please send bug reports, suggestions, and any other correspondence to
the following address.

E-mail: neil@ncafferkey.net

prism2.device, pccard.library and WaitForLink are released under the terms
of the @{"GNU General Public Licence" link "GPL/MAIN"}. See the individual source files for
copyright information.

The full pccard.library archive, which includes the source code and
developer files, is available on Aminet as "util/libs/pccard.lha".

All trademarks are owned by their owners.

WirelessManager is based on wpa_supplicant.

Legal notice for wpa_supplicant:

  Copyright (c) 2003-2010, Jouni Malinen <j@w1.fi> and contributors
  Copyright (c) 2011-2025, Neil Cafferkey

  Redistribution and use in source and binary forms, with or without
  modification, are permitted provided that the following conditions are
  met:

  1. Redistributions of source code must retain the above copyright
     notice, this list of conditions and the following disclaimer.

  2. Redistributions in binary form must reproduce the above copyright
     notice, this list of conditions and the following disclaimer in the
     documentation and/or other materials provided with the distribution.

  3. Neither the name(s) of the above-listed copyright holder(s) nor the
     names of its contributors may be used to endorse or promote products
     derived from this software without specific prior written permission.

  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

The Hermes I and Hermes II @{b}firmware files@{ub} are subject to the following
terms:

  COPYRIGHT © 1994 - 1995 by AT&T.                All Rights Reserved
  COPYRIGHT © 1996 - 2000 by Lucent Technologies. All Rights Reserved
  COPYRIGHT © 2001 - 2004 by Agere Systems Inc.   All Rights Reserved
  All rights reserved.

  Redistribution and use in source or binary forms, with or without
  modifications, are permitted provided that the following conditions are
  met:

  . Redistributions of source code must retain the above copyright notice,
     this list of conditions and the following Disclaimer as comments in the
     code as well as in the documentation and/or other materials provided
     with the distribution.

  . Redistributions in binary form must reproduce the above copyright
     notice, this list of conditions and the following Disclaimer in the
     documentation and/or other materials provided with the distribution.

  . Neither the name of Agere Systems Inc. nor the names of the contributors
     may be used to endorse or promote products derived from this software
     without specific prior written permission.

  Disclaimer

  THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
  INCLUDING, BUT NOT LIMITED TO, INFRINGEMENT AND THE IMPLIED WARRANTIES OF
  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  ANY
  USE, MODIFICATION OR DISTRIBUTION OF THIS SOFTWARE IS SOLELY AT THE USERS
  OWN RISK. IN NO EVENT SHALL AGERE SYSTEMS INC. OR CONTRIBUTORS BE LIABLE
  FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
  DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
  SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
  CAUSED AND ON ANY THEORY OF LIABILITY, INCLUDING, BUT NOT LIMITED TO,
  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
  POSSIBILITY OF SUCH DAMAGE.

@endnode


@node "history" "History"

@{u}@{b}History@{ub}@{uu}

@{b}V2.9 (March 2025)@{ub}

  - Fixed support for PCMCIA cards in the A1200 with the AmigaOS 4 driver
    (broken since V2.5).
  - Added support for A600 without an upgraded CPU.
  - Reduced minimum AmigaOS version required to 2.05.
  - Better stability with Hermes II cards.
  - Now recognises 5 new hardware IDs for PCMCIA cards.
  - Faster loading of Hermes firmware.
  - Hermes firmware loading is now done in a more correct and
    system-friendly way, avoiding temporary system freezes and potential
    crashes.
  - Added the WaitForLink utility, allowing startup of a TCP/IP stack during
    boot to be postponed until a wireless connection is fully established.
  - Cards with non-WPA-capable Hermes firmware can now scan for a new
    network after disconnecting.
  - Duplicate scan results are now also filtered out for non-WPA-capable
    Hermes firmware.
  - A workaround was added for a bug in early Hermes firmware versions that
    sometimes broke network scanning if an unencrypted network was in range.
  - Crashes caused by attempting to load WPA-capable firmware to early
    Hermes cards that have no encryption hardware are now prevented.
  - Promiscuous mode has been fixed.
  - Fixed a bug in Ctrl-C handling that sometimes led to resources not being
    released (WirelessManager).
  - Fixed a memory leak (WirelessManager).

@{b}V2.8 (March 2022)@{ub}

  - Added support for the Epson/Toko TMW1008.
  - Updated the link to firmware information and downloads in the manual.

@{b}V2.7 (December 2019)@{ub}

  - Now recognises 13 new hardware IDs for PCMCIA and CompactFlash cards.
  - Support for older Intersil firmware versions.
  - Fixed 64-bit software WEP.
  - Fixed a memory leak.
  - Better thread safety.
  - Now includes driver source code.

@{b}V2.6 (October 2014)@{ub}

  - Added support for Z-Com XI-330 and possibly SMC SMC2532W-B v2.
  - Better filtering of duplicate scan results.
  - Removed references to Absolute Value Systems' list of compatible cards.
    Their website appears to be defunct.

@{b}V2.5 (August 2013)@{ub}

  - It is no longer necessary to manually disable WPA2/AES encryption in the
    configuration file for cards that do not support it, as WirelessManager
    is now automatically informed of the card's encryption capabilities.
  - Duplicate scan results are now filtered out.
  - Fixed a memory leak (WirelessManager).
  - Channel 14 should work now (WirelessManager).

@{b}V2.4 (January 2012)@{ub}

  - First free version.

@{b}V2.3 (July 2011)@{ub}

  - Fixed a bug in replay-attack prevention that stopped broadcast and
    multicast frames being received from some access points. This caused
    DHCP and some incoming connections to fail.

@{b}V2.2 (June 2011)@{ub}

  - Connecting to hidden networks is now possible.

@{b}V2.1 (May 2011)@{ub}

  - First WPA/WPA2-capable release.
  - Added WirelessManager program for setting up wireless connections.
  - Network scanning is now supported.
  - Removed obsolete SetPrism2Defaults program.
  - WEP processing is now done in software for cards that can't handle it in
    firmware.
  - Hermes cards in Prism-II PCI-to-PCMCIA bridges are now supported.

@endnode


