================================================================================
			README for USB8388

 (c) Copyright  2003-2006, Marvell International Ltd. 
 All Rights Reserved

 This software file (the "File") is distributed by Marvell International 
 Ltd. under the terms of the GNU General Public License Version 2, June 1991 
 (the "License").  You may use, redistribute and/or modify this File in 
 accordance with the terms and conditions of the License, a copy of which 
 is available along with the File in the license.txt file or by writing to 
 the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 
 02111-1307 or on the worldwide web at http://www.gnu.org/licenses/gpl.txt.

 THE FILE IS DISTRIBUTED AS-IS, WITHOUT WARRANTY OF ANY KIND, AND THE 
 IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE 
 ARE EXPRESSLY DISCLAIMED.  The License provides additional details about 
 this warranty disclaimer.
================================================================================
	
******************* This driver works in kernel 2.6.x only *********************

===================
1) FOR DRIVER BUILD
===================

	o. Untar the source into a directory

		tar xvzf usb8388-xxxx.tgz

	o. Change to the source directory
		
		cd usb8388-xxxx/src

	o. Modify Makefile if needed to set correct directory of kernel source

	o. Build the driver

		make distclean
		make build

	This should create the files including usb8388.ko which is the driver as
	 a loadable module.

=====================
2) FOR DRIVER LOADING
=====================
	
	o. Copy the firmware image (e.g. usb8388.bin) to /lib/firmware/

	o. Load driver by using the following command:
	
		insmod usb8388.ko [fw_name=usb8388.bin]

=====================
3) FOR IWPRIV COMMAND
=====================

NAME
	This manual describes the usage of private commands used in Marvell WLAN
	Linux Driver. All the commands available in Wlanconfig will not be available 
	in the iwpriv.

SYNOPSIS
	iwpriv <ethX> <command> [sub-command] ...

	iwpriv ethX version
	iwpriv ethX scantype [sub-command]
	iwpriv ethX getSNR <n>
	iwpriv ethX getNF <n>
	iwpriv ethX getRSSI <n>
	iwpriv ethX setrxant <n>
	iwpriv ethX getrxant
	iwpriv ethX settxant <n>
	iwpriv ethX gettxant
	iwpriv ethX authalgs <n>
	iwpriv ethX pre-TBTT <n>
	iwpriv ethX 8021xauthalgs <n>
	iwpriv ethX encryptionmode <n>
	iwpriv ethX setregioncode <n>
	iwpriv ethX getregioncode 
	iwpriv ethX setbcnavg <n>
	iwpriv ethX getbcnavg
	iwpriv ethX setdataavg <n>
	iwpriv ethX setlisteninter <n>
	iwpriv ethX getlisteninter
	iwpriv ethX setmultipledtim <n>
	iwpriv ethX getmultipledtim
	iwpriv ethX atimwindow <n>
	iwpriv ethX deauth
	iwpriv ethX adhocstop
	iwpriv ethX radioon
	iwpriv ethX radiooff
	iwpriv ethX reasso-on
	iwpriv ethX reasso-off
	iwpriv ethX scanmode  [sub-command]
	iwpriv ethX setwpaie <n>
	iwpriv ethX wlanidle-off
	iwpriv ethX wlanidle-on
	iwpriv ethX getcis
	iwpriv ethX getlog
	iwpriv ethX getadhocstatus
	iwpriv ethX adhocgrate <n>

Version 4 Command:
	iwpriv ethX inactvityto <n>
	iwpriv ethX sleeppd <n>
	iwpriv ethX enable11d <n>
	iwpriv ethX tpccfg <n>
	iwpriv ethX powercfg <n>	
	iwpriv ethX setafc <n>
	iwpriv ethX getafc

Version 5 Command:
	iwpriv ethX ledgpio <n>
	iwpriv ethX scanprobes <n>
	iwpriv ethX lolisteninter <n>
	iwpriv ethX rateadapt <n> <m>
	iwpriv ethX txcontrol <n>
	iwpriv ethX psnullinterval <n>
	iwpriv ethX prescan <n>
	iwpriv ethX getrxinfo
	iwpriv ethX gettxrate
	iwpriv ethX beaconinterval 

