| Marcelo Tosatti | 876c9d3 | 2007-02-10 12:25:27 -0200 | [diff] [blame] | 1 | ================================================================================ | 
 | 2 | 			README for USB8388 | 
 | 3 |  | 
| David Woodhouse | 0e8a5bd | 2007-05-25 23:15:27 -0400 | [diff] [blame] | 4 |  (c) Copyright © 2003-2006, Marvell International Ltd. | 
| Marcelo Tosatti | 876c9d3 | 2007-02-10 12:25:27 -0200 | [diff] [blame] | 5 |  All Rights Reserved | 
 | 6 |  | 
 | 7 |  This software file (the "File") is distributed by Marvell International | 
 | 8 |  Ltd. under the terms of the GNU General Public License Version 2, June 1991 | 
 | 9 |  (the "License").  You may use, redistribute and/or modify this File in | 
 | 10 |  accordance with the terms and conditions of the License, a copy of which | 
 | 11 |  is available along with the File in the license.txt file or by writing to | 
 | 12 |  the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA | 
 | 13 |  02111-1307 or on the worldwide web at http://www.gnu.org/licenses/gpl.txt. | 
 | 14 |  | 
 | 15 |  THE FILE IS DISTRIBUTED AS-IS, WITHOUT WARRANTY OF ANY KIND, AND THE | 
 | 16 |  IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE | 
 | 17 |  ARE EXPRESSLY DISCLAIMED.  The License provides additional details about | 
 | 18 |  this warranty disclaimer. | 
 | 19 | ================================================================================ | 
 | 20 |  | 
 | 21 | ===================== | 
 | 22 | DRIVER LOADING | 
 | 23 | ===================== | 
 | 24 |  | 
 | 25 | 	o. Copy the firmware image (e.g. usb8388.bin) to /lib/firmware/ | 
 | 26 |  | 
 | 27 | 	o. Load driver by using the following command: | 
 | 28 |  | 
 | 29 | 		insmod usb8388.ko [fw_name=usb8388.bin] | 
 | 30 |  | 
