Loading fw/htt.h +247 −11 Original line number Diff line number Diff line Loading @@ -227,9 +227,10 @@ * 3.101 Add HTT_UL_OFDMA_USER_INFO_V1_BITMAP defs. * 3.102 Add HTT_H2T_MSG_TYPE_MSI_SETUP def. * 3.103 Add HTT_T2H_SAWF_MSDUQ_INFO_IND defs. * 3.104 Add mgmt/ctrl/data specs in rx ring cfg. */ #define HTT_CURRENT_VERSION_MAJOR 3 #define HTT_CURRENT_VERSION_MINOR 103 #define HTT_CURRENT_VERSION_MINOR 104 #define HTT_NUM_TX_FRAG_DESC 1024 Loading Loading @@ -5538,10 +5539,31 @@ enum htt_srng_ring_id { * b'27 - drop_thresh_valid (DT): flag to indicate if the * rx_drop_threshold field is valid * b'28:31 - rsvd1: reserved for future use * dword1 - b'0:16 - ring_buffer_size: size of bufferes referenced by rx ring, * dword1 - b'0:15 - ring_buffer_size: size of bufferes referenced by rx ring, * in byte units. * Valid only for HW_TO_SW_RING and SW_TO_HW_RING * - b'16:31 - rsvd2: Reserved for future use * b'16:18 - config_length_mgmt (MGMT): * Represents the length of mpdu bytes for mgmt pkt. * valid values: * 001 - 64bytes * 010 - 128bytes * 100 - 256bytes * 111 - Full mpdu bytes * b'19:21 - config_length_ctrl (CTRL): * Represents the length of mpdu bytes for ctrl pkt. * valid values: * 001 - 64bytes * 010 - 128bytes * 100 - 256bytes * 111 - Full mpdu bytes * b'22:24 - config_length_data (DATA): * Represents the length of mpdu bytes for data pkt. * valid values: * 001 - 64bytes * 010 - 128bytes * 100 - 256bytes * 111 - Full mpdu bytes * b'25:31 - rsvd2: Reserved for future use * dword2 - b'0:31 - packet_type_enable_flags_0: * Enable MGMT packet from 0b0000 to 0b1001 * bits from low to high: FP, MD, MO - 3 bits Loading Loading @@ -5608,22 +5630,37 @@ enum htt_srng_ring_id { * value. * - b'10 - fp_ndp: Flag to indicate FP NDP status tlv is subscribed * by host. 1 -> subscribed * - b`11 - mo_ndp: Flag to indicate MO NDP status tlv is subscribed * - b'11 - mo_ndp: Flag to indicate MO NDP status tlv is subscribed * by host. 1 -> subscribed * - b`12 - fp_phy_err: Flag to indicate FP PHY status tlv is * - b'12 - fp_phy_err: Flag to indicate FP PHY status tlv is * subscribed by host. 1 -> subscribed * - b`13:14 - fp_phy_err_buf_src: This indicates the source ring * - b'13:14 - fp_phy_err_buf_src: This indicates the source ring * selection for the FP PHY ERR status tlv. * 0 - wbm2rxdma_buf_source_ring * 1 - fw2rxdma_buf_source_ring * 2 - sw2rxdma_buf_source_ring * 3 - no_buffer_ring * - b`15:16 - fp_phy_err_buf_dest: This indicates the destination ring * - b'15:16 - fp_phy_err_buf_dest: This indicates the destination ring * selection for the FP PHY ERR status tlv. * 0 - rxdma_release_ring * 1 - rxdma2fw_ring * 2 - rxdma2sw_ring * 3 - rxdma2reo_ring * - b'17:19 - pkt_type_en_msdu_or_mpdu_logging * b'17 - Enables MSDU/MPDU logging for frames of MGMT type * b'18 - Enables MSDU/MPDU logging for frames of CTRL type * b'19 - Enables MSDU/MPDU logging for frames of DATA type * - b'20 - dma_mpdu_mgmt: 1: MPDU level logging * 0: MSDU level logging * - b'21 - dma_mpdu_ctrl: 1: MPDU level logging * 0: MSDU level logging * - b'22 - dma_mpdu_data: 1: MPDU level logging * 0: MSDU level logging * - b'23 - word_mask_compaction: enable/disable word mask for * mpdu/msdu start/end tlvs * - b'24 - rbm_override_enable: enabling/disabling return buffer * manager override * - b'25:28 - rbm_override_val: return buffer manager override value * dword12- b'0:31 - phy_err_mask: This field is to select the fp phy errors * which have to be posted to host from phy. * Corresponding to errors defined in Loading @@ -5636,6 +5673,18 @@ enum htt_srng_ring_id { * phyrx_abort_request_reason enums 32 to 63. * Refer to RXPCU register definition header files for the * phyrx_abort_request_reason enum definition. * dword14- b'0:15 - rx_mpdu_start_word_mask: word mask for rx mpdu start, * applicable if word mask enabled * - b'16:31 - rx_mpdu_end_word_mask: word mask value for rx mpdu end, * applicable if word mask enabled * dword15- b'0:16 - rx_msdu_end_word_mask b'17:31 - rsvd5 * dword17- b'0 - en_rx_tlv_pkt_offset: * 0: RX_PKT TLV logging at offset 0 for the subsequent * buffer * 1: RX_PKT TLV logging at specified offset for the * subsequent buffer * b`15:1 - rx_pkt_tlv_offset: Qword offset for rx_packet TLVs. */ PREPACK struct htt_rx_ring_selection_cfg_t { A_UINT32 msg_type: 8, Loading @@ -5647,7 +5696,10 @@ PREPACK struct htt_rx_ring_selection_cfg_t { drop_thresh_valid: 1, rsvd1: 4; A_UINT32 ring_buffer_size: 16, rsvd2: 16; config_length_mgmt:3, config_length_ctrl:3, config_length_data:3, rsvd2: 7; A_UINT32 packet_type_enable_flags_0; A_UINT32 packet_type_enable_flags_1; A_UINT32 packet_type_enable_flags_2; Loading @@ -5667,9 +5719,23 @@ PREPACK struct htt_rx_ring_selection_cfg_t { fp_phy_err: 1, fp_phy_err_buf_src: 2, fp_phy_err_buf_dest: 2, rsvd4: 15; pkt_type_enable_msdu_or_mpdu_logging:3, dma_mpdu_mgmt: 1, dma_mpdu_ctrl: 1, dma_mpdu_data: 1, word_mask_compaction_enable:1, rbm_override_enable: 1, rbm_override_val: 4, rsvd4: 3; A_UINT32 phy_err_mask; A_UINT32 phy_err_mask_cont; A_UINT32 rx_mpdu_start_word_mask:16, rx_mpdu_end_word_mask: 16; A_UINT32 rx_msdu_end_word_mask: 17, rsvd5: 15; A_UINT32 en_rx_tlv_pkt_offset: 1, rx_pkt_tlv_offset: 15, rsvd6: 16; } POSTPACK; #define HTT_RX_RING_SELECTION_CFG_SZ (sizeof(struct htt_rx_ring_selection_cfg_t)) Loading Loading @@ -5751,6 +5817,40 @@ PREPACK struct htt_rx_ring_selection_cfg_t { ((_var) |= ((_val) << HTT_RX_RING_SELECTION_CFG_RING_BUFFER_SIZE_S)); \ } while (0) #define HTT_RX_RING_SELECTION_CFG_CONFIG_LENGTH_MGMT_M 0x00070000 #define HTT_RX_RING_SELECTION_CFG_CONFIG_LENGTH_MGMT_S 16 #define HTT_RX_RING_SELECTION_CFG_CONFIG_LENGTH_MGMT_GET(_var) \ (((_var) & HTT_RX_RING_SELECTION_CFG_CONFIG_LENGTH_MGMT_M) >> \ HTT_RX_RING_SELECTION_CFG_CONFIG_LENGTH_MGMT_S) #define HTT_RX_RING_SELECTION_CFG_CONFIG_LENGTH_MGMT_SET(_var, _val) \ do { \ HTT_CHECK_SET_VAL(HTT_RX_RING_SELECTION_CFG_CONFIG_LENGTH_MGMT, _val); \ ((_var) |= ((_val) << HTT_TX_MONITOR_CFG_CONFIG_LENGTH_MGMT_S)); \ } while (0) #define HTT_RX_RING_SELECTION_CFG_CONFIG_LENGTH_CTRL_M 0x00380000 #define HTT_RX_RING_SELECTION_CFG_CONFIG_LENGTH_CTRL_S 19 #define HTT_RX_RING_SELECTION_CFG_CONFIG_LENGTH_CTRL_GET(_var) \ (((_var) & HTT_RX_RING_SELECTION_CFG_CONFIG_LENGTH_CTRL_M) >> \ HTT_RX_RING_SELECTION_CFG_CONFIG_LENGTH_CTRL_S) #define HTT_RX_RING_SELECTION_CFG_CONFIG_LENGTH_CTRL_SET(_var, _val) \ do { \ HTT_CHECK_SET_VAL(HTT_RX_RING_SELECTION_CFG_CONFIG_LENGTH_CTRL, _val); \ ((_var) |= ((_val) << HTT_RX_RING_SELECTION_CFG_CONFIG_LENGTH_CTRL_S)); \ } while (0) #define HTT_RX_RING_SELECTION_CFG_CONFIG_LENGTH_DATA_M 0x01C00000 #define HTT_RX_RING_SELECTION_CFG_CONFIG_LENGTH_DATA_S 22 #define HTT_RX_RING_SELECTION_CFG_CONFIG_LENGTH_DATA_GET(_var) \ (((_var) & HTT_RX_RING_SELECTION_CFG_CONFIG_LENGTH_DATA_M) >> \ HTT_RX_RING_SELECTION_CFG_CONFIG_LENGTH_DATA_S) #define HTT_RX_RING_SELECTION_CFG_CONFIG_LENGTH_DATA_SET(_var, _val) \ do { \ HTT_CHECK_SET_VAL(HTT_RX_RING_SELECTION_CFG_CONFIG_LENGTH_DATA, _val); \ ((_var) |= ((_val) << HTT_RX_RING_SELECTION_CFG_CONFIG_LENGTH_DATA_S)); \ } while (0) #define HTT_RX_RING_SELECTION_CFG_PKT_TYPE_ENABLE_FLAG_0_M 0xffffffff #define HTT_RX_RING_SELECTION_CFG_PKT_TYPE_ENABLE_FLAG_0_S 0 #define HTT_RX_RING_SELECTION_CFG_PKT_TYPE_ENABLE_FLAG_0_GET(_var) \ Loading Loading @@ -5949,6 +6049,87 @@ PREPACK struct htt_rx_ring_selection_cfg_t { ((_var) |= ((_val) << HTT_RX_RING_SELECTION_CFG_FP_PHY_ERR_BUF_DEST_S)); \ } while (0) #define HTT_RX_RING_SELECTION_CFG_PKT_TYPE_ENABLE_MSDU_MPDU_LOGGING_M 0x000E0000 #define HTT_RX_RING_SELECTION_CFG_PKT_TYPE_ENABLE_MSDU_MPDU_LOGGING_S 17 #define HTT_RX_RING_SELECTION_CFG_PKT_TYPE_ENABLE_MSDU_MPDU_LOGGING_GET(_var) \ (((_var) & HTT_RX_RING_SELECTION_CFG_PKT_TYPE_ENABLE_MSDU_MPDU_LOGGING_M) >> \ HTT_RX_RING_SELECTION_CFG_PKT_TYPE_ENABLE_MSDU_MPDU_LOGGING_S) #define HTT_RX_RING_SELECTION_CFG_PKT_TYPE_ENABLE_MSDU_MPDU_LOGGING_SET(_var, _val) \ do { \ HTT_CHECK_SET_VAL(HTT_RX_RING_SELECTION_CFG_PKT_TYPE_ENABLE_MSDU_MPDU_LOGGING, _val); \ ((_var) |= ((_val) << HTT_RX_RING_SELECTION_CFG_PKT_TYPE_ENABLE_MSDU_MPDU_LOGGING_S)); \ } while (0) #define HTT_RX_RING_SELECTION_CFG_DMA_MPDU_MGMT_M 0x00100000 #define HTT_RX_RING_SELECTION_CFG_DMA_MPDU_MGMT_S 20 #define HTT_RX_RING_SELECTION_CFG_DMA_MPDU_MGMT_GET(_var) \ (((_var) & HTT_RX_RING_SELECTION_CFG_DMA_MPDU_MGMT_M) >> \ HTT_RX_RING_SELECTION_CFG_DMA_MPDU_MGMT_S) #define HTT_RX_RING_SELECTION_CFG_DMA_MPDU_MGMT_SET(_var, _val) \ do { \ HTT_CHECK_SET_VAL(HTT_RX_RING_SELECTION_CFG_DMA_MPDU_MGMT, _val); \ ((_var) |= ((_val) << HTT_RX_RING_SELECTION_CFG_DMA_MPDU_MGMT_S)); \ } while (0) #define HTT_RX_RING_SELECTION_CFG_DMA_MPDU_CTRL_M 0x00200000 #define HTT_RX_RING_SELECTION_CFG_DMA_MPDU_CTRL_S 21 #define HTT_RX_RING_SELECTION_CFG_DMA_MPDU_CTRL_GET(_var) \ (((_var) & HTT_RX_RING_SELECTION_CFG_DMA_MPDU_CTRL_M) >> \ HTT_RX_RING_SELECTION_CFG_DMA_MPDU_CTRL_S) #define HTT_RX_RING_SELECTION_CFG_DMA_MPDU_CTRL_SET(_var, _val) \ do { \ HTT_CHECK_SET_VAL(HTT_RX_RING_SELECTION_CFG_DMA_MPDU_CTRL, _val); \ ((_var) |= ((_val) << HTT_RX_RING_SELECTION_CFG_DMA_MPDU_CTRL_S)); \ } while (0) #define HTT_RX_RING_SELECTION_CFG_DMA_MPDU_DATA_M 0x00400000 #define HTT_RX_RING_SELECTION_CFG_DMA_MPDU_DATA_S 22 #define HTT_RX_RING_SELECTION_CFG_DMA_MPDU_DATA_GET(_var) \ (((_var) & HTT_RX_RING_SELECTION_CFG_DMA_MPDU_DATA_M) >> \ HTT_RX_RING_SELECTION_CFG_DMA_MPDU_DATA_S) #define HTT_RX_RING_SELECTION_CFG_DMA_MPDU_DATA_SET(_var, _val) \ do { \ HTT_CHECK_SET_VAL(HTT_RX_RING_SELECTION_CFG_DMA_MPDU_DATA, _val); \ ((_var) |= ((_val) << HTT_RX_RING_SELECTION_CFG_DMA_MPDU_DATA_S)); \ } while (0) #define HTT_RX_RING_SELECTION_CFG_WORD_MASK_COMPACTION_ENABLE_M 0x00800000 #define HTT_RX_RING_SELECTION_CFG_WORD_MASK_COMPACTION_ENABLE_S 23 #define HTT_RX_RING_SELECTION_CFG_WORD_MASK_COMPACTION_ENABLE_GET(_var) \ (((_var) & HTT_RX_RING_SELECTION_CFG_WORD_MASK_COMPACTION_ENABLE_M) >> \ HTT_RX_RING_SELECTION_CFG_WORD_MASK_COMPACTION_ENABLE_S) #define HTT_RX_RING_SELECTION_CFG_WORD_MASK_COMPACTION_ENABLE_SET(_var, _val) \ do { \ HTT_CHECK_SET_VAL(HTT_RX_RING_SELECTION_CFG_WORD_MASK_COMPACTION_ENABLE, _val); \ ((_var) |= ((_val) << HTT_RX_RING_SELECTION_CFG_WORD_MASK_COMPACTION_ENABLE_S)); \ } while (0) #define HTT_RX_RING_SELECTION_CFG_RBM_OVERRIDE_ENABLE_M 0x01000000 #define HTT_RX_RING_SELECTION_CFG_RBM_OVERRIDE_ENABLE_S 24 #define HTT_RX_RING_SELECTION_CFG_RBM_OVERRIDE_ENABLE_GET(_var) \ (((_var) & HTT_RX_RING_SELECTION_CFG_RBM_OVERRIDE_ENABLE_M) >> \ HTT_RX_RING_SELECTION_CFG_RBM_OVERRIDE_ENABLE_S) #define HTT_RX_RING_SELECTION_CFG_RBM_OVERRIDE_ENABLE_SET(_var, _val) \ do { \ HTT_CHECK_SET_VAL(HTT_RX_RING_SELECTION_CFG_RBM_OVERRIDE_ENABLE, _val);\ ((_var) |= ((_val) << HTT_RX_RING_SELECTION_CFG_RBM_OVERRIDE_ENABLE_S)); \ } while (0) #define HTT_RX_RING_SELECTION_CFG_RBM_OVERRIDE_VALUE_M 0x1E000000 #define HTT_RX_RING_SELECTION_CFG_RBM_OVERRIDE_VALUE_S 25 #define HTT_RX_RING_SELECTION_CFG_RBM_OVERRIDE_VALUE_GET(_var) \ (((_var) & HTT_RX_RING_SELECTION_CFG_RBM_OVERRIDE_VALUE_M) >> \ HTT_RX_RING_SELECTION_CFG_RBM_OVERRIDE_VALUE_S) #define HTT_RX_RING_SELECTION_CFG_RBM_OVERRIDE_VALUE_SET(_var, _val) \ do { \ HTT_CHECK_SET_VAL(HTT_RX_RING_SELECTION_CFG_RBM_OVERRIDE_VALUE, _val);\ ((_var) |= ((_val) << HTT_RX_RING_SELECTION_CFG_RBM_OVERRIDE_VALUE_S));\ } while (0) #define HTT_RX_RING_SELECTION_CFG_PHY_ERR_MASK_M 0xffffffff #define HTT_RX_RING_SELECTION_CFG_PHY_ERR_MASK_S 0 #define HTT_RX_RING_SELECTION_CFG_PHY_ERR_MASK_GET(_var) \ Loading @@ -5971,6 +6152,61 @@ PREPACK struct htt_rx_ring_selection_cfg_t { ((_var) |= ((_val) << HTT_RX_RING_SELECTION_CFG_PHY_ERR_MASK_CONT_S)); \ } while (0) #define HTT_RX_RING_SELECTION_CFG_RX_MPDU_START_WORD_MASK_M 0x0000FFFF #define HTT_RX_RING_SELECTION_CFG_RX_MPDU_START_WORD_MASK_S 0 #define HTT_RX_RING_SELECTION_CFG_RX_MPDU_START_WORD_MASK_GET(_var) \ (((_var) & HTT_RX_RING_SELECTION_CFG_RX_MPDU_START_WORD_MASK_M)>> \ HTT_RX_RING_SELECTION_CFG_RX_MPDU_START_WORD_MASK_S) #define HTT_RX_RING_SELECTION_CFG_RX_MPDU_START_WORD_MASK_SET(_var, _val) \ do { \ HTT_CHECK_SET_VAL(HTT_RX_RING_SELECTION_CFG_RX_MPDU_START_WORD_MASK, _val);\ ((_var) |= ((_val) << HTT_RX_RING_SELECTION_CFG_RX_MPDU_START_WORD_MASK_S)); \ } while (0) #define HTT_RX_RING_SELECTION_CFG_RX_MPDU_END_WORD_MASK_M 0xFFFF0000 #define HTT_RX_RING_SELECTION_CFG_RX_MPDU_END_WORD_MASK_S 16 #define HTT_RX_RING_SELECTION_CFG_RX_MPDU_END_WORD_MASK_GET(_var) \ (((_var) & HTT_RX_RING_SELECTION_CFG_RX_MPDU_END_WORD_MASK_M)>> \ HTT_RX_RING_SELECTION_CFG_RX_MPDU_START_WORD_MASK_S) #define HTT_RX_RING_SELECTION_CFG_RX_MPDU_START_WORD_MASK_SET(_var, _val) \ do { \ HTT_CHECK_SET_VAL(HTT_RX_RING_SELECTION_CFG_RX_MPDU_START_WORD_MASK, _val);\ ((_var) |= ((_val) << HTT_RX_RING_SELECTION_CFG_RX_MPDU_START_WORD_MASK_S)); \ } while (0) #define HTT_RX_RING_SELECTION_CFG_RX_MSDU_END_WORD_MASK_M 0x0001FFFF #define HTT_RX_RING_SELECTION_CFG_RX_MSDU_END_WORD_MASK_S 0 #define HTT_RX_RING_SELECTION_CFG_RX_MSDU_END_WORD_MASK_GET(_var) \ (((_var) & HTT_RX_RING_SELECTION_CFG_RX_MSDU_END_WORD_MASK_M)>> \ HTT_RX_RING_SELECTION_CFG_RX_MSDU_END_WORD_MASK_S) #define HTT_RX_RING_SELECTION_CFG_RX_MSDU_END_WORD_MASK_SET(_var, _val) \ do { \ HTT_CHECK_SET_VAL(HTT_RX_RING_SELECTION_CFG_RX_MSDU_END_WORD_MASK, _val);\ ((_var) |= ((_val) << HTT_RX_RING_SELECTION_CFG_RX_MSDU_END_WORD_MASK_S)); \ } while (0) #define HTT_RX_RING_SELECTION_CFG_ENABLE_RX_PKT_TLV_OFFSET_M 0x00000001 #define HTT_RX_RING_SELECTION_CFG_ENABLE_RX_PKT_TLV_OFFSET_S 0 #define HTT_RX_RING_SELECTION_CFG_ENABLE_RX_PKT_TLV_OFFSET_GET(_var) \ (((_var) & HTT_RX_RING_SELECTION_CFG_ENABLE_RX_PKT_TLV_OFFSET_M)>> \ HTT_RX_RING_SELECTION_CFG_ENABLE_RX_PKT_TLV_OFFSET_S) #define HTT_RX_RING_SELECTION_CFG_ENABLE_RX_PKT_TLV_OFFSET_SET(_var, _val) \ do { \ HTT_CHECK_SET_VAL(HTT_RX_RING_SELECTION_CFG_ENABLE_RX_PKT_TLV_OFFSET, _val); \ ((_var) |= ((_val) << HTT_RX_RING_SELECTION_CFG_ENABLE_RX_PKT_TLV_OFFSET_S)); \ } while (0) #define HTT_RX_RING_SELECTION_CFG_RX_PKT_TLV_OFFSET_M 0x0000FFFE #define HTT_RX_RING_SELECTION_CFG_RX_PKT_TLV_OFFSET_S 1 #define HTT_RX_RING_SELECTION_CFG_RX_PKT_TLV_OFFSET_GET(_var) \ (((_var) & HTT_RX_RING_SELECTION_CFG_RX_PKT_TLV_OFFSET_M)>> \ HTT_RX_RING_SELECTION_CFG_RX_PKT_TLV_OFFSET_S) #define HTT_RX_RING_SELECTION_CFG_RX_PKT_TLV_OFFSET_SET(_var, _val) \ do { \ HTT_CHECK_SET_VAL(HTT_RX_RING_SELECTION_CFG_RX_PKT_TLV_OFFSET, _val); \ ((_var) |= ((_val) << HTT_RX_RING_SELECTION_CFG_RX_PKT_TLV_OFFSET_S)); \ } while (0) /* * Subtype based MGMT frames enable bits. Loading Loading
fw/htt.h +247 −11 Original line number Diff line number Diff line Loading @@ -227,9 +227,10 @@ * 3.101 Add HTT_UL_OFDMA_USER_INFO_V1_BITMAP defs. * 3.102 Add HTT_H2T_MSG_TYPE_MSI_SETUP def. * 3.103 Add HTT_T2H_SAWF_MSDUQ_INFO_IND defs. * 3.104 Add mgmt/ctrl/data specs in rx ring cfg. */ #define HTT_CURRENT_VERSION_MAJOR 3 #define HTT_CURRENT_VERSION_MINOR 103 #define HTT_CURRENT_VERSION_MINOR 104 #define HTT_NUM_TX_FRAG_DESC 1024 Loading Loading @@ -5538,10 +5539,31 @@ enum htt_srng_ring_id { * b'27 - drop_thresh_valid (DT): flag to indicate if the * rx_drop_threshold field is valid * b'28:31 - rsvd1: reserved for future use * dword1 - b'0:16 - ring_buffer_size: size of bufferes referenced by rx ring, * dword1 - b'0:15 - ring_buffer_size: size of bufferes referenced by rx ring, * in byte units. * Valid only for HW_TO_SW_RING and SW_TO_HW_RING * - b'16:31 - rsvd2: Reserved for future use * b'16:18 - config_length_mgmt (MGMT): * Represents the length of mpdu bytes for mgmt pkt. * valid values: * 001 - 64bytes * 010 - 128bytes * 100 - 256bytes * 111 - Full mpdu bytes * b'19:21 - config_length_ctrl (CTRL): * Represents the length of mpdu bytes for ctrl pkt. * valid values: * 001 - 64bytes * 010 - 128bytes * 100 - 256bytes * 111 - Full mpdu bytes * b'22:24 - config_length_data (DATA): * Represents the length of mpdu bytes for data pkt. * valid values: * 001 - 64bytes * 010 - 128bytes * 100 - 256bytes * 111 - Full mpdu bytes * b'25:31 - rsvd2: Reserved for future use * dword2 - b'0:31 - packet_type_enable_flags_0: * Enable MGMT packet from 0b0000 to 0b1001 * bits from low to high: FP, MD, MO - 3 bits Loading Loading @@ -5608,22 +5630,37 @@ enum htt_srng_ring_id { * value. * - b'10 - fp_ndp: Flag to indicate FP NDP status tlv is subscribed * by host. 1 -> subscribed * - b`11 - mo_ndp: Flag to indicate MO NDP status tlv is subscribed * - b'11 - mo_ndp: Flag to indicate MO NDP status tlv is subscribed * by host. 1 -> subscribed * - b`12 - fp_phy_err: Flag to indicate FP PHY status tlv is * - b'12 - fp_phy_err: Flag to indicate FP PHY status tlv is * subscribed by host. 1 -> subscribed * - b`13:14 - fp_phy_err_buf_src: This indicates the source ring * - b'13:14 - fp_phy_err_buf_src: This indicates the source ring * selection for the FP PHY ERR status tlv. * 0 - wbm2rxdma_buf_source_ring * 1 - fw2rxdma_buf_source_ring * 2 - sw2rxdma_buf_source_ring * 3 - no_buffer_ring * - b`15:16 - fp_phy_err_buf_dest: This indicates the destination ring * - b'15:16 - fp_phy_err_buf_dest: This indicates the destination ring * selection for the FP PHY ERR status tlv. * 0 - rxdma_release_ring * 1 - rxdma2fw_ring * 2 - rxdma2sw_ring * 3 - rxdma2reo_ring * - b'17:19 - pkt_type_en_msdu_or_mpdu_logging * b'17 - Enables MSDU/MPDU logging for frames of MGMT type * b'18 - Enables MSDU/MPDU logging for frames of CTRL type * b'19 - Enables MSDU/MPDU logging for frames of DATA type * - b'20 - dma_mpdu_mgmt: 1: MPDU level logging * 0: MSDU level logging * - b'21 - dma_mpdu_ctrl: 1: MPDU level logging * 0: MSDU level logging * - b'22 - dma_mpdu_data: 1: MPDU level logging * 0: MSDU level logging * - b'23 - word_mask_compaction: enable/disable word mask for * mpdu/msdu start/end tlvs * - b'24 - rbm_override_enable: enabling/disabling return buffer * manager override * - b'25:28 - rbm_override_val: return buffer manager override value * dword12- b'0:31 - phy_err_mask: This field is to select the fp phy errors * which have to be posted to host from phy. * Corresponding to errors defined in Loading @@ -5636,6 +5673,18 @@ enum htt_srng_ring_id { * phyrx_abort_request_reason enums 32 to 63. * Refer to RXPCU register definition header files for the * phyrx_abort_request_reason enum definition. * dword14- b'0:15 - rx_mpdu_start_word_mask: word mask for rx mpdu start, * applicable if word mask enabled * - b'16:31 - rx_mpdu_end_word_mask: word mask value for rx mpdu end, * applicable if word mask enabled * dword15- b'0:16 - rx_msdu_end_word_mask b'17:31 - rsvd5 * dword17- b'0 - en_rx_tlv_pkt_offset: * 0: RX_PKT TLV logging at offset 0 for the subsequent * buffer * 1: RX_PKT TLV logging at specified offset for the * subsequent buffer * b`15:1 - rx_pkt_tlv_offset: Qword offset for rx_packet TLVs. */ PREPACK struct htt_rx_ring_selection_cfg_t { A_UINT32 msg_type: 8, Loading @@ -5647,7 +5696,10 @@ PREPACK struct htt_rx_ring_selection_cfg_t { drop_thresh_valid: 1, rsvd1: 4; A_UINT32 ring_buffer_size: 16, rsvd2: 16; config_length_mgmt:3, config_length_ctrl:3, config_length_data:3, rsvd2: 7; A_UINT32 packet_type_enable_flags_0; A_UINT32 packet_type_enable_flags_1; A_UINT32 packet_type_enable_flags_2; Loading @@ -5667,9 +5719,23 @@ PREPACK struct htt_rx_ring_selection_cfg_t { fp_phy_err: 1, fp_phy_err_buf_src: 2, fp_phy_err_buf_dest: 2, rsvd4: 15; pkt_type_enable_msdu_or_mpdu_logging:3, dma_mpdu_mgmt: 1, dma_mpdu_ctrl: 1, dma_mpdu_data: 1, word_mask_compaction_enable:1, rbm_override_enable: 1, rbm_override_val: 4, rsvd4: 3; A_UINT32 phy_err_mask; A_UINT32 phy_err_mask_cont; A_UINT32 rx_mpdu_start_word_mask:16, rx_mpdu_end_word_mask: 16; A_UINT32 rx_msdu_end_word_mask: 17, rsvd5: 15; A_UINT32 en_rx_tlv_pkt_offset: 1, rx_pkt_tlv_offset: 15, rsvd6: 16; } POSTPACK; #define HTT_RX_RING_SELECTION_CFG_SZ (sizeof(struct htt_rx_ring_selection_cfg_t)) Loading Loading @@ -5751,6 +5817,40 @@ PREPACK struct htt_rx_ring_selection_cfg_t { ((_var) |= ((_val) << HTT_RX_RING_SELECTION_CFG_RING_BUFFER_SIZE_S)); \ } while (0) #define HTT_RX_RING_SELECTION_CFG_CONFIG_LENGTH_MGMT_M 0x00070000 #define HTT_RX_RING_SELECTION_CFG_CONFIG_LENGTH_MGMT_S 16 #define HTT_RX_RING_SELECTION_CFG_CONFIG_LENGTH_MGMT_GET(_var) \ (((_var) & HTT_RX_RING_SELECTION_CFG_CONFIG_LENGTH_MGMT_M) >> \ HTT_RX_RING_SELECTION_CFG_CONFIG_LENGTH_MGMT_S) #define HTT_RX_RING_SELECTION_CFG_CONFIG_LENGTH_MGMT_SET(_var, _val) \ do { \ HTT_CHECK_SET_VAL(HTT_RX_RING_SELECTION_CFG_CONFIG_LENGTH_MGMT, _val); \ ((_var) |= ((_val) << HTT_TX_MONITOR_CFG_CONFIG_LENGTH_MGMT_S)); \ } while (0) #define HTT_RX_RING_SELECTION_CFG_CONFIG_LENGTH_CTRL_M 0x00380000 #define HTT_RX_RING_SELECTION_CFG_CONFIG_LENGTH_CTRL_S 19 #define HTT_RX_RING_SELECTION_CFG_CONFIG_LENGTH_CTRL_GET(_var) \ (((_var) & HTT_RX_RING_SELECTION_CFG_CONFIG_LENGTH_CTRL_M) >> \ HTT_RX_RING_SELECTION_CFG_CONFIG_LENGTH_CTRL_S) #define HTT_RX_RING_SELECTION_CFG_CONFIG_LENGTH_CTRL_SET(_var, _val) \ do { \ HTT_CHECK_SET_VAL(HTT_RX_RING_SELECTION_CFG_CONFIG_LENGTH_CTRL, _val); \ ((_var) |= ((_val) << HTT_RX_RING_SELECTION_CFG_CONFIG_LENGTH_CTRL_S)); \ } while (0) #define HTT_RX_RING_SELECTION_CFG_CONFIG_LENGTH_DATA_M 0x01C00000 #define HTT_RX_RING_SELECTION_CFG_CONFIG_LENGTH_DATA_S 22 #define HTT_RX_RING_SELECTION_CFG_CONFIG_LENGTH_DATA_GET(_var) \ (((_var) & HTT_RX_RING_SELECTION_CFG_CONFIG_LENGTH_DATA_M) >> \ HTT_RX_RING_SELECTION_CFG_CONFIG_LENGTH_DATA_S) #define HTT_RX_RING_SELECTION_CFG_CONFIG_LENGTH_DATA_SET(_var, _val) \ do { \ HTT_CHECK_SET_VAL(HTT_RX_RING_SELECTION_CFG_CONFIG_LENGTH_DATA, _val); \ ((_var) |= ((_val) << HTT_RX_RING_SELECTION_CFG_CONFIG_LENGTH_DATA_S)); \ } while (0) #define HTT_RX_RING_SELECTION_CFG_PKT_TYPE_ENABLE_FLAG_0_M 0xffffffff #define HTT_RX_RING_SELECTION_CFG_PKT_TYPE_ENABLE_FLAG_0_S 0 #define HTT_RX_RING_SELECTION_CFG_PKT_TYPE_ENABLE_FLAG_0_GET(_var) \ Loading Loading @@ -5949,6 +6049,87 @@ PREPACK struct htt_rx_ring_selection_cfg_t { ((_var) |= ((_val) << HTT_RX_RING_SELECTION_CFG_FP_PHY_ERR_BUF_DEST_S)); \ } while (0) #define HTT_RX_RING_SELECTION_CFG_PKT_TYPE_ENABLE_MSDU_MPDU_LOGGING_M 0x000E0000 #define HTT_RX_RING_SELECTION_CFG_PKT_TYPE_ENABLE_MSDU_MPDU_LOGGING_S 17 #define HTT_RX_RING_SELECTION_CFG_PKT_TYPE_ENABLE_MSDU_MPDU_LOGGING_GET(_var) \ (((_var) & HTT_RX_RING_SELECTION_CFG_PKT_TYPE_ENABLE_MSDU_MPDU_LOGGING_M) >> \ HTT_RX_RING_SELECTION_CFG_PKT_TYPE_ENABLE_MSDU_MPDU_LOGGING_S) #define HTT_RX_RING_SELECTION_CFG_PKT_TYPE_ENABLE_MSDU_MPDU_LOGGING_SET(_var, _val) \ do { \ HTT_CHECK_SET_VAL(HTT_RX_RING_SELECTION_CFG_PKT_TYPE_ENABLE_MSDU_MPDU_LOGGING, _val); \ ((_var) |= ((_val) << HTT_RX_RING_SELECTION_CFG_PKT_TYPE_ENABLE_MSDU_MPDU_LOGGING_S)); \ } while (0) #define HTT_RX_RING_SELECTION_CFG_DMA_MPDU_MGMT_M 0x00100000 #define HTT_RX_RING_SELECTION_CFG_DMA_MPDU_MGMT_S 20 #define HTT_RX_RING_SELECTION_CFG_DMA_MPDU_MGMT_GET(_var) \ (((_var) & HTT_RX_RING_SELECTION_CFG_DMA_MPDU_MGMT_M) >> \ HTT_RX_RING_SELECTION_CFG_DMA_MPDU_MGMT_S) #define HTT_RX_RING_SELECTION_CFG_DMA_MPDU_MGMT_SET(_var, _val) \ do { \ HTT_CHECK_SET_VAL(HTT_RX_RING_SELECTION_CFG_DMA_MPDU_MGMT, _val); \ ((_var) |= ((_val) << HTT_RX_RING_SELECTION_CFG_DMA_MPDU_MGMT_S)); \ } while (0) #define HTT_RX_RING_SELECTION_CFG_DMA_MPDU_CTRL_M 0x00200000 #define HTT_RX_RING_SELECTION_CFG_DMA_MPDU_CTRL_S 21 #define HTT_RX_RING_SELECTION_CFG_DMA_MPDU_CTRL_GET(_var) \ (((_var) & HTT_RX_RING_SELECTION_CFG_DMA_MPDU_CTRL_M) >> \ HTT_RX_RING_SELECTION_CFG_DMA_MPDU_CTRL_S) #define HTT_RX_RING_SELECTION_CFG_DMA_MPDU_CTRL_SET(_var, _val) \ do { \ HTT_CHECK_SET_VAL(HTT_RX_RING_SELECTION_CFG_DMA_MPDU_CTRL, _val); \ ((_var) |= ((_val) << HTT_RX_RING_SELECTION_CFG_DMA_MPDU_CTRL_S)); \ } while (0) #define HTT_RX_RING_SELECTION_CFG_DMA_MPDU_DATA_M 0x00400000 #define HTT_RX_RING_SELECTION_CFG_DMA_MPDU_DATA_S 22 #define HTT_RX_RING_SELECTION_CFG_DMA_MPDU_DATA_GET(_var) \ (((_var) & HTT_RX_RING_SELECTION_CFG_DMA_MPDU_DATA_M) >> \ HTT_RX_RING_SELECTION_CFG_DMA_MPDU_DATA_S) #define HTT_RX_RING_SELECTION_CFG_DMA_MPDU_DATA_SET(_var, _val) \ do { \ HTT_CHECK_SET_VAL(HTT_RX_RING_SELECTION_CFG_DMA_MPDU_DATA, _val); \ ((_var) |= ((_val) << HTT_RX_RING_SELECTION_CFG_DMA_MPDU_DATA_S)); \ } while (0) #define HTT_RX_RING_SELECTION_CFG_WORD_MASK_COMPACTION_ENABLE_M 0x00800000 #define HTT_RX_RING_SELECTION_CFG_WORD_MASK_COMPACTION_ENABLE_S 23 #define HTT_RX_RING_SELECTION_CFG_WORD_MASK_COMPACTION_ENABLE_GET(_var) \ (((_var) & HTT_RX_RING_SELECTION_CFG_WORD_MASK_COMPACTION_ENABLE_M) >> \ HTT_RX_RING_SELECTION_CFG_WORD_MASK_COMPACTION_ENABLE_S) #define HTT_RX_RING_SELECTION_CFG_WORD_MASK_COMPACTION_ENABLE_SET(_var, _val) \ do { \ HTT_CHECK_SET_VAL(HTT_RX_RING_SELECTION_CFG_WORD_MASK_COMPACTION_ENABLE, _val); \ ((_var) |= ((_val) << HTT_RX_RING_SELECTION_CFG_WORD_MASK_COMPACTION_ENABLE_S)); \ } while (0) #define HTT_RX_RING_SELECTION_CFG_RBM_OVERRIDE_ENABLE_M 0x01000000 #define HTT_RX_RING_SELECTION_CFG_RBM_OVERRIDE_ENABLE_S 24 #define HTT_RX_RING_SELECTION_CFG_RBM_OVERRIDE_ENABLE_GET(_var) \ (((_var) & HTT_RX_RING_SELECTION_CFG_RBM_OVERRIDE_ENABLE_M) >> \ HTT_RX_RING_SELECTION_CFG_RBM_OVERRIDE_ENABLE_S) #define HTT_RX_RING_SELECTION_CFG_RBM_OVERRIDE_ENABLE_SET(_var, _val) \ do { \ HTT_CHECK_SET_VAL(HTT_RX_RING_SELECTION_CFG_RBM_OVERRIDE_ENABLE, _val);\ ((_var) |= ((_val) << HTT_RX_RING_SELECTION_CFG_RBM_OVERRIDE_ENABLE_S)); \ } while (0) #define HTT_RX_RING_SELECTION_CFG_RBM_OVERRIDE_VALUE_M 0x1E000000 #define HTT_RX_RING_SELECTION_CFG_RBM_OVERRIDE_VALUE_S 25 #define HTT_RX_RING_SELECTION_CFG_RBM_OVERRIDE_VALUE_GET(_var) \ (((_var) & HTT_RX_RING_SELECTION_CFG_RBM_OVERRIDE_VALUE_M) >> \ HTT_RX_RING_SELECTION_CFG_RBM_OVERRIDE_VALUE_S) #define HTT_RX_RING_SELECTION_CFG_RBM_OVERRIDE_VALUE_SET(_var, _val) \ do { \ HTT_CHECK_SET_VAL(HTT_RX_RING_SELECTION_CFG_RBM_OVERRIDE_VALUE, _val);\ ((_var) |= ((_val) << HTT_RX_RING_SELECTION_CFG_RBM_OVERRIDE_VALUE_S));\ } while (0) #define HTT_RX_RING_SELECTION_CFG_PHY_ERR_MASK_M 0xffffffff #define HTT_RX_RING_SELECTION_CFG_PHY_ERR_MASK_S 0 #define HTT_RX_RING_SELECTION_CFG_PHY_ERR_MASK_GET(_var) \ Loading @@ -5971,6 +6152,61 @@ PREPACK struct htt_rx_ring_selection_cfg_t { ((_var) |= ((_val) << HTT_RX_RING_SELECTION_CFG_PHY_ERR_MASK_CONT_S)); \ } while (0) #define HTT_RX_RING_SELECTION_CFG_RX_MPDU_START_WORD_MASK_M 0x0000FFFF #define HTT_RX_RING_SELECTION_CFG_RX_MPDU_START_WORD_MASK_S 0 #define HTT_RX_RING_SELECTION_CFG_RX_MPDU_START_WORD_MASK_GET(_var) \ (((_var) & HTT_RX_RING_SELECTION_CFG_RX_MPDU_START_WORD_MASK_M)>> \ HTT_RX_RING_SELECTION_CFG_RX_MPDU_START_WORD_MASK_S) #define HTT_RX_RING_SELECTION_CFG_RX_MPDU_START_WORD_MASK_SET(_var, _val) \ do { \ HTT_CHECK_SET_VAL(HTT_RX_RING_SELECTION_CFG_RX_MPDU_START_WORD_MASK, _val);\ ((_var) |= ((_val) << HTT_RX_RING_SELECTION_CFG_RX_MPDU_START_WORD_MASK_S)); \ } while (0) #define HTT_RX_RING_SELECTION_CFG_RX_MPDU_END_WORD_MASK_M 0xFFFF0000 #define HTT_RX_RING_SELECTION_CFG_RX_MPDU_END_WORD_MASK_S 16 #define HTT_RX_RING_SELECTION_CFG_RX_MPDU_END_WORD_MASK_GET(_var) \ (((_var) & HTT_RX_RING_SELECTION_CFG_RX_MPDU_END_WORD_MASK_M)>> \ HTT_RX_RING_SELECTION_CFG_RX_MPDU_START_WORD_MASK_S) #define HTT_RX_RING_SELECTION_CFG_RX_MPDU_START_WORD_MASK_SET(_var, _val) \ do { \ HTT_CHECK_SET_VAL(HTT_RX_RING_SELECTION_CFG_RX_MPDU_START_WORD_MASK, _val);\ ((_var) |= ((_val) << HTT_RX_RING_SELECTION_CFG_RX_MPDU_START_WORD_MASK_S)); \ } while (0) #define HTT_RX_RING_SELECTION_CFG_RX_MSDU_END_WORD_MASK_M 0x0001FFFF #define HTT_RX_RING_SELECTION_CFG_RX_MSDU_END_WORD_MASK_S 0 #define HTT_RX_RING_SELECTION_CFG_RX_MSDU_END_WORD_MASK_GET(_var) \ (((_var) & HTT_RX_RING_SELECTION_CFG_RX_MSDU_END_WORD_MASK_M)>> \ HTT_RX_RING_SELECTION_CFG_RX_MSDU_END_WORD_MASK_S) #define HTT_RX_RING_SELECTION_CFG_RX_MSDU_END_WORD_MASK_SET(_var, _val) \ do { \ HTT_CHECK_SET_VAL(HTT_RX_RING_SELECTION_CFG_RX_MSDU_END_WORD_MASK, _val);\ ((_var) |= ((_val) << HTT_RX_RING_SELECTION_CFG_RX_MSDU_END_WORD_MASK_S)); \ } while (0) #define HTT_RX_RING_SELECTION_CFG_ENABLE_RX_PKT_TLV_OFFSET_M 0x00000001 #define HTT_RX_RING_SELECTION_CFG_ENABLE_RX_PKT_TLV_OFFSET_S 0 #define HTT_RX_RING_SELECTION_CFG_ENABLE_RX_PKT_TLV_OFFSET_GET(_var) \ (((_var) & HTT_RX_RING_SELECTION_CFG_ENABLE_RX_PKT_TLV_OFFSET_M)>> \ HTT_RX_RING_SELECTION_CFG_ENABLE_RX_PKT_TLV_OFFSET_S) #define HTT_RX_RING_SELECTION_CFG_ENABLE_RX_PKT_TLV_OFFSET_SET(_var, _val) \ do { \ HTT_CHECK_SET_VAL(HTT_RX_RING_SELECTION_CFG_ENABLE_RX_PKT_TLV_OFFSET, _val); \ ((_var) |= ((_val) << HTT_RX_RING_SELECTION_CFG_ENABLE_RX_PKT_TLV_OFFSET_S)); \ } while (0) #define HTT_RX_RING_SELECTION_CFG_RX_PKT_TLV_OFFSET_M 0x0000FFFE #define HTT_RX_RING_SELECTION_CFG_RX_PKT_TLV_OFFSET_S 1 #define HTT_RX_RING_SELECTION_CFG_RX_PKT_TLV_OFFSET_GET(_var) \ (((_var) & HTT_RX_RING_SELECTION_CFG_RX_PKT_TLV_OFFSET_M)>> \ HTT_RX_RING_SELECTION_CFG_RX_PKT_TLV_OFFSET_S) #define HTT_RX_RING_SELECTION_CFG_RX_PKT_TLV_OFFSET_SET(_var, _val) \ do { \ HTT_CHECK_SET_VAL(HTT_RX_RING_SELECTION_CFG_RX_PKT_TLV_OFFSET, _val); \ ((_var) |= ((_val) << HTT_RX_RING_SELECTION_CFG_RX_PKT_TLV_OFFSET_S)); \ } while (0) /* * Subtype based MGMT frames enable bits. Loading