DESCRIPTION
	Those commands are used to send additional commands to the Marvell WLAN
	card via the Linux device driver.

	The ethX parameter specifies the network device that is to be used to 
		perform this command on. it could be eth0, eth1 etc.

version	
	This is used to get the current version of the driver and the firmware.

scantype	
	This command is used to set the scan type to be used by the driver in 
	the scan command. This setting will not be used while performing a scan
	for a specific SSID, as it is always done with scan type being active. 
	
	where the sub-commands are: - 
			active 	-- to set the scan type to active
			passive -- to set the scan type to passive
			get 	-- to get the scan type set in the driver

getSNR  
	This command gets the average and non average value of Signal to Noise 
	Ratio of Beacon and Data.
	
	where value is:-
			0 	-- Beacon non-average.
	        	1 	-- Beacon average.
	        	2 	-- Data non-average.
	        	3 	-- Data average.

	If no value is given, all four values are returned in the order mentioned
	above.

	Note: This command is available only when STA is connected.

getRSSI	
	This command gets the average and non average value os Receive Signal 
	Strength of Beacon and Data.
	
	where value is:-
			0 	-- Beacon non-average.
	        	1 	-- Beacon average.
	        	2 	-- Data non-average.
	        	3 	-- Data average.

	Note: This command is available only when STA is connected.

getNF   
	This command gets the average and non average value of Noise Floor of 
	Beacon and Data.
	
	where value is:-
			0 	-- Beacon non-average.
	        	1 	-- Beacon average.
	        	2 	-- Data non-average.
	        	3 	-- Data average.

	Note: This command is available only when STA is connected.

setrxant	
	This command is used to set the mode for Rx antenna. 
	
	The options that can be sent are:- 
			1 	-- Antenna 1. 
			2 	-- Antenna 2.
			0xFFFF 	-- Diversity.

	Usage:
		iwpriv ethX setrxant 0x01: select Antenna 1.

getrxant                    
	This command is used to get the mode for Rx antenna.


settxant	
	This command is used to set the mode for Tx antenna.
		The options that can be sent are:- 
			1 	-- Antenna 1. 
			2 	-- Antenna 2.
			0xFFFF 	-- Diversity.
	Usage:
		iwpriv ethX settxant 0x01: select Antenna 1.

gettxant                    
	This command is used to get the mode for Tx antenna.

authalgs	
	This command is used by the WPA supplicant to set the authentication 
	algorithms in the station.

8021xauthalgs
	This command is used by the WPA supplicant to set the 8021.x authentication algorithm type
	station.
	
	where values can be:-
			1 	-- None
			2 	-- LEAP
			4 	-- TLS
			8 	-- TTLs
			16	-- MD5	


encryptionmode
	This command is used by the WPA supplicant to set the encryption algorithm.
		
	where values can be:-
			0 	-- NONE
			1 	-- WEP40
			2 	-- TKIP
			3 	-- CCMP
			4 	-- WEP104

pre-TBTT	
	This command is used to set pre-TBTT time period where value is in microseconds.

setregioncode           
	This command is used to set the region code in the station.
	where value is 'region code' for various regions like
	USA FCC, Canada IC, Spain, France, Europe ETSI,	Japan ...

	Usage:
		iwpriv ethX setregioncode 0x10: set region code to USA (0x10).

getregioncode           
	This command is used to get the region code information set in the 
	station. 

setbcnavg
	Set the weighting factor for calculating RSSI.

getbcnavg
	Get weighting factor for calculating RSSI.

setdataavg
	Set the weighting factor for calculating SNR.

setlisteninter             
	This command is used to set the listen interval in the 
	station.
	
	where the value ranges between 1 - 255

getlisteninter            
	This command is used to get the listen interval value set in the 
	station.

setmultipledtim         
	This command is used to set the multiple dtim value in the 
	station.
		where the value is 1,2,3,4,5,0xfffe
		0xfffe means the firmware will use listen interval in association
		command for waking up

