blob: 498acacc9d9df441a154549374e7c74e87a9eb34 [file] [log] [blame]
/*
* Copyright (c) 2018 The Linux Foundation. All rights reserved.
*
* Permission to use, copy, modify, and/or distribute this software for
* any purpose with or without fee is hereby granted, provided that the
* above copyright notice and this permission notice appear in all
* copies.
*
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
* WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
* AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
* DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
* PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
* TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
* PERFORMANCE OF THIS SOFTWARE.
*/
#ifndef _REO_UPDATE_RX_REO_QUEUE_H_
#define _REO_UPDATE_RX_REO_QUEUE_H_
#if !defined(__ASSEMBLER__)
#endif
#include "uniform_reo_cmd_header.h"
// ################ START SUMMARY #################
//
// Dword Fields
// 0 struct uniform_reo_cmd_header cmd_header;
// 1 rx_reo_queue_desc_addr_31_0[31:0]
// 2 rx_reo_queue_desc_addr_39_32[7:0], update_receive_queue_number[8], update_vld[9], update_associated_link_descriptor_counter[10], update_disable_duplicate_detection[11], update_soft_reorder_enable[12], update_ac[13], update_bar[14], update_rty[15], update_chk_2k_mode[16], update_oor_mode[17], update_ba_window_size[18], update_pn_check_needed[19], update_pn_shall_be_even[20], update_pn_shall_be_uneven[21], update_pn_handling_enable[22], update_pn_size[23], update_ignore_ampdu_flag[24], update_svld[25], update_ssn[26], update_seq_2k_error_detected_flag[27], update_pn_error_detected_flag[28], update_pn_valid[29], update_pn[30], clear_stat_counters[31]
// 3 receive_queue_number[15:0], vld[16], associated_link_descriptor_counter[18:17], disable_duplicate_detection[19], soft_reorder_enable[20], ac[22:21], bar[23], rty[24], chk_2k_mode[25], oor_mode[26], pn_check_needed[27], pn_shall_be_even[28], pn_shall_be_uneven[29], pn_handling_enable[30], ignore_ampdu_flag[31]
// 4 ba_window_size[7:0], pn_size[9:8], svld[10], ssn[22:11], seq_2k_error_detected_flag[23], pn_error_detected_flag[24], pn_valid[25], flush_from_cache[26], reserved_4a[31:27]
// 5 pn_31_0[31:0]
// 6 pn_63_32[31:0]
// 7 pn_95_64[31:0]
// 8 pn_127_96[31:0]
//
// ################ END SUMMARY #################
#define NUM_OF_DWORDS_REO_UPDATE_RX_REO_QUEUE 9
struct reo_update_rx_reo_queue {
struct uniform_reo_cmd_header cmd_header;
uint32_t rx_reo_queue_desc_addr_31_0 : 32; //[31:0]
uint32_t rx_reo_queue_desc_addr_39_32 : 8, //[7:0]
update_receive_queue_number : 1, //[8]
update_vld : 1, //[9]
update_associated_link_descriptor_counter: 1, //[10]
update_disable_duplicate_detection: 1, //[11]
update_soft_reorder_enable : 1, //[12]
update_ac : 1, //[13]
update_bar : 1, //[14]
update_rty : 1, //[15]
update_chk_2k_mode : 1, //[16]
update_oor_mode : 1, //[17]
update_ba_window_size : 1, //[18]
update_pn_check_needed : 1, //[19]
update_pn_shall_be_even : 1, //[20]
update_pn_shall_be_uneven : 1, //[21]
update_pn_handling_enable : 1, //[22]
update_pn_size : 1, //[23]
update_ignore_ampdu_flag : 1, //[24]
update_svld : 1, //[25]
update_ssn : 1, //[26]
update_seq_2k_error_detected_flag: 1, //[27]
update_pn_error_detected_flag : 1, //[28]
update_pn_valid : 1, //[29]
update_pn : 1, //[30]
clear_stat_counters : 1; //[31]
uint32_t receive_queue_number : 16, //[15:0]
vld : 1, //[16]
associated_link_descriptor_counter: 2, //[18:17]
disable_duplicate_detection : 1, //[19]
soft_reorder_enable : 1, //[20]
ac : 2, //[22:21]
bar : 1, //[23]
rty : 1, //[24]
chk_2k_mode : 1, //[25]
oor_mode : 1, //[26]
pn_check_needed : 1, //[27]
pn_shall_be_even : 1, //[28]
pn_shall_be_uneven : 1, //[29]
pn_handling_enable : 1, //[30]
ignore_ampdu_flag : 1; //[31]
uint32_t ba_window_size : 8, //[7:0]
pn_size : 2, //[9:8]
svld : 1, //[10]
ssn : 12, //[22:11]
seq_2k_error_detected_flag : 1, //[23]
pn_error_detected_flag : 1, //[24]
pn_valid : 1, //[25]
flush_from_cache : 1, //[26]
reserved_4a : 5; //[31:27]
uint32_t pn_31_0 : 32; //[31:0]
uint32_t pn_63_32 : 32; //[31:0]
uint32_t pn_95_64 : 32; //[31:0]
uint32_t pn_127_96 : 32; //[31:0]
};
/*
struct uniform_reo_cmd_header cmd_header
Consumer: REO
Producer: SW
Details for command execution tracking purposes.
rx_reo_queue_desc_addr_31_0
Consumer: REO
Producer: SW
Address (lower 32 bits) of the REO queue descriptor
<legal all>
rx_reo_queue_desc_addr_39_32
Consumer: REO
Producer: SW
Address (upper 8 bits) of the REO queue descriptor
<legal all>
update_receive_queue_number
Consumer: REO
Producer: SW
When set, receive_queue_number from this command will be
updated in the descriptor.
<legal all>
update_vld
Consumer: REO
Producer: SW
When clear, REO will NOT update the VLD bit setting. For
this setting, SW MUST set the Flush_from_cache bit in this
command.
When set, VLD from this command will be updated in the
descriptor.
<legal all>
update_associated_link_descriptor_counter
Consumer: REO
Producer: SW
When set, Associated_link_descriptor_counter from this
command will be updated in the descriptor.
<legal all>
update_disable_duplicate_detection
Consumer: REO
Producer: SW
When set, Disable_duplicate_detection from this command
will be updated in the descriptor.
<legal all>
update_soft_reorder_enable
Consumer: REO
Producer: SW
When set, Soft_reorder_enable from this command will be
updated in the descriptor.
<legal all>
update_ac
Consumer: REO
Producer: SW
When set, AC from this command will be updated in the
descriptor.
<legal all>
update_bar
Consumer: REO
Producer: SW
When set, BAR from this command will be updated in the
descriptor.
<legal all>
update_rty
Consumer: REO
Producer: SW
When set, RTY from this command will be updated in the
descriptor.
<legal all>
update_chk_2k_mode
Consumer: REO
Producer: SW
When set, Chk_2k_mode from this command will be updated
in the descriptor.
<legal all>
update_oor_mode
Consumer: REO
Producer: SW
When set, OOR_Mode from this command will be updated in
the descriptor.
<legal all>
update_ba_window_size
Consumer: REO
Producer: SW
When set, BA_window_size from this command will be
updated in the descriptor.
<legal all>
update_pn_check_needed
Consumer: REO
Producer: SW
When set, Pn_check_needed from this command will be
updated in the descriptor.
<legal all>
update_pn_shall_be_even
Consumer: REO
Producer: SW
When set, Pn_shall_be_even from this command will be
updated in the descriptor.
<legal all>
update_pn_shall_be_uneven
Consumer: REO
Producer: SW
When set, Pn_shall_be_uneven from this command will be
updated in the descriptor.
<legal all>
update_pn_handling_enable
Consumer: REO
Producer: SW
When set, Pn_handling_enable from this command will be
updated in the descriptor.
<legal all>
update_pn_size
Consumer: REO
Producer: SW
When set, Pn_size from this command will be updated in
the descriptor.
<legal all>
update_ignore_ampdu_flag
Consumer: REO
Producer: SW
When set, Ignore_ampdu_flag from this command will be
updated in the descriptor.
<legal all>
update_svld
Consumer: REO
Producer: SW
When set, Svld from this command will be updated in the
descriptor.
<legal all>
update_ssn
Consumer: REO
Producer: SW
When set, SSN from this command will be updated in the
descriptor.
<legal all>
update_seq_2k_error_detected_flag
Consumer: REO
Producer: SW
When set, Seq_2k_error_detected_flag from this command
will be updated in the descriptor.
<legal all>
update_pn_error_detected_flag
Consumer: REO
Producer: SW
When set, pn_error_detected_flag from this command will
be updated in the descriptor.
<legal all>
update_pn_valid
Consumer: REO
Producer: SW
When set, pn_valid from this command will be updated in
the descriptor.
<legal all>
update_pn
Consumer: REO
Producer: SW
When set, all pn_... fields from this command will be
updated in the descriptor.
<legal all>
clear_stat_counters
Consumer: REO
Producer: SW
When set, REO will clear (=> set to 0) the following
stat counters in the REO_QUEUE_STRUCT
Last_rx_enqueue_TimeStamp
Last_rx_dequeue_Timestamp
Rx_bitmap (not a counter, but bitmap is cleared)
Timeout_count
Forward_due_to_bar_count
Duplicate_count
Frames_in_order_count
BAR_received_count
MPDU_Frames_processed_count
MSDU_Frames_processed_count
Total_processed_byte_count
Late_receive_MPDU_count
window_jump_2k
Hole_count
<legal all>
receive_queue_number
Field value to be copied over into the RX_REO_QUEUE
descriptor.
<legal all>
vld
Field only valid when Update_VLD is set
Field value to be copied over into the RX_REO_QUEUE
descriptor.
<legal all>
associated_link_descriptor_counter
Field only valid when
Update_Associated_link_descriptor_counter is set
Field value to be copied over into the RX_REO_QUEUE
descriptor.
<legal all>
disable_duplicate_detection
Field only valid when Update_Disable_duplicate_detection
is set
Field value to be copied over into the RX_REO_QUEUE
descriptor.
<legal all>
soft_reorder_enable
Field only valid when Update_Soft_reorder_enable is set
Field value to be copied over into the RX_REO_QUEUE
descriptor.
<legal all>
ac
Field only valid when Update_AC is set
Field value to be copied over into the RX_REO_QUEUE
descriptor.
<legal all>
bar
Field only valid when Update_BAR is set
Field value to be copied over into the RX_REO_QUEUE
descriptor.
<legal all>
rty
Field only valid when Update_RTY is set
Field value to be copied over into the RX_REO_QUEUE
descriptor.
<legal all>
chk_2k_mode
Field only valid when Update_Chk_2k_Mode is set
Field value to be copied over into the RX_REO_QUEUE
descriptor.
<legal all>
oor_mode
Field only valid when Update_OOR_Mode is set
Field value to be copied over into the RX_REO_QUEUE
descriptor.
<legal all>
pn_check_needed
Field only valid when Update_Pn_check_needed is set
Field value to be copied over into the RX_REO_QUEUE
descriptor.
<legal all>
pn_shall_be_even
Field only valid when Update_Pn_shall_be_even is set
Field value to be copied over into the RX_REO_QUEUE
descriptor.
<legal all>
pn_shall_be_uneven
Field only valid when Update_Pn_shall_be_uneven is set
Field value to be copied over into the RX_REO_QUEUE
descriptor.
<legal all>
pn_handling_enable
Field only valid when Update_Pn_handling_enable is set
Field value to be copied over into the RX_REO_QUEUE
descriptor.
<legal all>
ignore_ampdu_flag
Field only valid when Update_Ignore_ampdu_flag is set
Field value to be copied over into the RX_REO_QUEUE
descriptor.
<legal all>
ba_window_size
Field only valid when Update_BA_window_size is set
Field value to be copied over into the RX_REO_QUEUE
descriptor.
<legal all>
pn_size
Field only valid when Update_Pn_size is set
Field value to be copied over into the RX_REO_QUEUE
descriptor.
<enum 0 pn_size_24>
<enum 1 pn_size_48>
<enum 2 pn_size_128>
<legal 0-2>
svld
Field only valid when Update_Svld is set
Field value to be copied over into the RX_REO_QUEUE
descriptor.
<legal all>
ssn
Field only valid when Update_SSN is set
Field value to be copied over into the RX_REO_QUEUE
descriptor.
<legal all>
seq_2k_error_detected_flag
Field only valid when Update_Seq_2k_error_detected_flag
is set
Field value to be copied over into the RX_REO_QUEUE
descriptor.
<legal all>
pn_error_detected_flag
Field only valid when Update_pn_error_detected_flag is
set
Field value to be copied over into the RX_REO_QUEUE
descriptor.
<legal all>
pn_valid
Field only valid when Update_pn_valid is set
Field value to be copied over into the RX_REO_QUEUE
descriptor.
<legal all>
flush_from_cache
When set, REO shall, after finishing the execution of
this command, flush the related descriptor from the cache.
<legal all>
reserved_4a
<legal 0>
pn_31_0
Field only valid when Update_Pn is set
Field value to be copied over into the RX_REO_QUEUE
descriptor.
<legal all>
pn_63_32
Field only valid when Update_pn is set
Field value to be copied over into the RX_REO_QUEUE
descriptor.
<legal all>
pn_95_64
Field only valid when Update_pn is set
Field value to be copied over into the RX_REO_QUEUE
descriptor.
<legal all>
pn_127_96
Field only valid when Update_pn is set
Field value to be copied over into the RX_REO_QUEUE
descriptor.
<legal all>
*/
#define REO_UPDATE_RX_REO_QUEUE_0_UNIFORM_REO_CMD_HEADER_CMD_HEADER_OFFSET 0x00000000
#define REO_UPDATE_RX_REO_QUEUE_0_UNIFORM_REO_CMD_HEADER_CMD_HEADER_LSB 0
#define REO_UPDATE_RX_REO_QUEUE_0_UNIFORM_REO_CMD_HEADER_CMD_HEADER_MASK 0xffffffff
/* Description REO_UPDATE_RX_REO_QUEUE_1_RX_REO_QUEUE_DESC_ADDR_31_0
Consumer: REO
Producer: SW
Address (lower 32 bits) of the REO queue descriptor
<legal all>
*/
#define REO_UPDATE_RX_REO_QUEUE_1_RX_REO_QUEUE_DESC_ADDR_31_0_OFFSET 0x00000004
#define REO_UPDATE_RX_REO_QUEUE_1_RX_REO_QUEUE_DESC_ADDR_31_0_LSB 0
#define REO_UPDATE_RX_REO_QUEUE_1_RX_REO_QUEUE_DESC_ADDR_31_0_MASK 0xffffffff
/* Description REO_UPDATE_RX_REO_QUEUE_2_RX_REO_QUEUE_DESC_ADDR_39_32
Consumer: REO
Producer: SW
Address (upper 8 bits) of the REO queue descriptor
<legal all>
*/
#define REO_UPDATE_RX_REO_QUEUE_2_RX_REO_QUEUE_DESC_ADDR_39_32_OFFSET 0x00000008
#define REO_UPDATE_RX_REO_QUEUE_2_RX_REO_QUEUE_DESC_ADDR_39_32_LSB 0
#define REO_UPDATE_RX_REO_QUEUE_2_RX_REO_QUEUE_DESC_ADDR_39_32_MASK 0x000000ff
/* Description REO_UPDATE_RX_REO_QUEUE_2_UPDATE_RECEIVE_QUEUE_NUMBER
Consumer: REO
Producer: SW
When set, receive_queue_number from this command will be
updated in the descriptor.
<legal all>
*/
#define REO_UPDATE_RX_REO_QUEUE_2_UPDATE_RECEIVE_QUEUE_NUMBER_OFFSET 0x00000008
#define REO_UPDATE_RX_REO_QUEUE_2_UPDATE_RECEIVE_QUEUE_NUMBER_LSB 8
#define REO_UPDATE_RX_REO_QUEUE_2_UPDATE_RECEIVE_QUEUE_NUMBER_MASK 0x00000100
/* Description REO_UPDATE_RX_REO_QUEUE_2_UPDATE_VLD
Consumer: REO
Producer: SW
When clear, REO will NOT update the VLD bit setting. For
this setting, SW MUST set the Flush_from_cache bit in this
command.
When set, VLD from this command will be updated in the
descriptor.
<legal all>
*/
#define REO_UPDATE_RX_REO_QUEUE_2_UPDATE_VLD_OFFSET 0x00000008
#define REO_UPDATE_RX_REO_QUEUE_2_UPDATE_VLD_LSB 9
#define REO_UPDATE_RX_REO_QUEUE_2_UPDATE_VLD_MASK 0x00000200
/* Description REO_UPDATE_RX_REO_QUEUE_2_UPDATE_ASSOCIATED_LINK_DESCRIPTOR_COUNTER
Consumer: REO
Producer: SW
When set, Associated_link_descriptor_counter from this
command will be updated in the descriptor.
<legal all>
*/
#define REO_UPDATE_RX_REO_QUEUE_2_UPDATE_ASSOCIATED_LINK_DESCRIPTOR_COUNTER_OFFSET 0x00000008
#define REO_UPDATE_RX_REO_QUEUE_2_UPDATE_ASSOCIATED_LINK_DESCRIPTOR_COUNTER_LSB 10
#define REO_UPDATE_RX_REO_QUEUE_2_UPDATE_ASSOCIATED_LINK_DESCRIPTOR_COUNTER_MASK 0x00000400
/* Description REO_UPDATE_RX_REO_QUEUE_2_UPDATE_DISABLE_DUPLICATE_DETECTION
Consumer: REO
Producer: SW
When set, Disable_duplicate_detection from this command
will be updated in the descriptor.
<legal all>
*/
#define REO_UPDATE_RX_REO_QUEUE_2_UPDATE_DISABLE_DUPLICATE_DETECTION_OFFSET 0x00000008
#define REO_UPDATE_RX_REO_QUEUE_2_UPDATE_DISABLE_DUPLICATE_DETECTION_LSB 11
#define REO_UPDATE_RX_REO_QUEUE_2_UPDATE_DISABLE_DUPLICATE_DETECTION_MASK 0x00000800
/* Description REO_UPDATE_RX_REO_QUEUE_2_UPDATE_SOFT_REORDER_ENABLE
Consumer: REO
Producer: SW
When set, Soft_reorder_enable from this command will be
updated in the descriptor.
<legal all>
*/
#define REO_UPDATE_RX_REO_QUEUE_2_UPDATE_SOFT_REORDER_ENABLE_OFFSET 0x00000008
#define REO_UPDATE_RX_REO_QUEUE_2_UPDATE_SOFT_REORDER_ENABLE_LSB 12
#define REO_UPDATE_RX_REO_QUEUE_2_UPDATE_SOFT_REORDER_ENABLE_MASK 0x00001000
/* Description REO_UPDATE_RX_REO_QUEUE_2_UPDATE_AC
Consumer: REO
Producer: SW
When set, AC from this command will be updated in the
descriptor.
<legal all>
*/
#define REO_UPDATE_RX_REO_QUEUE_2_UPDATE_AC_OFFSET 0x00000008
#define REO_UPDATE_RX_REO_QUEUE_2_UPDATE_AC_LSB 13
#define REO_UPDATE_RX_REO_QUEUE_2_UPDATE_AC_MASK 0x00002000
/* Description REO_UPDATE_RX_REO_QUEUE_2_UPDATE_BAR
Consumer: REO
Producer: SW
When set, BAR from this command will be updated in the
descriptor.
<legal all>
*/
#define REO_UPDATE_RX_REO_QUEUE_2_UPDATE_BAR_OFFSET 0x00000008
#define REO_UPDATE_RX_REO_QUEUE_2_UPDATE_BAR_LSB 14
#define REO_UPDATE_RX_REO_QUEUE_2_UPDATE_BAR_MASK 0x00004000
/* Description REO_UPDATE_RX_REO_QUEUE_2_UPDATE_RTY
Consumer: REO
Producer: SW
When set, RTY from this command will be updated in the
descriptor.
<legal all>
*/
#define REO_UPDATE_RX_REO_QUEUE_2_UPDATE_RTY_OFFSET 0x00000008
#define REO_UPDATE_RX_REO_QUEUE_2_UPDATE_RTY_LSB 15
#define REO_UPDATE_RX_REO_QUEUE_2_UPDATE_RTY_MASK 0x00008000
/* Description REO_UPDATE_RX_REO_QUEUE_2_UPDATE_CHK_2K_MODE
Consumer: REO
Producer: SW
When set, Chk_2k_mode from this command will be updated
in the descriptor.
<legal all>
*/
#define REO_UPDATE_RX_REO_QUEUE_2_UPDATE_CHK_2K_MODE_OFFSET 0x00000008
#define REO_UPDATE_RX_REO_QUEUE_2_UPDATE_CHK_2K_MODE_LSB 16
#define REO_UPDATE_RX_REO_QUEUE_2_UPDATE_CHK_2K_MODE_MASK 0x00010000
/* Description REO_UPDATE_RX_REO_QUEUE_2_UPDATE_OOR_MODE
Consumer: REO
Producer: SW
When set, OOR_Mode from this command will be updated in
the descriptor.
<legal all>
*/
#define REO_UPDATE_RX_REO_QUEUE_2_UPDATE_OOR_MODE_OFFSET 0x00000008
#define REO_UPDATE_RX_REO_QUEUE_2_UPDATE_OOR_MODE_LSB 17
#define REO_UPDATE_RX_REO_QUEUE_2_UPDATE_OOR_MODE_MASK 0x00020000
/* Description REO_UPDATE_RX_REO_QUEUE_2_UPDATE_BA_WINDOW_SIZE
Consumer: REO
Producer: SW
When set, BA_window_size from this command will be
updated in the descriptor.
<legal all>
*/
#define REO_UPDATE_RX_REO_QUEUE_2_UPDATE_BA_WINDOW_SIZE_OFFSET 0x00000008
#define REO_UPDATE_RX_REO_QUEUE_2_UPDATE_BA_WINDOW_SIZE_LSB 18
#define REO_UPDATE_RX_REO_QUEUE_2_UPDATE_BA_WINDOW_SIZE_MASK 0x00040000
/* Description REO_UPDATE_RX_REO_QUEUE_2_UPDATE_PN_CHECK_NEEDED
Consumer: REO
Producer: SW
When set, Pn_check_needed from this command will be
updated in the descriptor.
<legal all>
*/
#define REO_UPDATE_RX_REO_QUEUE_2_UPDATE_PN_CHECK_NEEDED_OFFSET 0x00000008
#define REO_UPDATE_RX_REO_QUEUE_2_UPDATE_PN_CHECK_NEEDED_LSB 19
#define REO_UPDATE_RX_REO_QUEUE_2_UPDATE_PN_CHECK_NEEDED_MASK 0x00080000
/* Description REO_UPDATE_RX_REO_QUEUE_2_UPDATE_PN_SHALL_BE_EVEN
Consumer: REO
Producer: SW
When set, Pn_shall_be_even from this command will be
updated in the descriptor.
<legal all>
*/
#define REO_UPDATE_RX_REO_QUEUE_2_UPDATE_PN_SHALL_BE_EVEN_OFFSET 0x00000008
#define REO_UPDATE_RX_REO_QUEUE_2_UPDATE_PN_SHALL_BE_EVEN_LSB 20
#define REO_UPDATE_RX_REO_QUEUE_2_UPDATE_PN_SHALL_BE_EVEN_MASK 0x00100000
/* Description REO_UPDATE_RX_REO_QUEUE_2_UPDATE_PN_SHALL_BE_UNEVEN
Consumer: REO
Producer: SW
When set, Pn_shall_be_uneven from this command will be
updated in the descriptor.
<legal all>
*/
#define REO_UPDATE_RX_REO_QUEUE_2_UPDATE_PN_SHALL_BE_UNEVEN_OFFSET 0x00000008
#define REO_UPDATE_RX_REO_QUEUE_2_UPDATE_PN_SHALL_BE_UNEVEN_LSB 21
#define REO_UPDATE_RX_REO_QUEUE_2_UPDATE_PN_SHALL_BE_UNEVEN_MASK 0x00200000
/* Description REO_UPDATE_RX_REO_QUEUE_2_UPDATE_PN_HANDLING_ENABLE
Consumer: REO
Producer: SW
When set, Pn_handling_enable from this command will be
updated in the descriptor.
<legal all>
*/
#define REO_UPDATE_RX_REO_QUEUE_2_UPDATE_PN_HANDLING_ENABLE_OFFSET 0x00000008
#define REO_UPDATE_RX_REO_QUEUE_2_UPDATE_PN_HANDLING_ENABLE_LSB 22
#define REO_UPDATE_RX_REO_QUEUE_2_UPDATE_PN_HANDLING_ENABLE_MASK 0x00400000
/* Description REO_UPDATE_RX_REO_QUEUE_2_UPDATE_PN_SIZE
Consumer: REO
Producer: SW
When set, Pn_size from this command will be updated in
the descriptor.
<legal all>
*/
#define REO_UPDATE_RX_REO_QUEUE_2_UPDATE_PN_SIZE_OFFSET 0x00000008
#define REO_UPDATE_RX_REO_QUEUE_2_UPDATE_PN_SIZE_LSB 23
#define REO_UPDATE_RX_REO_QUEUE_2_UPDATE_PN_SIZE_MASK 0x00800000
/* Description REO_UPDATE_RX_REO_QUEUE_2_UPDATE_IGNORE_AMPDU_FLAG
Consumer: REO
Producer: SW
When set, Ignore_ampdu_flag from this command will be
updated in the descriptor.
<legal all>
*/
#define REO_UPDATE_RX_REO_QUEUE_2_UPDATE_IGNORE_AMPDU_FLAG_OFFSET 0x00000008
#define REO_UPDATE_RX_REO_QUEUE_2_UPDATE_IGNORE_AMPDU_FLAG_LSB 24
#define REO_UPDATE_RX_REO_QUEUE_2_UPDATE_IGNORE_AMPDU_FLAG_MASK 0x01000000
/* Description REO_UPDATE_RX_REO_QUEUE_2_UPDATE_SVLD
Consumer: REO
Producer: SW
When set, Svld from this command will be updated in the
descriptor.
<legal all>
*/
#define REO_UPDATE_RX_REO_QUEUE_2_UPDATE_SVLD_OFFSET 0x00000008
#define REO_UPDATE_RX_REO_QUEUE_2_UPDATE_SVLD_LSB 25
#define REO_UPDATE_RX_REO_QUEUE_2_UPDATE_SVLD_MASK 0x02000000
/* Description REO_UPDATE_RX_REO_QUEUE_2_UPDATE_SSN
Consumer: REO
Producer: SW
When set, SSN from this command will be updated in the
descriptor.
<legal all>
*/
#define REO_UPDATE_RX_REO_QUEUE_2_UPDATE_SSN_OFFSET 0x00000008
#define REO_UPDATE_RX_REO_QUEUE_2_UPDATE_SSN_LSB 26
#define REO_UPDATE_RX_REO_QUEUE_2_UPDATE_SSN_MASK 0x04000000
/* Description REO_UPDATE_RX_REO_QUEUE_2_UPDATE_SEQ_2K_ERROR_DETECTED_FLAG
Consumer: REO
Producer: SW
When set, Seq_2k_error_detected_flag from this command
will be updated in the descriptor.
<legal all>
*/
#define REO_UPDATE_RX_REO_QUEUE_2_UPDATE_SEQ_2K_ERROR_DETECTED_FLAG_OFFSET 0x00000008
#define REO_UPDATE_RX_REO_QUEUE_2_UPDATE_SEQ_2K_ERROR_DETECTED_FLAG_LSB 27
#define REO_UPDATE_RX_REO_QUEUE_2_UPDATE_SEQ_2K_ERROR_DETECTED_FLAG_MASK 0x08000000
/* Description REO_UPDATE_RX_REO_QUEUE_2_UPDATE_PN_ERROR_DETECTED_FLAG
Consumer: REO
Producer: SW
When set, pn_error_detected_flag from this command will
be updated in the descriptor.
<legal all>
*/
#define REO_UPDATE_RX_REO_QUEUE_2_UPDATE_PN_ERROR_DETECTED_FLAG_OFFSET 0x00000008
#define REO_UPDATE_RX_REO_QUEUE_2_UPDATE_PN_ERROR_DETECTED_FLAG_LSB 28
#define REO_UPDATE_RX_REO_QUEUE_2_UPDATE_PN_ERROR_DETECTED_FLAG_MASK 0x10000000
/* Description REO_UPDATE_RX_REO_QUEUE_2_UPDATE_PN_VALID
Consumer: REO
Producer: SW
When set, pn_valid from this command will be updated in
the descriptor.
<legal all>
*/
#define REO_UPDATE_RX_REO_QUEUE_2_UPDATE_PN_VALID_OFFSET 0x00000008
#define REO_UPDATE_RX_REO_QUEUE_2_UPDATE_PN_VALID_LSB 29
#define REO_UPDATE_RX_REO_QUEUE_2_UPDATE_PN_VALID_MASK 0x20000000
/* Description REO_UPDATE_RX_REO_QUEUE_2_UPDATE_PN
Consumer: REO
Producer: SW
When set, all pn_... fields from this command will be
updated in the descriptor.
<legal all>
*/
#define REO_UPDATE_RX_REO_QUEUE_2_UPDATE_PN_OFFSET 0x00000008
#define REO_UPDATE_RX_REO_QUEUE_2_UPDATE_PN_LSB 30
#define REO_UPDATE_RX_REO_QUEUE_2_UPDATE_PN_MASK 0x40000000
/* Description REO_UPDATE_RX_REO_QUEUE_2_CLEAR_STAT_COUNTERS
Consumer: REO
Producer: SW
When set, REO will clear (=> set to 0) the following
stat counters in the REO_QUEUE_STRUCT
Last_rx_enqueue_TimeStamp
Last_rx_dequeue_Timestamp
Rx_bitmap (not a counter, but bitmap is cleared)
Timeout_count
Forward_due_to_bar_count
Duplicate_count
Frames_in_order_count
BAR_received_count
MPDU_Frames_processed_count
MSDU_Frames_processed_count
Total_processed_byte_count
Late_receive_MPDU_count
window_jump_2k
Hole_count
<legal all>
*/
#define REO_UPDATE_RX_REO_QUEUE_2_CLEAR_STAT_COUNTERS_OFFSET 0x00000008
#define REO_UPDATE_RX_REO_QUEUE_2_CLEAR_STAT_COUNTERS_LSB 31
#define REO_UPDATE_RX_REO_QUEUE_2_CLEAR_STAT_COUNTERS_MASK 0x80000000
/* Description REO_UPDATE_RX_REO_QUEUE_3_RECEIVE_QUEUE_NUMBER
Field value to be copied over into the RX_REO_QUEUE
descriptor.
<legal all>
*/
#define REO_UPDATE_RX_REO_QUEUE_3_RECEIVE_QUEUE_NUMBER_OFFSET 0x0000000c
#define REO_UPDATE_RX_REO_QUEUE_3_RECEIVE_QUEUE_NUMBER_LSB 0
#define REO_UPDATE_RX_REO_QUEUE_3_RECEIVE_QUEUE_NUMBER_MASK 0x0000ffff
/* Description REO_UPDATE_RX_REO_QUEUE_3_VLD
Field only valid when Update_VLD is set
Field value to be copied over into the RX_REO_QUEUE
descriptor.
<legal all>
*/
#define REO_UPDATE_RX_REO_QUEUE_3_VLD_OFFSET 0x0000000c
#define REO_UPDATE_RX_REO_QUEUE_3_VLD_LSB 16
#define REO_UPDATE_RX_REO_QUEUE_3_VLD_MASK 0x00010000
/* Description REO_UPDATE_RX_REO_QUEUE_3_ASSOCIATED_LINK_DESCRIPTOR_COUNTER
Field only valid when
Update_Associated_link_descriptor_counter is set
Field value to be copied over into the RX_REO_QUEUE
descriptor.
<legal all>
*/
#define REO_UPDATE_RX_REO_QUEUE_3_ASSOCIATED_LINK_DESCRIPTOR_COUNTER_OFFSET 0x0000000c
#define REO_UPDATE_RX_REO_QUEUE_3_ASSOCIATED_LINK_DESCRIPTOR_COUNTER_LSB 17
#define REO_UPDATE_RX_REO_QUEUE_3_ASSOCIATED_LINK_DESCRIPTOR_COUNTER_MASK 0x00060000
/* Description REO_UPDATE_RX_REO_QUEUE_3_DISABLE_DUPLICATE_DETECTION
Field only valid when Update_Disable_duplicate_detection
is set
Field value to be copied over into the RX_REO_QUEUE
descriptor.
<legal all>
*/
#define REO_UPDATE_RX_REO_QUEUE_3_DISABLE_DUPLICATE_DETECTION_OFFSET 0x0000000c
#define REO_UPDATE_RX_REO_QUEUE_3_DISABLE_DUPLICATE_DETECTION_LSB 19
#define REO_UPDATE_RX_REO_QUEUE_3_DISABLE_DUPLICATE_DETECTION_MASK 0x00080000
/* Description REO_UPDATE_RX_REO_QUEUE_3_SOFT_REORDER_ENABLE
Field only valid when Update_Soft_reorder_enable is set
Field value to be copied over into the RX_REO_QUEUE
descriptor.
<legal all>
*/
#define REO_UPDATE_RX_REO_QUEUE_3_SOFT_REORDER_ENABLE_OFFSET 0x0000000c
#define REO_UPDATE_RX_REO_QUEUE_3_SOFT_REORDER_ENABLE_LSB 20
#define REO_UPDATE_RX_REO_QUEUE_3_SOFT_REORDER_ENABLE_MASK 0x00100000
/* Description REO_UPDATE_RX_REO_QUEUE_3_AC
Field only valid when Update_AC is set
Field value to be copied over into the RX_REO_QUEUE
descriptor.
<legal all>
*/
#define REO_UPDATE_RX_REO_QUEUE_3_AC_OFFSET 0x0000000c
#define REO_UPDATE_RX_REO_QUEUE_3_AC_LSB 21
#define REO_UPDATE_RX_REO_QUEUE_3_AC_MASK 0x00600000
/* Description REO_UPDATE_RX_REO_QUEUE_3_BAR
Field only valid when Update_BAR is set
Field value to be copied over into the RX_REO_QUEUE
descriptor.
<legal all>
*/
#define REO_UPDATE_RX_REO_QUEUE_3_BAR_OFFSET 0x0000000c
#define REO_UPDATE_RX_REO_QUEUE_3_BAR_LSB 23
#define REO_UPDATE_RX_REO_QUEUE_3_BAR_MASK 0x00800000
/* Description REO_UPDATE_RX_REO_QUEUE_3_RTY
Field only valid when Update_RTY is set
Field value to be copied over into the RX_REO_QUEUE
descriptor.
<legal all>
*/
#define REO_UPDATE_RX_REO_QUEUE_3_RTY_OFFSET 0x0000000c
#define REO_UPDATE_RX_REO_QUEUE_3_RTY_LSB 24
#define REO_UPDATE_RX_REO_QUEUE_3_RTY_MASK 0x01000000
/* Description REO_UPDATE_RX_REO_QUEUE_3_CHK_2K_MODE
Field only valid when Update_Chk_2k_Mode is set
Field value to be copied over into the RX_REO_QUEUE
descriptor.
<legal all>
*/
#define REO_UPDATE_RX_REO_QUEUE_3_CHK_2K_MODE_OFFSET 0x0000000c
#define REO_UPDATE_RX_REO_QUEUE_3_CHK_2K_MODE_LSB 25
#define REO_UPDATE_RX_REO_QUEUE_3_CHK_2K_MODE_MASK 0x02000000
/* Description REO_UPDATE_RX_REO_QUEUE_3_OOR_MODE
Field only valid when Update_OOR_Mode is set
Field value to be copied over into the RX_REO_QUEUE
descriptor.
<legal all>
*/
#define REO_UPDATE_RX_REO_QUEUE_3_OOR_MODE_OFFSET 0x0000000c
#define REO_UPDATE_RX_REO_QUEUE_3_OOR_MODE_LSB 26
#define REO_UPDATE_RX_REO_QUEUE_3_OOR_MODE_MASK 0x04000000
/* Description REO_UPDATE_RX_REO_QUEUE_3_PN_CHECK_NEEDED
Field only valid when Update_Pn_check_needed is set
Field value to be copied over into the RX_REO_QUEUE
descriptor.
<legal all>
*/
#define REO_UPDATE_RX_REO_QUEUE_3_PN_CHECK_NEEDED_OFFSET 0x0000000c
#define REO_UPDATE_RX_REO_QUEUE_3_PN_CHECK_NEEDED_LSB 27
#define REO_UPDATE_RX_REO_QUEUE_3_PN_CHECK_NEEDED_MASK 0x08000000
/* Description REO_UPDATE_RX_REO_QUEUE_3_PN_SHALL_BE_EVEN
Field only valid when Update_Pn_shall_be_even is set
Field value to be copied over into the RX_REO_QUEUE
descriptor.
<legal all>
*/
#define REO_UPDATE_RX_REO_QUEUE_3_PN_SHALL_BE_EVEN_OFFSET 0x0000000c
#define REO_UPDATE_RX_REO_QUEUE_3_PN_SHALL_BE_EVEN_LSB 28
#define REO_UPDATE_RX_REO_QUEUE_3_PN_SHALL_BE_EVEN_MASK 0x10000000
/* Description REO_UPDATE_RX_REO_QUEUE_3_PN_SHALL_BE_UNEVEN
Field only valid when Update_Pn_shall_be_uneven is set
Field value to be copied over into the RX_REO_QUEUE
descriptor.
<legal all>
*/
#define REO_UPDATE_RX_REO_QUEUE_3_PN_SHALL_BE_UNEVEN_OFFSET 0x0000000c
#define REO_UPDATE_RX_REO_QUEUE_3_PN_SHALL_BE_UNEVEN_LSB 29
#define REO_UPDATE_RX_REO_QUEUE_3_PN_SHALL_BE_UNEVEN_MASK 0x20000000
/* Description REO_UPDATE_RX_REO_QUEUE_3_PN_HANDLING_ENABLE
Field only valid when Update_Pn_handling_enable is set
Field value to be copied over into the RX_REO_QUEUE
descriptor.
<legal all>
*/
#define REO_UPDATE_RX_REO_QUEUE_3_PN_HANDLING_ENABLE_OFFSET 0x0000000c
#define REO_UPDATE_RX_REO_QUEUE_3_PN_HANDLING_ENABLE_LSB 30
#define REO_UPDATE_RX_REO_QUEUE_3_PN_HANDLING_ENABLE_MASK 0x40000000
/* Description REO_UPDATE_RX_REO_QUEUE_3_IGNORE_AMPDU_FLAG
Field only valid when Update_Ignore_ampdu_flag is set
Field value to be copied over into the RX_REO_QUEUE
descriptor.
<legal all>
*/
#define REO_UPDATE_RX_REO_QUEUE_3_IGNORE_AMPDU_FLAG_OFFSET 0x0000000c
#define REO_UPDATE_RX_REO_QUEUE_3_IGNORE_AMPDU_FLAG_LSB 31
#define REO_UPDATE_RX_REO_QUEUE_3_IGNORE_AMPDU_FLAG_MASK 0x80000000
/* Description REO_UPDATE_RX_REO_QUEUE_4_BA_WINDOW_SIZE
Field only valid when Update_BA_window_size is set
Field value to be copied over into the RX_REO_QUEUE
descriptor.
<legal all>
*/
#define REO_UPDATE_RX_REO_QUEUE_4_BA_WINDOW_SIZE_OFFSET 0x00000010
#define REO_UPDATE_RX_REO_QUEUE_4_BA_WINDOW_SIZE_LSB 0
#define REO_UPDATE_RX_REO_QUEUE_4_BA_WINDOW_SIZE_MASK 0x000000ff
/* Description REO_UPDATE_RX_REO_QUEUE_4_PN_SIZE
Field only valid when Update_Pn_size is set
Field value to be copied over into the RX_REO_QUEUE
descriptor.
<enum 0 pn_size_24>
<enum 1 pn_size_48>
<enum 2 pn_size_128>
<legal 0-2>
*/
#define REO_UPDATE_RX_REO_QUEUE_4_PN_SIZE_OFFSET 0x00000010
#define REO_UPDATE_RX_REO_QUEUE_4_PN_SIZE_LSB 8
#define REO_UPDATE_RX_REO_QUEUE_4_PN_SIZE_MASK 0x00000300
/* Description REO_UPDATE_RX_REO_QUEUE_4_SVLD
Field only valid when Update_Svld is set
Field value to be copied over into the RX_REO_QUEUE
descriptor.
<legal all>
*/
#define REO_UPDATE_RX_REO_QUEUE_4_SVLD_OFFSET 0x00000010
#define REO_UPDATE_RX_REO_QUEUE_4_SVLD_LSB 10
#define REO_UPDATE_RX_REO_QUEUE_4_SVLD_MASK 0x00000400
/* Description REO_UPDATE_RX_REO_QUEUE_4_SSN
Field only valid when Update_SSN is set
Field value to be copied over into the RX_REO_QUEUE
descriptor.
<legal all>
*/
#define REO_UPDATE_RX_REO_QUEUE_4_SSN_OFFSET 0x00000010
#define REO_UPDATE_RX_REO_QUEUE_4_SSN_LSB 11
#define REO_UPDATE_RX_REO_QUEUE_4_SSN_MASK 0x007ff800
/* Description REO_UPDATE_RX_REO_QUEUE_4_SEQ_2K_ERROR_DETECTED_FLAG
Field only valid when Update_Seq_2k_error_detected_flag
is set
Field value to be copied over into the RX_REO_QUEUE
descriptor.
<legal all>
*/
#define REO_UPDATE_RX_REO_QUEUE_4_SEQ_2K_ERROR_DETECTED_FLAG_OFFSET 0x00000010
#define REO_UPDATE_RX_REO_QUEUE_4_SEQ_2K_ERROR_DETECTED_FLAG_LSB 23
#define REO_UPDATE_RX_REO_QUEUE_4_SEQ_2K_ERROR_DETECTED_FLAG_MASK 0x00800000
/* Description REO_UPDATE_RX_REO_QUEUE_4_PN_ERROR_DETECTED_FLAG
Field only valid when Update_pn_error_detected_flag is
set
Field value to be copied over into the RX_REO_QUEUE
descriptor.
<legal all>
*/
#define REO_UPDATE_RX_REO_QUEUE_4_PN_ERROR_DETECTED_FLAG_OFFSET 0x00000010
#define REO_UPDATE_RX_REO_QUEUE_4_PN_ERROR_DETECTED_FLAG_LSB 24
#define REO_UPDATE_RX_REO_QUEUE_4_PN_ERROR_DETECTED_FLAG_MASK 0x01000000
/* Description REO_UPDATE_RX_REO_QUEUE_4_PN_VALID
Field only valid when Update_pn_valid is set
Field value to be copied over into the RX_REO_QUEUE
descriptor.
<legal all>
*/
#define REO_UPDATE_RX_REO_QUEUE_4_PN_VALID_OFFSET 0x00000010
#define REO_UPDATE_RX_REO_QUEUE_4_PN_VALID_LSB 25
#define REO_UPDATE_RX_REO_QUEUE_4_PN_VALID_MASK 0x02000000
/* Description REO_UPDATE_RX_REO_QUEUE_4_FLUSH_FROM_CACHE
When set, REO shall, after finishing the execution of
this command, flush the related descriptor from the cache.
<legal all>
*/
#define REO_UPDATE_RX_REO_QUEUE_4_FLUSH_FROM_CACHE_OFFSET 0x00000010
#define REO_UPDATE_RX_REO_QUEUE_4_FLUSH_FROM_CACHE_LSB 26
#define REO_UPDATE_RX_REO_QUEUE_4_FLUSH_FROM_CACHE_MASK 0x04000000
/* Description REO_UPDATE_RX_REO_QUEUE_4_RESERVED_4A
<legal 0>
*/
#define REO_UPDATE_RX_REO_QUEUE_4_RESERVED_4A_OFFSET 0x00000010
#define REO_UPDATE_RX_REO_QUEUE_4_RESERVED_4A_LSB 27
#define REO_UPDATE_RX_REO_QUEUE_4_RESERVED_4A_MASK 0xf8000000
/* Description REO_UPDATE_RX_REO_QUEUE_5_PN_31_0
Field only valid when Update_Pn is set
Field value to be copied over into the RX_REO_QUEUE
descriptor.
<legal all>
*/
#define REO_UPDATE_RX_REO_QUEUE_5_PN_31_0_OFFSET 0x00000014
#define REO_UPDATE_RX_REO_QUEUE_5_PN_31_0_LSB 0
#define REO_UPDATE_RX_REO_QUEUE_5_PN_31_0_MASK 0xffffffff
/* Description REO_UPDATE_RX_REO_QUEUE_6_PN_63_32
Field only valid when Update_pn is set
Field value to be copied over into the RX_REO_QUEUE
descriptor.
<legal all>
*/
#define REO_UPDATE_RX_REO_QUEUE_6_PN_63_32_OFFSET 0x00000018
#define REO_UPDATE_RX_REO_QUEUE_6_PN_63_32_LSB 0
#define REO_UPDATE_RX_REO_QUEUE_6_PN_63_32_MASK 0xffffffff
/* Description REO_UPDATE_RX_REO_QUEUE_7_PN_95_64
Field only valid when Update_pn is set
Field value to be copied over into the RX_REO_QUEUE
descriptor.
<legal all>
*/
#define REO_UPDATE_RX_REO_QUEUE_7_PN_95_64_OFFSET 0x0000001c
#define REO_UPDATE_RX_REO_QUEUE_7_PN_95_64_LSB 0
#define REO_UPDATE_RX_REO_QUEUE_7_PN_95_64_MASK 0xffffffff
/* Description REO_UPDATE_RX_REO_QUEUE_8_PN_127_96
Field only valid when Update_pn is set
Field value to be copied over into the RX_REO_QUEUE
descriptor.
<legal all>
*/
#define REO_UPDATE_RX_REO_QUEUE_8_PN_127_96_OFFSET 0x00000020
#define REO_UPDATE_RX_REO_QUEUE_8_PN_127_96_LSB 0
#define REO_UPDATE_RX_REO_QUEUE_8_PN_127_96_MASK 0xffffffff
#endif // _REO_UPDATE_RX_REO_QUEUE_H_