1bd294466SSara Sharon /****************************************************************************** 2bd294466SSara Sharon * 3bd294466SSara Sharon * This file is provided under a dual BSD/GPLv2 license. When using or 4bd294466SSara Sharon * redistributing this file, you may do so under either license. 5bd294466SSara Sharon * 6bd294466SSara Sharon * GPL LICENSE SUMMARY 7bd294466SSara Sharon * 81b64d58bSShahar S Matityahu * Copyright (C) 2018 - 2019 Intel Corporation 9bd294466SSara Sharon * 10bd294466SSara Sharon * This program is free software; you can redistribute it and/or modify 11bd294466SSara Sharon * it under the terms of version 2 of the GNU General Public License as 12bd294466SSara Sharon * published by the Free Software Foundation. 13bd294466SSara Sharon * 14bd294466SSara Sharon * This program is distributed in the hope that it will be useful, but 15bd294466SSara Sharon * WITHOUT ANY WARRANTY; without even the implied warranty of 16bd294466SSara Sharon * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 17bd294466SSara Sharon * General Public License for more details. 18bd294466SSara Sharon * 19bd294466SSara Sharon * The full GNU General Public License is included in this distribution 20bd294466SSara Sharon * in the file called COPYING. 21bd294466SSara Sharon * 22bd294466SSara Sharon * Contact Information: 23bd294466SSara Sharon * Intel Linux Wireless <linuxwifi@intel.com> 24bd294466SSara Sharon * Intel Corporation, 5200 N.E. Elam Young Parkway, Hillsboro, OR 97124-6497 25bd294466SSara Sharon * 26bd294466SSara Sharon * BSD LICENSE 27bd294466SSara Sharon * 281b64d58bSShahar S Matityahu * Copyright (C) 2018 - 2019 Intel Corporation 29bd294466SSara Sharon * All rights reserved. 30bd294466SSara Sharon * 31bd294466SSara Sharon * Redistribution and use in source and binary forms, with or without 32bd294466SSara Sharon * modification, are permitted provided that the following conditions 33bd294466SSara Sharon * are met: 34bd294466SSara Sharon * 35bd294466SSara Sharon * * Redistributions of source code must retain the above copyright 36bd294466SSara Sharon * notice, this list of conditions and the following disclaimer. 37bd294466SSara Sharon * * Redistributions in binary form must reproduce the above copyright 38bd294466SSara Sharon * notice, this list of conditions and the following disclaimer in 39bd294466SSara Sharon * the documentation and/or other materials provided with the 40bd294466SSara Sharon * distribution. 41bd294466SSara Sharon * * Neither the name Intel Corporation nor the names of its 42bd294466SSara Sharon * contributors may be used to endorse or promote products derived 43bd294466SSara Sharon * from this software without specific prior written permission. 44bd294466SSara Sharon * 45bd294466SSara Sharon * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 46bd294466SSara Sharon * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 47bd294466SSara Sharon * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 48bd294466SSara Sharon * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 49bd294466SSara Sharon * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 50bd294466SSara Sharon * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 51bd294466SSara Sharon * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 52bd294466SSara Sharon * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 53bd294466SSara Sharon * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 54bd294466SSara Sharon * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 55bd294466SSara Sharon * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 56bd294466SSara Sharon * 57bd294466SSara Sharon *****************************************************************************/ 58bd294466SSara Sharon #ifndef __iwl_fw_dbg_tlv_h__ 59bd294466SSara Sharon #define __iwl_fw_dbg_tlv_h__ 60bd294466SSara Sharon 61bd294466SSara Sharon #include <linux/bitops.h> 62bd294466SSara Sharon 63fe63f21bSShahar S Matityahu /** 64bd294466SSara Sharon * struct iwl_fw_ini_header: Common Header for all debug group TLV's structures 65fe63f21bSShahar S Matityahu * 66bd294466SSara Sharon * @tlv_version: version info 67bd294466SSara Sharon * @apply_point: &enum iwl_fw_ini_apply_point 68bd294466SSara Sharon * @data: TLV data followed 69fe63f21bSShahar S Matityahu */ 70bd294466SSara Sharon struct iwl_fw_ini_header { 71bd294466SSara Sharon __le32 tlv_version; 72bd294466SSara Sharon __le32 apply_point; 73bd294466SSara Sharon u8 data[]; 74d7febc2eSShahar S Matityahu } __packed; /* FW_DEBUG_TLV_HEADER_S */ 75bd294466SSara Sharon 76bd294466SSara Sharon /** 77fe63f21bSShahar S Matityahu * struct iwl_fw_ini_allocation_tlv - (IWL_UCODE_TLV_TYPE_BUFFER_ALLOCATION) 78bd294466SSara Sharon * buffer allocation TLV - for debug 79bd294466SSara Sharon * 80bd294466SSara Sharon * @iwl_fw_ini_header: header 81bd294466SSara Sharon * @allocation_id: &enum iwl_fw_ini_allocation_id - to bind allocation and hcmd 82bd294466SSara Sharon * if needed (DBGC1/DBGC2/SDFX/...) 83bd294466SSara Sharon * @buffer_location: type of iwl_fw_ini_buffer_location 84bd294466SSara Sharon * @size: size in bytes 85bd294466SSara Sharon * @max_fragments: the maximum allowed fragmentation in the desired memory 86bd294466SSara Sharon * allocation above 87bd294466SSara Sharon * @min_frag_size: the minimum allowed fragmentation size in bytes 88bd294466SSara Sharon */ 89bd294466SSara Sharon struct iwl_fw_ini_allocation_tlv { 90bd294466SSara Sharon struct iwl_fw_ini_header header; 91bd294466SSara Sharon __le32 allocation_id; 92bd294466SSara Sharon __le32 buffer_location; 93bd294466SSara Sharon __le32 size; 94bd294466SSara Sharon __le32 max_fragments; 95bd294466SSara Sharon __le32 min_frag_size; 96d7febc2eSShahar S Matityahu } __packed; /* FW_DEBUG_TLV_BUFFER_ALLOCATION_TLV_S_VER_1 */ 97bd294466SSara Sharon 98bd294466SSara Sharon /** 99fe63f21bSShahar S Matityahu * enum iwl_fw_ini_dbg_domain - debug domains 100fe63f21bSShahar S Matityahu * allows to send host cmd or collect memory region if a given domain is enabled 101fe63f21bSShahar S Matityahu * 102fe63f21bSShahar S Matityahu * @IWL_FW_INI_DBG_DOMAIN_ALWAYS_ON: the default domain, always on 103fe63f21bSShahar S Matityahu * @IWL_FW_INI_DBG_DOMAIN_REPORT_PS: power save domain 104fe63f21bSShahar S Matityahu */ 105fe63f21bSShahar S Matityahu enum iwl_fw_ini_dbg_domain { 106fe63f21bSShahar S Matityahu IWL_FW_INI_DBG_DOMAIN_ALWAYS_ON = 0, 107fe63f21bSShahar S Matityahu IWL_FW_INI_DBG_DOMAIN_REPORT_PS, 108fe63f21bSShahar S Matityahu }; /* FW_DEBUG_TLV_DOMAIN_API_E_VER_1 */ 109fe63f21bSShahar S Matityahu 110fe63f21bSShahar S Matityahu /** 111fe63f21bSShahar S Matityahu * struct iwl_fw_ini_hcmd 112bd294466SSara Sharon * 113bd294466SSara Sharon * @id: the debug configuration command type for instance: 0xf6 / 0xf5 / DHC 114bd294466SSara Sharon * @group: the desired cmd group 115fe63f21bSShahar S Matityahu * @reserved: to align to FW struct 116fe63f21bSShahar S Matityahu * @data: all of the relevant command data to be sent 117bd294466SSara Sharon */ 118bd294466SSara Sharon struct iwl_fw_ini_hcmd { 119bd294466SSara Sharon u8 id; 120bd294466SSara Sharon u8 group; 121fe63f21bSShahar S Matityahu __le16 reserved; 122bd294466SSara Sharon u8 data[0]; 123fe63f21bSShahar S Matityahu } __packed; /* FW_DEBUG_TLV_HCMD_DATA_API_S_VER_1 */ 124bd294466SSara Sharon 125bd294466SSara Sharon /** 126fe63f21bSShahar S Matityahu * struct iwl_fw_ini_hcmd_tlv - (IWL_UCODE_TLV_TYPE_HCMD) 127fe63f21bSShahar S Matityahu * Generic Host command pass through TLV 128fe63f21bSShahar S Matityahu * 129bd294466SSara Sharon * @header: header 130fe63f21bSShahar S Matityahu * @domain: send command only if the specific domain is enabled 131fe63f21bSShahar S Matityahu * &enum iwl_fw_ini_dbg_domain 132fe63f21bSShahar S Matityahu * @period_msec: period in which the hcmd will be sent to FW. Measured in msec 133fe63f21bSShahar S Matityahu * (0 = one time command). 134bd294466SSara Sharon * @hcmd: a variable length host-command to be sent to apply the configuration. 135bd294466SSara Sharon */ 136bd294466SSara Sharon struct iwl_fw_ini_hcmd_tlv { 137bd294466SSara Sharon struct iwl_fw_ini_header header; 138fe63f21bSShahar S Matityahu __le32 domain; 139fe63f21bSShahar S Matityahu __le32 period_msec; 140bd294466SSara Sharon struct iwl_fw_ini_hcmd hcmd; 141fe63f21bSShahar S Matityahu } __packed; /* FW_DEBUG_TLV_HCMD_API_S_VER_1 */ 142bd294466SSara Sharon 143fe63f21bSShahar S Matityahu /** 144fe63f21bSShahar S Matityahu * struct iwl_fw_ini_debug_flow_tlv - (IWL_UCODE_TLV_TYPE_DEBUG_FLOW) 145bd294466SSara Sharon * 146bd294466SSara Sharon * @header: header 147bd294466SSara Sharon * @debug_flow_cfg: &enum iwl_fw_ini_debug_flow 148bd294466SSara Sharon */ 149bd294466SSara Sharon struct iwl_fw_ini_debug_flow_tlv { 150bd294466SSara Sharon struct iwl_fw_ini_header header; 151bd294466SSara Sharon __le32 debug_flow_cfg; 152d7febc2eSShahar S Matityahu } __packed; /* FW_DEBUG_TLV_FLOW_TLV_S_VER_1 */ 153bd294466SSara Sharon 1542d0c6608SShahar S Matityahu #define IWL_FW_INI_MAX_REGION_ID 64 155bd294466SSara Sharon #define IWL_FW_INI_MAX_NAME 32 1569deb52c6SShahar S Matityahu 1579deb52c6SShahar S Matityahu /** 158fe63f21bSShahar S Matityahu * struct iwl_fw_ini_region_cfg_dhc - defines dhc response to dump. 159fe63f21bSShahar S Matityahu * 160fe63f21bSShahar S Matityahu * @id_and_grp: id and group of dhc response. 161fe63f21bSShahar S Matityahu * @desc: dhc response descriptor. 162fe63f21bSShahar S Matityahu */ 163fe63f21bSShahar S Matityahu struct iwl_fw_ini_region_cfg_dhc { 164fe63f21bSShahar S Matityahu __le32 id_and_grp; 165fe63f21bSShahar S Matityahu __le32 desc; 166fe63f21bSShahar S Matityahu } __packed; /* FW_DEBUG_TLV_REGION_DHC_API_S_VER_1 */ 167fe63f21bSShahar S Matityahu 168fe63f21bSShahar S Matityahu /** 1699deb52c6SShahar S Matityahu * struct iwl_fw_ini_region_cfg_internal - meta data of internal memory region 170fe63f21bSShahar S Matityahu * 1719deb52c6SShahar S Matityahu * @num_of_range: the amount of ranges in the region 1729deb52c6SShahar S Matityahu * @range_data_size: size of the data to read per range, in bytes. 1739deb52c6SShahar S Matityahu */ 1749deb52c6SShahar S Matityahu struct iwl_fw_ini_region_cfg_internal { 1759deb52c6SShahar S Matityahu __le32 num_of_ranges; 1769deb52c6SShahar S Matityahu __le32 range_data_size; 1779deb52c6SShahar S Matityahu } __packed; /* FW_DEBUG_TLV_REGION_NIC_INTERNAL_RANGES_S */ 1789deb52c6SShahar S Matityahu 1799deb52c6SShahar S Matityahu /** 1809deb52c6SShahar S Matityahu * struct iwl_fw_ini_region_cfg_fifos - meta data of fifos region 181fe63f21bSShahar S Matityahu * 1821b64d58bSShahar S Matityahu * @fid1: fifo id 1 - bitmap of lmac tx/rx fifos to include in the region 1831b64d58bSShahar S Matityahu * @fid2: fifo id 2 - bitmap of umac rx fifos to include in the region. 1841b64d58bSShahar S Matityahu * It is unused for tx. 1859deb52c6SShahar S Matityahu * @num_of_registers: number of prph registers in the region, each register is 1869deb52c6SShahar S Matityahu * 4 bytes size. 1879deb52c6SShahar S Matityahu * @header_only: none zero value indicates that this region does not include 1889deb52c6SShahar S Matityahu * fifo data and includes only the given registers. 1899deb52c6SShahar S Matityahu */ 1909deb52c6SShahar S Matityahu struct iwl_fw_ini_region_cfg_fifos { 1911b64d58bSShahar S Matityahu __le32 fid1; 1921b64d58bSShahar S Matityahu __le32 fid2; 1939deb52c6SShahar S Matityahu __le32 num_of_registers; 1949deb52c6SShahar S Matityahu __le32 header_only; 1959deb52c6SShahar S Matityahu } __packed; /* FW_DEBUG_TLV_REGION_FIFOS_S */ 1969deb52c6SShahar S Matityahu 197bd294466SSara Sharon /** 198bd294466SSara Sharon * struct iwl_fw_ini_region_cfg 199fe63f21bSShahar S Matityahu * 200bd294466SSara Sharon * @region_id: ID of this dump configuration 201bd294466SSara Sharon * @region_type: &enum iwl_fw_ini_region_type 202fe63f21bSShahar S Matityahu * @domain: dump this region only if the specific domain is enabled 203fe63f21bSShahar S Matityahu * &enum iwl_fw_ini_dbg_domain 204bd294466SSara Sharon * @name_len: name length 205bd294466SSara Sharon * @name: file name to use for this region 2069deb52c6SShahar S Matityahu * @internal: used in case the region uses internal memory. 207bb0306bdSShahar S Matityahu * @allocation_id: For DRAM type field substitutes for allocation_id 2089deb52c6SShahar S Matityahu * @fifos: used in case of fifos region. 209fe63f21bSShahar S Matityahu * @dhc_desc: dhc response descriptor. 210fe63f21bSShahar S Matityahu * @notif_id_and_grp: dump this region only if the specific notification 211fe63f21bSShahar S Matityahu * occurred. 2129deb52c6SShahar S Matityahu * @offset: offset to use for each memory base address 2139deb52c6SShahar S Matityahu * @start_addr: array of addresses. 214bd294466SSara Sharon */ 215bd294466SSara Sharon struct iwl_fw_ini_region_cfg { 216bd294466SSara Sharon __le32 region_id; 217bd294466SSara Sharon __le32 region_type; 218fe63f21bSShahar S Matityahu __le32 domain; 219bd294466SSara Sharon __le32 name_len; 220bd294466SSara Sharon u8 name[IWL_FW_INI_MAX_NAME]; 221bd294466SSara Sharon union { 2229deb52c6SShahar S Matityahu struct iwl_fw_ini_region_cfg_internal internal; 223bd294466SSara Sharon __le32 allocation_id; 2249deb52c6SShahar S Matityahu struct iwl_fw_ini_region_cfg_fifos fifos; 225fe63f21bSShahar S Matityahu struct iwl_fw_ini_region_cfg_dhc dhc_desc; 226fe63f21bSShahar S Matityahu __le32 notif_id_and_grp; 227fe63f21bSShahar S Matityahu }; /* FW_DEBUG_TLV_REGION_EXT_INT_PARAMS_API_U_VER_1 */ 2289deb52c6SShahar S Matityahu __le32 offset; 229bd294466SSara Sharon __le32 start_addr[]; 230fe63f21bSShahar S Matityahu } __packed; /* FW_DEBUG_TLV_REGION_CONFIG_API_S_VER_1 */ 231bd294466SSara Sharon 232bd294466SSara Sharon /** 233fe63f21bSShahar S Matityahu * struct iwl_fw_ini_region_tlv - (IWL_UCODE_TLV_TYPE_REGIONS) 234fe63f21bSShahar S Matityahu * defines memory regions to dump 235fe63f21bSShahar S Matityahu * 236bd294466SSara Sharon * @header: header 237bd294466SSara Sharon * @num_regions: how many different region section and IDs are coming next 238a9f802b6SShahar S Matityahu * @region_config: list of dump configurations 239bd294466SSara Sharon */ 240bd294466SSara Sharon struct iwl_fw_ini_region_tlv { 241bd294466SSara Sharon struct iwl_fw_ini_header header; 242bd294466SSara Sharon __le32 num_regions; 243bd294466SSara Sharon struct iwl_fw_ini_region_cfg region_config[]; 244fe63f21bSShahar S Matityahu } __packed; /* FW_DEBUG_TLV_REGIONS_API_S_VER_1 */ 245bd294466SSara Sharon 246bd294466SSara Sharon /** 247fe63f21bSShahar S Matityahu * struct iwl_fw_ini_trigger 248bd294466SSara Sharon * 249fe63f21bSShahar S Matityahu * @trigger_id: &enum iwl_fw_ini_trigger_id 250b61a6610SShahar S Matityahu * @override_trig: determines how apply trigger in case a trigger with the 251b61a6610SShahar S Matityahu * same id is already in use. Using the first 2 bytes: 252b61a6610SShahar S Matityahu * Byte 0: if 0, override trigger configuration, otherwise use the 253b61a6610SShahar S Matityahu * existing configuration. 254b61a6610SShahar S Matityahu * Byte 1: if 0, override trigger regions, otherwise append regions to 255b61a6610SShahar S Matityahu * existing trigger. 256bd294466SSara Sharon * @dump_delay: delay from trigger fire to dump, in usec 257bd294466SSara Sharon * @occurrences: max amount of times to be fired 258fe63f21bSShahar S Matityahu * @reserved: to align to FW struct 259bd294466SSara Sharon * @ignore_consec: ignore consecutive triggers, in usec 260bd294466SSara Sharon * @force_restart: force FW restart 261a024016fSSara Sharon * @multi_dut: initiate debug dump data on several DUTs 262bd294466SSara Sharon * @trigger_data: generic data to be utilized per trigger 263bd294466SSara Sharon * @num_regions: number of dump regions defined for this trigger 264bd294466SSara Sharon * @data: region IDs 265bd294466SSara Sharon */ 266bd294466SSara Sharon struct iwl_fw_ini_trigger { 267bd294466SSara Sharon __le32 trigger_id; 268b61a6610SShahar S Matityahu __le32 override_trig; 269bd294466SSara Sharon __le32 dump_delay; 270bd294466SSara Sharon __le32 occurrences; 271fe63f21bSShahar S Matityahu __le32 reserved; 272bd294466SSara Sharon __le32 ignore_consec; 273bd294466SSara Sharon __le32 force_restart; 274a024016fSSara Sharon __le32 multi_dut; 275bd294466SSara Sharon __le32 trigger_data; 276bd294466SSara Sharon __le32 num_regions; 277bd294466SSara Sharon __le32 data[]; 278fe63f21bSShahar S Matityahu } __packed; /* FW_TLV_DEBUG_TRIGGER_CONFIG_API_S_VER_1 */ 279bd294466SSara Sharon 280bd294466SSara Sharon /** 281fe63f21bSShahar S Matityahu * struct iwl_fw_ini_trigger_tlv - (IWL_UCODE_TLV_TYPE_TRIGGERS) 282fe63f21bSShahar S Matityahu * Triggers that hold memory regions to dump in case a trigger fires 283bd294466SSara Sharon * 284bd294466SSara Sharon * @header: header 285bd294466SSara Sharon * @num_triggers: how many different triggers section and IDs are coming next 286bd294466SSara Sharon * @trigger_config: list of trigger configurations 287bd294466SSara Sharon */ 288bd294466SSara Sharon struct iwl_fw_ini_trigger_tlv { 289bd294466SSara Sharon struct iwl_fw_ini_header header; 290bd294466SSara Sharon __le32 num_triggers; 291bd294466SSara Sharon struct iwl_fw_ini_trigger trigger_config[]; 292fe63f21bSShahar S Matityahu } __packed; /* FW_TLV_DEBUG_TRIGGERS_API_S_VER_1 */ 293bd294466SSara Sharon 294bd294466SSara Sharon /** 295bd294466SSara Sharon * enum iwl_fw_ini_trigger_id 296fe63f21bSShahar S Matityahu * 297bd294466SSara Sharon * @IWL_FW_TRIGGER_ID_FW_ASSERT: FW assert 298bd294466SSara Sharon * @IWL_FW_TRIGGER_ID_FW_HW_ERROR: HW assert 299ffb677dcSShahar S Matityahu * @IWL_FW_TRIGGER_ID_FW_TFD_Q_HANG: TFD queue hang 300ffb677dcSShahar S Matityahu * @IWL_FW_TRIGGER_ID_FW_DEBUG_HOST_TRIGGER: FW debug notification 301fe63f21bSShahar S Matityahu * @IWL_FW_TRIGGER_ID_FW_GENERIC_NOTIFICATION: FW generic notification 302bd294466SSara Sharon * @IWL_FW_TRIGGER_ID_USER_TRIGGER: User trigger 303fe63f21bSShahar S Matityahu * @IWL_FW_TRIGGER_ID_PERIODIC_TRIGGER: triggers periodically 304bd294466SSara Sharon * @IWL_FW_TRIGGER_ID_HOST_PEER_CLIENT_INACTIVITY: peer inactivity 305bd294466SSara Sharon * @IWL_FW_TRIGGER_ID_HOST_TX_LATENCY_THRESHOLD_CROSSED: TX latency 306bd294466SSara Sharon * threshold was crossed 307bd294466SSara Sharon * @IWL_FW_TRIGGER_ID_HOST_TX_RESPONSE_STATUS_FAILED: TX failed 308bd294466SSara Sharon * @IWL_FW_TRIGGER_ID_HOST_OS_REQ_DEAUTH_PEER: Deauth initiated by host 309bd294466SSara Sharon * @IWL_FW_TRIGGER_ID_HOST_STOP_GO_REQUEST: stop GO request 310bd294466SSara Sharon * @IWL_FW_TRIGGER_ID_HOST_START_GO_REQUEST: start GO request 311bd294466SSara Sharon * @IWL_FW_TRIGGER_ID_HOST_JOIN_GROUP_REQUEST: join P2P group request 312bd294466SSara Sharon * @IWL_FW_TRIGGER_ID_HOST_SCAN_START: scan started event 313bd294466SSara Sharon * @IWL_FW_TRIGGER_ID_HOST_SCAN_SUBMITTED: undefined 314bd294466SSara Sharon * @IWL_FW_TRIGGER_ID_HOST_SCAN_PARAMS: undefined 315bd294466SSara Sharon * @IWL_FW_TRIGGER_ID_HOST_CHECK_FOR_HANG: undefined 316bd294466SSara Sharon * @IWL_FW_TRIGGER_ID_HOST_BAR_RECEIVED: BAR frame was received 317bd294466SSara Sharon * @IWL_FW_TRIGGER_ID_HOST_AGG_TX_RESPONSE_STATUS_FAILED: agg TX failed 318bd294466SSara Sharon * @IWL_FW_TRIGGER_ID_HOST_EAPOL_TX_RESPONSE_FAILED: EAPOL TX failed 319bd294466SSara Sharon * @IWL_FW_TRIGGER_ID_HOST_FAKE_TX_RESPONSE_SUSPECTED: suspicious TX response 320bd294466SSara Sharon * @IWL_FW_TRIGGER_ID_HOST_AUTH_REQ_FROM_ASSOC_CLIENT: received suspicious auth 321bd294466SSara Sharon * @IWL_FW_TRIGGER_ID_HOST_ROAM_COMPLETE: roaming was completed 322bd294466SSara Sharon * @IWL_FW_TRIGGER_ID_HOST_AUTH_ASSOC_FAST_FAILED: fast assoc failed 323bd294466SSara Sharon * @IWL_FW_TRIGGER_ID_HOST_D3_START: D3 start 324bd294466SSara Sharon * @IWL_FW_TRIGGER_ID_HOST_D3_END: D3 end 325bd294466SSara Sharon * @IWL_FW_TRIGGER_ID_HOST_BSS_MISSED_BEACONS: missed beacon events 326bd294466SSara Sharon * @IWL_FW_TRIGGER_ID_HOST_P2P_CLIENT_MISSED_BEACONS: P2P missed beacon events 327bd294466SSara Sharon * @IWL_FW_TRIGGER_ID_HOST_PEER_CLIENT_TX_FAILURES: undefined 328bd294466SSara Sharon * @IWL_FW_TRIGGER_ID_HOST_TX_WFD_ACTION_FRAME_FAILED: undefined 329bd294466SSara Sharon * @IWL_FW_TRIGGER_ID_HOST_AUTH_ASSOC_FAILED: authentication / association 330bd294466SSara Sharon * failed 331bd294466SSara Sharon * @IWL_FW_TRIGGER_ID_HOST_SCAN_COMPLETE: scan complete event 332bd294466SSara Sharon * @IWL_FW_TRIGGER_ID_HOST_SCAN_ABORT: scan abort complete 333bd294466SSara Sharon * @IWL_FW_TRIGGER_ID_HOST_NIC_ALIVE: nic alive message was received 334bd294466SSara Sharon * @IWL_FW_TRIGGER_ID_HOST_CHANNEL_SWITCH_COMPLETE: CSA was completed 335bd294466SSara Sharon * @IWL_FW_TRIGGER_ID_NUM: number of trigger IDs 336bd294466SSara Sharon */ 337bd294466SSara Sharon enum iwl_fw_ini_trigger_id { 338ffb677dcSShahar S Matityahu IWL_FW_TRIGGER_ID_INVALID = 0, 339ffb677dcSShahar S Matityahu 340bd294466SSara Sharon /* Errors triggers */ 341bd294466SSara Sharon IWL_FW_TRIGGER_ID_FW_ASSERT = 1, 342ffb677dcSShahar S Matityahu IWL_FW_TRIGGER_ID_FW_HW_ERROR = 2, 343ffb677dcSShahar S Matityahu IWL_FW_TRIGGER_ID_FW_TFD_Q_HANG = 3, 344ffb677dcSShahar S Matityahu 345ffb677dcSShahar S Matityahu /* FW triggers */ 346ffb677dcSShahar S Matityahu IWL_FW_TRIGGER_ID_FW_DEBUG_HOST_TRIGGER = 4, 347fe63f21bSShahar S Matityahu IWL_FW_TRIGGER_ID_FW_GENERIC_NOTIFICATION = 5, 348ffb677dcSShahar S Matityahu 349ffb677dcSShahar S Matityahu /* User trigger */ 350ffb677dcSShahar S Matityahu IWL_FW_TRIGGER_ID_USER_TRIGGER = 6, 351ffb677dcSShahar S Matityahu 352fe63f21bSShahar S Matityahu /* periodic uses the data field for the interval time */ 353fe63f21bSShahar S Matityahu IWL_FW_TRIGGER_ID_PERIODIC_TRIGGER = 7, 354fe63f21bSShahar S Matityahu 355bd294466SSara Sharon /* Host triggers */ 356fe63f21bSShahar S Matityahu IWL_FW_TRIGGER_ID_HOST_PEER_CLIENT_INACTIVITY = 8, 357fe63f21bSShahar S Matityahu IWL_FW_TRIGGER_ID_HOST_TX_LATENCY_THRESHOLD_CROSSED = 9, 358fe63f21bSShahar S Matityahu IWL_FW_TRIGGER_ID_HOST_TX_RESPONSE_STATUS_FAILED = 10, 359fe63f21bSShahar S Matityahu IWL_FW_TRIGGER_ID_HOST_OS_REQ_DEAUTH_PEER = 11, 360fe63f21bSShahar S Matityahu IWL_FW_TRIGGER_ID_HOST_STOP_GO_REQUEST = 12, 361fe63f21bSShahar S Matityahu IWL_FW_TRIGGER_ID_HOST_START_GO_REQUEST = 13, 362fe63f21bSShahar S Matityahu IWL_FW_TRIGGER_ID_HOST_JOIN_GROUP_REQUEST = 14, 363fe63f21bSShahar S Matityahu IWL_FW_TRIGGER_ID_HOST_SCAN_START = 15, 364fe63f21bSShahar S Matityahu IWL_FW_TRIGGER_ID_HOST_SCAN_SUBMITTED = 16, 365fe63f21bSShahar S Matityahu IWL_FW_TRIGGER_ID_HOST_SCAN_PARAMS = 17, 366fe63f21bSShahar S Matityahu IWL_FW_TRIGGER_ID_HOST_CHECK_FOR_HANG = 18, 367fe63f21bSShahar S Matityahu IWL_FW_TRIGGER_ID_HOST_BAR_RECEIVED = 19, 368fe63f21bSShahar S Matityahu IWL_FW_TRIGGER_ID_HOST_AGG_TX_RESPONSE_STATUS_FAILED = 20, 369fe63f21bSShahar S Matityahu IWL_FW_TRIGGER_ID_HOST_EAPOL_TX_RESPONSE_FAILED = 21, 370fe63f21bSShahar S Matityahu IWL_FW_TRIGGER_ID_HOST_FAKE_TX_RESPONSE_SUSPECTED = 22, 371fe63f21bSShahar S Matityahu IWL_FW_TRIGGER_ID_HOST_AUTH_REQ_FROM_ASSOC_CLIENT = 23, 372fe63f21bSShahar S Matityahu IWL_FW_TRIGGER_ID_HOST_ROAM_COMPLETE = 24, 373fe63f21bSShahar S Matityahu IWL_FW_TRIGGER_ID_HOST_AUTH_ASSOC_FAST_FAILED = 25, 374fe63f21bSShahar S Matityahu IWL_FW_TRIGGER_ID_HOST_D3_START = 26, 375fe63f21bSShahar S Matityahu IWL_FW_TRIGGER_ID_HOST_D3_END = 27, 376fe63f21bSShahar S Matityahu IWL_FW_TRIGGER_ID_HOST_BSS_MISSED_BEACONS = 28, 377fe63f21bSShahar S Matityahu IWL_FW_TRIGGER_ID_HOST_P2P_CLIENT_MISSED_BEACONS = 29, 378fe63f21bSShahar S Matityahu IWL_FW_TRIGGER_ID_HOST_PEER_CLIENT_TX_FAILURES = 30, 379fe63f21bSShahar S Matityahu IWL_FW_TRIGGER_ID_HOST_TX_WFD_ACTION_FRAME_FAILED = 31, 380fe63f21bSShahar S Matityahu IWL_FW_TRIGGER_ID_HOST_AUTH_ASSOC_FAILED = 32, 381fe63f21bSShahar S Matityahu IWL_FW_TRIGGER_ID_HOST_SCAN_COMPLETE = 33, 382fe63f21bSShahar S Matityahu IWL_FW_TRIGGER_ID_HOST_SCAN_ABORT = 34, 383fe63f21bSShahar S Matityahu IWL_FW_TRIGGER_ID_HOST_NIC_ALIVE = 35, 384fe63f21bSShahar S Matityahu IWL_FW_TRIGGER_ID_HOST_CHANNEL_SWITCH_COMPLETE = 36, 385ffb677dcSShahar S Matityahu 386bd294466SSara Sharon IWL_FW_TRIGGER_ID_NUM, 387ffb677dcSShahar S Matityahu }; /* FW_DEBUG_TLV_TRIGGER_ID_E_VER_1 */ 388bd294466SSara Sharon 389bd294466SSara Sharon /** 390bd294466SSara Sharon * enum iwl_fw_ini_apply_point 391fe63f21bSShahar S Matityahu * 392bd294466SSara Sharon * @IWL_FW_INI_APPLY_INVALID: invalid 393bd294466SSara Sharon * @IWL_FW_INI_APPLY_EARLY: pre loading FW 394bd294466SSara Sharon * @IWL_FW_INI_APPLY_AFTER_ALIVE: first cmd from host after alive 395bd294466SSara Sharon * @IWL_FW_INI_APPLY_POST_INIT: last cmd in initialization sequence 396bd294466SSara Sharon * @IWL_FW_INI_APPLY_MISSED_BEACONS: missed beacons notification 397bd294466SSara Sharon * @IWL_FW_INI_APPLY_SCAN_COMPLETE: scan completed 398bd294466SSara Sharon * @IWL_FW_INI_APPLY_NUM: number of apply points 399bd294466SSara Sharon */ 400bd294466SSara Sharon enum iwl_fw_ini_apply_point { 401bd294466SSara Sharon IWL_FW_INI_APPLY_INVALID, 402bd294466SSara Sharon IWL_FW_INI_APPLY_EARLY, 403bd294466SSara Sharon IWL_FW_INI_APPLY_AFTER_ALIVE, 404bd294466SSara Sharon IWL_FW_INI_APPLY_POST_INIT, 405bd294466SSara Sharon IWL_FW_INI_APPLY_MISSED_BEACONS, 406bd294466SSara Sharon IWL_FW_INI_APPLY_SCAN_COMPLETE, 407bd294466SSara Sharon IWL_FW_INI_APPLY_NUM, 408d7febc2eSShahar S Matityahu }; /* FW_DEBUG_TLV_APPLY_POINT_E_VER_1 */ 409bd294466SSara Sharon 410bd294466SSara Sharon /** 411bd294466SSara Sharon * enum iwl_fw_ini_allocation_id 412fe63f21bSShahar S Matityahu * 413bd294466SSara Sharon * @IWL_FW_INI_ALLOCATION_INVALID: invalid 414bd294466SSara Sharon * @IWL_FW_INI_ALLOCATION_ID_DBGC1: allocation meant for DBGC1 configuration 415bd294466SSara Sharon * @IWL_FW_INI_ALLOCATION_ID_DBGC2: allocation meant for DBGC2 configuration 416bd294466SSara Sharon * @IWL_FW_INI_ALLOCATION_ID_DBGC3: allocation meant for DBGC3 configuration 417bd294466SSara Sharon * @IWL_FW_INI_ALLOCATION_ID_SDFX: for SDFX module 418bd294466SSara Sharon * @IWL_FW_INI_ALLOCATION_ID_FW_DUMP: used for crash and runtime dumps 419bd294466SSara Sharon * @IWL_FW_INI_ALLOCATION_ID_USER_DEFINED: for future user scenarios 420bd294466SSara Sharon */ 421bd294466SSara Sharon enum iwl_fw_ini_allocation_id { 422bd294466SSara Sharon IWL_FW_INI_ALLOCATION_INVALID, 423bd294466SSara Sharon IWL_FW_INI_ALLOCATION_ID_DBGC1, 424bd294466SSara Sharon IWL_FW_INI_ALLOCATION_ID_DBGC2, 425bd294466SSara Sharon IWL_FW_INI_ALLOCATION_ID_DBGC3, 426bd294466SSara Sharon IWL_FW_INI_ALLOCATION_ID_SDFX, 427bd294466SSara Sharon IWL_FW_INI_ALLOCATION_ID_FW_DUMP, 428bd294466SSara Sharon IWL_FW_INI_ALLOCATION_ID_USER_DEFINED, 429d7febc2eSShahar S Matityahu }; /* FW_DEBUG_TLV_ALLOCATION_ID_E_VER_1 */ 430bd294466SSara Sharon 431bd294466SSara Sharon /** 432bd294466SSara Sharon * enum iwl_fw_ini_buffer_location 433fe63f21bSShahar S Matityahu * 434bd294466SSara Sharon * @IWL_FW_INI_LOCATION_INVALID: invalid 435bd294466SSara Sharon * @IWL_FW_INI_LOCATION_SRAM_PATH: SRAM location 436bd294466SSara Sharon * @IWL_FW_INI_LOCATION_DRAM_PATH: DRAM location 437fe63f21bSShahar S Matityahu * @IWL_FW_INI_LOCATION_NPK_PATH: NPK location 438bd294466SSara Sharon */ 439bd294466SSara Sharon enum iwl_fw_ini_buffer_location { 44056ea8e3bSShahar S Matityahu IWL_FW_INI_LOCATION_INVALID, 441bd294466SSara Sharon IWL_FW_INI_LOCATION_SRAM_PATH, 442bd294466SSara Sharon IWL_FW_INI_LOCATION_DRAM_PATH, 443fe63f21bSShahar S Matityahu IWL_FW_INI_LOCATION_NPK_PATH, 444d7febc2eSShahar S Matityahu }; /* FW_DEBUG_TLV_BUFFER_LOCATION_E_VER_1 */ 445bd294466SSara Sharon 446bd294466SSara Sharon /** 447bd294466SSara Sharon * enum iwl_fw_ini_debug_flow 448fe63f21bSShahar S Matityahu * 449bd294466SSara Sharon * @IWL_FW_INI_DEBUG_INVALID: invalid 450bd294466SSara Sharon * @IWL_FW_INI_DEBUG_DBTR_FLOW: undefined 451bd294466SSara Sharon * @IWL_FW_INI_DEBUG_TB2DTF_FLOW: undefined 452bd294466SSara Sharon */ 453bd294466SSara Sharon enum iwl_fw_ini_debug_flow { 454bd294466SSara Sharon IWL_FW_INI_DEBUG_INVALID, 455bd294466SSara Sharon IWL_FW_INI_DEBUG_DBTR_FLOW, 456bd294466SSara Sharon IWL_FW_INI_DEBUG_TB2DTF_FLOW, 457d7febc2eSShahar S Matityahu }; /* FW_DEBUG_TLV_FLOW_E_VER_1 */ 458bd294466SSara Sharon 459bd294466SSara Sharon /** 460bd294466SSara Sharon * enum iwl_fw_ini_region_type 461fe63f21bSShahar S Matityahu * 462bd294466SSara Sharon * @IWL_FW_INI_REGION_INVALID: invalid 463bd294466SSara Sharon * @IWL_FW_INI_REGION_DEVICE_MEMORY: device internal memory 464bd294466SSara Sharon * @IWL_FW_INI_REGION_PERIPHERY_MAC: periphery registers of MAC 465bd294466SSara Sharon * @IWL_FW_INI_REGION_PERIPHERY_PHY: periphery registers of PHY 466bd294466SSara Sharon * @IWL_FW_INI_REGION_PERIPHERY_AUX: periphery registers of AUX 467bd294466SSara Sharon * @IWL_FW_INI_REGION_DRAM_BUFFER: DRAM buffer 468bd294466SSara Sharon * @IWL_FW_INI_REGION_DRAM_IMR: IMR memory 469bd294466SSara Sharon * @IWL_FW_INI_REGION_INTERNAL_BUFFER: undefined 470bd294466SSara Sharon * @IWL_FW_INI_REGION_TXF: TX fifos 471bd294466SSara Sharon * @IWL_FW_INI_REGION_RXF: RX fifo 472bd294466SSara Sharon * @IWL_FW_INI_REGION_PAGING: paging memory 473bd294466SSara Sharon * @IWL_FW_INI_REGION_CSR: CSR registers 474fe63f21bSShahar S Matityahu * @IWL_FW_INI_REGION_NOTIFICATION: FW notification data 475fe63f21bSShahar S Matityahu * @IWL_FW_INI_REGION_DHC: dhc response to dump 476bd294466SSara Sharon * @IWL_FW_INI_REGION_NUM: number of region types 477bd294466SSara Sharon */ 478bd294466SSara Sharon enum iwl_fw_ini_region_type { 479bd294466SSara Sharon IWL_FW_INI_REGION_INVALID, 480bd294466SSara Sharon IWL_FW_INI_REGION_DEVICE_MEMORY, 481bd294466SSara Sharon IWL_FW_INI_REGION_PERIPHERY_MAC, 482bd294466SSara Sharon IWL_FW_INI_REGION_PERIPHERY_PHY, 483bd294466SSara Sharon IWL_FW_INI_REGION_PERIPHERY_AUX, 484bd294466SSara Sharon IWL_FW_INI_REGION_DRAM_BUFFER, 485bd294466SSara Sharon IWL_FW_INI_REGION_DRAM_IMR, 486bd294466SSara Sharon IWL_FW_INI_REGION_INTERNAL_BUFFER, 487bd294466SSara Sharon IWL_FW_INI_REGION_TXF, 488bd294466SSara Sharon IWL_FW_INI_REGION_RXF, 489bd294466SSara Sharon IWL_FW_INI_REGION_PAGING, 490bd294466SSara Sharon IWL_FW_INI_REGION_CSR, 491fe63f21bSShahar S Matityahu IWL_FW_INI_REGION_NOTIFICATION, 492fe63f21bSShahar S Matityahu IWL_FW_INI_REGION_DHC, 493bd294466SSara Sharon IWL_FW_INI_REGION_NUM 494d7febc2eSShahar S Matityahu }; /* FW_DEBUG_TLV_REGION_TYPE_E_VER_1 */ 495bd294466SSara Sharon 496bd294466SSara Sharon #endif 497