getmultipledtim        
	This command is used to get the multiple dtim value set in the station.

atimwindow         
	This command is used to set the atim value in the 
	station. 

	where the value ranges between 0 - 50

deauth                      
	This command is used to send the de-authentication to the AP with which 
	the station is associated. This command is valid only when 
	station is in Infrastructure mode.

	Note: This command is available only when STA is connected.

reasso-on                  
	This command is used to enable re-association function in dirver.

reasso-off                  
	This command is used to disable re-association function in driver

adhocstop                 
	This command is used to stop beacon transmission from the station and 
	go into idle state in ad-hoc mode.
	
	Note: This command is available only when STA is connected.

radioon                     
	This command is used to turn on the RF antenna.

radiooff                    
	This command is sued to turn off the RF antenna.   

scanmode                 
	This command is used to set the station to scan for either IBSS 
	networks or BSS networks or both BSS and IBSS networks. This 
	command can be used with sub commands,

	where the value for 
			bss 	-- Scan All the BSS networks.
			ibss 	-- Scan All the IBSS networks.
			any 	-- Scan both BSS and IBSS networks.
			


setwpaie                      
	This command is used by WPA supplicant to send the WPA-IE to the driver. 
	
wlanidle-off                 
	This command is used to get into idle state.

	Note: This command is available only when STA is connected.

wlanidle-on                 
	This command is used to get off the idle state.

	Note: This command is available only when STA is connected.



getcis
	This command is used to read the Card Info Structure Table.
	
getlog
	This command is used to get the 802.11 statistics available in the 
		station.
	
	Note: This command is available only when STA is connected.

getadhocstatus
	This command is used to get the ad-hoc Network Status.

	The various status codes are:
		AdhocStarted
		AdhocJoined
		AdhocIdle
		InfraMode
		AutoUnknownMode

	Note: This command is available only when STA is connected.

adhocgrate
	This command is used to enable(1) g_rate, Disable(0) g_rate 
	and request(2) the status which g_rate is disabled/enabled,
	for Ad-hoc creator.

	where value is:-
		0	-- Disabled
		1	-- Enabled
		2	-- Get

ledgpio
	This command is used to set/get LEDs.

	iwpriv ethX ledgpio <LEDs>
		will set the corresponding LED for the GPIO Line.

	iwpriv ethX ledgpio
		will give u which LEDs are Enabled.

	Usage:
		iwpriv eth1 ledgpio 1 0 2 1 3 4
			will enable 
			LED 1 -> GPIO 0
			LED 2 -> GPIO 1
			LED 3 -> GPIO 4

		iwpriv eth1 ledgpio 
			shows LED information in the format as mentioned above.

	Note: LED0 is invalid
	Note: Maximum Number of LEDs are 16.		
	
inactivityto
	This command is used by the host to set/get the inactivity timeout value, 
	which specifies when WLAN device is put to sleep.
	
	Usage:
		iwpriv ethX inactivityto [<timeout>]

	where the parameter are:
		timeout: timeout value in milliseconds.

	Example:
		iwpriv eth1 inactivityto
			"get the timeout value"

		iwpriv eth1 inactivityto X 
			"set timeout value to X ms"


sleeppd
	This command is used to configure the sleep period of the WLAN device.

	Usage:
		iwpriv ethX sleeppd [<sleep period>]

	where the parameter are:
		Period: sleep period in milliseconds. Range 10~60.

	Example:
		iwpriv eth1 sleeppd 10 
			"set period as 10 ms"
		iwpriv eth1 sleeppd
			"get the sleep period configuration"

enable11d
	This command is used to control 11d
	where value is:-
		1	-- Enabled
		0	-- Disabled
		2	-- Get


	

