Path: blob/main/sys/contrib/dev/iwlwifi/fw/api/commands.h
48427 views
/* SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause */1/*2* Copyright (C) 2013-2015 Intel Mobile Communications GmbH3* Copyright (C) 2016-2017 Intel Deutschland GmbH4* Copyright (C) 2018-2022, 2024-2025 Intel Corporation5*/6#ifndef __iwl_fw_api_commands_h__7#define __iwl_fw_api_commands_h__89/**10* enum iwl_mvm_command_groups - command groups for the firmware11* @LEGACY_GROUP: legacy group, uses command IDs from &enum iwl_legacy_cmds12* @LONG_GROUP: legacy group with long header, also uses command IDs13* from &enum iwl_legacy_cmds14* @SYSTEM_GROUP: system group, uses command IDs from15* &enum iwl_system_subcmd_ids16* @MAC_CONF_GROUP: MAC configuration group, uses command IDs from17* &enum iwl_mac_conf_subcmd_ids18* @PHY_OPS_GROUP: PHY operations group, uses command IDs from19* &enum iwl_phy_ops_subcmd_ids20* @DATA_PATH_GROUP: data path group, uses command IDs from21* &enum iwl_data_path_subcmd_ids22* @SCAN_GROUP: scan group, uses command IDs from23* &enum iwl_scan_subcmd_ids24* @NAN_GROUP: NAN group, uses command IDs from &enum iwl_nan_subcmd_ids25* @LOCATION_GROUP: location group, uses command IDs from26* &enum iwl_location_subcmd_ids27* @BT_COEX_GROUP: bt coex group, uses command IDs from28* &enum iwl_bt_coex_subcmd_ids29* @PROT_OFFLOAD_GROUP: protocol offload group, uses command IDs from30* &enum iwl_prot_offload_subcmd_ids31* @REGULATORY_AND_NVM_GROUP: regulatory/NVM group, uses command IDs from32* &enum iwl_regulatory_and_nvm_subcmd_ids33* @DEBUG_GROUP: Debug group, uses command IDs from &enum iwl_debug_cmds34* @STATISTICS_GROUP: Statistics group, uses command IDs from35* &enum iwl_statistics_subcmd_ids36*/37enum iwl_mvm_command_groups {38LEGACY_GROUP = 0x0,39LONG_GROUP = 0x1,40SYSTEM_GROUP = 0x2,41MAC_CONF_GROUP = 0x3,42PHY_OPS_GROUP = 0x4,43DATA_PATH_GROUP = 0x5,44SCAN_GROUP = 0x6,45NAN_GROUP = 0x7,46LOCATION_GROUP = 0x8,47BT_COEX_GROUP = 0x9,48PROT_OFFLOAD_GROUP = 0xb,49REGULATORY_AND_NVM_GROUP = 0xc,50DEBUG_GROUP = 0xf,51STATISTICS_GROUP = 0x10,52};5354/**55* enum iwl_legacy_cmds - legacy group command IDs56*/57enum iwl_legacy_cmds {58/**59* @UCODE_ALIVE_NTFY:60* Alive data from the firmware, as described in61* &struct iwl_alive_ntf_v3 or &struct iwl_alive_ntf_v4 or62* &struct iwl_alive_ntf_v5 or &struct iwl_alive_ntf_v6.63*/64UCODE_ALIVE_NTFY = 0x1,6566/**67* @REPLY_ERROR: Cause an error in the firmware, for testing purposes.68*/69REPLY_ERROR = 0x2,7071/**72* @ECHO_CMD: Send data to the device to have it returned immediately.73*/74ECHO_CMD = 0x3,7576/**77* @INIT_COMPLETE_NOTIF: Notification that initialization is complete.78*/79INIT_COMPLETE_NOTIF = 0x4,8081/**82* @PHY_CONTEXT_CMD:83* Add/modify/remove a PHY context, using &struct iwl_phy_context_cmd84* or &struct iwl_phy_context_cmd_v1.85*/86PHY_CONTEXT_CMD = 0x8,8788/**89* @DBG_CFG: Debug configuration command.90*/91DBG_CFG = 0x9,9293/**94* @SCAN_ITERATION_COMPLETE_UMAC:95* Firmware indicates a scan iteration completed, using96* &struct iwl_umac_scan_iter_complete_notif.97*/98SCAN_ITERATION_COMPLETE_UMAC = 0xb5,99100/**101* @SCAN_CFG_CMD:102* uses &struct iwl_scan_config_v1, &struct iwl_scan_config_v2103* or &struct iwl_scan_config104*/105SCAN_CFG_CMD = 0xc,106107/**108* @SCAN_REQ_UMAC: uses &struct iwl_scan_req_umac109*/110SCAN_REQ_UMAC = 0xd,111112/**113* @SCAN_ABORT_UMAC: uses &struct iwl_umac_scan_abort114*/115SCAN_ABORT_UMAC = 0xe,116117/**118* @SCAN_COMPLETE_UMAC: uses &struct iwl_umac_scan_complete119*/120SCAN_COMPLETE_UMAC = 0xf,121122/**123* @BA_WINDOW_STATUS_NOTIFICATION_ID:124* uses &struct iwl_ba_window_status_notif125*/126BA_WINDOW_STATUS_NOTIFICATION_ID = 0x13,127128/**129* @ADD_STA_KEY:130* &struct iwl_mvm_add_sta_key_cmd_v1 or131* &struct iwl_mvm_add_sta_key_cmd.132*/133ADD_STA_KEY = 0x17,134135/**136* @ADD_STA:137* &struct iwl_mvm_add_sta_cmd or &struct iwl_mvm_add_sta_cmd_v7.138*/139ADD_STA = 0x18,140141/**142* @REMOVE_STA: &struct iwl_mvm_rm_sta_cmd143*/144REMOVE_STA = 0x19,145146/**147* @TX_CMD: uses &struct iwl_tx_cmd_v6 or &struct iwl_tx_cmd_v9 or148* &struct iwl_tx_cmd,149* response in &struct iwl_tx_resp or150* &struct iwl_tx_resp_v3151*/152TX_CMD = 0x1c,153154/**155* @TXPATH_FLUSH: &struct iwl_tx_path_flush_cmd156* response in &struct iwl_tx_path_flush_cmd_rsp157*/158TXPATH_FLUSH = 0x1e,159160/**161* @MGMT_MCAST_KEY:162* &struct iwl_mvm_mgmt_mcast_key_cmd or163* &struct iwl_mvm_mgmt_mcast_key_cmd_v1164*/165MGMT_MCAST_KEY = 0x1f,166167/* scheduler config */168/**169* @SCD_QUEUE_CFG: &struct iwl_scd_txq_cfg_cmd for older hardware,170* &struct iwl_tx_queue_cfg_cmd with &struct iwl_tx_queue_cfg_rsp171* for newer (22000) hardware.172*/173SCD_QUEUE_CFG = 0x1d,174175/**176* @WEP_KEY: uses &struct iwl_mvm_wep_key_cmd177*/178WEP_KEY = 0x20,179180/**181* @SHARED_MEM_CFG:182* retrieve shared memory configuration - response in183* &struct iwl_shared_mem_cfg184*/185SHARED_MEM_CFG = 0x25,186187/**188* @TDLS_CHANNEL_SWITCH_CMD: uses &struct iwl_tdls_channel_switch_cmd189*/190TDLS_CHANNEL_SWITCH_CMD = 0x27,191192/**193* @TDLS_CHANNEL_SWITCH_NOTIFICATION:194* uses &struct iwl_tdls_channel_switch_notif195*/196TDLS_CHANNEL_SWITCH_NOTIFICATION = 0xaa,197198/**199* @TDLS_CONFIG_CMD:200* &struct iwl_tdls_config_cmd, response in &struct iwl_tdls_config_res201*/202TDLS_CONFIG_CMD = 0xa7,203204/**205* @MAC_CONTEXT_CMD: &struct iwl_mac_ctx_cmd206*/207MAC_CONTEXT_CMD = 0x28,208209/**210* @TIME_EVENT_CMD:211* &struct iwl_time_event_cmd, response in &struct iwl_time_event_resp212*/213TIME_EVENT_CMD = 0x29, /* both CMD and response */214215/**216* @TIME_EVENT_NOTIFICATION: &struct iwl_time_event_notif217*/218TIME_EVENT_NOTIFICATION = 0x2a,219220/**221* @BINDING_CONTEXT_CMD:222* &struct iwl_binding_cmd or &struct iwl_binding_cmd_v1223*/224BINDING_CONTEXT_CMD = 0x2b,225226/**227* @TIME_QUOTA_CMD: &struct iwl_time_quota_cmd228*/229TIME_QUOTA_CMD = 0x2c,230231/**232* @NON_QOS_TX_COUNTER_CMD:233* command is &struct iwl_nonqos_seq_query_cmd234*/235NON_QOS_TX_COUNTER_CMD = 0x2d,236237/**238* @LEDS_CMD: command is &struct iwl_led_cmd239*/240LEDS_CMD = 0x48,241242/**243* @LQ_CMD: using &struct iwl_lq_cmd244*/245LQ_CMD = 0x4e,246247/**248* @FW_PAGING_BLOCK_CMD:249* &struct iwl_fw_paging_cmd250*/251FW_PAGING_BLOCK_CMD = 0x4f,252253/**254* @SCAN_OFFLOAD_REQUEST_CMD: uses &struct iwl_scan_req_lmac255*/256SCAN_OFFLOAD_REQUEST_CMD = 0x51,257258/**259* @SCAN_OFFLOAD_ABORT_CMD: abort the scan - no further contents260*/261SCAN_OFFLOAD_ABORT_CMD = 0x52,262263/**264* @HOT_SPOT_CMD: uses &struct iwl_hs20_roc_req265*/266HOT_SPOT_CMD = 0x53,267268/**269* @WNM_80211V_TIMING_MEASUREMENT_NOTIFICATION: Time Sync270* measurement notification for TM/FTM. Sent on receipt of271* respective WNM action frame for TM protocol or public action272* frame for FTM protocol from peer device along with additional273* meta data specified in &struct iwl_time_msmt_notify274*/275WNM_80211V_TIMING_MEASUREMENT_NOTIFICATION = 0x67,276277/**278* @WNM_80211V_TIMING_MEASUREMENT_CONFIRM_NOTIFICATION: Time Sync279* measurement confirmation notification for TM/FTM. Sent on280* receipt of Ack from peer for previously Tx'ed TM/FTM281* action frame along with additional meta data specified in282* &struct iwl_time_msmt_cfm_notify283*/284WNM_80211V_TIMING_MEASUREMENT_CONFIRM_NOTIFICATION = 0x68,285286/**287* @SCAN_OFFLOAD_COMPLETE:288* notification, &struct iwl_periodic_scan_complete289*/290SCAN_OFFLOAD_COMPLETE = 0x6D,291292/**293* @SCAN_OFFLOAD_UPDATE_PROFILES_CMD:294* update scan offload (scheduled scan) profiles/blocklist/etc.295*/296SCAN_OFFLOAD_UPDATE_PROFILES_CMD = 0x6E,297298/**299* @MATCH_FOUND_NOTIFICATION: scan match found300*/301MATCH_FOUND_NOTIFICATION = 0xd9,302303/**304* @SCAN_ITERATION_COMPLETE:305* uses &struct iwl_lmac_scan_complete_notif306*/307SCAN_ITERATION_COMPLETE = 0xe7,308309/* Phy */310/**311* @PHY_CONFIGURATION_CMD: &struct iwl_phy_cfg_cmd_v1 or &struct iwl_phy_cfg_cmd_v3312*/313PHY_CONFIGURATION_CMD = 0x6a,314315/**316* @CALIB_RES_NOTIF_PHY_DB: &struct iwl_calib_res_notif_phy_db317*/318CALIB_RES_NOTIF_PHY_DB = 0x6b,319320/**321* @PHY_DB_CMD: &struct iwl_phy_db_cmd322*/323PHY_DB_CMD = 0x6c,324325/**326* @POWER_TABLE_CMD: &struct iwl_device_power_cmd327*/328POWER_TABLE_CMD = 0x77,329330/**331* @PSM_UAPSD_AP_MISBEHAVING_NOTIFICATION:332* &struct iwl_uapsd_misbehaving_ap_notif333*/334PSM_UAPSD_AP_MISBEHAVING_NOTIFICATION = 0x78,335336/**337* @LTR_CONFIG: &struct iwl_ltr_config_cmd338*/339LTR_CONFIG = 0xee,340341/**342* @REPLY_THERMAL_MNG_BACKOFF:343* Thermal throttling command344*/345REPLY_THERMAL_MNG_BACKOFF = 0x7e,346347/**348* @NVM_ACCESS_CMD: using &struct iwl_nvm_access_cmd349*/350NVM_ACCESS_CMD = 0x88,351352/**353* @BEACON_NOTIFICATION: &struct iwl_extended_beacon_notif354*/355BEACON_NOTIFICATION = 0x90,356357/**358* @BEACON_TEMPLATE_CMD:359* Uses one of &struct iwl_mac_beacon_cmd_v6,360* &struct iwl_mac_beacon_cmd_v7 or &struct iwl_mac_beacon_cmd361* depending on the device version.362*/363BEACON_TEMPLATE_CMD = 0x91,364/**365* @TX_ANT_CONFIGURATION_CMD: &struct iwl_tx_ant_cfg_cmd366*/367TX_ANT_CONFIGURATION_CMD = 0x98,368369/**370* @STATISTICS_CMD:371* one of &struct iwl_statistics_cmd,372* &struct iwl_notif_statistics_v11,373* &struct iwl_notif_statistics_v10,374* &struct iwl_notif_statistics,375* &struct iwl_statistics_operational_ntfy_ver_14376*/377STATISTICS_CMD = 0x9c,378379/**380* @STATISTICS_NOTIFICATION:381* one of &struct iwl_notif_statistics_v10,382* &struct iwl_notif_statistics_v11,383* &struct iwl_notif_statistic,384* &struct iwl_statistics_operational_ntfy_ver_14385* &struct iwl_statistics_operational_ntfy386*/387STATISTICS_NOTIFICATION = 0x9d,388389/**390* @EOSP_NOTIFICATION:391* Notify that a service period ended,392* &struct iwl_mvm_eosp_notification393*/394EOSP_NOTIFICATION = 0x9e,395396/**397* @REDUCE_TX_POWER_CMD:398* &struct iwl_dev_tx_power_cmd399*/400REDUCE_TX_POWER_CMD = 0x9f,401402/**403* @MISSED_BEACONS_NOTIFICATION: &struct iwl_missed_beacons_notif_v4404*/405MISSED_BEACONS_NOTIFICATION = 0xa2,406407/**408* @MAC_PM_POWER_TABLE: using &struct iwl_mac_power_cmd409*/410MAC_PM_POWER_TABLE = 0xa9,411412/**413* @MFUART_LOAD_NOTIFICATION: &struct iwl_mfuart_load_notif414*/415MFUART_LOAD_NOTIFICATION = 0xb1,416417/**418* @RSS_CONFIG_CMD: &struct iwl_rss_config_cmd419*/420RSS_CONFIG_CMD = 0xb3,421422/**423* @REPLY_RX_PHY_CMD: &struct iwl_rx_phy_info424*/425REPLY_RX_PHY_CMD = 0xc0,426427/**428* @REPLY_RX_MPDU_CMD:429* &struct iwl_rx_mpdu_res_start or &struct iwl_rx_mpdu_desc430*/431REPLY_RX_MPDU_CMD = 0xc1,432433/**434* @BAR_FRAME_RELEASE: Frame release from BAR notification, used for435* multi-TID BAR (previously, the BAR frame itself was reported436* instead). Uses &struct iwl_bar_frame_release.437*/438BAR_FRAME_RELEASE = 0xc2,439440/**441* @FRAME_RELEASE:442* Frame release (reorder helper) notification, uses443* &struct iwl_frame_release444*/445FRAME_RELEASE = 0xc3,446447/**448* @BA_NOTIF:449* BlockAck notification, uses &struct iwl_compressed_ba_notif450* or &struct iwl_mvm_ba_notif depending on the HW451*/452BA_NOTIF = 0xc5,453454/* Location Aware Regulatory */455/**456* @MCC_UPDATE_CMD: using &struct iwl_mcc_update_cmd457*/458MCC_UPDATE_CMD = 0xc8,459460/**461* @MCC_CHUB_UPDATE_CMD: using &struct iwl_mcc_chub_notif462*/463MCC_CHUB_UPDATE_CMD = 0xc9,464465/**466* @MARKER_CMD: trace marker command, uses &struct iwl_mvm_marker467* with &struct iwl_mvm_marker_rsp468*/469MARKER_CMD = 0xcb,470471/**472* @BT_PROFILE_NOTIFICATION: &struct iwl_bt_coex_prof_old_notif473*/474BT_PROFILE_NOTIFICATION = 0xce,475476/**477* @BT_CONFIG: &struct iwl_bt_coex_cmd478*/479BT_CONFIG = 0x9b,480481/**482* @BT_COEX_UPDATE_REDUCED_TXP:483* &struct iwl_bt_coex_reduced_txp_update_cmd484*/485BT_COEX_UPDATE_REDUCED_TXP = 0x5c,486487/**488* @BT_COEX_CI: &struct iwl_bt_coex_ci_cmd489*/490BT_COEX_CI = 0x5d,491492/**493* @REPLY_SF_CFG_CMD: &struct iwl_sf_cfg_cmd494*/495REPLY_SF_CFG_CMD = 0xd1,496/**497* @REPLY_BEACON_FILTERING_CMD: &struct iwl_beacon_filter_cmd498*/499REPLY_BEACON_FILTERING_CMD = 0xd2,500501/**502* @DTS_MEASUREMENT_NOTIFICATION:503* &struct iwl_dts_measurement_notif_v1 or504* &struct iwl_dts_measurement_notif505*/506DTS_MEASUREMENT_NOTIFICATION = 0xdd,507508/**509* @DEBUG_HOST_COMMAND: &struct iwl_dhc_cmd510*/511DEBUG_HOST_COMMAND = 0xf1,512513/**514* @LDBG_CONFIG_CMD: configure continuous trace recording515*/516LDBG_CONFIG_CMD = 0xf6,517518/**519* @DEBUG_LOG_MSG: Debugging log data from firmware520*/521DEBUG_LOG_MSG = 0xf7,522523/**524* @MCAST_FILTER_CMD: &struct iwl_mcast_filter_cmd525*/526MCAST_FILTER_CMD = 0xd0,527528/**529* @D3_CONFIG_CMD: &struct iwl_d3_manager_config530*/531D3_CONFIG_CMD = 0xd3,532533/**534* @PROT_OFFLOAD_CONFIG_CMD: Depending on firmware, uses one of535* &struct iwl_proto_offload_cmd_v1, &struct iwl_proto_offload_cmd_v2,536* &struct iwl_proto_offload_cmd_v3_small,537* &struct iwl_proto_offload_cmd_v3_large538*/539PROT_OFFLOAD_CONFIG_CMD = 0xd4,540541/**542* @D0I3_END_CMD: End D0i3/D3 state, no command data543*/544D0I3_END_CMD = 0xed,545546/**547* @WOWLAN_PATTERNS: &struct iwl_wowlan_patterns_cmd548*/549WOWLAN_PATTERNS = 0xe0,550551/**552* @WOWLAN_CONFIGURATION: &struct iwl_wowlan_config_cmd553*/554WOWLAN_CONFIGURATION = 0xe1,555556/**557* @WOWLAN_TSC_RSC_PARAM: &struct iwl_wowlan_rsc_tsc_params_cmd_v4,558* &struct iwl_wowlan_rsc_tsc_params_cmd559*/560WOWLAN_TSC_RSC_PARAM = 0xe2,561562/**563* @WOWLAN_TKIP_PARAM: &struct iwl_wowlan_tkip_params_cmd564*/565WOWLAN_TKIP_PARAM = 0xe3,566567/**568* @WOWLAN_KEK_KCK_MATERIAL: &struct iwl_wowlan_kek_kck_material_cmd_v2,569* &struct iwl_wowlan_kek_kck_material_cmd_v3 or570* &struct iwl_wowlan_kek_kck_material_cmd_v4571*/572WOWLAN_KEK_KCK_MATERIAL = 0xe4,573574/**575* @WOWLAN_GET_STATUSES: response in &struct iwl_wowlan_status_v6 or576* &struct iwl_wowlan_status_v7577*/578WOWLAN_GET_STATUSES = 0xe5,579580/**581* @SCAN_OFFLOAD_PROFILES_QUERY_CMD: No command data, response is582* &struct iwl_scan_offload_profiles_query_v1583*/584SCAN_OFFLOAD_PROFILES_QUERY_CMD = 0x56,585};586587/**588* enum iwl_system_subcmd_ids - system group command IDs589*/590enum iwl_system_subcmd_ids {591/**592* @SHARED_MEM_CFG_CMD:593* response in &struct iwl_shared_mem_cfg or594* &struct iwl_shared_mem_cfg_v2595*/596SHARED_MEM_CFG_CMD = 0x0,597598/**599* @SOC_CONFIGURATION_CMD: &struct iwl_soc_configuration_cmd600*/601SOC_CONFIGURATION_CMD = 0x01,602603/**604* @INIT_EXTENDED_CFG_CMD: &struct iwl_init_extended_cfg_cmd605*/606INIT_EXTENDED_CFG_CMD = 0x03,607608/**609* @FW_ERROR_RECOVERY_CMD: &struct iwl_fw_error_recovery_cmd610*/611FW_ERROR_RECOVERY_CMD = 0x7,612613/**614* @RFI_CONFIG_CMD: &struct iwl_rfi_config_cmd615*/616RFI_CONFIG_CMD = 0xb,617618/**619* @RFI_GET_FREQ_TABLE_CMD: &struct iwl_rfi_config_cmd620*/621RFI_GET_FREQ_TABLE_CMD = 0xc,622623/**624* @SYSTEM_FEATURES_CONTROL_CMD: &struct iwl_system_features_control_cmd625*/626SYSTEM_FEATURES_CONTROL_CMD = 0xd,627628/**629* @SYSTEM_STATISTICS_CMD: &struct iwl_system_statistics_cmd630*/631SYSTEM_STATISTICS_CMD = 0xf,632633/**634* @SYSTEM_STATISTICS_END_NOTIF: &struct iwl_system_statistics_end_notif635*/636SYSTEM_STATISTICS_END_NOTIF = 0xfd,637638/**639* @RFI_DEACTIVATE_NOTIF: &struct iwl_rfi_deactivate_notif640*/641RFI_DEACTIVATE_NOTIF = 0xff,642};643644/**645* enum iwl_statistics_subcmd_ids - Statistics group command IDs646*/647enum iwl_statistics_subcmd_ids {648/**649* @STATISTICS_OPER_NOTIF: Notification about operational650* statistics &struct iwl_system_statistics_notif_oper651*/652STATISTICS_OPER_NOTIF = 0x0,653654/**655* @STATISTICS_OPER_PART1_NOTIF: Notification about operational part1656* statistics &struct iwl_system_statistics_part1_notif_oper657*/658STATISTICS_OPER_PART1_NOTIF = 0x1,659};660661#endif /* __iwl_fw_api_commands_h__ */662663664