summaryrefslogtreecommitdiff
path: root/mac80211/ti-utils/README
diff options
context:
space:
mode:
Diffstat (limited to 'mac80211/ti-utils/README')
-rw-r--r--mac80211/ti-utils/README278
1 files changed, 278 insertions, 0 deletions
diff --git a/mac80211/ti-utils/README b/mac80211/ti-utils/README
new file mode 100644
index 0000000..04f4d9e
--- /dev/null
+++ b/mac80211/ti-utils/README
@@ -0,0 +1,278 @@
+
+The calibrator and other useful utilities for TI wireless solution,
+based on wl12xx driver.
+
+Calibration is a process in which specific radio configuration parameters are
+generated and saved into the NVS file, later to be used by the wl12xx driver
+upon initialization.
+These configuration parameters are specific to the chip on the specific design
+and therefore are sent back to the driver to store in non-volatile memory for
+later use. Upon initialization, the wl12xx driver will load an NVS file where
+it expects to read those parameters and send them to the chip.
+
+The NVS file contains 2 main parts - one stores the calibration parameters and
+the other one stores initialization information required for the wl12xx driver.
+
+--- Build procedure
+
+Kernel configuration.
+Make sure your kernel is configured to support nl80211 testmode commands
+(NL80211_TESTMODE=y). Also enable following configurations:
+CRC7=m
+FW_LOADER=m
+
+In userspace there is dependent on libnl v2.x package. It can be downloaded
+from http://www.infradead.org/~tgr/libnl/files/libnl-2.0.tar.gz
+
+Set follow environment variables:
+export NFSROOT=<path to roofs of a target where installed libnl library>
+export CROSS_COMPILE=arm-none-linux-gnueabi-
+make
+make install
+
+Make sure that calibrator utility and go.sh script placed in the same dir.
+
+--- How to calibrate
+
+Native Linux calibration procedure.
+
+ ./go.sh -c <path to INI file> [<path to firmware directory>]
+
+Android calibration procedure.
+
+ Based on adb utility which comes native with Android SDK
+
+ adb shell "echo Going to stop GUI"
+ adb shell "stop"
+
+ adb shell "echo Create reference NVS"
+ adb shell "calibrator set ref_nvs /data/TQS_D_1.7.ini"
+
+ adb shell "echo Copy reference NVS file"
+ adb shell "cat ./new-nvs.bin > /system/etc/firmware/ti-connectivity/wl1271-nvs.bin"
+
+ adb shell "echo Insert wl12xx SDIO module"
+ adb shell "insmod /system/lib/modules/wl12xx_sdio.ko"
+
+ adb shell "echo Calibrate device"
+ adb shell "calibrator wlan0 plt power_mode on"
+ adb shell "calibrator wlan0 plt tune_channel 0 7"
+ adb shell "calibrator wlan0 plt tx_bip 1 1 1 1 1 1 1 1"
+ adb shell "calibrator wlan0 plt power_mode off"
+
+ adb shell "echo Set MAC address in NVS file"
+ adb shell "calibrator set nvs_mac ./new-nvs.bin 08:00:28:90:64:31"
+
+ adb shell "echo Remove wl12xx modules"
+ adb shell "rmmod wl12xx_sdio wl12xx"
+ adb shell "rmmod wl12xx"
+
+ adb shell "echo Copy calibrated NVS file"
+ adb shell "cat ./new-nvs.bin > /system/etc/firmware/ti-connectivity/wl1271-nvs.bin"
+ adb shell "insmod /system/lib/modules/wl12xx.ko"
+
+ adb shell "echo Going to start GUI"
+ adb shell "start"
+
+--- How to calibrate with AutoFEM
+
+The wl12xx driver has ability to use it's NVS file with radio parameters for 2
+different frontend modules. The driver requires firmware at boot time which
+FEM parameters it needs and provides radio parameters according to answer.
+
+There is also scenario when driver decides which radio parameters to give
+to firmware. In such case, 2 parameters should be set. The autofem should be
+0 and fem_manuf should be 0 or 1, depends on FEM manufacturer.
+
+In order to prepare NVS file with radio parameters for 2 FEMs, do follows
+
+ ./go.sh -c2 <path to INI file> [<path to INI file>]
+
+There is option to use the feature manualy. In such case, there is need to set
+AutoFEM flag to 0 and explicitly set fem_manuf flag.
+
+ ./calibrator set autofem <0-manual|1-auto> [<nvs file>]
+ ./calibrator set fem_manuf <0|1> [<nvs file>]
+
+--- How to choose INI file
+
+It is very important to select INI file according to the firmware (see below).
+Those files organized in 3 directories:
+station - currently supported station firmware (wl1271-fw.bin)
+access_point - currently supported access point (wl1271-fw-ap.bin)
+
+For Beagle board and Panda board use ini_files/station/127x/TQS_S_2.6.ini
+For Blaze board with ES2.1 or ES2.1 use ini_files/station/128x/TQS_D_1.7.ini
+
+
+--- How to change MAC address in calibrated NVS
+
+./calibrator set nvs_mac <nvs file> [<mac addr xx:xx:xx:xx:xx:xx>]
+
+If the MAC address missing, the random valid value will be added.
+
+
+--- How to dump NVS file
+
+calibrator get dump_nvs [<nvs filename>]
+
+
+--- Firmware files
+
+The firmware files can be reached from git repository
+git://git.kernel.org/pub/scm/linux/kernel/git/dwmw2/linux-firmware.git
+under directory ti-connectivity.
+There are 2 firmware files there:
+wl1271-fw.bin - station firmware
+wl1271-fw-ap.bin - access point firmware
+
+
+--- Detailed instructions for calibrator procedures
+
+The following detailed instructions are collection of commands done by
+default calibration procedure.
+
+ TxBip procedure (calibration)
+
+It is important to set MAC address to an interface before the procedure.
+For example, `ifconfig wlan0 hw ether xx:xx:xx:xx:xx:xx'
+There are 2 ways to do it - short where all parameters has default values and
+full where you have to set all parameters manually.
+
+Short way:
+calibrator plt calibrate
+
+Full way:
+calibrator wlan0 plt power_mode on
+calibrator wlan0 plt tx_bip <0|1> <0|1> <0|1> <0|1> <0|1> <0|1> <0|1> <0|1>
+calibrator wlan0 plt power_mode off
+
+Result of this procedure is new NVS file created locally ./new-nvs.bin
+In order to use it, copy the file to /lib/firmware/wl1271-nvs.bin and reload.
+
+ TxCont procedure
+
+calibrator wlan0 plt power_mode on
+calibrator wlan0 plt tune_channel <band> <channel>
+calibrator wlan0 plt tx_cont <delay> <rate> <size> <amount> <power> <seed> <pkt mode> <DC on/off> <gi> <preamble> <type> <scramble> <clpc> <seq nbr mode> <dest mac>
+calibrator wlan0 plt tx_stop
+calibrator wlan0 plt power_mode off
+
+Description: This test sends packets of data directly to air. It receives
+several parameters as described bellow, to enable diversity of
+operational modes.
+It is mostly used to see Energy and radio impact on Air.
+Content of Packet can be Random, or Zero, One, Zero, one...
+
+Packets send are configurable with following parameters:
+ Delay between packets in microseconds
+ Rate
+ 1 Mbps - 0x00000001 MCS_0 - 0x00002000
+ 2 Mbps - 0x00000002 MCS_1 - 0x00004000
+ 5.5 Mbps - 0x00000004 MCS_2 - 0x00008000
+ 6 Mbps - 0x00000008 MCS_3 - 0x00010000
+ 9 Mbps - 0x00000010 MCS_4 - 0x00020000
+ 11 Mbps - 0x00000020 MCS_5 - 0x00040000
+ 12 Mbps - 0x00000040 MCS_6 - 0x00080000
+ 18 Mbps - 0x00000080 MCS_7 - 0x00100000
+ 24 Mbps - 0x00000200
+ 36 Mbps - 0x00000400
+ 48 Mbps - 0x00000800
+ 54 Mbps - 0x00001000
+ Size of data field in MPDU (in bytes, 0 - 2284)
+ Amount - number of packets in case of using series mode
+ Power - output power in dBm*1000
+ Seed - value for the scrambler
+ Packet mode - 0-single, 1-multipile, 3-continuous, 4-FCC
+ DC on/off - activate DCF
+ gi - guard interval on/off for 11n rates
+ Preamble
+ 1 Mbps - long preamble mode=0
+ 2, 5.5, 11 Mbps - long preamble mode=0, short preamble mode=1
+ 6, 9, 12, 18, 24, 36, 48, 54 Mbps - ofdm preamble mode=4
+ from MCS_0 to MCS_7 - n mixed mode preamble mode=6, greenfield preamble mode=7
+ Type is 0-data packet, 1-ack, 2-probe req, 3-random data, 4-user data
+ Scrambler - on/off
+ CLPC
+ range 0-100 is disable calibration
+ Sequence number mode (incremented or fixed)
+ Destination Mac address
+
+ RxStat procedure
+
+There are 2 ways to do it - short where all parameters has default values and
+full where you have to set all parameters manually.
+
+Short way:
+calibrator plt rx_statistics
+
+In the short way each time the statistics will be reseted.
+
+Full way:
+calibrator wlan0 plt power_mode on
+calibrator wlan0 plt start_rx_statcs
+calibrator wlan0 plt get_rx_statcs
+calibrator wlan0 plt stop_rx_statcs
+calibrator wlan0 plt power_mode off
+
+While willing to reset the statistic run:
+calibrator wlan0 plt reset_rx_statcs
+
+ Update NVS file procedure
+
+This is procedure changes ini part of NVS file. It helps when there is need
+to change ini part of NVS which already calibrated.
+
+calibrator set upd_nvs <ini file> [<nvs file>]
+
+If NVS filename parameter not provided the current NVS file will be used from
+destination directory (usually /lib/firmware).
+
+
+--- Miscellaneous procedures
+
+ Read MAC address from NVS file
+
+calibrator get nvs_mac <nvs filename>
+
+
+ Push local NVS to the system:
+
+calibrator phy <phyname> set push_nvs <nvs filename>
+
+
+ Set NVS to use auto FEM detection
+
+calibrator set autofem 1
+
+
+ Set FEM manufacturer
+
+calibrator set fem_manuf 0|1
+
+
+ Tone transmission testing
+Get in PLT mode
+calibrator wlan0 plt power_mode on
+
+Run TxTone transmission
+calibrator set plt_tx_tone <power> <tone type>
+Power
+Tone type
+ 1 - Single tone
+ 2 - Carrier FeedThrough
+
+Stop transmission
+calibrator wlan0 plt tx_stop
+
+Get out from PLT mode
+calibrator wlan0 plt power_mode off
+
+-------------------------------------------------------------------------------
+
+The project can be accessed from git repository:
+ git clone git://github.com/gxk/ti-utils.git
+
+Please send all patches to Gery Kahn <geryk@ti.com>
+and CC linux-wireless@vger.kernel.org for community review.
+