tpccfg
	Enables or disables automatic transmit power control.

	The first parameter turns this feature on (1) or off (0).  When turning 
	on, the user must also supply four more parameters in the following 
	order:
		-UseSNR (Use SNR (in addition to PER) for TPC algorithm),
		-P0 (P0 power level for TPC),
		-P1 (P1 power level for TPC),
		-P2 (P2 power level for TPC).

	Usage:
		iwpriv ethX tpccfg: Get current configuration
		iwpriv ethX tpccfg 0: disable auto TPC
		iwpriv ethX tpccfg 0x01 0x00 0x05 0x0a 0x0d: enable auto TPC; do not use SNR;
							     P0=0x05; P1=0x0a; P2=0x0d;
		iwpriv ethX tpccfg 0x01 0x01 0x05 0x0a 0x0d: enable auto TPC; use SNR;
							     P0=0x05; P1=0x0a; P2=0x0d.

powercfg
	Enables or disables power adaptation.

	The first parameter turns this feature on (1) or off (0).  When turning 
	on, the user must also supply three more parameters in the following 
	order:
		-P0 (P0 power level for Power Adaptation),
		-P1 (P1 power level for Power Adaptation),
		-P2 (P2 power level for Power Adaptation).

	Usage:
		iwpriv ethX powercfg: Get current configuration
		iwpriv ethX powercfg 0: disable power adaptation
		iwpriv ethX powercfg 1 0x0d 0x0f 0x12: enable power adaptation;
						       P0=0x0d; P1=0x0f; P2=0x12.

getafc
	This command returns automatic frequency control parameters.  It returns
	three integers:
		-P0: automatic is on (1), or off (0),
		-P1: current timing offset in PPM (part per million), and
		-P2: current frequency offset in PPM.

setafc
	Set automatic frequency control options.

	The first parameter turns automatic on (1) or off (0).
	The user must supply two more parameters in either case, in the following
  order:

  When auto is on:

		-P0 (automatic adjustment frequency threshold in PPM),
		-P1 (automatic adjustment period in beacon period),

  When auto is off:

		-P0 (manual adjustment timing offset in PPM), and
		-P1 (manual adjustment frequency offset in PPM).

	Usage:
		iwpriv ethX setafc 0 10 10: manual adjustment, both timing and frequcncy 
    offset are 10 PPM.

		iwpriv ethX setafc 1 10 10 enable afc, automatic adjustment,
    frequency threshold 10 PPM, for every 10 beacon periods.



scanprobes
	This command sets number of probe requests per channel.

	Usage:
		iwpriv ethX scanprobes 3 (set scan probes to 3)
		iwpriv ethX scanprobes   (get scan probes)

lolisteninter
	This command sets the value of listen interval.

	Usage:
	iwpriv ethX lolisteninter 234 (set the lolisteninter to 234)
	iwpriv ethX lolisteninter     (get the lolisteninter value)

rateadapt
	This command sets the data rates bitmap.
	Where <n>
		0: Disable auto rate adapt
		1: Enable auto rate adapt
		
	      <m>
		 data rate bitmap
			Bit	Data rate
			0	1 Mbps
			1	2 Mbps
			2	5.5 Mbps
			3	11 Mbps
			4	Reserved
			5	6 Mbps
			6	9 Mbps
			7	12 Mbps
			8	18 Mbps
			9	24 Mbps
			10	36 Mbps
			11	48 Mbps
			12	54 Mbps
			12-15	Reserved

	Usage:
	iwpriv ethX rateadapt
			read the currect data rate setting
	iwpriv ethX rateadapt 1 0x07
			enable auto data rate adapt and 
			data rates are 1Mbps, 2Mbsp and 5.5Mbps
	

txcontrol
	This command is used to set the Tx rate, ack policy, and retry limit on a per packet basis.

	Where value <n> is:
	    if bit[4] == 1:
		bit[3:0]        -- 0   1   2   3   4   5   6   7   8   9   10   11   12   13-16
		Data Rate(Mbps) -- 1   2   5.5 11  Rsv 6   9   12  18  24  36   48   54   Rsv

	    bit[12:8] 
		if bit[12] == 1, bit[11:8] specifies the Tx retry limit.

	    bit[14:13] specifies per packet ack policy:
		bit[14:13]   
		     1  0	use immediate ack policy for this packet
		     1  1       use no ack policy for this packet
		     0  x	use the per-packet ack policy setting
			
	Usage:
	iwpriv ethX txcontrol 0x7513
			Use no-ack policy, 5 retires for Tx, 11Mbps rate



