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