| Marcelo Tosatti | 876c9d3 | 2007-02-10 12:25:27 -0200 | [diff] [blame] | 31 | ========================= | 
 | 32 | ETHTOOL | 
 | 33 | ========================= | 
 | 34 |  | 
 | 35 |  | 
 | 36 | Use the -i option to retrieve version information from the driver. | 
 | 37 |  | 
 | 38 | # ethtool -i eth0 | 
 | 39 | driver: libertas | 
 | 40 | version: COMM-USB8388-318.p4 | 
 | 41 | firmware-version: 5.110.7 | 
 | 42 | bus-info: | 
 | 43 |  | 
 | 44 | Use the -e option to read the EEPROM contents of the card. | 
 | 45 |  | 
 | 46 | 	Usage: | 
 | 47 | 	ethtool -e ethX [raw on|off] [offset N] [length N] | 
 | 48 |  | 
 | 49 |        -e     retrieves and prints an EEPROM dump for the  specified  ethernet | 
 | 50 |               device.   When raw is enabled, then it dumps the raw EEPROM data | 
 | 51 |               to stdout. The length and offset parameters allow  dumping  cer- | 
 | 52 |               tain portions of the EEPROM.  Default is to dump the entire EEP- | 
 | 53 |               ROM. | 
 | 54 |  | 
 | 55 | # ethtool -e eth0 offset 0 length 16 | 
 | 56 | Offset          Values | 
 | 57 | ------          ------ | 
 | 58 | 0x0000          38 33 30 58 00 00 34 f4 00 00 10 00 00 c4 17 00 | 
 | 59 |  | 
 | 60 | ======================== | 
 | 61 | DEBUGFS COMMANDS | 
 | 62 | ======================== | 
 | 63 |  | 
 | 64 | those commands are used via debugfs interface | 
 | 65 |  | 
 | 66 | =========== | 
 | 67 | rdmac | 
 | 68 | rdbbp | 
 | 69 | rdrf | 
 | 70 | 	These commands are used to read the MAC, BBP and RF registers from the | 
 | 71 | 	card.  These commands take one parameter that specifies the offset | 
 | 72 | 	location that is to be read.  This parameter must be specified in | 
 | 73 | 	hexadecimal (its possible to preceed preceding the number with a "0x"). | 
 | 74 |  | 
 | 75 | 	Path: /debugfs/libertas_wireless/ethX/registers/ | 
 | 76 |  | 
 | 77 | 	Usage: | 
 | 78 | 		echo "0xa123" > rdmac ; cat rdmac | 
 | 79 | 		echo "0xa123" > rdbbp ; cat rdbbp | 
 | 80 | 		echo "0xa123" > rdrf ; cat rdrf | 
 | 81 | wrmac | 
 | 82 | wrbbp | 
 | 83 | wrrf | 
 | 84 | 	These commands are used to write the MAC, BBP and RF registers in the | 
 | 85 | 	card.  These commands take two parameters that specify the offset | 
 | 86 | 	location and the value that is to be written. This parameters must | 
 | 87 | 	be specified in hexadecimal (its possible to preceed the number | 
 | 88 | 	with a "0x"). | 
 | 89 |  | 
 | 90 | 	Usage: | 
 | 91 | 		echo "0xa123 0xaa" > wrmac | 
 | 92 | 		echo "0xa123 0xaa" > wrbbp | 
 | 93 | 		echo "0xa123 0xaa" > wrrf | 
 | 94 |  | 
 | 95 | sleepparams | 
 | 96 | 	This command is used to set the sleepclock configurations | 
 | 97 |  | 
 | 98 | 	Path: /debugfs/libertas_wireless/ethX/ | 
 | 99 |  | 
 | 100 | 	Usage: | 
 | 101 | 		cat sleepparams: reads the current sleepclock configuration | 
 | 102 |  | 
 | 103 | 		echo "p1 p2 p3 p4 p5 p6" > sleepparams: writes the sleepclock configuration. | 
 | 104 |  | 
 | 105 | 		where: | 
 | 106 | 			p1 is Sleep clock error in ppm (0-65535) | 
 | 107 | 			p2 is Wakeup offset in usec (0-65535) | 
 | 108 | 			p3 is Clock stabilization time in usec (0-65535) | 
 | 109 | 			p4 is Control periodic calibration (0-2) | 
 | 110 | 			p5 is Control the use of external sleep clock (0-2) | 
 | 111 | 			p6 is reserved for debug (0-65535) | 
 | 112 |  | 
 | 113 | subscribed_events | 
 | 114 |  | 
 | 115 | 	The subscribed_events directory contains the interface for the | 
 | 116 | 	subscribed events API. | 
 | 117 |  | 
 | 118 | 	Path: /debugfs/libertas_wireless/ethX/subscribed_events/ | 
 | 119 |  | 
 | 120 | 	Each event is represented by a filename. Each filename consists of the | 
 | 121 | 	following three fields: | 
 | 122 | 	Value Frequency Subscribed | 
 | 123 |  | 
 | 124 | 	To read the current values for a given event, do: | 
 | 125 | 		cat event | 
 | 126 | 	To set the current values, do: | 
 | 127 | 		echo "60 2 1" > event | 
 | 128 |  | 
 | 129 | 	Frequency field specifies the reporting frequency for this event. | 
 | 130 | 	If it is set to 0, then the event is reported only once, and then | 
 | 131 | 	automatically unsubscribed. If it is set to 1, then the event is | 
 | 132 | 	reported every time it occurs. If it is set to N, then the event is | 
 | 133 | 	reported every Nth time it occurs. | 
 | 134 |  | 
 | 135 | 	beacon_missed | 
 | 136 | 	Value field specifies the number of consecutive missing beacons which | 
 | 137 | 	triggers the LINK_LOSS event. This event is generated only once after | 
 | 138 | 	which the firmware resets its state. At initialization, the LINK_LOSS | 
 | 139 | 	event is subscribed by default. The default value of MissedBeacons is | 
 | 140 | 	60. | 
 | 141 |  | 
 | 142 | 	failure_count | 
 | 143 | 	Value field specifies the consecutive failure count threshold which | 
 | 144 | 	triggers the generation of the MAX_FAIL event. Once this event is | 
 | 145 | 	generated, the consecutive failure count is reset to 0. | 
 | 146 | 	At initialization, the MAX_FAIL event is NOT subscribed by | 
 | 147 | 	default. | 
 | 148 |  | 
 | 149 | 	high_rssi | 
 | 150 | 	This event is generated when the average received RSSI in beacons goes | 
 | 151 | 	above a threshold, specified by Value. | 
 | 152 |  | 
 | 153 | 	low_rssi | 
 | 154 | 	This event is generated when the average received RSSI in beacons goes | 
 | 155 | 	below a threshold, specified by Value. | 
 | 156 |  | 
 | 157 | 	high_snr | 
 | 158 | 	This event is generated when the average received SNR in beacons goes | 
 | 159 | 	above a threshold, specified by Value. | 
 | 160 |  | 
 | 161 | 	low_snr | 
 | 162 | 	This event is generated when the average received SNR in beacons goes | 
 | 163 | 	below a threshold, specified by Value. | 
 | 164 |  | 
 | 165 | extscan | 
 | 166 | 	This command is used to do a specific scan. | 
 | 167 |  | 
 | 168 | 	Path: /debugfs/libertas_wireless/ethX/ | 
 | 169 |  | 
 | 170 | 	Usage: echo "SSID" > extscan | 
 | 171 |  | 
 | 172 | 	Example: | 
 | 173 | 		echo "LINKSYS-AP" > extscan | 
 | 174 |  | 
 | 175 | 	To see the results of use getscantable command. | 
 | 176 |  | 
 | 177 | getscantable | 
 | 178 |  | 
 | 179 | 	Display the current contents of the driver scan table (ie. get the | 
 | 180 | 	scan results). | 
 | 181 |  | 
 | 182 | 	Path: /debugfs/libertas_wireless/ethX/ | 
 | 183 |  | 
 | 184 | 	Usage: | 
 | 185 | 		cat getscantable | 
 | 186 |  | 
 | 187 | setuserscan | 
 | 188 | 	Initiate a customized scan and retrieve the results | 
 | 189 |  | 
 | 190 |  | 
 | 191 | 	Path: /debugfs/libertas_wireless/ethX/ | 
 | 192 |  | 
 | 193 |     Usage: | 
 | 194 |        echo "[ARGS]" > setuserscan | 
 | 195 |  | 
 | 196 |          where [ARGS]: | 
 | 197 |  | 
 | 198 |       chan=[chan#][band][mode] where band is [a,b,g] and mode is | 
 | 199 |                                blank for active or 'p' for passive | 
 | 200 |       bssid=xx:xx:xx:xx:xx:xx  specify a BSSID filter for the scan | 
 | 201 |       ssid="[SSID]"            specify a SSID filter for the scan | 
 | 202 |       keep=[0 or 1]            keep the previous scan results (1), discard (0) | 
 | 203 |       dur=[scan time]          time to scan for each channel in milliseconds | 
 | 204 |       probes=[#]               number of probe requests to send on each chan | 
 | 205 |       type=[1,2,3]             BSS type: 1 (Infra), 2(Adhoc), 3(Any) | 
 | 206 |  | 
 | 207 |     Any combination of the above arguments can be supplied on the command line. | 
 | 208 |       If the chan token is absent, a full channel scan will be completed by | 
 | 209 |       the driver.  If the dur or probes tokens are absent, the driver default | 
 | 210 |       setting will be used.  The bssid and ssid fields, if blank, | 
 | 211 |       will produce an unfiltered scan. The type field will default to 3 (Any) | 
 | 212 |       and the keep field will default to 0 (Discard). | 
 | 213 |  | 
 | 214 |     Examples: | 
 | 215 |     1) Perform an active scan on channels 1, 6, and 11 in the 'g' band: | 
 | 216 |             echo "chan=1g,6g,11g" > setuserscan | 
 | 217 |  | 
 | 218 |     2) Perform a passive scan on channel 11 for 20 ms: | 
 | 219 |             echo "chan=11gp dur=20" > setuserscan | 
 | 220 |  | 
 | 221 |     3) Perform an active scan on channels 1, 6, and 11; and a passive scan on | 
 | 222 |        channel 36 in the 'a' band: | 
 | 223 |  | 
 | 224 |             echo "chan=1g,6g,11g,36ap" > setuserscan | 
 | 225 |  | 
 | 226 |     4) Perform an active scan on channel 6 and 36 for a specific SSID: | 
 | 227 |             echo "chan=6g,36a ssid="TestAP"" > setuserscan | 
 | 228 |  | 
 | 229 |     5) Scan all available channels (B/G, A bands) for a specific BSSID, keep | 
 | 230 |        the current scan table intact, update existing or append new scan data: | 
 | 231 |             echo "bssid=00:50:43:20:12:82 keep=1" > setuserscan | 
 | 232 |  | 
 | 233 |     6) Scan channel 6, for all infrastructure networks, sending two probe | 
 | 234 |        requests.  Keep the previous scan table intact. Update any duplicate | 
 | 235 |        BSSID/SSID matches with the new scan data: | 
 | 236 |             echo "chan=6g type=1 probes=2 keep=1" > setuserscan | 
 | 237 |  | 
 | 238 |     All entries in the scan table (not just the new scan data when keep=1) | 
 | 239 |     will be displayed upon completion by use of the getscantable ioctl. | 
 | 240 |  | 
 | 241 | ============================================================================== |