psnullinterval
	This command is used to set/request NULL package interval for Power Save
	under infrastructure mode.

	where value is:-
		-1	-- Disabled
		n>0	-- Set interval as n (seconds)

prescan
	This command is used to enable (1)/disable(0) auto prescan before assoicate to the ap 

	where value is:-
		0	-- Disabled
		1	-- Enabled
		2       -- Get

getrxinfo
	This command gets non average value of Signal to Noise Ratio of Data and rate index.

	The following table shows RateIndex and Rate

		     RateIndex	Data rate
			0	1 Mbps
			1	2 Mbps
			2	5.5 Mbps
			3	11 Mbps
			4	Reserved
			5	6 Mbps
			6	9 Mbps
			7	12 Mbps
			8	18 Mbps
			9	24 Mbps
			10	36 Mbps
			11	48 Mbps
			12	54 Mbps
			13-15	Reserved

gettxrate	 
	This command gets current Tx rate index of the first packet associated with Rate Adaptation.

	The following table shows RateIndex and Rate

		     RateIndex	Data rate
			0	1 Mbps
			1	2 Mbps
			2	5.5 Mbps
			3	11 Mbps
			4	Reserved
			5	6 Mbps
			6	9 Mbps
			7	12 Mbps
			8	18 Mbps
			9	24 Mbps
			10	36 Mbps
			11	48 Mbps
			12	54 Mbps
			13-15	Reserved

bcninterval 
	This command is used to sets beacon interval in adhoc mode when an argument is given, and gets current adhoc
	beacon interval when no argument is given. The valid beacon interval is between 20 - 1000,
	default beacon interval is 100.

	Usage:
		iwpriv ethX bcninterval 100  (set adhoc beacon interval to 100)
		iwpriv ethX bcninterval      (get adhoc beacon interval)

=========================
4) FOR WLANCONFIG COMMAND
=========================

NAME
wlanconfig - configure the additional parameters available for the Marvell 
		WLAN Linux Driver.

SYNOPSIS
wlanconfig <ethX> <command> [parameters] ...
wlanconfig ethX version
wlanconfig ethX <rdmac|rdbbp|rdrf> <offset>
wlanconfig ethX <wrmac|wrbbp|wrrf> <offset> <n>
wlanconfig ethX rdeeprom <offset> <length>
wlanconfig ethX getrate
wlanconfig ethX sleepparams <config values>
wlanconfig ethX extscan <ssid>
wlanconfig ethX getscanlist

Version 4 Command:

Version 5 Command:
wlanconfig ethX hostcmd <hostcmd.conf> <subevent_get>
wlanconfig ethX hostcmd <hostcmd.conf> <subevent_set>


Version 6 Command:
wlanconfig ethX setuserscan [ARGS]
wlanconfig ethX getscantable

Version 8




DESCRIPTION

those commands are used in Marvell specic applicaion called wlanconfig.

===========
rdmac 
rdbbp
rdrf	
	These commands are used to read the MAC, BBP and RF registers from the 
	card.  These commands take one parameter that specifies the offset 
	location that is to be read.  This parameter can be specified either in 
	decimal or in hexadecimal (by preceding the number with a "0x").
		
	Usage:	
		wlanconfig ethX rdmac 0xa123
		wlanconfig ethX rdbbp 0x0123
		wlanconfig ethX rdrf 0x0123

wrmac 
wrbbp
wrrf	
	These commands are used to write the MAC, BBP and RF registers in the 
	card.  These commands take two parameters that specify the offset 
	location and the value that is to be written. This parameters can be 
	specified either in decimal or in hexadecimal (by preceding the number 
	with a "0x").
	
	Usage:
		wlanconfig ethX wrmac 0xa123 0xaa
		wlanconfig ethX wrbbp 0x0123 0xaa
		wlanconfig ethX wrrf 0x0123 0xaa




