This shows you the differences between two versions of the page.
Both sides previous revision Previous revision | |||
en:users:drivers:wil6210 [2015/11/15 13:21] Vladimir Kondratiev |
en:users:drivers:wil6210 [2015/11/15 14:34] (current) Vladimir Kondratiev |
||
---|---|---|---|
Line 144: | Line 144: | ||
<code> mode = [auto|manual] state = [idle|pending|running]</code> | <code> mode = [auto|manual] state = [idle|pending|running]</code> | ||
If **state** is //pending//, it is time to collect all crash information as desired, and continue with recovery by writing **run** into **recovery**: | If **state** is //pending//, it is time to collect all crash information as desired, and continue with recovery by writing **run** into **recovery**: | ||
- | * * * <code>echo -n "run" > /sys/kernel/debug/ieee80211/phy/wil6210/recovery</code> | + | * <code>echo -n "run" > /sys/kernel/debug/ieee80211/phy/wil6210/recovery</code> |
==== Debug facilities ==== | ==== Debug facilities ==== | ||
Line 167: | Line 167: | ||
* register access. All ICR (Interrupt Control Registers) groups represented as directories, with entries per register, allowing read/write. ITR (Interrupt Threshold Registers) represented as well. | * register access. All ICR (Interrupt Control Registers) groups represented as directories, with entries per register, allowing read/write. ITR (Interrupt Threshold Registers) represented as well. | ||
* raw memory access. All memory sections represented as 'blob' files, providing read only access to the memory on card. Sections include: | * raw memory access. All memory sections represented as 'blob' files, providing read only access to the memory on card. Sections include: | ||
- | <code>+-------------------------------+---------------+ | + | <code>+---------------------------------+---------------+ |
- | | blob_xxx | BAR0 | Size | Comment | | + | | blob_xxx | BAR0 | Size | Comment | |
- | | file name | offset | | | | + | | file name | offset | | | |
- | +-----------+---------+---------+---------------+ | + | +-------------+---------+---------+---------------+ |
- | | rgf | 0x0 | 0xa000 | Register file | | + | | rgf | 0x0 | 0xa000 | Register file | |
- | | fw_code | 0x40000 | 0x40000 | FW code | | + | | AGC_tbl | 0xa000 | 0x1000 | AGC table | |
- | | fw_data | 0x80000 | 0x8000 | FW data | | + | | rgf_ext | 0xb000 | 0x1000 | Ext. rgf | |
- | | fw_peri | 0x88000 | 0x18000 | FW peripheral | | + | | mac_rgf_ext | 0xc000 | 0x200 | Mac Ext. rgf | |
- | | uc_code | 0xa0000 | 0x10000 | Ucode code | | + | | fw_code | 0x40000 | 0x40000 | FW code | |
- | | uc_data | 0xb0000 | 0x4000 | Ucode data | | + | | fw_data | 0x80000 | 0x8000 | FW data | |
- | +-----------+---------+---------+---------------+</code> | + | | fw_peri | 0x88000 | 0x18000 | FW peripheral | |
+ | | uc_code | 0xa0000 | 0x10000 | Ucode code | | ||
+ | | uc_data | 0xb0000 | 0x4000 | Ucode data | | ||
+ | +-------------+---------+---------+---------------+</code> | ||
Raw memory access used by firmware/ucode trace extractor. See below. Also, raw memory dump may be obtained for later analysis. | Raw memory access used by firmware/ucode trace extractor. See below. Also, raw memory dump may be obtained for later analysis. | ||
* DWORD memory read, as FW see it. Files 'mem_addr' and 'mem_val' provide access to the memory, using FW addresses (FW memory mapping is somewhat different from what host see in BAR0). Write address to the 'mem_addr', then read 'mem_val'. It will reads like "[0x%08x] = 0x%08x\n", addr, value | * DWORD memory read, as FW see it. Files 'mem_addr' and 'mem_val' provide access to the memory, using FW addresses (FW memory mapping is somewhat different from what host see in BAR0). Write address to the 'mem_addr', then read 'mem_val'. It will reads like "[0x%08x] = 0x%08x\n", addr, value |