=============================================================================== U S E R M A N U A L Copyright 2008-2022 NXP 1) FOR DRIVER BUILD Goto source code directory wlan_src/. make [clean] build The driver and utility binaries can be found in ../bin_xxxx directory. The driver code supports Linux kernel from 2.6.32 to 6.0.0. 2) FOR DRIVER INSTALL a) Copy firmware image to /lib/firmware/nxp/, copy wifi_mod_para.conf to /lib/firmware/nxp/. b) Install WLAN driver There are drv_mode, max_sta_bss, max_uap_bss etc. module parameters. The bit settings of drv_mode are, Bit 0 : STA Bit 1 : uAP Bit 2 : WIFIDIRECT max_sta_bss: Maximum number of STA BSS (default 1, max 1) sta_name: Name of the STA interface (default: "mlan") max_uap_bss: Maximum number of uAP BSS (default 1, max 2) uap_name: Name of the uAP interface (default: "uap") max_wfd_bss: Maximum number of WIFIDIRECT BSS (default 1, max 1) wfd_name: Name of the WIFIDIRECT interface (default: "wfd") max_vir_bss: Number of Virtual interfaces (default 0) uap_oper_ctrl: uAP operation control when in-STA disconnect with ext-AP 0: default do nothing, 2: uAP stops and restarts automatically For example, to install multi-chip driver, insmod mlan.ko insmod moal.ko mod_para=nxp/wifi_mod_para.conf [drvdbg=0x7] wifi_mod_para.conf is used to support multi-chips which has different load module parameters. It contains the module parameters for different chips. c) Uninstall WLAN driver, ifconfig mlanX down ifconfig uapX down rmmod moal rmmod mlan To load driver with MFG firmware file, use mfg_mode=1 when insmod WLAN driver and specify MFG firmware name if needed. There are some other parameters for debugging purpose etc. Use modinfo to check details. drvdbg= dev_cap_mask= mac_addr=xx:xx:xx:xx:xx:xx auto_ds=0|1|2 ext_scan=0|1|2 net_rx=0|1 amsdu_deaggr=0|1 ps_mode=0|1|2 sched_scan=0|1 max_tx_buf=2048|4096|8192 pm_keep_power=1|0 shutdown_hs=1|0 cfg_11d=0|1|2 dts_enable=0|1 fw_name = e.g. copy pcieuart9098_combo_v1.bin to firmware directory, fw_name=nxp/pcieuart9098_combo_v1.bin hw_name = reg_work=0|1 hw_test=0|1 fw_serial=0|1 req_fw_nowait=0|1 dfs53cfg=0|1|2 mcs32=0|1 SD8887: antcfg=0|1|2|0xffff SD8897/SD8997: antcfg=0x11|0x13|0x33 slew_rate: Slew Rate Control value = 0|1|2|3 (0 is the slowest slew rate and 03 has the highest slew rate (default)) init_cfg= e.g. copy init_cfg.conf to firmware directory, init_cfg=nxp/init_cfg.conf cal_data_cfg= e.g. copy cal_data.conf to firmware directory, cal_data_cfg=nxp/cal_data.conf Note: Loading driver with 8887 must include correct cal_data_cfg parameter. dpd_data_cfg= e.g. copy dpd_data.conf to firmware directory, dpd_data_cfg=nxp/dpd_data.conf txpwrlimit_cfg= e.g. copy txpwrlimit_cfg_set.conf to firmware directory, txpwrlimit_cfg=nxp/txpwrlimit_cfg_set.conf cntry_txpwr=0|1|2 0: Disable setting tx power table of country (default) 1: Enable setting tx power table of country 2: Enable setting rgpower table of country init_hostcmd_cfg= e.g. copy init_hostcmd_cfg.conf to firmware directory, init_hostcmd_cfg=nxp/init_hostcmd_cfg.conf band_steer_cfg= e.g. generate bscfg.conf by band_steer_cfg.conf, then copy bscfg.conf to firmware directory, band_steer_cfg=nxp/bscfg.conf sdio_rx_aggr=1|0 cfg80211_wext= Bit 0: STA WEXT Bit 1: uAP WEXT Bit 2: STA CFG80211 Bit 3: uAP CFG80211 reg_alpha2= skip_fwdnld=0|1 wq_sched_prio: Priority for work queue wq_sched_policy: Scheduling policy for work queue (0: SCHED_NORMAL, 1: SCHED_FIFO, 2: SCHED_RR, 3: SCHED_BATCH, 5: SCHED_IDLE) Please note that, both wq_sched_prio and wq_sched_policy should be provided as module parameters. If wq_sched_policy is (0, 3 or 5), then wq_sched_prio must be 0. wq_sched_prio should be 1 to 99 otherwise. rx_work=0|1|2 pcie_int_mode=0|1|2 pcie_int_mode=0|1 ring_size=32|64|128|256|512 aggrctrl=1|0 usb_aggr=0|1|2 low_power_mode_enable=0|1 When low power mode is enabled, the output power will be clipped at ~+10dBm and the expected PA current is expected to be in the 80-90 mA range for b/g/n modes wakelock_timeout= pmic=0|1 indication_gpio=0xXY hs_wake_interval= disconnect_on_suspend=0|1 hs_mimo_switch=0|1 gtk_rekey_offload=0|1|2 napi=0|1 fixed_beacon_buffer=0|1 GoAgeoutTime=0|x multi_dtim=0|x inact_tmo=0|x roamoffload_in_hs=0|1 uap_max_sta: Maximum number of STA for UAP/GO (default 0, max 64) host_mlme=0|1 for supplicant/authenticator running on host side, WPA3 support is available only in host_mlme mode country_ie_ignore=0|1 beacon_hints=0|1 chan_track=0|1 for 9098 only keep_previous_scan=0|1, Note: On some platforms (e.g. PXA910/920) double quotation marks ("") need to used for module parameters. insmod sdxxx.ko " ..." 3) FOR DRIVER PROC & DEBUG The following info are provided in /proc/net/mwlan/adapterX/mlanY|uapY|wfdY/info, on kernel 2.6.24 or later, the entry is /proc/mwlan/adapterX/mlanY|uapY|wfdY/info. driver_name = "wlan" or "uap" driver_version = interface_name = "mlanX", "uapX" or "wfdX" bss_mode = "Ad-hoc" | "Managed" | "Auto" | "Unknown" media_state = "Disconnected" | "Connected" mac_address = <6-byte adapter MAC address> multicase_count = // Only for STA essid = // Only for STA bssid = // Only for STA channel = // Only for STA region_code = // Only for STA multicast_address[n] = // Only for STA num_tx_bytes = num_rx_bytes = num_tx_pkts = num_rx_pkts = num_tx_pkts_dropped = num_rx_pkts_dropped = num_tx_pkts_err = num_rx_pkts_err = carrier "on" | "off" tx queue "stopped" | "started" tkip_mic_failures = 0 // Only for uAP (use of WEP/TKIP is not recommended anymore) ccmp_decrypt_errors = 0 // Only for uAP wep_undecryptable_count = 0 // Only for uAP (use of WEP/TKIP is not recommended anymore) wep_icv_error_count = 0 // Only for uAP (use of WEP/TKIP is not recommended anymore) decrypt_failure_count = 0 // Only for uAP mcast_tx_count = 0 // Only for uAP failed_count = 0 // Only for uAP retry_count = 0 // Only for uAP multiple_retry_count = 0 // Only for uAP frame_duplicate_count = 0 // Only for uAP rts_success_count = 0 // Only for uAP rts_failure_count = 0 // Only for uAP ack_failure_count = 0 // Only for uAP rx_fragment_count = 0 // Only for uAP mcast_rx_frame_count = 0 // Only for uAP fcs_error_count = 0 // Only for uAP tx_frame_count = 0 // Only for uAP rsna_tkip_cm_invoked = 0 // Only for uAP (use of WEP/TKIP is not recommended anymore) rsna_4way_hshk_failures = 0 // Only for uAP The following debug info are provided in /proc/net/mwlan/adapterX/mlanY|uapY|wfdY/debug, on kernel 2.6.24 or later, the entry is /proc/mwlan/adapterX/mlanY|uapY|wfdY/debug. drvdbg = wmm_ac_vo = wmm_ac_vi = wmm_ac_be = wmm_ac_bk = max_tx_buf_size = tx_buf_size = curr_tx_buf_size = ps_mode = <0/1, CAM mode/PS mode> ps_state = <0/1/2/3, awake state/pre-sleep state/sleep-confirm state/sleep state> is_deep_sleep = <0/1, not deep sleep state/deep sleep state> // Only for STA wakeup_dev_req = <0/1, wakeup device not required/required> wakeup_tries = hs_configured = <0/1, host sleep not configured/configured> hs_activated = <0/1, extended host sleep not activated/activated> tx_pkts_queued = pps_uapsd_mode = <0/1, PPS/UAPSD mode disabled/enabled> // Only for STA sleep_pd = // Only for STA qos_cfg = // Only for STA tx_lock_flag = <0/1, Tx lock flag> // Only for STA port_open = <0/1, port open flag> // Only for STA scan_processing = <0/1, scan processing flag> // Only for STA num_bridge_pkts = // Only for uAP num_drop_pkts = // Only for uAP num_tx_timeout = num_cmd_timeout = timeout_cmd_id = timeout_cmd_act = last_cmd_id = last_cmd_act = last_cmd_index = <0 based last command index> last_cmd_resp_id = last_cmd_resp_index = <0 based last command response index> last_event = last_event_index = <0 based last event index> num_cmd_h2c_fail = num_cmd_sleep_cfm_fail = num_tx_h2c_fail = num_cmdevt_c2h_fail = num_rx_c2h_fail = num_int_read_fail = last_int_status = num_evt_deauth = // Only for STA num_evt_disassoc = // Only for STA num_evt_link_lost = // Only for STA num_cmd_deauth = // Only for STA num_cmd_assoc_ok = // Only for STA num_cmd_assoc_fail = // Only for STA 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 = curr_rd_port = mp_wr_bitmap = curr_wr_port = txbd_rdptr = txbd_wrptr = rxbd_rdptr = rxbd_wrptr = eventbd_rdptr = eventbd_wrptr = 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> tx_cmd_urb_pending = tx_data_urb_pending = rx_cmd_urb_pending = rx_data_urb_pending = ioctl_pending = tx_pending = rx_pending = lock_count = malloc_count = mbufalloc_count = malloc_cons_count = main_state = sdiocmd53w = sdiocmd53r = hs_skip_count = hs_force_count = Issue SDIO cmd52 read/write through proc. Usage: echo "sdcmd52rw= [data]" > /proc/mwlan/adapterX/config where the parameters: func: The function number to use (0-7) reg: The address of the register data: The value to write, read if the value is absent For SDIO MMC driver, only function 0 and WLAN function access is allowed. And there is a limitation for function 0 write, only vendor specific CCCR registers (0xf0 -0xff) are permiited. Examples: echo "sdcmd52rw= 0 4" > /proc/mwlan/adapterX/config # read func 0 address 4 cat /proc/mwlan/adapterX/config # display the register value echo "sdcmd52rw= 1 3 0xf" > /proc/mwlan/adapterX/config # write 0xf to func 1 address 3 Issue debug_dump command through proc. Usage: echo "debug_dump" > /proc/mwlan/adapterX/config Examples: echo "debug_dump" > /proc/mwlan/adapterX/config # dump driver internal debug status. To obtain fw dump or driver dump, use command: cat /proc/mwlan/adapter0/drv_dump > file_drv_dump #save the drv dump to file_drv_dump cat /proc/mwlan/adapter0/fw_dump > file_fw_dump #save the fw dump to file_fw_dump cat /proc/mwlan/adapter1/drv_dump > file_drv_dump_2 #save the adapter1 drv dump to file_drv_dump_2 Use dmesg or cat /var/log/debug to check driver debug messages. Update /proc/sys/kernel/printk to change message log levels. For example, echo 6 > /proc/sys/kernel/printk (messages with a higher priority than 6 will be printed to the console) echo 15 > /proc/sys/kernel/printk (all messages will be printed to console) 4) FOR FW RELOAD a) Enable parallel firmware download in driver parameter insmod sdxxx.ko fw_serial=0 b) default fw name for parallel firmware download sd8887_wlan_a2.bin c) Trigger FW reload echo "fw_reload=1" > /proc/mwlan/adapterX/config trigger inband firmware reset and reload firmware echo "fw_reload=2" > /proc/mwlan/adapterX/config trigger firmware reload echo "fw_reload=3" > /proc/mwlan/adapterX/config set firmware reload flag in driver. echo "fw_reload=4" > /proc/mwlan/config trigger pcie FLR and reload firmware. (Note: This feature will be supported on Robin3 and KF2. For CAC-A2, it only work with the board which supports parallel fw download) 5) FOR RF test mode commands: Following commands are used to perform RF testing of the wifi chipset. Please not that these test mode commands can only be issued while the device is in disconnected state and the uAP BSS is inactive. Normal wifi operations cannot be used on entering RF Test Mode. Enter RF Test Mode: echo "rf_test_mode=1" > /proc/mwlan/adapterX/config Exit RF Test Mode: echo "rf_test_mode=0" > /proc/mwlan/adapterX/config Please note that after exiting the RF Test Mode, the FW needs to be reset in order to use normal wifi connectivity. To get the set of available RF Test Mode commands, currently set parameters values for each command and the output, cat /proc/mwlan/adapterX/config Set Tx Antenna For 1x1 chipsets, 1:Main, 2:Aux when antenna diversity is supported For 2x2 chipsets, 1:Path A, 2: Path B, 3: Path A+B Both Tx and Rx must be set to same antenna path echo "tx_antenna=1" > /proc/mwlan/adapterX/config Set Rx Antenna For 1x1 chipsets, 1:Main, 2:Aux when antenna diversity is supported For 2x2 chipsets, 1:Path A, 2:Path B, 3:Path A+B Both Tx and Rx must be set to same antenna path echo "rx_antenna=1" > /proc/mwlan/adapterX/config Set RF band (0:2G, 1:5G) For 2G, channel will be reset to 6, while for 5G, to channel 36 echo "band=0" > /proc/mwlan/adapterX/config Set RF bandwidth (0:20MHz, 1:40MHz, 4:80MHz) echo "bw=0" > /proc/mwlan/adapterX/config Set RF channel echo "channel=6" > /proc/mwlan/adapterX/config Set Radio Mode echo "radio_mode=14 4" > /proc/mwlan/adapterX/config Get and reset packet error rate echo "get_and_reset_per" > /proc/mwlan/adapterX/config Set Tx Power This command will set power only if caldata is already loaded in the FW. Power (0 to 24 dBm) Modulation (0: CCK, 1:OFDM, 2:MCS) Path ID (0: PathA, 1:PathB, 2:PathA+B) echo "tx_power=16 2 0" > /proc/mwlan/adapterX/config Set Tx Continuous Mode Start (0:disable, 1:enable) Continuous Wave Mode (0:disable, 1:enable) Payload Pattern (0 to 0xFFFFFFFF) CS Mode (Applicable only when continuous wave is disabled) (0:disable, 1:enable) Active SubChannel (0:low, 1:upper, 3:both) Tx Data Rate (Rate Index corresponding to legacy/HT/VHT rates) Example: To start continuous wave (tone) mode, first stop any ongoing Tx and then start wave mode: step1: echo "tx_continuous=0" > /proc/mwlan/adapterX/config step2: echo "tx_continuous=1 1 0xAAA 0 3 7" > /proc/mwlan/adapterX/config Example: To start continuous packet mode, first stop any ongoing Tx and then start pkt mode: step1: echo "tx_continuous=0" > /proc/mwlan/adapterX/config step2: echo "tx_continuous=1 0 0xAAA 0 3 7" > /proc/mwlan/adapterX/config stop: echo "tx_continuous=0" > /proc/mwlan/adapterX/config Set Tx Frame Start (0:disable, 1:enable) Tx Data Rate (Rate Index corresponding to legacy/HT/VHT rates) Payload Pattern (0 to 0xFFFFFFFF) Payload Length (1 to 0x400) Adjust Burst SIFS Gap (0:disable, 1:enable) Burst SIFS in us (0 to 255us) Short Preamble (0:disable, 1:enable) Active SubChannel (0:low, 1:upper, 3:both) Short GI (0:disable, 1:enable) Adv Coding (0:disable, 1:enable) Beamforming (0:disable, 1:enable) GreenField Mode (0:disable, 1:enable) STBC (0:disable, 1:enable) NumPkt (Set to default value -1) MaxPktExt (Set to default value -1) BeamChange (Set to default value -1) DCM (Set to default value -1) Doppler (Set to default value -1) MidamblePeriod (Set to default value -1) QNum (Set to default value 1) BSSID (xx:xx:xx:xx:xx:xx) Example: To start Tx frame with duty cycle, first stop any ongoing Tx and then start Tx frame: echo "tx_frame=0" > /proc/mwlan/adapterX/config echo "tx_frame=1 7 0xAAA 0x100 1 20 0 0 0 0 0 0 0 05:43:3f:c4:51" > /proc/mwlan/adapterX/config hssetpara This command is used to set host sleep parameters. Example: echo "hssetpara=2 0xff 0xc8 3 400" > /proc/mwlan/adapter0/config echo "hssetpara=2 1 0xc8 3 400 " > /proc/mwlan/adapter0/config =============================================================================== U S E R M A N U A L F O R MLANUTL NAME mlanutl - configure the additional parameters available for NXP mdriver. SYNOPSIS mlanutl -v mlanutl [parameters] ... mlanutl mlanX verext mlanutl mlanX version mlanutl mlanX hostcmd generate_raw mlanutl mlanX hostcmd send_om_set mlanutl mlanX getdatarate mlanutl uapX getdatarate mlanutl mlanX drvdbg [n] mlanutl mlanX getlog mlanutl mlanX getsignal [m] [n] mlanutl mlanX signalextcfg [m] mlanutl mlanX getsignalextv2 [m] mlanutl mlanX getsignalext [m] mlanutl mlanX get_txpwrlimit [raw_data_file] mlanutl mlanX aggrpriotbl [ ... ] mlanutl uapX aggrpriotbl [ ... ] mlanutl mlanX addbapara [

] mlanutl uapX addbapara [

] mlanutl mlanX addbareject [ ... ] mlanutl uapX addbareject [ ... ] mlanutl mlanX dyn_bw [n] mlanutl mlanX vhtcfg [l] [m] [n] [o] mlanutl uapX vhtcfg [l] [m] [n] [o] mlanutl mlanX httxcfg [] [] mlanutl mlanX htcapinfo [] [] mlanutl mlanX 11axcfg [config/11axcfg.conf] mlanutl mlanX 11axcmd mlanutl mlanX txratecfg [l] [m] [n] [o] mlanutl uapX txratecfg [l] [m] [n] [o] mlanutl mlanX txwatchdog [l] mlanutl uapX txwatchdog [l] mlanutl mlanX hssetpara condition [GPIO# [gap]] [ind_GPIO# [level]] mlanutl mlanX mefcfg mlanutl mlanX cloud_keep_alive mlanutl mlanX min_ba_threshold mlanutl mlanX 11dcfg mlanutl mlanX 11dclrtbl mlanutl mlanX addts mlanutl mlanX amsduaggrctrl mlanutl mlanX antcfg [m] [n] mlanutl mlanX/uapX mimoswitch [tx_antmode] [rx_antmode] mlanutl mlanX arpfilter mlanutl mlanX assocctrl [k] [l] [m] [n] mlanutl mlanX assocessid <"[essid]"> mlanutl mlanX assocessid_bssid <"[bssid] [essid]"> mlanutl mlanX associate " " mlanutl mlanX get_chnrgpwr [save_region_channel_power_data_file] mlanutl mlanX comparergpwr [target_file] mlanutl mlanX comparetrpc [display] mlanutl mlanX getcfgchanlist mlanutl mlanX authtype [n] mlanutl mlanX autotdls [n] mlanutl mlanX tdls_idle_time [n] mlanutl uapX dfs_offload [n] mlanutl mlanX bandcfg [l] [m] [n] mlanutl mlanX bcninterval [n] mlanutl wfdX bssrole [l] mlanutl mlanX cfgdata [] mlanutl mlanX cfpcode [m] [n] mlanutl mlanX changraph [ ] mlanutl mlanX coex_rx_winsize [m] mlanutl mlanX countrycode [l] mlanutl mlanX cfpinfo mlanutl uapX cfpinfo mlanutl mlanX customie [[[] ] ] mlanutl mlanX deauth [l] mlanutl uapX deauth [l] mlanutl mlanX deepsleep [l] [m] mlanutl mlanX delba [ ] mlanutl uapX delba [ ] mlanutl mlanX delts mlanutl mlanX dfstesting [ ] mlanutl uapX clear_nop mlanutl uapX nop_list mlanutl uapX fake_radar mlanutl uapX getchload mlanutl dfsX dfs_cac [ ] mlanutl dfsX autodfs [conf_file] mlanutl mlanX dfs_repeater [n] mlanutl mlanX dfs53cfg [n] mlanutl uapX dfs_mode [n] mlanutl mlanX esuppmode [l] [m] [n] mlanutl mlanX extcapcfg [] mlanutl mlanX fwmacaddr [mac_addr] mlanutl mlanX getkey mlanutl mlanX getscantable [ARGS] mlanutl uapX getstalist mlanutl uapX channel_switch mlanutl mlanX hostcmd <11n_2040coex.conf> 2040coex mlanutl mlanX hostcmd auto_tx_get mlanutl mlanX hostcmd auto_tx_unreg mlanutl mlanX hostcmd bgscfg mlanutl mlanX hostcmd coalesce_cfg mlanutl mlanX hostcmd ed_mac_ctrl mlanutl mlanX hostcmd crypto_test mlanutl mlanX hostcmd nat_keep_alive mlanutl mlanX hostcmd pad_cfg_get mlanutl mlanX hostcmd pad_cfg_set mlanutl mlanX hostcmd requesttpc mlanutl mlanX hostcmd mode_get mlanutl mlanX hostcmd mode_timeshare mlanutl mlanX hostcmd mode_spatial mlanutl mlanX hostcmd mode_none mlanutl mlanX hostcmd mode_bca mlanutl mlanX hostcmd gpio_cfg mlanutl mlanX hostcmd external_coex_config mlanutl mlanX hostcmd external_coex_pta_config mlanutl mlanX hostcmd external_coex_uart_config mlanutl mlanX hostcmd generictime mlanutl mlanX hostcmd a2dptime mlanutl mlanX hostcmd inquirytim mlanutl mlanX hostcmd ap_generictime mlanutl mlanX hostcmd ap_a2dptime mlanutl mlanX hostcmd ap_inquirytime mlanutl mlanX hostcmd get_bca_arb_config mlanutl mlanX hostcmd set_en_bca_arb_config mlanutl mlanX hostcmd set_dis_bca_arb_config mlanutl mlanX hostcmd set_wlan_traffic_priority mlanutl mlanX hostcmd get_wlan_traffic_priority mlanutl mlanX hostcmd get_wlan_stats mlanutl mlanX hostcmd get_15_4_stats mlanutl mlanX hostcmd get_bt_stats mlanutl mlanX hostcmd get_ble_stats mlanutl mlanX hostcmd sdio_pulldown_disable mlanutl mlanX hostcmd sdio_pulldown_get mlanutl mlanX hostcmd sdio_pulldown_set mlanutl mlanX hostcmd subevent_get mlanutl mlanX hostcmd subevent_set mlanutl mlanX hostcmd txpwrlimit_2g_cfg_set mlanutl mlanX hostcmd txpwrlimit_5g_cfg_set mlanutl mlanX hostcmd txpwrlimit_cfg_get mlanutl mlanX hostcmd txrate_cfg_get mlanutl mlanX hostcmd txrate_cfg_set_bg mlanutl mlanX hostcmd txrate_cfg_set_bgn mlanutl mlanX hostcmd generate_raw mlanutl mlanX hostcmd fwdump mlanutl mlanX hostcmd stop_su mlanutl mlanX hostcmd start_su mlanutl mlanX hotspotcfg [] mlanutl mlanX hscfg [condition [[GPIO# [gap]]]] [ind_GPIO# [level]] mlanutl mlanX mgmtfilter mlanutl mlanX auto_arp [n] mlanutl mlanX htstreamcfg [n] mlanutl mlanX httxbfcap [cap] mlanutl mlanX httxbfcfg "[;GlobalData/tsData/interval/txPeerData/snrData]" mlanutl mlanX inactivityto [k] mlanutl mlanX ipaddr [";"] mlanutl mlanX linkstats mlanutl mlanX listeninterval [l] mlanutl mlanX macctrl [n] mlanutl uapX macctrl [n] mlanutl mlanX memrdwr

[value] mlanutl mlanX miracastcfg [l] [m] [n] mlanutl mlanX mgmtframectrl [] mlanutl uapX mgmtframectrl [] mlanutl mlanX mgmtframetx mlanutl mlanX mpactrl [tx_ena] [rx_ena] [tx_size] [rx_size] [tx_ports] [rx_ports] mlanutl mlanX netmon [ [ ]] mlanutl mlanX monitormode [l] mlanutl mlanX offchannel [ ] mlanutl mlanX otpuserdata mlanutl mlanX passphrase [l] mlanutl mlanX pb_bypass [data_1, data_2, ... data_n] mlanutl mlanX pcieregrw [value] mlanutl mlanX pciebar0regrw [value] mlanutl mlanX pmfcfg mlanutl mlanX port_ctrl [n] mlanutl mlanX powercons [n] mlanutl mlanX pscfg [k] [d] [l] ... mlanutl mlanX bcntimeoutcfg [l] [m] [o] [p] mlanutl mlanX psmode [l] mlanutl robustcoex [Enable/Disable] [gpionum] [gpiopolarity] mlanutl mlanX qconfig def [Queue Id: 0-3] mlanutl mlanX qconfig get [Queue Id: 0-3] mlanutl mlanX qconfig set msdu [Queue Id: 0-3] mlanutl mlanX qoscfg mlanutl mlanX qstatus mlanutl mlanX radioctrl [n] mlanutl mlanX rdeeprom mlanutl mlanX reassoctrl [n] mlanutl mlanX regioncode [n] mlanutl mlanX regrdwr [value] mlanutl mlanX rejectaddbareq [conditions] mlanutl uapX rejectaddbareq [conditions] mlanutl mlanX scancfg [t] [m] [p] [s] [a] [b] [c] [ext] [gap] mlanutl mlanX sdcmd52rw
[data] mlanutl mlanX sdcmd53rw
[data1] ... [dataN] mlanutl mlanX sdioclock mlanutl mlanX setuserscan [ARGS] mlanutl mlanX cancelscan mlanutl mlanX sleepparams [ ] mlanutl mlanX sleeppd [n] mlanutl mlanX sysclock [clk1] [clk2] [clk3] [clk4] mlanutl mlanX tcpackenh [l] [m] mlanutl mlanX tdls_channel_switch mlanutl mlanX tdls_config <0/1> mlanutl mlanX tdls_cs_params mlanutl mlanX tdls_debug "allow_weak_security" <0/1> mlanutl mlanX tdls_debug "cs_im_return" <0/1> mlanutl mlanX tdls_debug "fail_setup_confirm" <0/1> mlanutl mlanX tdls_debug "higher_lower_mac" <0/1> mlanutl mlanX tdls_debug "ignore_key_expiry" <0/1> mlanutl mlanX tdls_debug "setup_existing_link" <0/1> mlanutl mlanX tdls_debug "setup_with_prohibited" <0/1> mlanutl mlanX tdls_debug "stop_rx" <0/1> mlanutl mlanX tdls_debug "wrong_bss" <0/1> mlanutl mlanX tdls_disable_cs <0/1> mlanutl mlanX tdls_discovery mlanutl mlanX tdls_link_status mlanutl mlanX tdls_powermode mlanutl mlanX tdls_setinfo mlanutl mlanX tdls_setup mlanutl mlanX tdls_stop_channel_switch mlanutl mlanX tdls_teardown mlanutl mlanX thermal mlanutl mlanX ts_status mlanutl mlanX tsf mlanutl mlanX txaggrctrl [m] mlanutl mlanX txbufcfg mlanutl mlanX aggrctrl [l] mlanutl mlanX usbaggrctrl [l] [m] [n] [o] [p] [q] [r] [s] mlanutl mlanX usbresume mlanutl mlanX usbsuspend mlanutl per_pkt_cfg [tx_rx_control] [type_num] [ether_type1 ether_type2 ...] [tx_rx_control] [type_num] [ether_type1 ether_type2 ...] mlanutl dot11_txrx mlanutl mlanX txrxhistogram [action] [tx_rx_statics] mlanutl uapX txrxhistogram [action] [tx_rx_statics] mlanutl mlanX wakeupreason mlanutl uapX wakeupreason mlanutl mlanX warmreset mlanutl mlanX wpssession [n] mlanutl mlanX wmmcfg [n] mlanutl mlanX wmmparamcfg [AC_BE AIFSN ECW_MAX ECW_MIN TX_OP] [AC_BK AIFSN ECW_MAX ECW_MIN TX_OP] [AC_VI AIFSN ECW_MAX ECW_MIN TX_OP] [AC_VO AIFSN ECW_MAX ECW_MIN TX_OP] mlanutl mlanX wwscfg [m] mlanutl p2pX cfg_noa [h] [i] [j] [k] [l] mlanutl p2pX cfg_opp_ps [m] [n] mlanutl mlanX get_sensor_temp mlanutl indrstcfg [gpio_pin] mlanutl uapX ctrldeauth mlanutl mlanX/uapX bootsleep <1/0> mlanutl mlanX ssu [mode] [ssu file] mlanutl mlanX csi mlanutl mlanX arb [mode] mlanutl mlanX dmcs [value] mlanutl mlanX/uapX range_ext [mode] mlanutl mlanX twt_setup [config/twt.conf] mlanutl mlanX twt_teardown [config/twt.conf] mlanutl rx_abort_cfg [enable] [rssi_threshold] mlanutl rx_abort_cfg_ext [enable] [margin ceil_thresh] mlanutl tx_ampdu_prot_mode [mode] mlanutl rate_adapt_cfg [low_thresh high_thresh timer_interval] mlanutl cck_desense_cfg [mode] [margin ceil_thresh] [num_on_intervals num_off_intervals] mlanutl mlanX/uapX lpm [mode] mlanutl dot11mc_unassoc_ftm_cfg [enable] mlanutl mlanX tp_state [mode] [drop_point] mlanutl mlanX/uapX clocksync [j][k] [l] [m] [n] mlanutl mlanX/uapX gettsfinfo [j] mlanutl uapX backupchan [j] mlanutl uapX targetchan [j] mlanutl mlanX ips_cfg [1/0] mlanutl mlanX/uapX mcast_aggr_group [action] [mcast_addr] mlanutl mlanX/uapX mc_aggr_cfg [i][j] mlanutl uapX mcast_tx mlanutl getuuid DESCRIPTION Those commands are used to send additional commands to the NXP MLAN card via the Linux device driver. The mlanX parameter specifies the network device that is to be used to perform this command on. It could be mlan0, mlan1 etc. verext Retrieve and display an extended version string from the firmware Usage: mlanutl mlanX verext [#] where [#] is an optional argument to retrieve a specific version string, omission of the argument retrieves the 0 indexed string. version This is used to get the current version of the driver and the firmware. drvdbg This command is used to set/get the bit masks of driver debug message control. Usage: mlanutl mlanX drvdbg [n] Where the parameter is the generic debug message control bit mask. The following types of driver debug messages can be dynamically enabled or disabled by setting or clearing the corresponding bits, bit 0: MMSG PRINTM(MMSG,...) bit 1: MFATAL PRINTM(MFATAL,...) bit 2: MERROR PRINTM(MERROR,...) bit 3: MDATA PRINTM(MDATA,...) bit 4: MCMND PRINTM(MCMND,...) bit 5: MEVENT PRINTM(MEVENT,...) bit 6: MINTR PRINTM(MINTR,...) bit 7: MIOCTL PRINTM(MIOCTL,...) ... bit 16: MDAT_D PRINTM(MDAT_D,...), DBG_HEXDUMP(MDAT_D,...) bit 17: MCMD_D PRINTM(MCMD_D,...), DBG_HEXDUMP(MCMD_D,...) bit 18: MEVT_D PRINTM(MEVT_D,...), DBG_HEXDUMP(MEVT_D,...) bit 19: MFW_D PRINTM(MFW_D,...), DBG_HEXDUMP(MFW_D,...) bit 20: MIF_D PRINTM(MIF_D,...), DBG_HEXDUMP(MIF_D,...) ... bit 28: MENTRY PRINTM(MENTRY,...), ENTER(), LEAVE() bit 29: MWARN PRINTM(MWARN,...) bit 30: MINFO PRINTM(MINFO,...) If CONFIG_DEBUG=2, all kinds of debug messages can be configured. If CONFIG_DEBUG=1, all kinds of debug messages can be configured except for MENTRY, MWARN and MINFO. By default MMSG, MFATAL and MERROR are enabled. Some special debug messages, '*' // MLAN driver ISR is called (bit 6 MINTR enabled) '|' // PS awake event is received (bit 5 MEVENT enabled) '_' // PS sleep event is received (bit 5 MEVENT enabled) '+' // PS sleep confirm is sent (bit 5 MEVENT enabled) Examples: mlanutl mlan0 drvdbg : Get the current driver debug masks mlanutl mlan0 drvdbg 0 : Disable all the debug messages mlanutl mlan0 drvdbg 7 : Enable MMSG, MFATAL and MERROR messages mlanutl mlan0 drvdbg 0x20037 : Enable MMSG, MFATAL, MEEROR, MCMND, MEVENT and MCMD_D messages mlanutl mlan0 drvdbg -1 : Enable all the debug messages hostcmd generate_raw This command is used to generate the raw data(hostcommand block) for hostcommand in and write that to file Usage: mlanutl mlanX hostcmd generate_raw hostcmd send_om_set This command is used to configure the STAUT to include OM control subfield Usage: mlanutl mlanX hostcmd send_om_set getdatarate This command is used to get the data rate being used in last Tx packet and last Rx packet. getlog This command is used to get the statistics available in the station. Following stats are displayed:- dot11MulticastTransmittedFrameCount Increments when the multicast bit is set in the destination MAC address of a successfully transmitted MSDU dot11FailedCount Increments when an MSDU is not transmitted successfully dot11RetryCount Increments when an MSDU is successfully transmitted after one or more retransmissions dot11MultipleRetryCount Increments when an MSDU is successfully transmitted after more than one retransmission dot11FrameDuplicateCount Increments when a frame is received that the Sequence Control field is indicating a duplicate count dot11RTSSuccessCount Increments when a CTS is received in response to an RTS dot11RTSFailureCount Increments when a CTS is not received in response to an RTS dot11ACKFaliureCount Increments when an ACK is not received when expected dot11ReceivedFragmentCount Increments for each successfully received MPDU of type Data or Management dot11MulticastReceivedFrameCount Increments when a MSDU is received with the multicast bit set in the destination MAC address dot11FCSErrorCount Increments when an FCS error is detected in a received MPDU dot11TransmittedFrameCount Increments for each successfully transmitted MSDU dot11WeplcvErrCnt Increment when WEP (use of WEP/TKIP is not recommended anymore)decryption error for key index 0.3 beaconReceivedCnt Increments when received beacon beaconMissedCnt Increments when beacon missed dot11TransmittedFrameCount Increments for each successfully transmitted MSDU dot11QosTransmittedFragmentCount Increments when a corresponding UP's MPDU transmitted successfully dot11QosFailedCount Increments when a corresponding UP's MSDU not transmitted successfully dot11QosRetryCount Increment when a corresponding UP's MSDU transmitted successfully after one or more retransmission dot11QosMultipleRetryCount Increments when a corresponding UP's MSDU is successfully transmitted after more than one retransmission dot11QosFrameDuplicateCount Increments when a corresponding UP's frame is received that the Sequence Control field is indicating a duplicate frame dot11QosRTSSuccessCount Increments when a CTS is received in response to an RTS, which is sent for a corresponding UP's Qos frame dot11QosRTSFailureCount Increments when a CTS is not received in response to an RTS, which is sent for a corresponding UP's Qos frame dot11QosACKFailureCount Increments when an ACK is not received when expected for a corresponding UP's Qos frame dot11QosReceivedFragmentCount Increments when a corresponding UP's MPDU received dot11QosTransmittedFrameCount Increments when a corresponding UP's MSDU transmitted dot11QosDiscardedFrameCount Increments when a corresponding UP's MSDU not transmitted successfully dot11QosMPDUsReceivedCount Increments when a corresponding UP's MDPU received dot11QosRetriesReceivedCount Increments when a corresponding UP's MDPU received which retry bit is set dot11RSNAStatsCMACICVErrors Increment when a MPDU discard by CMAC integrity check dot11RSNAStatsCMACReplays Increments when a MPDU discarded by the CMAC replay error dot11RSNAStatsRobustMgmtCCMPReplays Increments when a robust management frame discarded by CCMP replay error dot11RSNAStatsTKIPICVErrors Increments when a MPDU discarded by TKIP ICV error //(use of WEP/TKIP is not recommended anymore) dot11RSNAStatsTKIPReplays Increments when a MPDU discarded by TKIP replay error //(use of WEP/TKIP is not recommended anymore) dot11RSNAStatsCCMPDecryptErrors Increments when a MPDU discarded by CCMP decryption error dot11RSNAStatsCCMPReplays Increments when a MPDU discarded by CCMP replay error dot11TransmittedAMSDUCount Increments when a A-MSDU transmitted successfully dot11FailedAMSDUCount Increments when a A-MSDU not transmitted successfully dot11RetryAMSDUCount Increments when a A-MSDU is successfully transmitted after one or more retransmissions dot11MultipleRetryAMSDUCount Increments when a A-MSDU is successfully transmitted after more than one retransmissions dot11TransmittedOctetsInAMSDUCount Increments by the number of octets in the frame body of an A-MSDU frame when an A-MSDU frame is successfully transmitted dot11AMSDUAckFailureCount Increments when an acknowledgment to an A-MSDU is not received when expected. dot11ReceivedAMSDUCount Increments when a A-MSDU frame received dot11ReceivedOctetsInAMSDUCount Increments by the number of octets in the frame body of an A-MSDU frame when an A-MSDU frame is received dot11TransmittedAMPDUCount Increments when an A-MPDU is transmitted dot11TransmittedMPDUsInAMPDUCount Increments by the number of MPDUs in the A-MPDU when an A-MPDU is transmitted dot11TransmittedOctetsInAMPDUCount Increments by the number of octets in the A-MPDU frame when an A-MPDU frame is transmitted dot11AMPDUReceivedCount Increments when the MAC receives an A-MPDU from the PHY dot11MPDUInReceivedAMPDUCount Increments by the number of MPDUs received in the A-MPDU when an A-MPDU is received dot11ReceivedOctetsInAMPDUCount Increments by the number of octets in the A-MPDU frame when an A-MPDU frame is received dot11AMPDUDelimiterCRCErrorCount Increments when an MPDU delimiter has a CRC error when this is the first CRC error in the received A-MPDU or when the previous delimiter has been decoded correctly Cmd Usage: mlanutl mlanX getlog ext The above command is used with the argument "ext" to display the following error statistics:- rxStuckIssueCount-1 rxStuckIssueCount-2 rxStuckRecoveryCount rxStuckTsf-1 rxStuckTsf-2 txWatchdogRecoveryCount txWatchdogTsf-1 txWatchdogTsf-2 channelSwitchAnnouncementSent channelSwitchState registerClass channelNumber channelSwitchMode RxResetRecoveryCount RxIsr2NotDoneCnt gdmaAbortCnt gResetRxMacCnt gOwnrshpCtlErrCnt gOwnrshpBcnErrCnt gOwnrshpMgtErrCnt gOwnrshpDatErrCnt getsignal This command gets the last and average value of RSSI, SNR and NF of Beacon and Data. Note: This command is available only when STA is connected. where value of m is: 1 -- RSSI (Receive Signal Strength Indication) 2 -- SNR (Signal to Noise Ratio) 3 -- NF (Noise Floor) where value of n is: 1 -- Beacon last 2 -- Beacon average 3 -- Data last 4 -- Data average Examples: mlanutl mlan0 getsignal 1 : Get the RSSI info (beacon last, beacon average, data last and data average) mlanutl mlan0 getsignal 3 4 : Get the NF of data average mlanutl mlan0 getsignal 2 1 : Get the SNR of beacon last mlanutl mlan0 getsignal : Get all of the signal info mlan0 getsignal:-32 -33 -35 -36 67 59 63 56 -99 -92 -98 -92 RSSI info: beacon last -32, beacon average -33, data last -35, data average -36 SNR info: beacon last 67, beacon average 59, data last 63, data average 56 NF info: beacon last -99, beacon average -92, data last -98, data average -92 getsignalext This command gets the last and average value of RSSI, SNR and NF of Beacon and Data of spectific antenna path. Note: This command is available only when STA is connected. Driver will enable signalext and collect signal information for one second where value of m is: 1 -- PATH A 2 -- PATH B 3 -- PATH A+B Examples: mlanutl mlan0 getsignalext :Get All path's signal. mlanutl maln0 getsignalext 3 :Get path A+B signal mlanutl maln0 getsignalext 1 :Get path A signal mlanutl mlan0 getsignalext 2 :Get path B signal PATH A: -46 -46 -49 -49 65 45 39 42 -111 -91 -88 -91 PATH A: RSSI info: beacon last -46, beacon average -46, data last -49, data average -49 SNR info: beacon last 65, beacon average 45, data last 39, data average 42 NF info: beacon last -111, beacon average -91, data last -88, data average -91 signalextcfg This command is used to enable/disable signalext Usage: mlanutl mlanX signalextcfg [m] where the value of [m] is: 1 -- enable signalext in firmware 0 -- disable signalext in firmware Examples: mlanutl mlan0 signalextcfg 1 : Enable signalext in firmware mlanutl mlan0 signalextcfg 0 : Disable signalext in firmware getsignalextv2 This command gets the last and average value of RSSI, SNR and NF of Beacon and Data of spectific antenna path. Note: This command is available only when STA is connected. "mlanutl mlanX signalextcfg 1" command needs to be issued before issuing this command where value of m is: 1 -- PATH A 2 -- PATH B 3 -- PATH A+B Examples: mlanutl mlan0 getsignalextv2 :Get All path's signal. mlanutl maln0 getsignalextv2 3 :Get path A+B signal mlanutl maln0 getsignalextv2 1 :Get path A signal mlanutl mlan0 getsignalextv2 2 :Get path B signal PATH A: -46 -46 -49 -49 65 45 39 42 -111 -91 -88 -91 PATH A: RSSI info: beacon last -46, beacon average -46, data last -49, data average -49 SNR info: beacon last 65, beacon average 45, data last 39, data average 42 NF info: beacon last -111, beacon average -91, data last -88, data average -91 get_txpwrlimit This command is used to get the txpwrlimit table in FW Usage: mlanutl mlanX get_txpwrlimit [raw_data_file] where 0: Get 2.4G txpwrlimit table 0x10: Get 5G sub0 txpwrlimit table 0x11: Get 5G sub1 txpwrlimit table 0x12: Get 5G sub2 txpwrlimit table 0x13: Get 5G sub3 txpwrlimit table 0x1f: Get all 5G txpwrlimit table 0xff: Get both 2G and 5G txpwrlimit table driver will save fw raw data to this file. Examples: mlanutl mlan0 get_txpwrlimit 0 : Get 2G txpwrlimit table. mlanutl mlan0 get_txpwrlimit 0x10 : Get 5G sub band0 txpwrlimit table mlanutl mlan0 get_txpwrlimit 0xff txpwrlimit.bin : Get both 2G/5G txpwrlimit table and save to txpwrlimit.bin aggrpriotbl This command is used set/get the priority table for AMPDU/AMSDU traffic per tid. This command can also be used to disable AMPDU/AMSDU for a given tid. In case of AMPDU this priority table will be used to setup block ack (to make sure the highest priority tid always uses AMPDU as we have limited AMPDU streams) where ... - This is priority for Tid0 for AMPDU packet. A priority could be any values between 0 - 7, 0xff to disable aggregation. - This is priority for Tid0 for AMSDU packet. A priority could be any values between 0 - 7, 0xff to disable aggregation. eg: mlanutl mlanX aggrpriotbl - This command will get the current Priority table for AMPDU and AMSDU. <2 2 0 0 1 1 3 3 4 4 5 5 255 255 255 255>. This is read as <"Prio for AMPDU for Tid0" "Prio for AMSDU for Tid0" "Prio for AMPDU for Tid1" "Prio for AMSDU for Tid1" and so on mlanutl mlanX aggrpriotbl 2 2 0 0 1 1 3 3 4 4 5 5 255 255 255 255 - This will set the priority table for AMPDU and AMSDU Priority for Tid0/AMPDU = 2, Tid0/AMSDU = 2, Tid1/AMPDU = 0, Tid1/AMSDU = 0 and so on. Aggregation for Tid6 and Tid7 are disabled. Here higher the priority number, higher the priority (i.e. 7 has higher priority than 6). Similarly for AMSDU. mlanutl mlanX aggrpriotbl 0xff 2 0xff 0 0xff 1 0xff 3 0xff 4 0xff 5 0xff 0xff 0xff 0xff - This will disable AMPDU for all the TIDs but will still keep AMSDU enabled to Tid0 to Tid5 The default setting is 2 255 0 255 1 255 3 255 4 255 5 255 255 255 255 255. A delBA should be seen in case a disable happens on a TID for which AMPDU stream is currently setup. Note:- This command should only be issue in disconnected state. addbapara This command can be used to update the default ADDBA parameters. where is - This is the block ack timeout for ADDBA request. 0 : Disable (recommended for throughput test) 1 - 65535 : Block Ack Timeout in TU where is - Window size for ADDBA request. (16 is recommended and default value) where is - Window size for ADDBA response. (48 is recommended and 32 is default value) (16 is recommended for IWNCOMM AP in WAPI throughput test) Current window size limit for Tx as well as Rx is 1023. where

is - amsdu support for ADDBA request. (1 is default value) 0: disable amsdu in ADDBA request 1: enable amsdu in ADDBA request where is - amsdu support for ADDBA response. (1 is default value) 0: disable amsdu in ADDBA response 1: enable amsdu in ADDBA response eg: mlanutl mlanX addbapara - This command will get the current addba params mlanutl mlanX addbapara 1000 64 8 0 0 - This will change the ADDBA timeout to (1000 * 1024) us, txwinsize to 64 and rxwinsize to 8 and disable amdsu in ADDBA request/response. The default setting is 65535 16 32 1 1. In case the ADDBA timeout value is updated then a ADDBA is sent for all streams to update the timeout value. In case txwinsize and/or rxwinsize is updated, the effect could only be seen on next ADDBA request/response. The current streams will not be affected with this change. In case of txamsdu/rxamsdu is updated, the effect could only be seen on next ADDBA request/response. The current streams will not be affected with this change. AMSDU in AMPDU stream will be enabled when AP support this feature and AMSDU is enabled in aggrpriotbl. addbareject This command is used set/get the addbareject table for all the TIDs. This command can also be used to enable rejection of ADDBA requests for a given tid. where ... - This can be 0/1 for TidX. 1 enables rejection of ADDBA request for TidX and 0 would accept any ADDBAs for TidX. eg: mlanutl mlanX addbareject - This command will get the current table. [0 0 0 0 0 0 0 0]. ADDBA would be accepted for all TIDs. This is the default state. mlanutl mlanX addbareject 0 0 1 1 0 0 0 0 - This command will accept ADDBA requests for Tid [0,1,4,5,6,7] and reject ADDBA requests for Tid [2,3] mlanutl mlanX addbareject 1 1 1 1 1 1 1 1 - This will enable rejection of ADDBA requests for all Tids. Note:- This command should only be issue in disconnected state. vhtcfg This command is used to set and get various 11ac specific configuration for transmission and reception. For the SET operation, all paramaters may be applied. For the GET operation, only the first two parameters are applied. The 6th argument "rx_mcs_set" can be used to disbale/enable 802.11ac. where is - This is the band setting for the vhtcfg 0: Settings for both 2.4G and 5G bands (for SET operation, 11N BW only) 1: Settings for 2.4G band (for 11N BW only) 2: Settings for 5G band where is - This parameter specifies the configuration of VHT operation for TX or/and VHT capabilities 0: Unspecified 1: configuration of VHT capabilities for Tx operations (STA only) 2: configuration of VHT capabilities for association (STA only) 3: configuration of VHT capabilities (uAP only) Note: For the STA, the VHT capabilities configuration is applied in association, whereas the VHT operations configuration is actually used in Tx. where [l] is - This parameter specifies the bandwidth (BW) configuration applied to the vhtcfg. If is 1/3 (Tx operations), 0: Tx BW follows the BW (20/40 MHz) from 11N CFG 1: Tx BW follows the BW (80/160/80+80 MHz) from VHT Capabilities defined in below for 5G band. If is 2 (association), 0: Rx BW follows the BW (20/40 MHz) from 11N CFG 1: Rx BW follows the BW (80/160/80+80 MHz) from VHT Capabilities defined in below for 5G band. where [m] is - This parameter specifies the VHT capabilities info if is 2 (association) or the VHT Tx operations if is 1 (Tx operations). The VHT Tx operation should be a subset of VHT capabilities for association. It is a bitmap and should be used as follows: Bit 31-30: Reserved and set to 0 Bit 29: TX antenna pattern consistency 1: antenna pattern does not change 0: antenna pattern might change Bit 28: RX antenna pattern consistency 1: antenna pattern does not change 0: antenna pattern might change Bit 27-26: VHT link adaptation capable 0: no feedback of VHT MFB from the STA 1: unsolicted feedback of VHT MFB from the STA 2: both response and unsolicted feedback of VHT MFB from the STA 3: reserved and set to 0 Bit 25-23: Maximum A-MPDU length exponent Bit 22: +HTC-VHT capable (1: enable. 0 disable) Bit 21: VHT TXOP PS Bit 20: MU beamformee capable (1: enable. 0 disable) Bit 19: MU beamformer capable (1: enable. 0 disable) Bit 18-16: Number of sounding dimensions (set to maximum-1 if Bit 11 is 1. Otherwise, reserved and set to 0) Bit 15-13: Compressed steering number of beamformer antennas supported (set to maximum-1 if Bit 12 is 1. Otherwise, reserved and set to 0) Bit 12: SU beamformee capable (1: enable. 0 disable) Bit 11: SU beamformer capable (1: enable. 0 disable) Bit 10-8: Rx STBC 0: no support 1: support of 1 spatial stream 2: support of 1-2 streams 3: support of 1-3 spatial streams 4: support of 1-4 spatial streams 5-7: reserved and set to 0 Bit 7: TX STBC (1: enable. 0 disable) Bit 6: Short GI for 160 and 80+80 MHz (1: enable. 0 disable) Bit 5: Short GI for 80 MHz (1: enable. 0 disable) Bit 4: Rx LDPC (1: enable. 0 disable) Bit 3-2: Supported channel width set. 0: no support of either 160 or 80+80 MHz. 1: support of 160 MHz 2: support of both 160 and 80+80 MHz. 3: reserved and set to 0. Bit 1-0: Maximum MPDU length 0: 3895 octets. 1: 7991 octets. 2: 11454 octets. 3: reserved and set to 0. Note: for the STA, if is 1 (Tx operations), the bitmap for may be simplied as follows: Bit 31-8: Reserved and set to 0 Bit 7: Tx STBC (1: enable. 0 disable) Bit 6: Reserved and set to 0 Bit 5: Short GI for 80 Mhz (1: enable. 0 disable) Bit 4: LDPC (1: enable. 0 disable) Bit 3-0: Reserved and set to 0 where [n] is , - This parameter specifies the TX MCS map. It may not be used for the STA if is 1 (Tx operations). It is a bitmap and should be used as following Bit 15-0: MCS map, which is defined as folows: Bit 15-14: Max MCS for 8 SS Bit 13-12: Max MCS for 7 SS Bit 11-10: Max MCS for 6 SS Bit 9-8: Max MCS for 5 SS Bit 7-6: Max MCS for 4 SS Bit 5-4: Max MCS for 3 SS Bit 3-2: Max MCS for 2 SS Bit 1-0: Max MCS for 1 SS where [o] is . - This parameter specifies the RX MCS map. It may not be used for the STA if is 1 (Tx operations). It is a bitmap with the same sructure as for rx_mcs_map = 0xffff : FW will disable 802.11ac rx_mcs_map = others : FW will enable 802.11ac Note: The user setting of vhtcap may be overwritten by the driver if the setting of those fields is beyond the hardware capabilities. Examples: mlanutl mlan0 vhtcfg 2 1 : Get current VHT configuration in 5GHz for the STA. mlanutl mlan0 vhtcfg 2 2 : Get maximum VHT configuration in 5GHz for the STA. mlanutl mlan0 vhtcfg 2 1 1 0x000001f0 : Set the Tx operations configuration in 5GHz for the STA, Tx BW follows the VHT Capabilities. mlanutl mlan0 vhtcfg 2 2 0 0x000001f0 0xfff5 0xfffa : Set the VHT capabilities configuration in 5GHz for the STA, the Tx supports MCS 0-8 for both 1 and 2 spatial streams, while the Rx supports MCS 0-9 for both 1 and 2 spatial streams. mlanutl uap0 vhtcfg 2 3 0 0x000001f0 0xfffa 0xfffa : Set the current/maximum VHT configuration in 5GHz for the uAP. Both Tx and Rx supports MCS 0-9 for both 1 and 2 spatial streams. mlanutl uap0 vhtcfg 2 3 0 0x000001b0 : Set the VHT capability information in 5GHz for the uAP, and keep the Tx/Rx MCS Map same as before. dyn_bw This command is used to set/get dynamic bandwidth. Usage: mlanutl mlanX dyn_bw [n] where [BIT0] 0 = TxInfo Indicated BW Disable 1 = TxInfo Indicated BW Enable [BIT1] 0 = TxInfo Dynamatic BW Disable 1 = TxInfo Dynamatic BW Enable [BIT2] 0 = TxInfo Force send RTS Disable 1 = TxInfo Force send RTS Enable [BIT3] 0 = Mac Dynamic BW Operation Mode Disable (Static BW Operation Mode) 1 = Mac Dynamic BW Operation Mode Enable other bits reserved. If no parameter provided, get is performed. Examples: mlanutl mlan0 dyn_bw 0x1 : Enable TxInfo Indicated BW mlanutl mlan0 dyn_bw : get current setting httxcfg This command is used to configure various 11n specific configuration for transmit (such as Short GI, Channel BW and Green field support) where is This is a bitmap and should be used as following Bit 15-8: Reserved set to 0 Bit 7: STBC enable/disable Bit 6: Short GI in 40 Mhz enable/disable Bit 5: Short GI in 20 Mhz enable/disable Bit 4: Green field enable/disable Bit 3-2: Reserved set to 1 Bit 1: 20/40 Mhz enable disable. Bit 0: LDPC enable/disable When Bit 1 is set then firmware could transmit in 20Mhz or 40Mhz based on rate adaptation. When this bit is reset then firmware will only transmit in 20Mhz. where is - This is the band info for settings. 0: Settings for both 2.4G and 5G bands 1: Settings for 2.4G band 2: Settings for 5G band Example: mlanutl mlanX httxcfg This will display HT Tx configuration for 2.4G and 5G band. mlanutl mlanX httxcfg 0x62 This will enable 20/40 and Short GI but will disable Green field for 2.4G and 5G band. mlanutl mlanX httxcfg 0x30 1 This will enable Short GI 20 Mhz and Green field for 2.4G band. The default value is 0x20 for 2.4G and 0x62 for 5G. Note:- If 20/40 MHz support is disabled in htcapinfo, device will not transmit in 40 MHz even 20/40 MHz is enabled in httxcfg. htcapinfo This command is used to configure some of parameters in HTCapInfo IE (such as Short GI, Channel BW, and Green field support) where is - This is a bitmap and should be used as following Bit 29: Green field enable/disable Bit 26: Rx STBC Support enable/disable. (As we support single spatial stream only 1 bit is used for Rx STBC) Bit 25: Tx STBC support enable/disable. Bit 24: Short GI in 40 Mhz enable/disable Bit 23: Short GI in 20 Mhz enable/disable Bit 22: Rx LDPC enable/disable Bit 17: 20/40 Mhz enable disable. Bit 8: Enable/disable 40Mhz Intolarent bit in ht capinfo. 0 will reset this bit and 1 will set this bit in htcapinfo attached in assoc request. All others are reserved and should be set to 0. Setting of any other bits will return error. where is - This is the band info for settings. 0: Settings for both 2.4G and 5G bands 1: Settings for 2.4G band 2: Settings for 5G band Example: mlanutl mlanX htcapinfo This will display HT capabilties information. If the information for 2.4G and 5G is different, the first value is for 2.4G and the second value is for 5G. Otherwise, it will display a single value for both bands. mlanutl mlanX htcapinfo 0x1820000 This will enable Short GI, Channel BW to 20/40 and disable Green field support for 2.4G and 5G band. mlanutl mlanX htcapinfo 0x800000 2 This will enable Short GI, Channel BW to 20 only, No Rx STBC support and disable Green field support for 5G band. The default value is 0x4800000 for 2.4G and 0x5820000 for 5G. Note:- This command can be issued any time but it will only come to effect from next association. (as HTCapInfo is sent only during Association). 11axcfg This command is used to config 11ax HE capability using conf file. Usage: mlanutl mlanX 11axcfg [conf file] Example: mlanutl mlan0 11axcfg config/11axcfg.conf mlanutl uap0 11axcfg config/11axcfg.conf 11axcmd This command is used to config 11ax HE capability using command. Usage: mlanutl 11axcmd [value_1] [value_2] : spatial reuse configuration set obss_pd offset, [value_1] = NON_SRG_OffSET, [value_2] = SRG_OFFSET : spatial reuse configuration control SR, [value_1]= 1 is enable SR, [value_1] = 0 is disable SR : enable/disable beam change enable beam_change when [value_1 = 0] disable beam_change when [value_1 = 1] : enable/disable HTC transmission enable transmission of HTC when [value_1 = 1] disable transmission of HTC when [value_1 = 0] : set/get RTS threshold This subcmd applies to uapX only. uAP uses it to manage the RTS/CTS used by associated non-AP HE STA set TXOP duration RTS Threshold when [value_1 = ]. If = 1023, disable TXOP duration RTS get TXOP duration RTS Threshold without value_1 and value_2 Where is: Bit 0-9: TXOP RTS Threshold : set/get omi value used for OMI transmission in MAC header HTC+ field, please see 11ax spec for OMI definition set OMI when [value_1 = ], where is defined as: Bit 0-2: Rx NSS Bit 3-4: Channel Width Bit 6 : Tx NSTS (applies to client mode only) All other bits are not supported currently. get OMI without value_1 and value_2 : set/get OBSS narrow band RU tolerance time value in seconds set tolerance time when [value_1 =

[value] where the parameters are,
: memory address [value]: value to be written Examples: mlanutl mlan0 memrdwr 0x4cf70 : Read memory address 0x4cf70 mlanutl mlan0 memrdwr 0x80000000 0xffffffff : Write 0xffffffff to memory address 0x80000000 miracastcfg This command is used to set/get the miracast configuration. Usage: mlanutl mlanX miracastcfg [l] [m] [n] where the parameters are, [l]: miracast mode 0: Disable 1: Source 2: Sink [m]: scan time per channel, in ms [n]: gap during two scans, in ms Examples: mlanutl mlan0 miracastcfg : Get miracast configuration mlanutl mlan0 miracastcfg 0 : Disable miracast configuration mlanutl mlan0 miracastcfg 1 20 40 : Set miracast mode as source, with scan time 20ms per channel and gap during two scans 40ms mgmtframectrl This command is used to set/get registered frame type to passthrough. Usage: mlanutl mlanX mgmtframectrl [] mlanutl uapX mgmtframectrl [] Where the parameter is: : the bit mask of management frame reception. : Bit 0 - Association Request : Bit 1 - Association Response : Bit 2 - Re-Association Request : Bit 3 - Re-Association Response : Bit 4 - Probe Request : Bit 5 - Probe Response : Bit 8 - Beacon Frames : Bit 13 - Action Frames Examples: mlanutl mlan0 mgmtframectrl : Get present mask mlanutl mlan0 mgmtframectrl 0x0020 : Bit 5 is set, Forward probe response frames to application layer mgmtframetx This command is used to send management frame. Usage: mlanutl mlanX mgmtframetx Where the parameter is: mgmt_frame.conf : The configuration file contains the management frame. Examples: mlanutl mlan0 mgmtframetx config/mgmt_frame.conf mpactrl This command is used to set/get the Tx, Rx SDIO aggregation parameters. Note: The parameters can be set only in disconnected state. Usage: mlanutl mlanX mpactrl [tx_ena] [rx_ena] [tx_size] [rx_size] [tx_ports] [rx_ports] where the parameter are: [tx_ena]: Enable/disable (1/0) Tx MP-A [rx_ena]: Enable/disable (1/0) Rx MP-A [tx_size]: Size of Tx MP-A buffer [rx_size]: Size of Rx MP-A buffer [tx_ports]: Max ports (1-16) for Tx MP-A [rx_ports]: Max ports (1-16) for Rx MP-A default values are 1 1 16384 32768 16 16 The MP-A may be disabled by default at build time if the MMC driver byte mode patch is not available in kernel. Examples: mlanutl mlan0 mpactrl : Get MP aggregation parameters mlanutl mlan0 mpactrl 0 0 : Disable MP aggregation for Tx, Rx respectively mlanutl mlan0 mpactrl 1 1 8192 8192 8 8 : Enable MP aggregation for Tx, Rx : Set Tx, Rx buffer size to 8192 bytes : Set maximum Tx, Rx ports to 8 netmon This command is used to set/get network monitor configuration. Note: For channel specified mode, the configuration should be issued when STA/AP is disconnected. For in-channel sniffer mode, the configuration can be issued irrespective of the STA/AP connected state, and requires specification of only action and filter parameters. If any of the STA/AP connection is active, the in-channel sniffer mode will inherently work on the active band and channel configuration. Usage: mlanutl netmon [ [ ]] Where the parameters are: : mlanX : (0) disable any network monitor activity : (1) enable channel specified sniffer mode activity : network monitor fitler flag bit 0: (1/0) enable/disable management frame bit 1: (1/0) enable/disable control frame bit 2: (1/0) enable/disable data frame : 802.11 band bit 0: B bit 1: G bit 2: A bit 3: GN bit 4: AN bit 5: AC 2.4G bit 6: AC 5G : channel to monitor : [offset] [offset] : secondary channel bandwidth 0 - Bandwidth 20Mhz 1 - HT Bandwidth 40Mhz sec channel above 3 - HT Bandwidth 40Mhz sec channel below 4 - VHT Bandwidth 80Mhz Examples: mlanutl mlan0 netmon : Get the current network monitor configuration mlanutl mlan0 netmon 0 : Disable network monitor activity mlanutl mlan0 netmon 1 4 11 6 : Enable channel specified sniffer activity, set filter data frame, band B/G/GN and channel 6 mlanutl mlan0 netmon 1 7 20 64 1 : Enable channel specified sniffer activity, set filter management, control and data frame, band A/AN, channel 64 and secondary channel above monitormode This command is used to set/get monitor mode. Note: The enable monitor mode setting should be issued when no active interface exist. Before we want to use sniffer mode, need enable monitor mode. After this can only use sniffer mode, don't make STA/P2P/UAP work. When sniffer mode using done, should disable monitor mode. Usage: mlanutl mlanX monitormode [l] where the parameter: [l] 0 : Disable monitor mode 1 : Enable monitor mode : Get monitor mode Examples: mlanutl mlan0 monitormode : Get monitor mode. mlanutl mlan0 monitormode 1 : Enable monitor mode. offchannel This command is used to set/cancel the offchannel configuration. Note: This command only can be used when cfg80211 is enabled during load time. Usage: mlanutl mlanX offchannel [ ] where 0 : Cancel the offchannel configuration 1 : Set the offchannel configuration The channel to configure The duration for which to configure : channel bandwidth 0 - Bandwidth 20Mhz 1 - HT Bandwidth 40Mhz sec channel above 3 - HT Bandwidth 40Mhz sec channel below 4 - VHT Bandwidth 80Mhz Examples: mlanutl mlan0 offchannel : Get current offchannel status. mlanutl mlan0 offchannel 0 : Cancel the offchannel configuration. mlanutl mlan0 offchannel 1 3 5 : Configure channel 3 for 5 milliseconds. mlanutl mlan0 offchannel 1 36 5000 : Configure channel 36 for 5000 milliseconds. mlanutl mlan0 offchannel 1 64 500 4 : Configure channel 64 in 80MHz for 500 milliseconds. otpuserdata This command is used to get the OTP user data. Where is - This parameter specifies the length of OTP user data to be read Examples: mlanutl mlan0 otpuserdata 10 : Get the 10-byte OTP user data passphrase This command is used to set/get passphrase for WPA-PSK/WPA2-PSK/WPA3-SAE mode.// use of WPA/TKIP is not recommended anymore Where ASCII string for ssid/passphrase/psk/sae_password. Setting psk for WPA3 SAE protocol is not possible, as new psk gets generated everytime in protocol flow. 1) "0;" - This will get the passphrase, AKMP for specified ssid, if none specified then it will get all. Example: mlanutl mlan0 passphrase "0;ssid=nxp" 2) "1;; " - Passphrase and psk cannot be provided for the same SSID. This command takes only one SSID at a time, If ssid= is present it should contain a passphrase or psk. If no arguments are provided then AKMP=802.1x, and passphrase should be provided after association. End of each parameter should be followed by a ';'(except for the last parameter) as the delimiter. If ';' or '/' has to be used in an SSID then a '/' should be preceded to ';' or '/' as a escape. Examples: mlanutl mlan0 passphrase "1;ssid=nxpAP;passphrase=abcdefgd" mlanutl mlan0 passphrase "1;ssid=nxp AP;psk=<64 bytes hexpsk>" If user wants to input the ssid as "nxp; AP" then command has to be mlanutl mlan0 passphrase "1;ssid=nxp/; AP;passphrase=abcdefgh" If user wants to input the ssid as "//;" then command has to be mlanutl mlan0 passphrase "1;ssid=/////;;passphrase=abcdefgh" 3) "2;" - This will clear the passphrase for specified ssid, if none specified then it will clear all. Examples: mlanutl mlan0 passphrase "2;ssid=nxp" mlanutl mlan0 passphrase "2" : Clear all profiles and disable embedded supplicant 4)"1;ssid=;sae_password=" This will set WPA3 SAE ssid & password. sae_password should be within the range of 8 to 255 char. Examples: mlanutl mlan0 passphrase "1;ssid=nxp;sae_password=1234567890" pb_bypass This command is used to get the By-passed TX packet from upper layer. Usage: mlanutl mlanX pb_bypass [data_1, data_2, ... data_n] where value of data_1, data_2, ... data_n isBypass TX Data pcieregrw This command is used to read/write PCIE register. Usage: mlanutl mlanX pcieregrw [value] where the parameters are, : The offset of PCIE register [value]: The value to write Examples: mlanutl mlan0 pcieregrw 0x48 : Read PCIE register 0x48 mlanutl mlan0 pcieregrw 0x44 8 : Write 8 to PCIE register 0x44 pciebar0regrw This command is used to read/write PCIE register/memory from BAR0. Usage: mlanutl mlanX pciebar0regrw [value] where the parameters are, : The offset of PCIE register [value]: The value to write Examples: mlanutl mlan0 pciebar0regrw 0x48 : Read PCIE register 0x48 mlanutl mlan0 pciebar0regrw 0x44 8 : Write 8 to PCIE register 0x44 pmfcfg This command is used to set/get management frame protection parameters. Usage: mlanutl mlanX pmfcfg where : Management Frame Protection Capable (MFPC) 1: Management Frame Protection Capable 0: Management Frame Protection not Capable : Management Frame Protection Required (MFPR) 1: Management Frame Protection Required 0: Management Frame Protection Optional Default setting is PMF not capable. m = 0, n = 1 is an invalid combination Examples: mlanutl mlan0 pmfcfg : Get PMF parameters mlanutl mlan0 pmfcfg 1 0 : Set MFPC and make MFPR optional port_ctrl This command is used to Set/Get Port Control mode. No argument is used to get. where value of n is: 0 -- Disable 1 -- Enable Examples: mlanutl mlan0 port_ctrl 1 : Enable Port Control mode mlanutl mlan0 port_ctrl : Get Port Control mode status powercons This command is used to set the local transmit power constraint. Value is in dbm unit. This command is only used for ad-hoc start. Usage: mlanutl mlanX powercons [n] Examples: mlanutl mlanX powercons : get the current setting mlanutl mlanX powercons 12 : set local power constraint to 12 dbm pscfg This command is used to set/get PS configuration parameters. Usage: mlanutl mlanX pscfg [k] [d] [l] ... Where the parameters: [k]: Keep alive null packet interval (0: Unchanged, -1: Disable, n: Interval in seconds) [d]: DTIM interval ( 0: Unchanged, 1-5: Value, 65534: DTIM will be ignored, listen interval will be used, 65533: Closest DTIM to the listen interval period will be used ) [l]: Local listen interval ( 0: Unchanged, -1: Disable, 1-49: Value in beacon intervals, >= 50: Value in TUs ) [b]: Beacon miss timeout (0: Unchanged, 1-50: Value in milliseconds, 65535: Disable) [p]: Delay to PS (0-65535: Value in milliseconds, default 1000ms) [m]: PS mode (0: Unchanged, 1: Auto mode, 2: PS-Poll mode, 3: PS Null mode) No change if parameters are not provided. Examples: mlanutl mlan0 pscfg : Get all the current PS configuration settings mlanutl mlan0 pscfg 3 4 : Set PS keep alive null packet interval to 3 seconds and DTIM interval to 4, all the other configurations are unchanged mlanutl mlan0 pscfg 0 0 0 0 50 2 : Set delay to PS to 50 ms and PS mode to PS-Poll mode, keep the others unchanged bcntimeoutcfg This command is used to set Beacon timeout parameters. Usage: mlanutl mlanX bcntimeoutcfg [l] [m] [o] [p] Where the parameters: [l]: Beacon miss timeout period Rx window (in ms) [m]: Beacon miss timeout period (unit in beacon interval) [o]: Beacon reacquire timeout period Rx window (unit in beacon interval) [p]: Beacon reacquire timeout period (unit in beacon interval) Please note that it would be better [m]+[p] not exceed 64. Examples: mlanutl mlan0 bcntimeoutcfg 10 30 2 30 : Set beacon timeout configure to Beacon miss timeout period Rx window : 10 (ms) Beacon miss timeout period : 30 (Beacon Interval) Beacon reacquire timeout period Rx window : 2 (Beacon Interval) Beacon reacquire timeout period : 30 (Beacon Interval) psmode This command is used to set/get the IEEE PS mode configuration. Usage: mlanutl mlanX psmode [l] where the parameter: [l] 0 : Disable IEEE PS mode 1 : Enable IEEE PS mode : Get IEEE PS mode Examples: mlanutl mlan0 psmode : Get IEEE PS mode. mlanutl mlan0 psmode 1 : Enable IEEE PS mode. qconfig Send a WMM AC Queue configuration command to get/set/default params Configure or get the parameters of a WMM AC queue. The command takes an optional Queue Id as a last parameter. Without the queue id, all queues will be acted upon. Usage: mlanutl mlanX qconfig def [Queue Id: 0-3] mlanutl mlanX qconfig get [Queue Id: 0-3] mlanutl mlanX qconfig set msdu [Queue Id: 0-3] qoscfg This command sets WMM IE QOS info when an argument is given, and gets current WMM IE QOS info when no argument is given. Examples: mlanutl mlanX qoscfg 0x0f : Set WMM IE QOS info to 0x0f mlanutl mlanX qoscfg : Get WMM IE QOS info qstatus This command retrieves the current status of the WMM queues. If WMM is enabled then it displays the information for each AC in a table. Usage: mlanutl mlanX qstatus radioctrl This command is used to turn on/off the radio. Note: The radio can be disabled only in disconnected state. where value of n is: 0 -- Disable 1 -- Enable Examples: mlanutl mlan0 radioctrl 1 : Turn the radio on mlanutl mlan0 radioctrl : Get radio status rdeeprom This command is used to read the EEPROM contents of the card. Usage: mlanutl mlanX rdeeprom where the parameters are, : multiples of 4 : 4-20, multiples of 4 Example: mlanutl mlan0 rdeeprom 0 20 : Read 20 bytes of EEPROM data from offset 0 reassoctrl This command is used to turn on/off re-association in driver. Usage: mlanutl mlanX reassoctrl [n] Where value of n is: 0 -- Disable 1 -- Enable Examples: mlanutl mlan0 reassoctrl : Get re-association status mlanutl mlan0 reassoctrl 1 : Turn re-association on regioncode This command is used to set/get the region code in the station. Note: This command should be issued at beginning before band/channel selection and association. where value is 'region code' for various regions like USA FCC, Canada IC, Europe ETSI, Japan ... The special code (0xff) is used for Japan to support channel 1-14 in B/G/N mode. Examples: mlanutl mlan0 regioncode : Get region code mlanutl mlan0 regioncode 0x10 : Set region code to USA (0x10) Note : in some case regioncode will be 0 after updated countycode or 80211d i.e. mlanutl mlanX countrycode (CA, JP, CN, DE, ES AT, BR, RU) or uaputl.exe sys_cfg_80211d state 1 country (CA, JP, CN, DE, ES AT, BR, RU) Please use cfp instead of it. regrdwr This command is used to read/write the adapter register. Usage: mlanutl mlanX regrdwr [value] where the parameters are, : 1:MAC, 2:BBP, 3:RF, 5:CAU, 6:PSU, 7:BCA, 8:CIU, 0x81:MAC2, 0x82:BBP2, 0x83: RF2, 0x87: BCA2 : 1:MAC, 2:BBP, 3:RF, 5:CAU, 6:PSU, 7:BCA, 8:CIU : 1:MAC/SOC, 2:BBP, 3:RF, 5:CAU, 6:PSU, 7:BCA : offset of register [value]: value to be written Note: BBP reg (type 2) 0xXZZZ: X: 0=BBUD, 8=BBUA. ZZZ: offset (0-0xFFF). RF reg (type 3) 0xXYZZ: For 8887/8897/8777 1. If Y == 0, access RFU BASE Register. X = Path ID (0=Path_A, 1=Path_B), ZZ = offset (0-0xFF). 2. If Y != 0, access RFU XCVR Register on Path Y (1=Path_A, 2=Path_B). X = Page # (0=Page_1, 1=Page_2, 2=Page_3 if chip support), ZZ: offset (0-0xFF). For 8977/8997/8987 X = Path ID (0-1) Y = Page Number (0-6) in selected Path ZZ = Register offset in selected path/page Examples: mlanutl mlan0 regrdwr 1 0x60 : Read the MAC register mlanutl mlan0 regrdwr 1 0x794 0x80000000 : Write 0x80000000 to MAC register mlanutl mlan0 regrdwr 0x81 0x60 :Read MAC2 register rejectaddbareq This command is used to set/get the conditions of rejecting addba request. Usage: mlanutl mlanX rejectaddbareq [conditions] mlanutl uapX rejectaddbareq [conditions] Where conditions are: bit 0 = 1 -- reject the addba request when host sleep activated bit 1 = 1 -- reject the addba request when FW auto re-connect enabled this bit is only used with STA BSS others -- reserved Examples: mlanutl mlan0 rejectaddbareq : Get the reject addba request conditions mlanutl mlan0 rejectaddbareq 0x1 : Reject the addba request when host sleep activated mlanutl mlan0 rejectaddbareq 0x2 : Reject the addba request when FW auto re-connect enabled mlanutl mlan0 rejectaddbareq 0x3 : Reject the addba request when host sleep activated or FW auto re-connect enabled mlanutl uap0 rejectaddbareq 0x1 : Reject the addba request when host sleep activated scancfg This command is used to set/get scan configuration parameters. Usage: mlanutl mlanX scancfg [t] [m] [p] [s] [a] [b] [c] [ext] [gap] where the parameters: [t]: Scan Type (0: Unchanged, 1: Active, 2: Passive, default Active) [m]: Scan Mode (0: Unchanged, 1: BSS, 2: IBSS, 3: Any, default Any) [p]: Scan Probes (0: Unchanged, 1-5: Number of probes per channel, default 4) [s]: Specific Scan Time (0: Unchanged, n: Value in ms, default 110 ms, max 500 ms) [a]: Active Scan Time (0: Unchanged, n: Value in ms, default 200 ms, max 500 ms) [b]: Passive Scan Time (0: Unchanged, n: Value in ms, default 200 ms, max 2000 ms) [c]: Passive to Active Scan (0: Unchanged, 1: Enable, 2: Disable, default Enable) [ext]: Extended scan (0: Unchanged, 1: Legacy scan, 2: Extended scan, 3: Extended scan enhance) [gap]: Time gap between two scans in milliseconds (max value 500ms) No change if the parameter is 0 or the parameter is not provided. Examples: mlanutl mlan0 scancfg : Get all the current scan configuration settings mlanutl mlan0 scancfg 1 3 : Set scan type to active and scan mode to any, all the other scan configurations are unchanged mlanutl mlan0 scancfg 0 1 2 200 : Set scan mode to BSS, number of probes to 2 and specific scan time to 200 ms, all the other scan configurations are unchanged mlanutl mlan0 scancfg 0 0 0 0 0 0 1 : Set Passive to Active Scan to enable, all the other scan configurations are unchanged mlanutl mlan0 scancfg 2 0 0 0 0 0 2 : Set scan type to passive, Passive to Active Scan to disable, all the other scan configurations are unchanged sdcmd52rw This command is used to read/write a controller register in Secure Digital I/O Interfaces. Usage: mlanutl mlanX sdcmd52rw [value] For SDIO MMC driver, only function 0 and 1 access is allowed. And there is a limitation for function 0 write, only vendor specific CCCR registers (0xf0 -0xff) are permiited. Examples: mlanutl mlan0 sdcmd52rw 1 3 : Read SDIO function 1 register 3 mlanutl mlan0 sdcmd52rw 1 1 0x3f : Write 0x3f to SDIO function 1 register 1 sdcmd53rw This command is used to issue a CMD53 read/write data in Secure Digital I/O Interfaces. Usage: mlanutl mlanX sdcmd53rw
[data1] ... [dataN] where the parameters are, : function number (0/1/2/..)
: data address : byte mode/block mode (0/1) : block size (32/64/../512, NA for byte mode) : block number or byte number ... : data for write Note: The total data length is block size * block number for block mode or byte number for byte mode. The max data length is 2000-byte. For write the data pattern will be duplicated to data buffer. Examples: mlanutl mlan0 sdcmd53rw 0 0x8000 1 0x40 2 mlanutl mlan0 sdcmd53rw 1 0x10000 0 1 5 0x0a 0x0b 0x0c 0x0d 0x0e sdioclock Turn On(1) or Off(0) the SDIO clock. Usage: mlanutl mlanX sdioclock 1 (on) mlanutl mlanX sdioclock 0 (off) mlanutl mlanX sdioclock (get the current clock state) setuserscan Initiate a customized scan and retrieve the results Usage: mlanutl mlanX setuserscan [ARGS] Where [ARGS]: ssid="[SSID]" specify a SSID filter for the scan group= specify the channel group(s) to scan chan=[chan#][band][mode] where band is [a,b,g,e] and mode is blank for unchange, or 'c' for active or 'p' for passive bssid=xx:xx:xx:xx:xx:xx specify a BSSID filter for the scan wc="[WILDCARD SSID]" specify a UNIX pattern matching filter (using * and ?) for SSIDs found in a broadcast probe keep=[0 or 1] keep the previous scan results (1), discard (0) dur=[scan time] time to scan for each channel in milliseconds gap=[gap time] Time gap between two scans in milliseconds probes=[#] number of probe requests to send on each chan for each broadcast probe required and each SSID specific probe required (1-5) bss_type=[1,2,3] BSS type: 1 (Infra), 2(Adhoc), 3(Any) sort_by_ch Sort by channel number in ascending order. Default mode: Sort by Signal Strength in descending order. scan_type=[0,1] ext scan type (0-1) 0: legacy, 1: enhance scan Any combination of the above arguments can be supplied on the command line. If the chan token is absent, a full channel scan will be completed by driver. If the dur or probes tokens are absent, the driver default setting will be used. The bssid and ssid fields, if blank, will produce an unfiltered scan. It's allowed to input multiple ssid/wc entries, the max entry number is 10. The type field will default to 3 (Any) and the keep field will default to 0 (Discard). Examples: 1) Perform an active scan on channels 1, 6, and 11 in the 'g' band: setuserscan chan=1g,6g,11g 2) Perform a passive scan on channel 11 for 20 ms: setuserscan chan=11gp dur=20 3) Perform an active scan on channels 1, 6, and 11; and a passive scan on channel 36 in the 'a' band: setuserscan chan=1g,6g,11g,36ap 4) Perform an active scan on channel 6 and 36 for specific SSID: setuserscan chan=6g,36a ssid=TestAP1 ssid=TestAP2 5) Scan all available channels (B/G/N, A bands) for a specific BSSID, keep the current scan table intact, update existing or append new scan data: setuserscan bssid=00:50:43:20:12:82 keep=1 6) Scan channel 6, for all infrastructure networks, sending two probe requests. Keep the previous scan table intact. Update any duplicate BSSID/SSID matches with the new scan data: setuserscan chan=6g bss_type=1 probes=2 keep=1 7) Scan channel 1 and 6, for all networks matching the NXP*AP or AP*NXP? patterns and for NXPTst SSID. Generate 3 broadcast probes for the patterns and 3 SSID specific probes for NXPTst on both channel 1 and channel 6. setuserscan chan=1g,6g probes=3 wc="NXP*AP" wc="AP*NXP?" ssid="NXPTst" 8) Scan all the channels for specified band. setuserscan chan=0g 9) Perform active scan for a list of specific BSSIDs setuserscan bssid=00:50:43:20:12:82 bssid=48:e2:44:3f:ec:76 9) Scan channel 1 and 6, send 3 probe requests, scan each channel for 40 ms with time gap of 50ms between 2 scans setuserscan chan=1g,6g probes=3 dur=40 gap=50 10) Perform an enhance scan setuserscan scan_type=1 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. cancelscan This command is used to cancel scan Usage: mlanutl mlanX cancelscan sleepparams This command is used to set the sleepclock configurations Usage: mlanutl mlanX sleepparams [ ] 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) Examples: mlanutl mlan0 sleepparams : Get current sleepclock configuration mlanutl mlan0 sleepparams 10 1000 2000 1 0 128 : Set sleepclock configuration sleeppd This command is used to configure the sleep period of the WLAN device. Usage: mlanutl mlanX sleeppd [] Where the parameter is: period: sleep period in milliseconds. Range 10~60. 0 for disable. Examples: mlanutl mlan0 sleeppd : Get sleep period configuration mlanutl mlan0 sleeppd 10 : Set sleep period to 10 ms sysclock This command is used to set/get system clocks in MHz. The current system clock, configurable system clocks and all of the supported system clocks will be returned if no parameter provided. Examples: mlanutl mlan0 sysclock : Get system clocks 80 80 128 128 128 5 11 16 20 22 32 40 44 64 80 106 128 160 ... (The current system clock is 80 MHz. The configurable system clocks of non-security, security, non-security A-MPDU and security A-MPDU are 80 MHz, 128 MHz, 128 MHz and 128 MHz. The supported system clocks are 5 MHz, 11 MHz, ..., 160 MHz, 182 MHz, 213 MHz, 256 MHz, 320 Mhz, 366 MHz , ... . the Max system clocks is different for different chips, you could use this command to get the supported system clock) mlanutl mlanX sysclock 80 : Set system clock in non-security mode to 80 MHz, no change for others mlanutl mlanX sysclock 0 0 128 : Set system clock in non-security A-MPDU mode to 128 MHz, no changes for others tcpackenh This command is used to set/get TCP ACK enhancement mode. Usage: mlanutl mlanX tcpackenh [l] [m] where [l] is a control to set TCP ACK enhancement mode 1 -- Enable TCP ACK enhancement (default) 0 -- Disable TCP ACK enhancement [m] is to configure TCP ACK max hold number default value is 9, which means driver could hold up to 9 TCP ACK and only send the last one to peer. Examples: mlanutl mlan0 tcpackenh : Display TCP ACK enhancement mlanutl mlan0 tcpackenh 1 : Enable TCP ACK enhancement mlanutl mlan0 tcpackenh 0 : Disable TCP ACK enhancement mlanutl mlan0 tcpackenh 1 1 : Enable TCP ACK enhancement and configure TCP ACK drop percentage to 50% mlanutl mlan0 tcpackenh 1 2 : Enable TCP ACK enhancement and configure TCP ACK drop percentage to 67% mlanutl mlan0 tcpackenh 1 3 : Enable TCP ACK enhancement and configure TCP ACK drop percentage to 75% mlanutl mlan0 tcpackenh 1 4 : Enable TCP ACK enhancement and configure TCP ACK drop percentage to 80% mlanutl mlan0 tcpackenh 1 5 : Enable TCP ACK enhancement and configure TCP ACK drop percentage to 83% mlanutl mlan0 tcpackenh 1 6 : Enable TCP ACK enhancement and configure TCP ACK drop percentage to 85% mlanutl mlan0 tcpackenh 1 7 : Enable TCP ACK enhancement and configure TCP ACK drop percentage to 87.5% mlanutl mlan0 tcpackenh 1 8 : Enable TCP ACK enhancement and configure TCP ACK drop percentage to 88.8% host_tdls_config This command is used to support channel switch and uapsd for host based tdls Usage: mlanutl mlanX host_tdls_config Where the parameter is: host_tdls.conf: The configuration file specifying to enable/disable uapsd/cs and related parameters. Examples: mlanutl mlan0 host_tdls_config config/host_tdls.conf : enable or disable uapsd/cs, config the channel related ie, based on the configuration file. tdls_channel_switch This command is used to send TDLS channel switch request. Usage: mlanutl mlanX tdls_channel_switch Where the parameter is: tdls.conf: The configuration file for sending TDLS channel switch command. Examples: mlanutl mlan0 tdls_channel_switch config/tdls.conf : Send TDLS channel switch command, based on the configuration file. tdls_config This command is used to enable/disable TDLS on device. Usage: mlanutl mlanX tdls_config <0/1> Where the parameter is: 0: Enable TDLS. 1: Disable TDLS. Examples: mlanutl mlan0 tdls_config 0 : Disable TDLS mlanutl mlan0 tdls_config 1 : Enable TDLS tdls_cs_params This command is used to set TDLS channel switch params Usage: mlanutl mlanX tdls_cs_params Where the parameter is: tdls.conf: The configuration file specifying the TDLS channel switch params. Examples: mlanutl mlan0 tdls_cs_params config/tdls.conf : Set TDLS channel switch params, based on the configuration file. tdls_debug This command is used for FW debug functionality and tests. tdls_disable_cs This command is used to disable TDLS channel switch Usage: mlanutl mlanX tdls_disable_cs Where the parameter is: tdls.conf: The configuration file to disable TDLS channel switch. Examples: mlanutl mlan0 tdls_disable_cs config/tdls.conf : Disable TDLS channel switch, based on the configuration file. tdls_discovery This command is used to request TDLS discovery. Usage: mlanutl mlanX tdls_discovery Where the parameter is: tdls.conf: The configuration file to request TDLS discovery. Examples: mlanutl mlan0 tdls_discovery config/tdls.conf : Request TDLS discovery based on the configuration file. tdls_link_status [peer_mac_address] This command is used to get link information about TDLS links or a TDLS link correponding to peer mac address. Usage: mlanutl mlanX tdls_link_status Where the parameter is: tdls.conf: The configuration file to send TDLS command to get current link status. Examples: mlanutl mlan0 tdls_link_status config/tdls.conf : Send TDLS command to get current link status based on the configuration file. tdls_powermode This command is used to send TDLS powermode request. Usage: mlanutl mlanX tdls_powermode Where the parameter is: tdls.conf: The configuration file for sending TDLS powermode command. Examples: mlanutl mlan0 tdls_powermode config/tdls.conf : Send TDLS powermode (either 0:Active, 1:PowerSave) command, based on the configuration file. tdls_setinfo This command is used for setting the capabilities of the TDLS station. Usage: mlanutl mlanX tdls_setinfo Where the parameter is: tdls.conf: The configuration file specifying the capabilities of the TDLS station. Examples: mlanutl mlan0 tdls_setinfo config/tdls.conf : Set capabilities of the TDLS station, based on the configuration file. tdls_setup This command is used to send TDLS setup request. Usage: mlanutl mlanX tdls_setup Where the parameter is: tdls.conf: The configuration file for sending TDLS setup request. Examples: mlanutl mlan0 tdls_setup config/tdls.conf : Send TDLS setup request, based on the configuration file. tdls_stop_channel_switch This command is used to send stop TDLS channel switch request. Usage: mlanutl mlanX tdls_stop_channel_switch Where the parameter is: tdls.conf: The configuration file for sending stop TDLS channel switch command. Examples: mlanutl mlan0 tdls_stop_channel_switch config/tdls.conf : Send stop TDLS channel switch command, based on the configuration file. tdls_teardown This command is used to send TDLS teardown request. Usage: mlanutl mlanX tdls_teardown Where the parameter is: tdls.conf: The configuration file for requesting teardown of TDLS link. Examples: mlanutl mlan0 tdls_teardown config/tdls.conf : Request teardown of TDLS link, based on the configuration file. hal_phy_cfg This command is used to set the hal/phy related config parameters Usage: mlanutl mlanX/uapX hal_phy_cfg Where the parameter is: hal_phy_cfg.conf: The configuration file specifying to the values of hal/phy related config parameters Examples: mlanutl mlan0 hal_phy_cfg config/hal_phy_cfg.conf : to enable or disable 11b_psd_mask the file would contain following paramters hal_phy_cfg{ 11b_psd_mask_cfg=1 # 1: 11b_psd_mask_enable, 0: 11b_psd_mask_disable } thermal This command is used to get the current thermal reading. Examples: mlanutl mlan0 thermal : Get thermal reading ts_status This command queries the FW for the status of TSIDs 0 through 7 configured via call admission control and displays the results in a table. Usage: mlanutl mlanX ts_status tsf Set/Get the TSF timer value for the station. Station maintains a TSF timer with modulus 2^64 counting in increments of microseconds. Usage: mlanutl mlanX/uapX tsf [t] where, [t] : 64bit timestamp value in microseconds Examples: mlanutl mlan0 tsf : Get timestamp mlanutl uap0 tsf 669468581993 : Set timestamp txaggrctrl This command is used to enable/disable TX AMPDU on infra link when TDLS link is established Usage: mlanutl mlanX txaggrctrl [m] Where: [m]: 1 to enable TX AMPDU on infra link; 0 to disable TX AMPDU on infra link Examples: mlanutl mlan0 txaggrctrl : Get current TX AMPDU status on infra link mlanutl mlan0 txaggrctrl 0 : Disable TX AMPDU on infra link mlanutl mlan0 txaggrctrl 1 : Enable TX AMPDU on infra link Note: The set command only works when TDLS link is established. txbufcfg This command can be used to get current buffer size. eg: mlanutl mlanX txbufcfg - This will display the current buffer size. Note:- The actual tx buf size will depends on AP's capability and max transmit buffer size. aggrctrl This command is used to set/get aggregation parameters. Usage: mlanutl mlanX aggrctrl [l] where the parameter: [l]: Enable (1) or disable (0) Tx aggregation Examples: mlanutl mlan0 aggrctrl : Display aggregation configurations mlanutl mlan0 aggrctrl 0 : Disable Tx aggregation mlanutl mlan0 aggrctrl 1 : Enable Tx aggregation usbaggrctrl This command is used to set/get USB aggregation parameters. Usage: mlanutl mlanX usbaggrctrl [l] [m] [n] [o] [p] [q] [r] [s] where the parameter: [l]: Enable (1) or disable (0) Tx aggregation [m]: Enable (1) or disable (0) Rx aggregation [n]: Tx aggregation max size/number For number based aggregation, the values supported are - 2, 4, 8, 16 For size based aggregation, the number supported are - 4096, 8192, 16384, 32768 [o]: Rx aggregation max size/number For number based deaggregation, the values supported are - 2, 4, 8, 16 For size based deaggregation, the number supported are - 4096, 8192, 16384, 32768 [p]: Tx aggregation alignment The value must be 2048, 4096, 8192 etc. [q]: Rx aggregation alignment The value must be 512, 1024, 2048, 4096, 8192 etc. [r]: Tx aggregation timeout Timeout value in us, 0 for disabled, 0xFFFF for dynamic timeout and 1-10000 are valid timeout value [s]: Rx aggregation timeout Timeout value in us, 0 for disabled Examples: mlanutl mlan0 usbaggrctrl : Display USB aggregation configurations mlanutl mlan0 usbaggrctrl 0 0 : Disable both Tx and Rx aggregation mlanutl mlan0 usbaggrctrl 1 1 4 8 2048 512 1000 200 : Enable both Tx and Rx aggregation usbresume This command is used to resume the device from suspend mode. Note: It's only valid on kernel 2.6.24 or later. usbsuspend This command is used to put device to suspend mode. Note: It's only valid on kernel 2.6.24 or later. opermodecfg This command is used to set and get 11ac Operating Mode Notification configuration. where is - This is the channel width setting for the opermodecfg 1: 20MHz 2: 40MHz 3: 80MHz 4: 160MHz or 80+80MHz where is - This parameter specifies the nss that the STA can receive. 1: NSS1 2: NSS2 3: NSS3 4: NSS4 5: NSS5 6: NSS6 7: NSS7 8: NSS8 wakeupreason This command is used to get the host sleep wakeup reason. Usage: mlanutl mlanX wakeupreason mlanutl uapX wakeupreason Examples: mlanutl mlan0 wakeupreason : Get the host sleep wakeup reason mlanutl uap0 wakeupreason : Get the host sleep wakeup reason 0: unknown 1: Broadcast data matched 2: Multicast data matched 3: Unicast data matched 4: Maskable event matched 5. Non-maskable event matched 6: Non-maskable condition matched (EAPoL rekey) 7: Magic pattern matched 8: Control frame matched 9: Management frame matched Others: reserved. (0) warmreset This command is used for warm reset of the interface. Usage: mlanutl mlanX warmreset wpssession This command is used to control wps session. No argument is used to get. where value of n is: 0 -- Disable 1 -- Enable Examples: mlanutl mlan0 wpssession 1 : Enable wpssession mlanutl mlan0 wpssession : Get wpssession status wmmcfg This command is used to control WMM. No argument is used to get. where value of n is: 0 -- Disable 1 -- Enable Examples: mlanutl mlan0 wmmcfg 1 : Enable WMM mlanutl mlan0 wmmcfg : Get WMM status wmmparamcfg This command is used to configure WMM paramameters. Usage: mlanutl mlanX wmmparamcfg [AC_BE AIFSN ECW_MAX ECW_MIN TX_OP] [AC_BK AIFSN ECW_MAX ECW_MIN TX_OP] [AC_VI AIFSN ECW_MAX ECW_MIN TX_OP] [AC_VO AIFSN ECW_MAX ECW_MIN TX_OP] The supported option are: AC_BE: 0 AC_BK: 1 AC_VI: 2 AC_V0: 3 AIFSN: AIFSN value ECW_MAX: ECW max ECW_MIN: ECW min TX_OP: TXOP Limit empty - Get current WMM parameters Example: mlanutl mlanX wmmparamcfg 0 3 10 4 0 Set AC_BE with AIFSN 3, ECW_MAX 10, ECW_MIN 4 and TXOP 0 mlanutl mlanX wmmparamcfg 1 7 10 4 0 Set AC_BK with AIFSN 7, ECW_MAX 10, ECW_MIN 4 and TXOP 0 mlanutl mlanX wmmparamcfg 2 2 4 3 94 Set AC_VI with AIFSN 2, ECW_MAX 4, ECW_MIN 3 and TXOP 94 mlanutl mlanX wmmparamcfg 3 2 3 2 47 Set AC_VO with AIFSN 2, ECW_MAX 3, ECW_MIN 2 and TXOP 47 mlanutl mlanX wmmparamcfg Get current WMM parameters mlanutl mlanX wmmparamcfg 0 3 10 4 0 1 7 10 4 0 2 2 4 3 94 3 2 3 2 47 Set AC_BE with AIFSN 3, ECW_MAX 10, ECW_MIN 4 and TXOP 0 Set AC_BK with AIFSN 7, ECW_MAX 10, ECW_MIN 4 and TXOP 0 Set AC_VI with AIFSN 2, ECW_MAX 4, ECW_MIN 3 and TXOP 94 Set AC_VO with AIFSN 2, ECW_MAX 3, ECW_MIN 2 and TXOP 47 wwscfg This command is used to set/get the WWS (World Wide Safe) mode. where value of m is: 0 -- Disable WWS mode (default) 1 -- Enable WWS mode Examples: mlanutl mlan0 wwscfg : Get WWS mode mlanutl mlan0 wwscfg 1 : Enable WWS mode mlanutl mlan0 wwscfg 0 : Disable WWS mode cfg_noa This is used to get/set P2P NoA (Notice of Absence) parameters only for P2P GO. Usage: mlanutl p2pX cfg_noa [h] [i] [j] [k] [l] where: [h] : noa_enable : 1/0 Set to 1 to enable NoA, 0 to disable NoA. [i] : index : 0 - 255 Identifies an instance of NoA timing. [j] : count : 1 - 255 Indicates the number of absence intervals. 255 means a continuous schedule. [k] : duration : Indicates the maximum duration in units of microseconds that P2P GO can remain absent following the start of a NoA interval. [l] : interval : Indicates the length of the NoA interval in units of microseconds. Examples: mlanutl p2pX cfg_noa : Get noa configuration. mlanutl p2pX cfg_noa 1 1 255 50 100 : Set noa configuration. cfg_opp_ps This is used to get/set P2P OPP-PS parameters only for P2P GO. Usage: mlanutl p2pX cfg_opp_ps [m] [n] where: [m] : ps_enable : 1/0 Set to 1 to indicate P2P GO is using opportunistic power save. Set to 0 if opportunistic power save is disabled. [n] : ct_window : A period of time in TU after a TBTT during which P2P GO is present. 0 indicates that there shall be no CTWindow (Client Traffic Window). Examples: mlanutl p2pX cfg_opp_ps : Get noa configuration. mlanutl p2pX cfg_opp_ps 1 7 : Set noa configuration. rxpktcoal_cfg This is used to get/set RX packet coalescing paramters Usage: mlanutl mlanX rxpktcoal_cfg [m] [n] where: [m]: pkt_threshold: count after which packets would be sent to host. Valid values 1-7 [n]: delay: timeout in ms after which packets would be sent to host. Valid values 1-4 Coalescing is disabled if both or either of packet_thershold and delay is zero RX packet coalescing parameters can be changed only when device is in idle state i.e. all interfaces are disconnected. get_sensor_temp This command is used to get SOC temperature Usage: mlanutl mlanX get_sensor_temp indrstcfg This command is used to set/ get independent reset mode configuration Usage : mlanutl indrstcfg [gpio_pin] interface : mlanX, uapX ir_mode : 0 -- Disable 1 -- Enable out band reset, disable in band 2 -- Enable in band, disable out band gpio_pin : 255 -- Default pin for reset any other number for changing the gpio for reset. Example : mlanutl mlan0 indrstcfg 1 255 : Set default pin on interface mlan0 as reset pin mlanutl mlan0 indrstcfg 0 : Disable the gpio 17 as reset pin on interface mlan0 mlanutl mlan0 indrstcfg : Get the status and the pin used for reset pin mlanutl mlan0 indrstcfg 2 : Enable in band reset mode ctrldeauth This command is used to set/get firmware ctrldeauth setting Usage : mlanutl uapX ctrldeauth Where value of n is : 0 -- Firmware will use default behavior 1 -- Firmware will not send deauth packet when uap move to another channel. Example : mlanutl uap0 ctrldeauth : Get current setting mlanutl uap0 ctrldeauth : Firmware will not send deauth packet when uap move to different channel. robustcoex This command is used to set robust coex. Usage : mlanutl robustcoex [Enable/Disable] [gpionum] [gpiopolarity] Enable/Disable : 0 -- Disable ; 1 -- Enable gpionum : Number of gpio gpiopolarity : polarity of gpio Example : mlanutl mlan0 robustcoex gpiocfg 1 4 1 : Enable robustcoex gpio, set gpionum to 4 and gpiopolarity to 1 mlanutl mlan0 robustcoex gpiocfg 0 : Disable robustcoex gpio cwmode This command is used to set Cont. Tx/Wave mode. Usage: mlanutl cwmode config/cwmode.conf interface: mlanX cwmode.conf: This config file specifies whether to enable/disable Cont Tx/Wave mode. User can specify parameters like Channel, datarate, BW, Channel Offset, Band. Detailed information about parameters is mentioned in the conf file. Example: mlanutl mlan0 cwmode config/cwmode.conf : Enable/Disable Cont Tx/Wave mode. mlanutl mlan0 cwmode : Get current Tx mode bootsleep This command is used to set and get boot sleep configure. Usage : mlanutl mlanX/uapX bootsleep : enable boot sleep : 0 - disable boot sleep : 1 - enable boot sleep Example : mlanutl mlan0/uap0 bootsleep 1 : Enable boot sleep mlanutl mlan0/uap0 bootsleep : Get boot sleep configure ssu Collect spectral analysis data and save them into /data/ssudump.txt Usage : mlanutl mlanX ssu [mode] [ssu file] mode : 2 -- Enable ssu and use FW default ssu parameter ssu file : file to config ssu parameter Example : mlanutl mlan0 ssu :Enable SSU and use driver default ssu parameter mlanutl mlan0 ssu config/ssu.conf :Enable SSU and use ssu parameter from ssu.conf mlanutl mlan0 ssu 2 :Enable SSU and use FW default ssu parameter csi Enable/disable channel state information collection Usage : mlanutl mlanX csi disable : 0 enable : config file with csi filters Example : mlanutl mlan0 csi config/csi.conf : Enable CSI mlanutl mlan0 csi 0 : Disable CSI arb Set HW ARB mode The command needs to be issued before association. Usage: mlanutl mlanX arb [mode] where the parameter is: [mode]: 0: arb mode 0 (default) 1: arb mode 1 2: arb mode 2 3: arb mode 3 (Improve TX throughput) 4: arb mode 4 (Improve RX throughput) Example : mlanutl mlan0 arb 1 : Set HW ARB mode 1 dmcs This command is used to config DMCS or get DMCS status. Usage: mlanutl mlanX dmcs [value] : config mapping policy disable dynamic mapping when [value = 0] enable dynamic mapping when [value = 1] : get DMCS status Example : mlanutl mlan0 dmcs 0 1 : Enable dynamic mapping mlanutl mlan0 dmcs 0 0 : Disable dynamic mapping mlanutl mlan0 dmcs 1 : Get DMCS status range_ext This command is used to config range extension mode. Usage: mlanutl mlanX/uapX range_ext [mode] where the parameter is: [mode]: 0: Default Mode(Auto Rate) 1: HE ER+DCM Mode 2: Legacy Mode(1 Mbps Rate) Example: mlanutl mlan0 range_ext : get range extension mode mlanutl mlan0 range_ext 1 : set range extension mode to HE ER+DCM mode twt_setup This command is used to config TWT setup parameters using conf file. Usage: mlanutl mlanX twt_setup [conf file] Example: mlanutl mlan0 twt_setup config/twt.conf twt_teardown This command is used to config TWT teardown parameters using conf file. Usage: mlanutl mlanX twt_teardown [conf file] Example: mlanutl mlan0 twt_teardown config/twt.conf rx_abort_cfg This command is used to set/get static rx abort config for pkt having weaker RSSI than threshold. This threshold will be overwritten on starting dynamic rx abort cfg ext. Usage: mlanutl rx_abort_cfg [enable] [rssi_threshold] Where the parameters are: : mlanX, uapX [enable] : 0 - Disable Rx abort 1 - Enable Rx abort of pkt having weak RSSI [rssi_threshold] : weak RSSI pkt threshold in dBm (absolute value) (default = 70) Examples: mlanutl mlan0 rx_abort_cfg - Display current rx abort configuration mlanutl uap0 rx_abort_cfg 1 60 - Enable rx abort and set weak RSSI Threshold to -60 dBm mlanutl mlan0 rx_abort_cfg 1 40 - Enable rx abort and set weak RSSI Threshold to -40 dBm mlanutl mlan0 rx_abort_cfg 0 - Disable rx abort rx_abort_cfg_ext This command is used to set/get dynamic rx abort config. This will set threshold based on minimum of ceiling rssi threshold and the weakest RSSI among all connected peers. Margin can be specified as an offset to this threshold. Default margin is set to -10 dBm. Ceiling rssi threshold can be changed by specifying. Default ceil is set to -70 dBm. This will be disabled on enabling fixed rx abort (rx_abort_cfg) Note: This dynamic rx abort mode is enabled by default. Usage: mlanutl rx_abort_cfg_ext [enable] [margin ceil_thresh] Where the parameters are: : mlanX, uapX [enable] : 0 - Disable Rx abort 1 - Enable Rx abort of pkt having weak RSSI [margin] : rssi margin in dBm (absolute val) (default = 10) [ceil_thresh] : ceiling weak RSSI pkt threshold in dBm (absolute value) (default = 70) Examples: mlanutl mlan0 rx_abort_cfg_ext - Display current rx abort configuration mlanutl uap0 rx_abort_cfg_ext 1 10 60 - Enable dynamic rx abort, set margin to -10 dBm and set ceil RSSI Threshold to -60 dBm mlanutl mlan0 rx_abort_cfg_ext 1 5 50 - Enable dynamic rx abort, set margin to -5 dBm and set ceil RSSI Threshold to -50 dBm mlanutl mlan0 rx_abort_cfg_ext 0 - Disable dynamic rx abort tx_ampdu_prot_mode This command is used to set either RTS/CTS or CTS2SELF protection mechanism in MAC, for aggregated Tx QoS data frames. RTS/CTS is enabled by default. Usage: mlanutl tx_ampdu_prot_mode [mode] Where the parameters are: : mlanX, uapX [mode] : 0 - Set RTS/CTS mode 1 - Set CTS2SELF mode 2 - Disable Protection mode 3 - Set Dynamic RTS/CTS mode Examples: mlanutl mlan0 tx_ampdu_prot_mode - Get currently set protection mode for Tx AMPDU mlanutl mlan0 tx_ampdu_prot_mode 1 - Set protection mode for Tx AMPDU to CTS2SELF rate_adapt_cfg This command is used to switch between SR rateadapt and Legacy rateadapt. FW default Algorithm is Legacy rateadapt when SR rateadapt is enabled then it is used to set static threshold based or dynamic noise based rate adaptation and set the timer interval to evaluate sw rate adaptation.For static mode, low and high thresholds for Tx aggregated pkt success rate should be configured. The Tx rate will decrease if success rate goes lower than LOW_THRESH, will increase if it goes beyond HIGH_THRESH, and will remain the same when success rate is between these thresholds.To set dynamic mode, specify 0xff for both low and high thresh. Note: config can be set only before associating with an external AP when in STA mode, or before starting bss when in uAP mode Usage: mlanutl rate_adapt_cfg [sr_rateadapt low_thresh high_thresh timer_interval] Where the parameters are: : mlanX, uapX [sr_rateadapt] : SR Rateadapt or Legacy Rateadapt [low_thresh] : lower tx success rate threshold [high_thresh] : higher tx success rate threshold [timer_interval] : interval to evaluate tx rate in sw in multiples of 10 (ms) Examples: mlanutl mlan0 rate_adapt_cfg - Display SR rateadapt or Legacy rateadapt enabled - Display current rate adapt configuration if SR rateadapt is enabled. mlanutl uap0 rate_adapt_cfg 1 60 80 10 - set lower Tx success rate threshold to 60%, higher to 80% and evaluate tx rate every 100 ms (i.e 10 * 10 = 100 ms) when SR Rateadapt is enabled. mlanutl mlan0 rateadapt_cfg 0 - switch to Legacy rateadapt. mlanutl mlan0 rateadapt_cfg 1 - switch to SR rateadapt. Fw default is dynamic Success threshold enabled with 100 ms linkadapt timer. mlanutl mlan0 rate_adapt_cfg 1 50 70 50 - set lower Tx success rate threshold to 50%, higher to 70% and evaluate tx rate every 500 ms (i.e 50 * 10 = 500 ms) when SR Rateadapt is enabled. mlanutl mlan0 rate_adapt_cfg 1 0xff 0xff 10 - set dynamic environment noise based mode and evaluate tx rate every 100 ms (i.e 10 * 10 = 100 ms) when SR Rateadapt is enabled. cck_desense_cfg This command is used to configure CCK (802.11b) Desensitization RSSI threshold. All CCK traffic beyond this threshold will be ignored, resulting in higher Tx throughput. Threshold value is in absolute value of rssi in dBm. In dynamic and enhanced modes, cck desense will be turned on only in presence of an active connection and the effective CCK desense RSSI threshold will be updated every rateadapt interval, based on: min{ceil_thresh, [min RSSI among all connected peers] - margin} Further, for dynamic enhanced mode, CCK desense will be turned on/off based on environment noise condition and ongoing Tx traffic rate. In this mode, CCK desense will also be turned off periodically in order to allow 802.11b Rx frames from Ext-AP, if rx rssi becomes weaker than the current threshold or when in uAP mode, frames from clients which attempt to connect with the uAP, but have weaker RSSI than the set threshold. Turn on and off intervals are specified in terms of rateadapt intervals. Please note that in this mode, if dynamic Rx Abort is enabled, then it will turn on/off in sync with cck desense. Usage: mlanutl cck_desense_cfg [mode] [margin ceil_thresh] [num_on_intervals num_off_intervals] Where the parameters are: : mlanX, uapX [mode] : 0 - Disable cck desense 1 - Enable dynamic cck desense mode 2 - Enable dynamic enhanced cck desense mode [margin] : rssi margin in dBm (absolute val) (default = 10) [ceil_thresh] : ceiling weak RSSI pkt threshold in dBm (absolute value) (default = 70) [num_on_intervals] : number of rateadapt intervals to keep cck desense "on" [for mode 2 only] (default = 20) [num_off_intervals]: number of rateadapt intervals to keep cck desense "off" [for mode 2 only] (default = 3) Examples: mlanutl mlan0 cck_desense_cfg - Display current cck desense configuration mlanutl uap0 cck_desense_cfg 1 10 70 - Set dynamic mode, margin to -10 dBm and ceil RSSI Threshold to -70 dBm mlanutl uap0 cck_desense_cfg 2 10 60 30 5 - Set dynamic enhanced mode, margin to -10 dBm, ceil RSSI Threshold to -60 dBm, num on intervals to 30 and num off intervals to 5. mlanutl mlan0 cck_desense_cfg 1 10 50 - Set dynamic mode, margin to -10 dBm and ceil RSSI Threshold to -50 dBm mlanutl mlan0 cck_desense_cfg 2 5 60 - Set dynamic enhanced mode, set margin to -5 dBm, set ceil RSSI Threshold to -60 dBm, and retain previous num on/off intervals setting. mlanutl mlan0 cck_desense_cfg 0 - Disable cck desense lpm This command is used to configure low power mode. Usage: mlanutl mlanX/uapX lpm [mode] Where the paramter is: [mode] : low power mode 0, 1, 2, 3 Examples: mlanutl mlan0 lpm Get low power mode mlanutl mlan0 lpm 1 Set low power mode to 1 dot11mc_unassoc_ftm_cfg This command is used to enable or disable the configuration for DOT11MC FTM frames exchanges in un-associated state for STA or uAP Usage: mlanutl dot11mc_unassoc_ftm_cfg [enable] Where the parameters are: : mlanX, uapX [enable] : 0 - Disable unassociated state FTM 1 - Enable unassociated state FTM Examples: mlanutl mlan0 dot11mc_unassoc_ftm_cfg - Get current state of unassociated state FTM cfg mlanutl mlan0 dot11mc_unassoc_ftm_cfg 1 - Set the unassociated state FTM cfg to Enabled tp_state This command is used to collect throughput result at different drop points. Usage: mlanutl mlanX tp_state [mode] [drop_point] Where the parameter is: [mode] : enable/disable tp_state collecting 0 - Disable 1 - Enable [drop_point] : Request driver to drop tx packets at this point 0 - Reserved for Tx 1 - Kernel sends packets with .ndo_start_xmit 2 - Before adding tx packets into queues 3 - After main process handles tx packets 4 - Before attaching pkts to bus 5 - Rx PCIE interrupt Recv Data before enqueue to list 6 - Rx after dequeue from list 7 - Rx before de-amsdu 8 - Rx before send to kernel 9 - Reserved for Rx Examples: mlanutl mlan0 tp_state 1 1 Collect throughput result and drop tx pkts at point 1. mlanutl mlan0 tp_state Get throughput results (only works with enable mode). mlanutl mlan0 tp_state 0 Disable throughput accounting. mlanutl mlan0 tp_state 1 0xff Just for reading TX/RX accounting, no pkts drop clocksync This command is used to set and get WIFI TSF based clock sync setting Usage: mlanutl mlanX/uapX clocksync [j][k] [l] [m] [n] where [j] mode - This parameter use to configure GPIO TSF latch mode 0: GPIO level 1: GPIO toggle 2: GPIO toggle on Next Beacon. [k] role 0: when mode set to 0 or 1 1: AP 2: STA [l] gpio pin number [m] GPIO Level/Toggle mode = 0 0: low 1: high mode = 1 or 2 0: low to high 1: high to low [n] GPIO pulse width mode = 0, reserved, set to 0 mode 1 or 2 0: GPIO remain on toggle level (high or low) Non-0: GPIO pulse width in microseconds (min 1 us) If no parameter provided, get is performed. Examples: mlanutl mlan0 clocksync 0 0 5 0 0 mlanutl mlan0 clocksync 1 0 10 1 500 mlanutl mlan0 clocksync 1 0 5 0 0 mlanutl mlan0 clocksync 2 1 10 1 500 mlanutl mlan0 clocksync 2 2 3 0 0 mlanutl mlan0 clocksync gettsfinfo This command is used to get TSF info Usage: mlanutl mlanX gettsfinfo [j] where [j] format 0: Report GPIO assert TSF 1: Report Beacon TSF and Offset (valid if CONFIG Mode 2) Examples: mlanutl mlan0 gettsfinfo Get GPIO assert TSF mlanutl mlan0 gettsfinfo 1 Get Beacon TSP and Offset (valid if CONFIG mode 2) targetchan This command is used to get/set target channel for UAP Usage: mlanutl uaX targetchan [j] where [j] target channel Examples: mlanutl uap0 targetchan Get current target channel mlanutl uap0 targetchan 52 Set target channel to 52 backuptchan This command is used to get/set backup channel for UAP Usage: mlanutl uaX backupchan [j] where [j] backup channel Examples: mlanutl uap0 backupchan Get current backup channel mlanutl uap0 backupchan 52 Set backup channel to 52 ips_cfg This command is used to get/set IPS Usage: mlanutl mlanX ips_cfg [1/0] Examples: mlanutl mlan0 ips_cfg Get current IPS config mlanutl mlan0 ips_cfg 1 Enable IPS mcast_aggr_group This command is used to add/remove multicast address to mcast_aggr_group. Also, while the address is set, stats for each of these addresses will be auto-logged. (Refer 'stats' command for more info) Usage: mlanutl mlanX/uapX mcast_aggr_group [action] [mcast_addr] where [action] : add/remove multicast mac address to mcast_aggr_group 0 - remove 1 - add [mcast_addr] : mcast address Examples: mlanutl uap0 mcast_aggr_group 1 01:00:5e:00:00:42 Add 01:00:5e:00:00:42 to mcast_aggr_group mlanutl uap0 mcast_aggr_group 0 01:00:5e:00:00:43 Remove 01:00:5e:00:00:43 from mcast_aggr_group mlanutl uap0 mcast_aggr_group List current mcast_aggr_group mc_aggr_cfg This command gets or sets the configuration of multicast packet aggregation. Usage: mlanutl mlanX/uapX mc_aggr_cfg [i][j] where [i]: Enable Bitmap , 1-Enable, 0-Disable Valid if corresponding mask bit is 1 Bit 0: MC aggregation Bit 1: Packet expiry Bit 2: CTS2Self Bit 3: CTS2Sef duration offset [j]: Mask Bitmap, 1-valid, 0-invalid Bit 0: MC aggregation Bit 1: Packet expiry Bit 2: CTS2Self Examples: mlanutl uap0 mc_aggr_cfg 1 1 Enable MC aggregation mlanutl uap0 mc_aggr_cfg 7 7 Enable MC aggregation,Packet expiry,CTS2Self feature mlanutl uap0 mc_aggr_cfg Query current MC aggregation configuration. mcast_tx This command is used to transmit multicast packets as per the mcast_tx conf file. Usage: mlanutl mcast_tx where : wifi interface name i.e. uap0 : multicast tx conf file stats This command is used to get/reset Tx-Rx stats for unicast/multicast address. Usage: ./mlanutl uapx stats [action] Where [action] : get/reset all stats for unicast and multicast addresses. all: get all stats collection reset: reset all stats collection mcast_timeout: get all multicast timeout stats collection Examples: mlanutl uap0 stats all Get all stats for mac address configured using mcast_aggr_group command mlanutl uap0 stats reset Reset all stats for mac address configured using mcast_aggr_group command mlanutl uap0 stats mcast_timeout Get all multicast timeout stats for mac address configured using mcast_aggr_group command getuuid This command is used to read 16 byte uuid for a given interface and uuid remains same for Usage: ./mlanutl getuuid Examples: i/p: mlanutl uap0 getuuid o/p: uuid: a0b0c0d0d0c0b0a0a0b0c0d0d0c0b0a0 =============================================================================== =============================================================================== U S E R M A N U A L F O R Enable Scan GAP Following commands can be used to enable gap between scans. mlanutl mlanX scancfg [t] [m] [p] [s] [a] [b] [c] [ext] [gap] mlanutl mlanX setuserscan [ARGS] For detail information, please refer the command description. ===============================================================================