rdeeprom
	To read the EEPROM contents of the card.
	
	Usage:
	wlanconfig ethX rdeeprom 0x00 0x10

getrate
	To get the supported rates and the current rate.
	
sleepparams       
	This command is used to set the sleepclock configurations
	
	Usage:
		wlanconfig ethX sleepparams get: reads the current sleepclock configuration
	
		wlanconfig ethX sleepparams set p1 p2 p3 p4 p5 p6: writes the sleepclock configuration.
			
		where:
			p1 is Sleep clock error in ppm (0-65535)
			p2 is Wakeup offset in usec (0-65535)
			p3 is Clock stabilization time in usec (0-65535)
			p4 is Control periodic calibration (0-2)
			p5 is Control the use of external sleep clock (0-2)
			p6 is reserved for debug (0-65535)





hostcmd <hostcmd.conf> <subevent_get>
hostcmd <hostcmd.conf> <subevent_set>
	This command is used to set the configurations for 
		event descriptor interface command.
	hostcmd.conf is a generic configuration file containing multiple configuration enties
		for subscrive event API
	subsvent_get: get subscribed event parameters
	subsvent_set: set subscribed event parameters

	Usage:
		wlanconfig ethX hostcmd hostcmd.conf subevent_get
		wlanconfig ethX hostcmd hostcmd.conf subevent_set


extscan
	This command is used to do a specific scan.
	
	Usage: wlanconfig ethX extscan <SSID>

	Example:
		wlanconfig ethX extscan LINKSYS-AP

	To see the results of use getscanlist command.

getscanlist
	This command is used to get the scan results.

	Usage: wlanconfig ethX getscanlist
		
	Example:
		wlanconfig ethX getscanlist




setuserscan
    Initiate a customized scan and retrieve the results

    Usage:
       wlanconfig ethX setuserscan [ARGS]

         where [ARGS]: 

      chan=[chan#][band][mode] where band is [a,b,g] and mode is 
                               blank for active or 'p' for passive
      bssid=xx:xx:xx:xx:xx:xx  specify a BSSID filter for the scan
      ssid="[SSID]"            specify a SSID filter for the scan
      keep=[0 or 1]            keep the previous scan results (1), discard (0)
      dur=[scan time]          time to scan for each channel in milliseconds
      probes=[#]               number of probe requests to send on each chan
      type=[1,2,3]             BSS type: 1 (Infra), 2(Adhoc), 3(Any)
 
    Any combination of the above arguments can be supplied on the command line.
      If the chan token is absent, a full channel scan will be completed by 
      the driver.  If the dur or probes tokens are absent, the driver default
      setting will be used.  The bssid and ssid fields, if blank, 
      will produce an unfiltered scan. The type field will default to 3 (Any)
      and the keep field will default to 0 (Discard).

    Examples:
    1) Perform an active scan on channels 1, 6, and 11 in the 'g' band:
            setuserscan chan=1g,6g,11g

    2) Perform a passive scan on channel 11 for 20 ms:
            setuserscan chan=11gp dur=20

    3) Perform an active scan on channels 1, 6, and 11; and a passive scan on
       channel 36 in the 'a' band:
            setuserscan chan=1g,6g,11g,36ap

    4) Perform an active scan on channel 6 and 36 for a specific SSID:
            setuserscan chan=6g,36a ssid="TestAP"

    5) Scan all available channels (B/G, A bands) for a specific BSSID, keep
       the current scan table intact, update existing or append new scan data:
            setuserscan bssid=00:50:43:20:12:82 keep=1

    6) Scan channel 6, for all infrastructure networks, sending two probe 
       requests.  Keep the previous scan table intact. Update any duplicate
       BSSID/SSID matches with the new scan data:
            setuserscan chan=6g type=1 probes=2 keep=1

    All entries in the scan table (not just the new scan data when keep=1) 
    will be displayed upon completion by use of the getscantable ioctl.


getscantable
    Display the current contents of the driver scan table

    Usage:
       wlanconfig ethX getscantable





==============================================================================
