================================================================================
			README for Libertas

 (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.
================================================================================

=====================
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]

=========================
ETHTOOL
=========================


Use the -i option to retrieve version information from the driver.

# ethtool -i eth0
driver: libertas
version: COMM-USB8388-318.p4
firmware-version: 5.110.7
bus-info:

Use the -e option to read the EEPROM contents of the card.

	Usage:
	ethtool -e ethX [raw on|off] [offset N] [length N]

       -e     retrieves and prints an EEPROM dump for the  specified  ethernet
              device.   When raw is enabled, then it dumps the raw EEPROM data
              to stdout. The length and offset parameters allow  dumping  cer-
              tain portions of the EEPROM.  Default is to dump the entire EEP-
              ROM.

# ethtool -e eth0 offset 0 length 16
Offset          Values
------          ------
0x0000          38 33 30 58 00 00 34 f4 00 00 10 00 00 c4 17 00

========================
DEBUGFS COMMANDS
========================

those commands are used via debugfs interface

===========
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 must be specified in
	hexadecimal (its possible to preceed preceding the number with a "0x").

	Path: /sys/kernel/debug/libertas_wireless/ethX/registers/

	Usage:
		echo "0xa123" > rdmac ; cat rdmac
		echo "0xa123" > rdbbp ; cat rdbbp
		echo "0xa123" > rdrf ; cat rdrf
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 must
	be specified in hexadecimal (its possible to preceed the number
	with a "0x").

	Usage:
		echo "0xa123 0xaa" > wrmac
		echo "0xa123 0xaa" > wrbbp
		echo "0xa123 0xaa" > wrrf

sleepparams
	This command is used to set the sleepclock configurations

	Path: /sys/kernel/debug/libertas_wireless/ethX/

	Usage:
		cat sleepparams: reads the current sleepclock configuration

		echo "p1 p2 p3 p4 p5 p6" > sleepparams: 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)

subscribed_events

	The subscribed_events directory contains the interface for the
	subscribed events API.

	Path: /sys/kernel/debug/libertas_wireless/ethX/subscribed_events/

	Each event is represented by a filename. Each filename consists of the
	following three fields:
	Value Frequency Subscribed

	To read the current values for a given event, do:
		cat event
	To set the current values, do:
		echo "60 2 1" > event

	Frequency field specifies the reporting frequency for this event.
	If it is set to 0, then the event is reported only once, and then
	automatically unsubscribed. If it is set to 1, then the event is
	reported every time it occurs. If it is set to N, then the event is
	reported every Nth time it occurs.

	beacon_missed
	Value field specifies the number of consecutive missing beacons which
	triggers the LINK_LOSS event. This event is generated only once after
	which the firmware resets its state. At initialization, the LINK_LOSS
	event is subscribed by default. The default value of MissedBeacons is
	60.

	failure_count
	Value field specifies the consecutive failure count threshold which
	triggers the generation of the MAX_FAIL event. Once this event is
	generated, the consecutive failure count is reset to 0.
	At initialization, the MAX_FAIL event is NOT subscribed by
	default.

	high_rssi
	This event is generated when the average received RSSI in beacons goes
	above a threshold, specified by Value.

	low_rssi
	This event is generated when the average received RSSI in beacons goes
	below a threshold, specified by Value.

	high_snr
	This event is generated when the average received SNR in beacons goes
	above a threshold, specified by Value.

	low_snr
	This event is generated when the average received SNR in beacons goes
	below a threshold, specified by Value.

extscan
	This command is used to do a specific scan.

	Path: /sys/kernel/debug/libertas_wireless/ethX/

	Usage: echo "SSID" > extscan

	Example:
		echo "LINKSYS-AP" > extscan

	To see the results of use getscantable command.

getscantable

	Display the current contents of the driver scan table (ie. get the
	scan results).

	Path: /sys/kernel/debug/libertas_wireless/ethX/

	Usage:
		cat getscantable

setuserscan
	Initiate a customized scan and retrieve the results


	Path: /sys/kernel/debug/libertas_wireless/ethX/

    Usage:
       echo "[ARGS]" > setuserscan

         where [ARGS]:

      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
      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 dur 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 a passive scan on all channels for 20 ms per channel:
            echo "dur=20" > setuserscan

    2) Perform an active scan for a specific SSID:
            echo "ssid="TestAP"" > setuserscan

    3) 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:
            echo "bssid=00:50:43:20:12:82 keep=1" > setuserscan

    4) Scan for all infrastructure networks.
       Keep the previous scan table intact. Update any duplicate BSSID/SSID
       matches with the new scan data:
            echo "type=1 keep=1" > setuserscan

    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.

hostsleep
	This command is used to enable/disable host sleep.
	Note: Host sleep parameters should be configured using
	"ethtool -s ethX wol X" command before enabling host sleep.

	Path: /sys/kernel/debug/libertas_wireless/ethX/

	Usage:
		cat hostsleep: reads the current hostsleep state
		echo "1" > hostsleep : enable host sleep.
		echo "0" > hostsleep : disable host sleep

========================
IWCONFIG COMMANDS
========================
power period

	This command is used to configure the station in deep sleep mode /
	auto deep sleep mode.

	The timer is implemented to monitor the activities (command, event,
	etc.). When an activity is detected station will exit from deep
	sleep mode automatically and restart the timer. At timer expiry
	(no activity for defined time period) the deep sleep mode is entered
	automatically.

	Note: this command is for SDIO interface only.

	Usage:
	To enable deep sleep mode do:
		iwconfig wlan0 power period 0
	To enable auto deep sleep mode with idle time period 5 seconds do:
		iwconfig wlan0 power period 5
	To disable deep sleep/auto deep sleep mode do:
		iwconfig wlan0 power period -1

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