]> Git Repo - J-linux.git/blob - drivers/net/wireless/intel/iwlwifi/fw/api/dbg-tlv.h
Merge tag 'vfs-6.13-rc7.fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/vfs/vfs
[J-linux.git] / drivers / net / wireless / intel / iwlwifi / fw / api / dbg-tlv.h
1 /* SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause */
2 /*
3  * Copyright (C) 2018-2024 Intel Corporation
4  */
5 #ifndef __iwl_fw_dbg_tlv_h__
6 #define __iwl_fw_dbg_tlv_h__
7
8 #include <linux/bitops.h>
9
10 #define IWL_FW_INI_MAX_REGION_ID                64
11 #define IWL_FW_INI_MAX_NAME                     32
12 #define IWL_FW_INI_MAX_CFG_NAME                 64
13 #define IWL_FW_INI_DOMAIN_ALWAYS_ON             0
14 #define IWL_FW_INI_REGION_ID_MASK               GENMASK(15, 0)
15 #define IWL_FW_INI_REGION_DUMP_POLICY_MASK      GENMASK(31, 16)
16 #define IWL_FW_INI_PRESET_DISABLE               0xff
17
18 /**
19  * struct iwl_fw_ini_hcmd
20  *
21  * @id: the debug configuration command type for instance: 0xf6 / 0xf5 / DHC
22  * @group: the desired cmd group
23  * @reserved: to align to FW struct
24  * @data: all of the relevant command data to be sent
25  */
26 struct iwl_fw_ini_hcmd {
27         u8 id;
28         u8 group;
29         __le16 reserved;
30         u8 data[];
31 } __packed; /* FW_DEBUG_TLV_HCMD_DATA_API_S_VER_1 */
32
33 /**
34  * struct iwl_fw_ini_header - Common Header for all ini debug TLV's structures
35  *
36  * @version: TLV version
37  * @domain: domain of the TLV. One of &enum iwl_fw_ini_dbg_domain
38  */
39 struct iwl_fw_ini_header {
40         __le32 version;
41         __le32 domain;
42         /* followed by the data */
43 } __packed; /* FW_TLV_DEBUG_HEADER_S_VER_1 */
44
45 /**
46  * struct iwl_fw_ini_addr_size - Base address and size that defines
47  * a chunk of memory
48  *
49  * @addr: the base address (fixed size - 4 bytes)
50  * @size: the size to read
51  */
52 struct iwl_fw_ini_addr_size {
53         __le32 addr;
54         __le32 size;
55 } __packed; /* FW_TLV_DEBUG_ADDR_SIZE_VER_1 */
56
57 /**
58  * struct iwl_fw_ini_region_dev_addr_range - Configuration to read
59  * device address range
60  *
61  * @offset: offset to add to the base address of each chunk
62  * The addrs[] array will be treated as an array of &iwl_fw_ini_addr_size -
63  * an array of (addr, size) pairs.
64  */
65 struct iwl_fw_ini_region_dev_addr_range {
66         __le32 offset;
67 } __packed; /* FW_TLV_DEBUG_DEVICE_ADDR_RANGE_API_S_VER_1 */
68
69 /**
70  * struct iwl_fw_ini_region_dev_addr - Configuration to read device addresses
71  *
72  * @size: size of each memory chunk
73  * @offset: offset to add to the base address of each chunk
74  */
75 struct iwl_fw_ini_region_dev_addr {
76         __le32 size;
77         __le32 offset;
78 } __packed; /* FW_TLV_DEBUG_DEVICE_ADDR_API_S_VER_1 */
79
80 /**
81  * struct iwl_fw_ini_region_fifos - Configuration to read Tx/Rx fifos
82  *
83  * @fid: fifos ids array. Used to determine what fifos to collect
84  * @hdr_only: if non zero, collect only the registers
85  * @offset: offset to add to the registers addresses
86  */
87 struct iwl_fw_ini_region_fifos {
88         __le32 fid[2];
89         __le32 hdr_only;
90         __le32 offset;
91 } __packed; /* FW_TLV_DEBUG_REGION_FIFOS_API_S_VER_1 */
92
93 /**
94  * struct iwl_fw_ini_region_err_table - error table region data
95  *
96  * Configuration to read Umac/Lmac error table
97  *
98  * @version: version of the error table
99  * @base_addr: base address of the error table
100  * @size: size of the error table
101  * @offset: offset to add to &base_addr
102  */
103 struct iwl_fw_ini_region_err_table {
104         __le32 version;
105         __le32 base_addr;
106         __le32 size;
107         __le32 offset;
108 } __packed; /* FW_TLV_DEBUG_REGION_ERROR_TABLE_API_S_VER_1 */
109
110 /**
111  * struct iwl_fw_ini_region_special_device_memory - special device memory
112  *
113  * Configuration to read a special memory
114  *
115  * @type: type of the special memory
116  * @version: version of the special memory
117  * @base_addr: base address of the error table
118  * @size: size of the error table
119  * @offset: offset to add to &base_addr
120  */
121 struct iwl_fw_ini_region_special_device_memory {
122         __le16 type;
123         __le16 version;
124         __le32 base_addr;
125         __le32 size;
126         __le32 offset;
127 } __packed; /* FW_TLV_DEBUG_REGION_SPECIAL_DEVICE_ADDR_API_S_VER_1 */
128
129 /**
130  * struct iwl_fw_ini_region_internal_buffer - internal buffer region data
131  *
132  * Configuration to read internal monitor buffer
133  *
134  * @alloc_id: allocation id one of &enum iwl_fw_ini_allocation_id
135  * @base_addr: internal buffer base address
136  * @size: size internal buffer size
137  */
138 struct iwl_fw_ini_region_internal_buffer {
139         __le32 alloc_id;
140         __le32 base_addr;
141         __le32 size;
142 } __packed; /* FW_TLV_DEBUG_REGION_INTERNAL_BUFFER_API_S_VER_1 */
143
144 /**
145  * struct iwl_fw_ini_region_tlv - region TLV
146  *
147  * Configures parameters for region data collection
148  *
149  * @hdr: debug header
150  * @id: region id. Max id is %IWL_FW_INI_MAX_REGION_ID
151  * @type: region type. One of &enum iwl_fw_ini_region_type
152  * @sub_type: region sub type
153  * @sub_type_ver: region sub type version
154  * @reserved: not in use
155  * @name: region name
156  * @dev_addr: device address configuration. Used by
157  *      %IWL_FW_INI_REGION_DEVICE_MEMORY, %IWL_FW_INI_REGION_PERIPHERY_MAC,
158  *      %IWL_FW_INI_REGION_PERIPHERY_PHY, %IWL_FW_INI_REGION_PERIPHERY_AUX,
159  *      %IWL_FW_INI_REGION_PAGING, %IWL_FW_INI_REGION_CSR,
160  *      %IWL_FW_INI_REGION_DRAM_IMR and %IWL_FW_INI_REGION_PCI_IOSF_CONFIG
161  *      %IWL_FW_INI_REGION_DBGI_SRAM, %FW_TLV_DEBUG_REGION_TYPE_DBGI_SRAM,
162  *      %IWL_FW_INI_REGION_PERIPHERY_SNPS_DPHYIP,
163  * @dev_addr_range: device address range configuration. Used by
164  *      %IWL_FW_INI_REGION_PERIPHERY_MAC_RANGE and
165  *      %IWL_FW_INI_REGION_PERIPHERY_PHY_RANGE
166  * @fifos: fifos configuration. Used by %IWL_FW_INI_REGION_TXF and
167  *      %IWL_FW_INI_REGION_RXF
168  * @err_table: error table configuration. Used by
169  *      %IWL_FW_INI_REGION_LMAC_ERROR_TABLE and
170  *      %IWL_FW_INI_REGION_UMAC_ERROR_TABLE
171  * @internal_buffer: internal monitor buffer configuration. Used by
172  *      %IWL_FW_INI_REGION_INTERNAL_BUFFER
173  * @special_mem: special device memory region, used by
174  *      %IWL_FW_INI_REGION_SPECIAL_DEVICE_MEMORY
175  * @dram_alloc_id: dram allocation id. One of &enum iwl_fw_ini_allocation_id.
176  *      Used by %IWL_FW_INI_REGION_DRAM_BUFFER
177  * @tlv_mask: tlv collection mask. Used by %IWL_FW_INI_REGION_TLV
178  * @addrs: array of addresses attached to the end of the region tlv
179  */
180 struct iwl_fw_ini_region_tlv {
181         struct iwl_fw_ini_header hdr;
182         __le32 id;
183         u8 type;
184         u8 sub_type;
185         u8 sub_type_ver;
186         u8 reserved;
187         u8 name[IWL_FW_INI_MAX_NAME];
188         union {
189                 struct iwl_fw_ini_region_dev_addr dev_addr;
190                 struct iwl_fw_ini_region_dev_addr_range dev_addr_range;
191                 struct iwl_fw_ini_region_fifos fifos;
192                 struct iwl_fw_ini_region_err_table err_table;
193                 struct iwl_fw_ini_region_internal_buffer internal_buffer;
194                 struct iwl_fw_ini_region_special_device_memory special_mem;
195                 __le32 dram_alloc_id;
196                 __le32 tlv_mask;
197         }; /* FW_TLV_DEBUG_REGION_CONF_PARAMS_API_U_VER_1 */
198         __le32 addrs[];
199 } __packed; /* FW_TLV_DEBUG_REGION_API_S_VER_1 */
200
201 /**
202  * struct iwl_fw_ini_debug_info_tlv
203  *
204  * debug configuration name for a specific image
205  *
206  * @hdr: debug header
207  * @image_type: image type
208  * @debug_cfg_name: debug configuration name
209  */
210 struct iwl_fw_ini_debug_info_tlv {
211         struct iwl_fw_ini_header hdr;
212         __le32 image_type;
213         u8 debug_cfg_name[IWL_FW_INI_MAX_CFG_NAME];
214 } __packed; /* FW_TLV_DEBUG_INFO_API_S_VER_1 */
215
216 /**
217  * struct iwl_fw_ini_allocation_tlv - Allocates DRAM buffers
218  *
219  * @hdr: debug header
220  * @alloc_id: allocation id. One of &enum iwl_fw_ini_allocation_id
221  * @buf_location: buffer location. One of &enum iwl_fw_ini_buffer_location
222  * @req_size: requested buffer size
223  * @max_frags_num: maximum number of fragments
224  * @min_size: minimum buffer size
225  */
226 struct iwl_fw_ini_allocation_tlv {
227         struct iwl_fw_ini_header hdr;
228         __le32 alloc_id;
229         __le32 buf_location;
230         __le32 req_size;
231         __le32 max_frags_num;
232         __le32 min_size;
233 } __packed; /* FW_TLV_DEBUG_BUFFER_ALLOCATION_API_S_VER_1 */
234
235 /**
236  * struct iwl_fw_ini_trigger_tlv - trigger TLV
237  *
238  * Trigger that upon firing, determines what regions to collect
239  *
240  * @hdr: debug header
241  * @time_point: time point. One of &enum iwl_fw_ini_time_point
242  * @trigger_reason: trigger reason
243  * @apply_policy: uses &enum iwl_fw_ini_trigger_apply_policy
244  * @dump_delay: delay from trigger fire to dump, in usec
245  * @occurrences: max trigger fire occurrences allowed
246  * @reserved: unused
247  * @ignore_consec: ignore consecutive triggers, in usec
248  * @reset_fw: if non zero, will reset and reload the FW
249  * @multi_dut: initiate debug dump data on several DUTs
250  * @regions_mask: mask of regions to collect
251  * @data: trigger data
252  */
253 struct iwl_fw_ini_trigger_tlv {
254         struct iwl_fw_ini_header hdr;
255         __le32 time_point;
256         __le32 trigger_reason;
257         __le32 apply_policy;
258         __le32 dump_delay;
259         __le32 occurrences;
260         __le32 reserved;
261         __le32 ignore_consec;
262         __le32 reset_fw;
263         __le32 multi_dut;
264         __le64 regions_mask;
265         __le32 data[];
266 } __packed; /* FW_TLV_DEBUG_TRIGGER_API_S_VER_1 */
267
268 /**
269  * struct iwl_fw_ini_hcmd_tlv - Generic Host command pass through TLV
270  *
271  * @hdr: debug header
272  * @time_point: time point. One of &enum iwl_fw_ini_time_point
273  * @period_msec: interval at which the hcmd will be sent to the FW.
274  *      Measured in msec (0 = one time command)
275  * @hcmd: a variable length host-command to be sent to apply the configuration
276  */
277 struct iwl_fw_ini_hcmd_tlv {
278         struct iwl_fw_ini_header hdr;
279         __le32 time_point;
280         __le32 period_msec;
281         struct iwl_fw_ini_hcmd hcmd;
282 } __packed; /* FW_TLV_DEBUG_HCMD_API_S_VER_1 */
283
284 /**
285 * struct iwl_fw_ini_addr_val - Address and value to set it to
286 *
287 * @address: the base address
288 * @value: value to set at address
289 */
290 struct iwl_fw_ini_addr_val {
291         __le32 address;
292         __le32 value;
293 } __packed; /* FW_TLV_DEBUG_ADDR_VALUE_VER_1 */
294
295 /**
296  * struct iwl_fw_ini_conf_set_tlv - configuration TLV to set register/memory.
297  *
298  * @hdr: debug header
299  * @time_point: time point to apply config. One of &enum iwl_fw_ini_time_point
300  * @set_type: write access type preset token for time point.
301  *  one of &enum iwl_fw_ini_config_set_type
302  * @addr_offset: the offset to add to any item in address[0] field
303  * @addr_val: address value pair
304  */
305 struct iwl_fw_ini_conf_set_tlv {
306         struct iwl_fw_ini_header hdr;
307         __le32 time_point;
308         __le32 set_type;
309         __le32 addr_offset;
310         struct iwl_fw_ini_addr_val addr_val[];
311 } __packed; /* FW_TLV_DEBUG_CONFIG_SET_API_S_VER_1 */
312
313 /**
314  * enum iwl_fw_ini_config_set_type
315  *
316  * @IWL_FW_INI_CONFIG_SET_TYPE_INVALID: invalid config set
317  * @IWL_FW_INI_CONFIG_SET_TYPE_DEVICE_PERIPHERY_MAC: for PERIPHERY MAC configuration
318  * @IWL_FW_INI_CONFIG_SET_TYPE_DEVICE_PERIPHERY_PHY: for PERIPHERY PHY configuration
319  * @IWL_FW_INI_CONFIG_SET_TYPE_DEVICE_PERIPHERY_AUX: for PERIPHERY AUX configuration
320  * @IWL_FW_INI_CONFIG_SET_TYPE_DEVICE_MEMORY: for DEVICE MEMORY configuration
321  * @IWL_FW_INI_CONFIG_SET_TYPE_CSR: for CSR configuration
322  * @IWL_FW_INI_CONFIG_SET_TYPE_DBGC_DRAM_ADDR: for DBGC_DRAM_ADDR configuration
323  * @IWL_FW_INI_CONFIG_SET_TYPE_PERIPH_SCRATCH_HWM: for PERIPH SCRATCH HWM configuration
324  * @IWL_FW_INI_CONFIG_SET_TYPE_MAX_NUM: max number of configuration supported
325 */
326
327 enum iwl_fw_ini_config_set_type {
328         IWL_FW_INI_CONFIG_SET_TYPE_INVALID = 0,
329         IWL_FW_INI_CONFIG_SET_TYPE_DEVICE_PERIPHERY_MAC,
330         IWL_FW_INI_CONFIG_SET_TYPE_DEVICE_PERIPHERY_PHY,
331         IWL_FW_INI_CONFIG_SET_TYPE_DEVICE_PERIPHERY_AUX,
332         IWL_FW_INI_CONFIG_SET_TYPE_DEVICE_MEMORY,
333         IWL_FW_INI_CONFIG_SET_TYPE_CSR,
334         IWL_FW_INI_CONFIG_SET_TYPE_DBGC_DRAM_ADDR,
335         IWL_FW_INI_CONFIG_SET_TYPE_PERIPH_SCRATCH_HWM,
336         IWL_FW_INI_CONFIG_SET_TYPE_MAX_NUM,
337 } __packed;
338
339 /**
340  * enum iwl_fw_ini_allocation_id
341  *
342  * @IWL_FW_INI_ALLOCATION_INVALID: invalid
343  * @IWL_FW_INI_ALLOCATION_ID_DBGC1: allocation meant for DBGC1 configuration
344  * @IWL_FW_INI_ALLOCATION_ID_DBGC2: allocation meant for DBGC2 configuration
345  * @IWL_FW_INI_ALLOCATION_ID_DBGC3: allocation meant for DBGC3 configuration
346  * @IWL_FW_INI_ALLOCATION_ID_DBGC4: allocation meant for DBGC4 configuration
347  * @IWL_FW_INI_ALLOCATION_NUM: number of allocation ids
348 */
349 enum iwl_fw_ini_allocation_id {
350         IWL_FW_INI_ALLOCATION_INVALID,
351         IWL_FW_INI_ALLOCATION_ID_DBGC1,
352         IWL_FW_INI_ALLOCATION_ID_DBGC2,
353         IWL_FW_INI_ALLOCATION_ID_DBGC3,
354         IWL_FW_INI_ALLOCATION_ID_DBGC4,
355         IWL_FW_INI_ALLOCATION_NUM,
356 }; /* FW_DEBUG_TLV_ALLOCATION_ID_E_VER_1 */
357
358 /**
359  * enum iwl_fw_ini_buffer_location
360  *
361  * @IWL_FW_INI_LOCATION_INVALID: invalid
362  * @IWL_FW_INI_LOCATION_SRAM_PATH: SRAM location
363  * @IWL_FW_INI_LOCATION_DRAM_PATH: DRAM location
364  * @IWL_FW_INI_LOCATION_NPK_PATH: NPK location
365  * @IWL_FW_INI_LOCATION_NUM: number of valid locations
366  */
367 enum iwl_fw_ini_buffer_location {
368         IWL_FW_INI_LOCATION_INVALID,
369         IWL_FW_INI_LOCATION_SRAM_PATH,
370         IWL_FW_INI_LOCATION_DRAM_PATH,
371         IWL_FW_INI_LOCATION_NPK_PATH,
372         IWL_FW_INI_LOCATION_NUM,
373 }; /* FW_DEBUG_TLV_BUFFER_LOCATION_E_VER_1 */
374
375 /**
376  * enum iwl_fw_ini_region_type
377  *
378  * @IWL_FW_INI_REGION_INVALID: invalid
379  * @IWL_FW_INI_REGION_TLV: uCode and debug TLVs
380  * @IWL_FW_INI_REGION_INTERNAL_BUFFER: monitor SMEM buffer
381  * @IWL_FW_INI_REGION_DRAM_BUFFER: monitor DRAM buffer
382  * @IWL_FW_INI_REGION_TXF: TX fifos
383  * @IWL_FW_INI_REGION_RXF: RX fifo
384  * @IWL_FW_INI_REGION_LMAC_ERROR_TABLE: lmac error table
385  * @IWL_FW_INI_REGION_UMAC_ERROR_TABLE: umac error table
386  * @IWL_FW_INI_REGION_RSP_OR_NOTIF: FW response or notification data
387  * @IWL_FW_INI_REGION_DEVICE_MEMORY: device internal memory
388  * @IWL_FW_INI_REGION_PERIPHERY_MAC: periphery registers of MAC
389  * @IWL_FW_INI_REGION_PERIPHERY_PHY: periphery registers of PHY
390  * @IWL_FW_INI_REGION_PERIPHERY_AUX: periphery registers of AUX
391  * @IWL_FW_INI_REGION_PAGING: paging memory
392  * @IWL_FW_INI_REGION_CSR: CSR registers
393  * @IWL_FW_INI_REGION_DRAM_IMR: IMR memory
394  * @IWL_FW_INI_REGION_PCI_IOSF_CONFIG: PCI/IOSF config
395  * @IWL_FW_INI_REGION_SPECIAL_DEVICE_MEMORY: special device memory
396  * @IWL_FW_INI_REGION_DBGI_SRAM: periphery registers of DBGI SRAM
397  * @IWL_FW_INI_REGION_PERIPHERY_MAC_RANGE: a range of periphery registers of MAC
398  * @IWL_FW_INI_REGION_PERIPHERY_PHY_RANGE: a range of periphery registers of PHY
399  * @IWL_FW_INI_REGION_PERIPHERY_SNPS_DPHYIP: periphery registers of SNPS DPHYIP
400  * @IWL_FW_INI_REGION_NUM: number of region types
401  */
402 enum iwl_fw_ini_region_type {
403         IWL_FW_INI_REGION_INVALID,
404         IWL_FW_INI_REGION_TLV,
405         IWL_FW_INI_REGION_INTERNAL_BUFFER,
406         IWL_FW_INI_REGION_DRAM_BUFFER,
407         IWL_FW_INI_REGION_TXF,
408         IWL_FW_INI_REGION_RXF,
409         IWL_FW_INI_REGION_LMAC_ERROR_TABLE,
410         IWL_FW_INI_REGION_UMAC_ERROR_TABLE,
411         IWL_FW_INI_REGION_RSP_OR_NOTIF,
412         IWL_FW_INI_REGION_DEVICE_MEMORY,
413         IWL_FW_INI_REGION_PERIPHERY_MAC,
414         IWL_FW_INI_REGION_PERIPHERY_PHY,
415         IWL_FW_INI_REGION_PERIPHERY_AUX,
416         IWL_FW_INI_REGION_PAGING,
417         IWL_FW_INI_REGION_CSR,
418         IWL_FW_INI_REGION_DRAM_IMR,
419         IWL_FW_INI_REGION_PCI_IOSF_CONFIG,
420         IWL_FW_INI_REGION_SPECIAL_DEVICE_MEMORY,
421         IWL_FW_INI_REGION_DBGI_SRAM,
422         IWL_FW_INI_REGION_PERIPHERY_MAC_RANGE,
423         IWL_FW_INI_REGION_PERIPHERY_PHY_RANGE,
424         IWL_FW_INI_REGION_PERIPHERY_SNPS_DPHYIP,
425         IWL_FW_INI_REGION_NUM
426 }; /* FW_TLV_DEBUG_REGION_TYPE_API_E */
427
428 enum iwl_fw_ini_region_device_memory_subtype {
429         IWL_FW_INI_REGION_DEVICE_MEMORY_SUBTYPE_HW_SMEM = 1,
430         IWL_FW_INI_REGION_DEVICE_MEMORY_SUBTYPE_UMAC_ERROR_TABLE = 5,
431         IWL_FW_INI_REGION_DEVICE_MEMORY_SUBTYPE_LMAC_1_ERROR_TABLE = 7,
432         IWL_FW_INI_REGION_DEVICE_MEMORY_SUBTYPE_LMAC_2_ERROR_TABLE = 10,
433         IWL_FW_INI_REGION_DEVICE_MEMORY_SUBTYPE_TCM_1_ERROR_TABLE = 14,
434         IWL_FW_INI_REGION_DEVICE_MEMORY_SUBTYPE_TCM_2_ERROR_TABLE = 16,
435         IWL_FW_INI_REGION_DEVICE_MEMORY_SUBTYPE_RCM_1_ERROR_TABLE = 18,
436         IWL_FW_INI_REGION_DEVICE_MEMORY_SUBTYPE_RCM_2_ERROR_TABLE = 20,
437 }; /* FW_TLV_DEBUG_REGION_DEVICE_MEMORY_SUBTYPE_API_E */
438
439 /**
440  * enum iwl_fw_ini_time_point
441  *
442  * Hard coded time points in which the driver can send hcmd or perform dump
443  * collection
444  *
445  * @IWL_FW_INI_TIME_POINT_INVALID: invalid timepoint
446  * @IWL_FW_INI_TIME_POINT_EARLY: pre loading the FW
447  * @IWL_FW_INI_TIME_POINT_AFTER_ALIVE: first cmd from host after alive notif
448  * @IWL_FW_INI_TIME_POINT_POST_INIT: last cmd in series of init sequence
449  * @IWL_FW_INI_TIME_POINT_FW_ASSERT: FW assert
450  * @IWL_FW_INI_TIME_POINT_FW_HW_ERROR: FW HW error
451  * @IWL_FW_INI_TIME_POINT_FW_TFD_Q_HANG: TFD queue hang
452  * @IWL_FW_INI_TIME_POINT_FW_DHC_NOTIFICATION: DHC cmd response and notif
453  * @IWL_FW_INI_TIME_POINT_FW_RSP_OR_NOTIF: FW response or notification.
454  *      data field holds id and group
455  * @IWL_FW_INI_TIME_POINT_USER_TRIGGER: user trigger time point
456  * @IWL_FW_INI_TIME_POINT_PERIODIC: periodic timepoint that fires in constant
457  *      intervals. data field holds the interval time in msec
458  * @IWL_FW_INI_TIME_POINT_RESERVED: reserved
459  * @IWL_FW_INI_TIME_POINT_HOST_ASSERT: Unused
460  * @IWL_FW_INI_TIME_POINT_HOST_ALIVE_TIMEOUT: alive timeout
461  * @IWL_FW_INI_TIME_POINT_HOST_DEVICE_ENABLE: device enable
462  * @IWL_FW_INI_TIME_POINT_HOST_DEVICE_DISABLE: device disable
463  * @IWL_FW_INI_TIME_POINT_HOST_D3_START: D3 start
464  * @IWL_FW_INI_TIME_POINT_HOST_D3_END: D3 end
465  * @IWL_FW_INI_TIME_POINT_MISSED_BEACONS: missed beacons
466  * @IWL_FW_INI_TIME_POINT_ASSOC_FAILED: association failure
467  * @IWL_FW_INI_TIME_POINT_TX_FAILED: Tx frame failed
468  * @IWL_FW_INI_TIME_POINT_TX_WFD_ACTION_FRAME_FAILED: wifi direct action
469  *      frame failed
470  * @IWL_FW_INI_TIME_POINT_TX_LATENCY_THRESHOLD: Tx latency threshold
471  * @IWL_FW_INI_TIME_POINT_HANG_OCCURRED: hang occurred
472  * @IWL_FW_INI_TIME_POINT_EAPOL_FAILED: EAPOL failed
473  * @IWL_FW_INI_TIME_POINT_FAKE_TX: fake Tx
474  * @IWL_FW_INI_TIME_POINT_DEASSOC: de association
475  * @IWL_FW_INI_TIME_POINT_PRESET_OVERRIDE_EXT_REQ: request to override preset
476  * @IWL_FW_INI_TIME_POINT_PRESET_OVERRIDE_START: start handling override preset
477  *      request
478  * @IWL_FW_INI_TIME_SCAN_FAILURE: failed scan channel list
479  * @IWL_FW_INI_TIME_ESR_LINK_UP: EMLSR is active (several links are activated)
480  * @IWL_FW_INI_TIME_ESR_LINK_DOWN: EMLSR is inactive (only one active link left)
481  * @IWL_FW_INI_TIME_POINT_NUM: number of time points
482  */
483 enum iwl_fw_ini_time_point {
484         IWL_FW_INI_TIME_POINT_INVALID,
485         IWL_FW_INI_TIME_POINT_EARLY,
486         IWL_FW_INI_TIME_POINT_AFTER_ALIVE,
487         IWL_FW_INI_TIME_POINT_POST_INIT,
488         IWL_FW_INI_TIME_POINT_FW_ASSERT,
489         IWL_FW_INI_TIME_POINT_FW_HW_ERROR,
490         IWL_FW_INI_TIME_POINT_FW_TFD_Q_HANG,
491         IWL_FW_INI_TIME_POINT_FW_DHC_NOTIFICATION,
492         IWL_FW_INI_TIME_POINT_FW_RSP_OR_NOTIF,
493         IWL_FW_INI_TIME_POINT_USER_TRIGGER,
494         IWL_FW_INI_TIME_POINT_PERIODIC,
495         IWL_FW_INI_TIME_POINT_RESERVED,
496         IWL_FW_INI_TIME_POINT_HOST_ASSERT,
497         IWL_FW_INI_TIME_POINT_HOST_ALIVE_TIMEOUT,
498         IWL_FW_INI_TIME_POINT_HOST_DEVICE_ENABLE,
499         IWL_FW_INI_TIME_POINT_HOST_DEVICE_DISABLE,
500         IWL_FW_INI_TIME_POINT_HOST_D3_START,
501         IWL_FW_INI_TIME_POINT_HOST_D3_END,
502         IWL_FW_INI_TIME_POINT_MISSED_BEACONS,
503         IWL_FW_INI_TIME_POINT_ASSOC_FAILED,
504         IWL_FW_INI_TIME_POINT_TX_FAILED,
505         IWL_FW_INI_TIME_POINT_TX_WFD_ACTION_FRAME_FAILED,
506         IWL_FW_INI_TIME_POINT_TX_LATENCY_THRESHOLD,
507         IWL_FW_INI_TIME_POINT_HANG_OCCURRED,
508         IWL_FW_INI_TIME_POINT_EAPOL_FAILED,
509         IWL_FW_INI_TIME_POINT_FAKE_TX,
510         IWL_FW_INI_TIME_POINT_DEASSOC,
511         IWL_FW_INI_TIME_POINT_PRESET_OVERRIDE_EXT_REQ,
512         IWL_FW_INI_TIME_POINT_PRESET_OVERRIDE_START,
513         IWL_FW_INI_TIME_SCAN_FAILURE,
514         IWL_FW_INI_TIME_ESR_LINK_UP,
515         IWL_FW_INI_TIME_ESR_LINK_DOWN,
516         IWL_FW_INI_TIME_POINT_NUM,
517 }; /* FW_TLV_DEBUG_TIME_POINT_API_E */
518
519 /**
520  * enum iwl_fw_ini_trigger_apply_policy - Determines how to apply triggers
521  *
522  * @IWL_FW_INI_APPLY_POLICY_MATCH_TIME_POINT: match by time point
523  * @IWL_FW_INI_APPLY_POLICY_MATCH_DATA: match by trigger data
524  * @IWL_FW_INI_APPLY_POLICY_OVERRIDE_REGIONS: override regions mask.
525  *      Append otherwise
526  * @IWL_FW_INI_APPLY_POLICY_OVERRIDE_CFG: override trigger configuration
527  * @IWL_FW_INI_APPLY_POLICY_OVERRIDE_DATA: override trigger data.
528  *      Append otherwise
529  * @IWL_FW_INI_APPLY_POLICY_DUMP_COMPLETE_CMD: send cmd once dump collected
530  */
531 enum iwl_fw_ini_trigger_apply_policy {
532         IWL_FW_INI_APPLY_POLICY_MATCH_TIME_POINT        = BIT(0),
533         IWL_FW_INI_APPLY_POLICY_MATCH_DATA              = BIT(1),
534         IWL_FW_INI_APPLY_POLICY_OVERRIDE_REGIONS        = BIT(8),
535         IWL_FW_INI_APPLY_POLICY_OVERRIDE_CFG            = BIT(9),
536         IWL_FW_INI_APPLY_POLICY_OVERRIDE_DATA           = BIT(10),
537         IWL_FW_INI_APPLY_POLICY_DUMP_COMPLETE_CMD       = BIT(16),
538 };
539
540 /**
541  * enum iwl_fw_ini_trigger_reset_fw_policy - Determines how to handle reset
542  *
543  * @IWL_FW_INI_RESET_FW_MODE_NOTHING: do not stop FW and reload (default)
544  * @IWL_FW_INI_RESET_FW_MODE_STOP_FW_ONLY: stop FW without reload FW
545  * @IWL_FW_INI_RESET_FW_MODE_STOP_AND_RELOAD_FW: stop FW with reload FW
546  */
547 enum iwl_fw_ini_trigger_reset_fw_policy {
548         IWL_FW_INI_RESET_FW_MODE_NOTHING = 0,
549         IWL_FW_INI_RESET_FW_MODE_STOP_FW_ONLY,
550         IWL_FW_INI_RESET_FW_MODE_STOP_AND_RELOAD_FW
551 };
552
553 /**
554  * enum iwl_fw_ini_dump_policy - Determines how to handle dump based on enabled flags
555  *
556  * @IWL_FW_INI_DEBUG_DUMP_POLICY_NO_LIMIT: OS has no limit of dump size
557  * @IWL_FW_INI_DEBUG_DUMP_POLICY_MAX_LIMIT_600KB: mini dump only 600KB region dump
558  * @IWL_FW_IWL_DEBUG_DUMP_POLICY_MAX_LIMIT_5MB: mini dump 5MB size dump
559  */
560 enum iwl_fw_ini_dump_policy {
561         IWL_FW_INI_DEBUG_DUMP_POLICY_NO_LIMIT           = BIT(0),
562         IWL_FW_INI_DEBUG_DUMP_POLICY_MAX_LIMIT_600KB    = BIT(1),
563         IWL_FW_IWL_DEBUG_DUMP_POLICY_MAX_LIMIT_5MB      = BIT(2),
564
565 };
566
567 /**
568  * enum iwl_fw_ini_dump_type - Determines dump type based on size defined by FW.
569  *
570  * @IWL_FW_INI_DUMP_BRIEF : only dump the most important regions
571  * @IWL_FW_INI_DUMP_MEDIUM: dump more regions than "brief", but not all regions
572  * @IWL_FW_INI_DUMP_VERBOSE : dump all regions
573  */
574 enum iwl_fw_ini_dump_type {
575         IWL_FW_INI_DUMP_BRIEF,
576         IWL_FW_INI_DUMP_MEDIUM,
577         IWL_FW_INI_DUMP_VERBOSE,
578 };
579 #endif
This page took 0.059453 seconds and 4 git commands to generate.