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
parent fb27d87873
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.84 Add fisa_control_bits_v2 def.
* 3.85 Add HTT_RX_PEER_META_DATA defs. * 3.85 Add HTT_RX_PEER_META_DATA defs.
* 3.86 Add HTT_T2H_MSG_TYPE_FSE_CMEM_BASE_SEND def. * 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_MAJOR 3
#define HTT_CURRENT_VERSION_MINOR 86 #define HTT_CURRENT_VERSION_MINOR 87
#define HTT_NUM_TX_FRAG_DESC 1024 #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 3, check the AST_VALID_MASK(3) to see if the corresponding extension
* AST is valid. * AST is valid.
* *
* |31 28|27 24|23 20|19 17|16|15 8|7 0| * |31 28|27 24|23 21|20|19 17|16|15 8|7 0|
* |-----------------------------------------------------------------------| * |-------------------------------------------------------------------------|
* | SW peer ID | VDEV ID | msg type | * | SW peer ID | VDEV ID | msg type |
* |-----------------------------------------------------------------------| * |-------------------------------------------------------------------------|
* | MAC addr 3 | MAC addr 2 | MAC addr 1 | MAC addr 0 | * | MAC addr 3 | MAC addr 2 | MAC addr 1 | MAC addr 0 |
* |-----------------------------------------------------------------------| * |-------------------------------------------------------------------------|
* | HW peer ID / AST index 0 | MAC addr 5 | MAC addr 4 | * | HW peer ID / AST index 0 | MAC addr 5 | MAC addr 4 |
* |-----------------------------------------------------------------------| * |-------------------------------------------------------------------------|
* | Reserved_20_31 |ASTVM|NH| AST Hash Value | * | Reserved_21_31 |OA|ASTVM|NH| AST Hash Value |
* |-----------------------------------------------------------------------| * |-------------------------------------------------------------------------|
* | ASTFM3 | ASTFM2 | ASTFM1 | ASTFM0 | AST index 1 | * | ASTFM3 | ASTFM2 | ASTFM1 | ASTFM0 | AST index 1 |
* |-----------------------------------------------------------------------| * |-------------------------------------------------------------------------|
* |TID valid low pri| TID valid hi pri| AST index 2 | * |TID valid low pri| TID valid hi pri | AST index 2 |
* |-----------------------------------------------------------------------| * |-------------------------------------------------------------------------|
* | Reserved_1 | AST index 3 | * | LMAC/PMAC_RXPCU AST index | AST index 3 |
* |-----------------------------------------------------------------------| * |-------------------------------------------------------------------------|
* | Reserved_2 | * | Reserved_2 |
* |-----------------------------------------------------------------------| * |-------------------------------------------------------------------------|
* Where: * Where:
* NH = Next Hop * NH = Next Hop
* ASTVM = AST valid mask * ASTVM = AST valid mask
* OA = on-chip AST valid bit
* ASTFM = AST flow mask * ASTFM = AST flow mask
* *
* The following field definitions describe the format of the rx peer map v2 * 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 * - AST_VALID_MASK
* Bits 19:17 * Bits 19:17
* Purpose: Indicate if the AST 1 through AST 3 are valid * 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 * - AST_INDEX_1
* Bits 15:0 * Bits 15:0
* Purpose: indicate the second AST index for this peer * 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 * - AST_INDEX_3
* Bits 15:0 * Bits 15:0
* Purpose: indicate the fourth AST index for this peer * 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_M 0xff00
#define HTT_RX_PEER_MAP_V2_VDEV_ID_S 8 #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_M 0x000e0000
#define HTT_RX_PEER_MAP_V2_AST_VALID_MASK_S 17 #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_M 0xffff
#define HTT_RX_PEER_MAP_V2_AST_INDEX_1_S 0 #define HTT_RX_PEER_MAP_V2_AST_INDEX_1_S 0
#define HTT_RX_PEER_MAP_V2_AST_0_FLOW_MASK_M 0x000f0000 #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_M 0xffff
#define HTT_RX_PEER_MAP_V2_AST_INDEX_3_S 0 #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) \ #define HTT_RX_PEER_MAP_V2_VDEV_ID_SET(word, value) \
do { \ do { \
HTT_CHECK_SET_VAL(HTT_RX_PEER_MAP_V2_VDEV_ID, value); \ 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) \ #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) (((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) \ #define HTT_RX_PEER_MAP_V2_NEXT_HOP_SET(word, value) \
do { \ do { \
HTT_CHECK_SET_VAL(HTT_RX_PEER_MAP_V2_NEXT_HOP, value); \ 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) \ #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) (((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) \ #define HTT_RX_PEER_MAP_V2_AST_INDEX_1_SET(word, value) \
do { \ do { \
HTT_CHECK_SET_VAL(HTT_RX_PEER_MAP_V2_AST_INDEX_1, value); \ 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_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_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_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 WMI_MAX_EXT2_SERVICE

View File

@@ -3108,6 +3108,17 @@ typedef struct {
*/ */
A_UINT32 pktlog_defs_checksum; 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: * This fixed_param TLV is followed by these additional TLVs:
* mac_addr_list[num_extra_mac_addr]; * 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 * Refer to WMI_RSRC_CFG_HOST_SERVICE_FLAG_HOST_SUPPORT_MULTI_RADIO_EVTS_PER_RADIO_GET/SET
* macros defined below. * 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; 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) \ #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) 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 { typedef struct {
A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_init_cmd_fixed_param */ 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 #define __WMI_VER_MINOR_ 0
/** WMI revision number has to be incremented when there is a /** WMI revision number has to be incremented when there is a
* change that may or may not break compatibility. */ * 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 /** The Version Namespace should not be normally changed. Only
* host and firmware of the same WMI namespace will work * host and firmware of the same WMI namespace will work