User Tools

Site Tools


en:users:drivers:ath10k:debug

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
Last revision Both sides next revision
en:users:drivers:ath10k:debug [2015/01/26 09:49]
127.0.0.1 external edit
en:users:drivers:ath10k:debug [2017/03/29 13:47]
Kalle Valo Add a section about firmware crash dump files
Line 26: Line 26:
         ATH10K_DBG_BMI ​         = 0x00000400,         ATH10K_DBG_BMI ​         = 0x00000400,
         ATH10K_DBG_REGULATORY ​  = 0x00000800,         ATH10K_DBG_REGULATORY ​  = 0x00000800,
 +        ATH10K_DBG_TESTMODE = 0x00001000,
 +        ATH10K_DBG_WMI_PRINT = 0x00002000,
 +        ATH10K_DBG_PCI_PS = 0x00004000,
 +        ATH10K_DBG_AHB = 0x00008000,
         ATH10K_DBG_ANY ​         = 0xffffffff,         ATH10K_DBG_ANY ​         = 0xffffffff,
 };</​code>​ };</​code>​
Line 142: Line 146:
  
 Just type iw to get short hint how to use it.  Just type iw to get short hint how to use it. 
- 
  
 <​code>​iw <​code>​iw
Line 151: Line 154:
 . .
 .</​code>​ .</​code>​
-Currently ath10k HW is limited to handle only single fixed rate setting or limit number of used spatial streams. ​ 
  
-Not passing ​any arguments would clear the existing mask (if any)+Currently ath10k is limited to handle VHT MCS in ranges: none, 0-7, 0-8, and 0-9. You cannot set any other ranges.
  
-Some examples+Not passing any arguments would clear the existing mask (if any):
  
 +<​code>​iw wlan0 set bitrates</​code>​
  
-<​code>​iw wlanX set bitrates legacy-5 ht-mcs-5 vht-mcs-5 2:​9</​code>​ +To set VHT, nss=2, mcs=9:
-will setup VHT, nss=2, mcs=9 +
  
 +<​code>​iw wlan0 set bitrates legacy-5 ht-mcs-5 vht-mcs-5 2:​9</​code>​
  
-<​code>​iw wlanX set bitrates legacy-5 18 ht-mcs-5 vht-mcs-5</​code>​ 
-will setup legacy, 18Mbps ​ 
  
 +To set legacy, 18Mbps:
  
-<​code>​iw ​wlanX set bitrates legacy-5 ht-mcs-5 ​vht-mcs-5</​code>​ +<​code>​iw ​wlan0 set bitrates legacy-5 ​18 ht-mcs-5 vht-mcs-5</​code>​
-will setup HT, nss=1, mcs=3 +
  
 +To set HT, nss=1, mcs=3:
  
-<​code>​iw ​wlanX set bitrates legacy-5 ht-mcs-5 vht-mcs-5 ​1:0-9</​code>​ +<​code>​iw ​wlan0 set bitrates legacy-5 ht-mcs-5 ​vht-mcs-5</​code>​
-will setup nss=1 +
  
 +To set nss=1 MCS indexes 0-9
  
-<​code>​iw ​wlanX set bitrates legacy-5 ht-mcs-5 vht-mcs-5 1:0-9 2:​0-9</​code>​ +<​code>​iw ​wlan0 set bitrates legacy-5 ht-mcs-5 vht-mcs-5 1:​0-9</​code>​ 
-will setup nss=2 + 
 + 
 +To set nss=2: 
 + 
 +<​code>​iw wlan0 set bitrates legacy-5 ht-mcs-5 vht-mcs-5 1:0-9 2:​0-9</​code>​
  
 It is possible to force SGI by adding force-sgi at the end of command: ​ It is possible to force SGI by adding force-sgi at the end of command: ​
  
 +<​code>​iw wlan0 set bitrates legacy-5 ht-mcs-5 vht-mcs-5 2:9 force-sgi</​code>​
  
-<​code>​iw ​wlanX set bitrates legacy-5 ht-mcs-5 vht-mcs-5 ​2:9 force-sgi</​code>​+Few more complicated examples, only supported since 4.2 kernel: 
 + 
 +<​code>​ 
 +iw wlan0 set bitrates legacy-5 ​6 12 ht-mcs-5 1 2 3 
 +iw wlan0 set bitrates legacy-5 ht-mcs-5 7 8 9 
 +iw wlan0 set bitrates legacy-5 24 ht-mcs-5 vht-mcs-5 ​1:0-
 +</​code>​
  
 ==== Simulating firmware crashes ==== ==== Simulating firmware crashes ====
Line 197: Line 210:
 `assert` - this will send special illegal parameter to firmware to cause assert failure and crash. `assert` - this will send special illegal parameter to firmware to cause assert failure and crash.
 `hw-restart` - this will simply queue hw restart without fw/hw actually crashing.</​code>​ `hw-restart` - this will simply queue hw restart without fw/hw actually crashing.</​code>​
 +
 +==== Firmware crash dump file ====
 +
 +When the firmware crashes ath10k collects various information which helps to debug the crash and creates a crash dump file. This is available via dev_coredump facility from /​sys/​class/​devcoredump.
 +
 +To automatically collect devcoredump files add script /​usr/​local/​sbin/​devcoredump-collect.sh:​
 +
 +<​code>​
 +#!/bin/sh
 +
 +timestamp=$(date +%Y%m%d%H%M%S)
 +filename="/​var/​spool/​devcoredump/​devcoredump-${timestamp}.dump"​
 +cat /​sys/​${DEVPATH}/​data > ${filename}
 +echo 1 > /​sys/​${DEVPATH}/​data</​code>​
 +
 +Create a directory for the dump files:
 +
 +<​code>​
 +sudo mkdir /​var/​spool/​devcoredump</​code>​
 +
 +And add a udev rules script /​etc/​udev/​rules.d/​50-devcoredump.rules:​
 +
 +<​code>​
 +SUBSYSTEM=="​devcoredump",​ ACTION=="​add",​ RUN+="/​usr/​local/​sbin/​devcoredump-collect.sh"</​code>​
 +
 +
en/users/drivers/ath10k/debug.txt · Last modified: 2017/03/29 14:32 by Kalle Valo