fw-api: CL 12378129 - update fw common interface files

WMI/HTT: negotiate support for split AST

Change-Id: I508e24322a86cacbe8e5bcba80c27b7d658a8415
CRs-Fixed: 2262693
This commit is contained in:
spuligil 2020-12-17 12:00:46 -08:00 • committed by snandini
commit 6f1c4a182d
4 changed files with 78 additions and 21 deletions

View file

@ -208,9 +208,10 @@
* 3.84 Add fisa_control_bits_v2 def.
* 3.85 Add HTT_RX_PEER_META_DATA defs.
* 3.86 Add HTT_T2H_MSG_TYPE_FSE_CMEM_BASE_SEND def.
* 3.87 Add on-chip AST index field to PEER_MAP_V2 msg.
*/
#define HTT_CURRENT_VERSION_MAJOR 3
#define HTT_CURRENT_VERSION_MINOR 86
#define HTT_CURRENT_VERSION_MINOR 87
#define HTT_NUM_TX_FRAG_DESC 1024
@ -9181,27 +9182,28 @@ PREPACK struct htt_tx_offload_deliver_ind_hdr_t
* AST 3, check the AST_VALID_MASK(3) to see if the corresponding extension
* AST is valid.
*
* |31 28|27 24|23 20|19 17|16|15 8|7 0|
* |-----------------------------------------------------------------------|
* | SW peer ID | VDEV ID | msg type |
* |-----------------------------------------------------------------------|
* | MAC addr 3 | MAC addr 2 | MAC addr 1 | MAC addr 0 |
* |-----------------------------------------------------------------------|
* | HW peer ID / AST index 0 | MAC addr 5 | MAC addr 4 |
* |-----------------------------------------------------------------------|
* | Reserved_20_31 |ASTVM|NH| AST Hash Value |
* |-----------------------------------------------------------------------|
* | ASTFM3 | ASTFM2 | ASTFM1 | ASTFM0 | AST index 1 |
* |-----------------------------------------------------------------------|
* |TID valid low pri| TID valid hi pri| AST index 2 |
* |-----------------------------------------------------------------------|
* | Reserved_1 | AST index 3 |
* |-----------------------------------------------------------------------|
* | Reserved_2 |
* |-----------------------------------------------------------------------|
* |31 28|27 24|23 21|20|19 17|16|15 8|7 0|
* |-------------------------------------------------------------------------|
* | SW peer ID | VDEV ID | msg type |
* |-------------------------------------------------------------------------|
* | MAC addr 3 | MAC addr 2 | MAC addr 1 | MAC addr 0 |
* |-------------------------------------------------------------------------|
* | HW peer ID / AST index 0 | MAC addr 5 | MAC addr 4 |
* |-------------------------------------------------------------------------|
* | Reserved_21_31 |OA|ASTVM|NH| AST Hash Value |
* |-------------------------------------------------------------------------|
* | ASTFM3 | ASTFM2 | ASTFM1 | ASTFM0 | AST index 1 |
* |-------------------------------------------------------------------------|
* |TID valid low pri| TID valid hi pri | AST index 2 |
* |-------------------------------------------------------------------------|
* | LMAC/PMAC_RXPCU AST index | AST index 3 |
* |-------------------------------------------------------------------------|
* | Reserved_2 |
* |-------------------------------------------------------------------------|
* Where:
* NH = Next Hop
* ASTVM = AST valid mask
* OA = on-chip AST valid bit
* ASTFM = AST flow mask
*
* The following field definitions describe the format of the rx peer map v2
@ -9244,6 +9246,10 @@ PREPACK struct htt_tx_offload_deliver_ind_hdr_t
* - AST_VALID_MASK
* Bits 19:17
* Purpose: Indicate if the AST 1 through AST 3 are valid
* - ONCHIP_AST_VALID_FLAG
* Bit 20
* Purpose: Indicate if the on-chip AST index field (ONCHIP_AST_IDX)
* is valid.
* - AST_INDEX_1
* Bits 15:0
* Purpose: indicate the second AST index for this peer
@ -9271,6 +9277,13 @@ PREPACK struct htt_tx_offload_deliver_ind_hdr_t
* - AST_INDEX_3
* Bits 15:0
* Purpose: indicate the fourth AST index for this peer
* - ONCHIP_AST_IDX / RESERVED
* Bits 31:16
* Purpose: This field is valid only when split AST feature is enabled.
* The ONCHIP_AST_VALID_FLAG identifies whether this field is valid.
* If valid, identifies the HW peer ID corresponding to the peer MAC
* address, this ast_idx is used for LMAC modules for RXPCU.
* Value: ID used by the LMAC HW to identify the peer
*/
#define HTT_RX_PEER_MAP_V2_VDEV_ID_M 0xff00
#define HTT_RX_PEER_MAP_V2_VDEV_ID_S 8
@ -9289,6 +9302,9 @@ PREPACK struct htt_tx_offload_deliver_ind_hdr_t
#define HTT_RX_PEER_MAP_V2_AST_VALID_MASK_M 0x000e0000
#define HTT_RX_PEER_MAP_V2_AST_VALID_MASK_S 17
#define HTT_RX_PEER_MAP_V2_ONCHIP_AST_VALID_FLAG_M 0x00100000
#define HTT_RX_PEER_MAP_V2_ONCHIP_AST_VALID_FLAG_S 20
#define HTT_RX_PEER_MAP_V2_AST_INDEX_1_M 0xffff
#define HTT_RX_PEER_MAP_V2_AST_INDEX_1_S 0
#define HTT_RX_PEER_MAP_V2_AST_0_FLOW_MASK_M 0x000f0000
@ -9310,6 +9326,9 @@ PREPACK struct htt_tx_offload_deliver_ind_hdr_t
#define HTT_RX_PEER_MAP_V2_AST_INDEX_3_M 0xffff
#define HTT_RX_PEER_MAP_V2_AST_INDEX_3_S 0
#define HTT_RX_PEER_MAP_V2_ONCHIP_AST_HASH_VALUE_M 0xffff0000
#define HTT_RX_PEER_MAP_V2_ONCHIP_AST_HASH_VALUE_S 16
#define HTT_RX_PEER_MAP_V2_VDEV_ID_SET(word, value) \
do { \
HTT_CHECK_SET_VAL(HTT_RX_PEER_MAP_V2_VDEV_ID, value); \
@ -9342,6 +9361,14 @@ PREPACK struct htt_tx_offload_deliver_ind_hdr_t
#define HTT_RX_PEER_MAP_V2_AST_HASH_VALUE_GET(word) \
(((word) & HTT_RX_PEER_MAP_V2_AST_HASH_VALUE_M) >> HTT_RX_PEER_MAP_V2_AST_HASH_VALUE_S)
#define HTT_RX_PEER_MAP_V2_ONCHIP_AST_HASH_VALUE_SET(word, value) \
do { \
HTT_CHECK_SET_VAL(HTT_RX_PEER_MAP_V2_ONCHIP_AST_HASH_VALUE_M, value); \
(word) |= (value) << HTT_RX_PEER_MAP_V2_ONCHIP_AST_HASH_VALUE_S; \
} while (0)
#define HTT_RX_PEER_MAP_V2_ONCHIP_AST_HASH_VALUE_GET(word) \
(((word) & HTT_RX_PEER_MAP_V2_ONCHIP_AST_HASH_VALUE_M) >> HTT_RX_PEER_MAP_V2_ONCHIP_AST_HASH_VALUE_S)
#define HTT_RX_PEER_MAP_V2_NEXT_HOP_SET(word, value) \
do { \
HTT_CHECK_SET_VAL(HTT_RX_PEER_MAP_V2_NEXT_HOP, value); \
@ -9358,6 +9385,14 @@ PREPACK struct htt_tx_offload_deliver_ind_hdr_t
#define HTT_RX_PEER_MAP_V2_AST_VALID_MASK_GET(word) \
(((word) & HTT_RX_PEER_MAP_V2_AST_VALID_MASK_M) >> HTT_RX_PEER_MAP_V2_AST_VALID_MASK_S)
#define HTT_RX_PEER_MAP_V2_ONCHIP_AST_VALID_FLAG_SET(word, value) \
do { \
HTT_CHECK_SET_VAL(HTT_RX_PEER_MAP_V2_ONCHIP_AST_VALID_FLAG_M, value); \
(word) |= (value) << HTT_RX_PEER_MAP_V2_ONCHIP_AST_VALID_FLAG_S; \
} while (0)
#define HTT_RX_PEER_MAP_V2_ONCHIP_AST_VALID_MASK_GET(word) \
(((word) & HTT_RX_PEER_MAP_V2_ONCHIP_AST_VALID_FLAG_M) >> HTT_RX_PEER_MAP_V2_ONCHIP_AST_VALID_FLAG_S)
#define HTT_RX_PEER_MAP_V2_AST_INDEX_1_SET(word, value) \
do { \
HTT_CHECK_SET_VAL(HTT_RX_PEER_MAP_V2_AST_INDEX_1, value); \

View file

@ -489,6 +489,7 @@ typedef enum {
WMI_SERVICE_TWT_NUDGE = 269, /* Indicates that FW supports TWT Nudge command and event */
WMI_SERVICE_TWT_STATS = 270, /* Indicates that FW supports TWT Get_stats command and event */
WMI_SERVICE_TWT_ALL_DIALOG_ID = 271, /* Indicates that FW supports TWT ALL dialog ID(255) for all commands and events, except for TWT add dialog and TWT get stats */
WMI_SERVICE_SPLIT_AST_SUPPORT = 272, /* Indicate that FW supports SPLIT AST table */
WMI_MAX_EXT2_SERVICE

View file

@ -3108,6 +3108,17 @@ typedef struct {
*/
A_UINT32 pktlog_defs_checksum;
/*
* max_onchip_ast_index - max AST index that Firmware can generate
* max_onchip_ast_index = (ast_table_size-1), where ast_table_size is
* dynamically chosen based on num_peers configutation from Host.
* Hence Host needs to know the max_onchip_ast_index that Firmware can
* generate.
* A 0x0 value for max_onchip_ast_index means the target has not specified
* a limit.
*/
A_UINT32 max_onchip_ast_index;
/*
* This fixed_param TLV is followed by these additional TLVs:
* mac_addr_list[num_extra_mac_addr];
@ -3783,7 +3794,12 @@ typedef struct {
*
* Refer to WMI_RSRC_CFG_HOST_SERVICE_FLAG_HOST_SUPPORT_MULTI_RADIO_EVTS_PER_RADIO_GET/SET
* macros defined below.
* Bits 31:2 - Reserved
* Bit 2
* This bit will be set when host is able to handle split AST feature.
* Refer to the below definitions of the
* WMI_RSRC_CFG_HOST_SERVICE_FLAG_SPLIT_AST_FEATURE_HOST_SUPPORT_GET
* and _SET macros.
* Bits 31:3 - Reserved
*/
A_UINT32 host_service_flags;
@ -4047,6 +4063,11 @@ typedef struct {
#define WMI_RSRC_CFG_HOST_SERVICE_FLAG_HOST_SUPPORT_MULTI_RADIO_EVTS_PER_RADIO_SET(host_service_flags, val) \
WMI_SET_BITS(host_service_flags, 1, 1, val)
#define WMI_RSRC_CFG_HOST_SERVICE_FLAG_SPLIT_AST_FEATURE_HOST_SUPPORT_GET(host_service_flags) \
WMI_GET_BITS(host_service_flags, 2, 1)
#define WMI_RSRC_CFG_HOST_SERVICE_FLAG_SPLIT_AST_FEATURE_HOST_SUPPORT_SET(host_service_flags, val) \
WMI_SET_BITS(host_service_flags, 2, 1, val)
typedef struct {
A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_init_cmd_fixed_param */

View file

@ -36,7 +36,7 @@
#define __WMI_VER_MINOR_ 0
/** WMI revision number has to be incremented when there is a
* change that may or may not break compatibility. */
#define __WMI_REVISION_ 935
#define __WMI_REVISION_ 936
/** The Version Namespace should not be normally changed. Only
* host and firmware of the same WMI namespace will work