| # Copyright (C) 2011, Marvell International Ltd. | 
 | # | 
 | # 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 by writing to the Free Software Foundation, Inc., | 
 | # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA or on the | 
 | # worldwide web at http://www.gnu.org/licenses/old-licenses/gpl-2.0.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. | 
 |  | 
 |  | 
 | =============================================================================== | 
 | 			U S E R  M A N U A L | 
 |  | 
 | 1) FOR DRIVER INSTALL | 
 |  | 
 | 	a) Copy sd8787.bin to /lib/firmware/mrvl/ directory, | 
 | 	   create the directory if it doesn't exist. | 
 | 	b) Install WLAN driver, | 
 | 		insmod mwifiex.ko | 
 | 	c) Uninstall WLAN driver, | 
 | 		ifconfig mlanX down | 
 | 		rmmod mwifiex | 
 |  | 
 |  | 
 | 2) FOR DRIVER CONFIGURATION AND INFO | 
 | 	The configurations can be done either using the 'iw' user space | 
 | 	utility or debugfs. | 
 |  | 
 | 	a) 'iw' utility commands | 
 |  | 
 | 	Following are some useful iw commands:- | 
 |  | 
 | iw dev mlan0 scan | 
 |  | 
 | 	This command will trigger a scan. | 
 | 	The command will then display the scan table entries | 
 |  | 
 | iw dev mlan0 connect -w <SSID> [<freq in MHz>] [<bssid>] [key 0:abcde d:1123456789a] | 
 | 	The above command can be used to connect to an AP with a particular SSID. | 
 | 	Ap's operating frequency can be specified or even the bssid. If the AP is using | 
 | 	WEP encryption, wep keys can be specified in the command. | 
 | 	Note: Every time before connecting to an AP scan command (iw dev mlan0 scan) should be used by user. | 
 |  | 
 | iw dev mlan0 disconnect | 
 | 	This command will be used to disconnect from an AP. | 
 |  | 
 |  | 
 | iw dev mlan0 ibss join <SSID> <freq in MHz> [fixed-freq] [fixed-bssid] [key 0:abcde] | 
 | 	The command will be used to join or create an ibss. Optionally, operating frequency, | 
 | 	bssid and the security related parameters can be specified while joining/creating | 
 | 	and ibss. | 
 |  | 
 | iw dev mlan0 ibss leave | 
 | 	The command will be used to leave an ibss network. | 
 |  | 
 | iw dev mlan0 link | 
 | 	The command will be used to get the connection status. The command will return parameters | 
 | 	such as SSID, operating frequency, rx/tx packets, signal strength, tx bitrate. | 
 |  | 
 | 	Apart from the iw utility all standard configurations using the 'iwconfig' utility are also supported. | 
 |  | 
 | 	b) Debugfs interface | 
 |  | 
 | 	The debugfs interface can be used for configurations and for getting | 
 | 	some useful information from the driver. | 
 | 	The section below explains the configurations that can be | 
 | 	done. | 
 |  | 
 | 	Mount debugfs to /debugfs mount point: | 
 |  | 
 | 		mkdir /debugfs | 
 | 		mount -t debugfs debugfs /debugfs | 
 |  | 
 | 	The information is provided in /debugfs/mwifiex/mlanX/: | 
 |  | 
 | iw reg set <country code> | 
 | 	The command will be used to change the regulatory domain. | 
 |  | 
 | iw reg get | 
 | 	The command will be used to get current regulatory domain. | 
 |  | 
 | info | 
 | 	This command is used to get driver info. | 
 |  | 
 | 	Usage: | 
 | 		cat info | 
 |  | 
 | 	driver_name = "mwifiex" | 
 | 	driver_version = <driver_name, driver_version, (firmware_version)> | 
 | 	interface_name = "mlanX" | 
 | 	bss_mode = "Ad-hoc" | "Managed" | "Auto" | "Unknown" | 
 | 	media_state = "Disconnected" | "Connected" | 
 | 	mac_address = <6-byte adapter MAC address> | 
 | 	multicase_count = <multicast address count> | 
 | 	essid = <current SSID> | 
 | 	bssid = <current BSSID> | 
 | 	channel = <current channel> | 
 | 	region_code = <current region code> | 
 | 	multicasr_address[n] = <multicast address> | 
 | 	num_tx_bytes = <number of bytes sent to device> | 
 | 	num_rx_bytes = <number of bytes received from device and sent to kernel> | 
 | 	num_tx_pkts = <number of packets sent to device> | 
 | 	num_rx_pkts = <number of packets received from device and sent to kernel> | 
 | 	num_tx_pkts_dropped = <number of Tx packets dropped by driver> | 
 | 	num_rx_pkts_dropped = <number of Rx packets dropped by driver> | 
 | 	num_tx_pkts_err = <number of Tx packets failed to send to device> | 
 | 	num_rx_pkts_err = <number of Rx packets failed to receive from device> | 
 | 	carrier "on" | "off" | 
 | 	tx queue "stopped" | "started" | 
 |  | 
 | 	The following debug info are provided in /debugfs/mwifiex/mlanX/debug: | 
 |  | 
 | 	int_counter = <interrupt count, cleared when interrupt handled> | 
 | 	wmm_ac_vo = <number of packets sent to device from WMM AcVo queue> | 
 | 	wmm_ac_vi = <number of packets sent to device from WMM AcVi queue> | 
 | 	wmm_ac_be = <number of packets sent to device from WMM AcBE queue> | 
 | 	wmm_ac_bk = <number of packets sent to device from WMM AcBK queue> | 
 | 	tx_buf_size = <current Tx buffer size> | 
 | 	curr_tx_buf_size = <current Tx buffer size> | 
 | 	ps_mode = <0/1, CAM mode/PS mode> | 
 | 	ps_state = <0/1/2/3, full power state/awake state/pre-sleep state/sleep state> | 
 | 	is_deep_sleep = <0/1, not deep sleep state/deep sleep state> | 
 | 	wakeup_dev_req = <0/1, wakeup device not required/required> | 
 | 	wakeup_tries = <wakeup device count, cleared when device awake> | 
 | 	hs_configured = <0/1, host sleep not configured/configured> | 
 | 	hs_activated = <0/1, extended host sleep not activated/activated> | 
 | 	num_tx_timeout = <number of Tx timeout> | 
 | 	num_cmd_timeout = <number of timeout commands> | 
 | 	timeout_cmd_id = <command id of the last timeout command> | 
 | 	timeout_cmd_act = <command action of the last timeout command> | 
 | 	last_cmd_id = <command id of the last several commands sent to device> | 
 | 	last_cmd_act = <command action of the last several commands sent to device> | 
 | 	last_cmd_index = <0 based last command index> | 
 | 	last_cmd_resp_id = <command id of the last several command responses received from device> | 
 | 	last_cmd_resp_index = <0 based last command response index> | 
 | 	last_event = <event id of the last several events received from device> | 
 | 	last_event_index = <0 based last event index> | 
 | 	num_cmd_h2c_fail = <number of commands failed to send to device> | 
 | 	num_cmd_sleep_cfm_fail = <number of sleep confirm failed to send to device> | 
 | 	num_tx_h2c_fail = <number of data packets failed to send to device> | 
 | 	num_evt_deauth = <number of deauthenticated events received from device> | 
 | 	num_evt_disassoc = <number of disassociated events received from device> | 
 | 	num_evt_link_lost = <number of link lost events received from device> | 
 | 	num_cmd_deauth = <number of deauthenticate commands sent to device> | 
 | 	num_cmd_assoc_ok = <number of associate commands with success return> | 
 | 	num_cmd_assoc_fail = <number of associate commands with failure return> | 
 | 	cmd_sent = <0/1, send command resources available/sending command to device> | 
 | 	data_sent = <0/1, send data resources available/sending data to device> | 
 | 	mp_rd_bitmap = <SDIO multi-port read bitmap> | 
 | 	mp_wr_bitmap = <SDIO multi-port write bitmap> | 
 | 	cmd_resp_received = <0/1, no cmd response to process/response received and yet to process> | 
 | 	event_received = <0/1, no event to process/event received and yet to process> | 
 | 	cmd_pending = <number of cmd pending> | 
 | 	tx_pending = <number of Tx packet pending> | 
 | 	rx_pending = <number of Rx packet pending> | 
 |  | 
 |  | 
 | 3) FOR DRIVER CONFIGURATION | 
 |  | 
 | regrdwr | 
 | 	This command is used to read/write the adapter register. | 
 |  | 
 | 	Usage: | 
 | 		echo " <type> <offset> [value]" > regrdwr | 
 | 		cat regrdwr | 
 |  | 
 | 	where the parameters are, | 
 | 		<type>:     1:MAC/SOC, 2:BBP, 3:RF, 4:PMIC, 5:CAU | 
 | 		<offset>:   offset of register | 
 | 		[value]:    value to be written | 
 |  | 
 | 	Examples: | 
 | 		echo "1 0xa060" > regrdwr           : Read the MAC register | 
 | 		echo "1 0xa060 0x12" > regrdwr      : Write the MAC register | 
 | 		echo "1 0xa794 0x80000000" > regrdwr | 
 | 		                                    : Write 0x80000000 to MAC register | 
 | rdeeprom | 
 | 	This command is used to read the EEPROM contents of the card. | 
 |  | 
 | 	Usage: | 
 | 		echo "<offset> <length>" > rdeeprom | 
 | 		cat rdeeprom | 
 |  | 
 | 	where the parameters are, | 
 | 		<offset>:   multiples of 4 | 
 | 		<length>:   4-20, multiples of 4 | 
 |  | 
 | 	Example: | 
 | 		echo "0 20" > rdeeprom      : Read 20 bytes of EEPROM data from offset 0 | 
 |  | 
 | getlog | 
 |         This command is used to get the statistics available in the station. | 
 | 	Usage: | 
 |  | 
 | 	cat getlog | 
 |  | 
 | =============================================================================== |