1*5113495bSYour Name /* 2*5113495bSYour Name * Copyright (c) 2023 Qualcomm Innovation Center, Inc. All rights reserved. 3*5113495bSYour Name * 4*5113495bSYour Name * Permission to use, copy, modify, and/or distribute this software for any 5*5113495bSYour Name * purpose with or without fee is hereby granted, provided that the above 6*5113495bSYour Name * copyright notice and this permission notice appear in all copies. 7*5113495bSYour Name * 8*5113495bSYour Name * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 9*5113495bSYour Name * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 10*5113495bSYour Name * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 11*5113495bSYour Name * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 12*5113495bSYour Name * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 13*5113495bSYour Name * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF 14*5113495bSYour Name * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 15*5113495bSYour Name */ 16*5113495bSYour Name 17*5113495bSYour Name #ifndef _TX_QUEUE_EXTENSION_H_ 18*5113495bSYour Name #define _TX_QUEUE_EXTENSION_H_ 19*5113495bSYour Name #if !defined(__ASSEMBLER__) 20*5113495bSYour Name #endif 21*5113495bSYour Name 22*5113495bSYour Name #define NUM_OF_DWORDS_TX_QUEUE_EXTENSION 14 23*5113495bSYour Name 24*5113495bSYour Name #define NUM_OF_QWORDS_TX_QUEUE_EXTENSION 7 25*5113495bSYour Name 26*5113495bSYour Name 27*5113495bSYour Name struct tx_queue_extension { 28*5113495bSYour Name #ifndef WIFI_BIT_ORDER_BIG_ENDIAN 29*5113495bSYour Name uint32_t frame_ctl : 16, // [15:0] 30*5113495bSYour Name qos_ctl : 16; // [31:16] 31*5113495bSYour Name uint32_t ampdu_flag : 1, // [0:0] 32*5113495bSYour Name tx_notify_no_htc_override : 1, // [1:1] 33*5113495bSYour Name reserved_1a : 7, // [8:2] 34*5113495bSYour Name checksum_tso_disable_for_frag : 1, // [9:9] 35*5113495bSYour Name key_id : 8, // [17:10] 36*5113495bSYour Name qos_buf_state_overwrite : 1, // [18:18] 37*5113495bSYour Name buf_state_sta_id : 1, // [19:19] 38*5113495bSYour Name buf_state_source : 1, // [20:20] 39*5113495bSYour Name ht_control_overwrite_enable : 1, // [21:21] 40*5113495bSYour Name ht_control_overwrite_source : 4, // [25:22] 41*5113495bSYour Name reserved_1b : 6; // [31:26] 42*5113495bSYour Name uint32_t ul_headroom_insertion_enable : 1, // [0:0] 43*5113495bSYour Name ul_headroom_offset : 5, // [5:1] 44*5113495bSYour Name bqrp_insertion_enable : 1, // [6:6] 45*5113495bSYour Name bqrp_offset : 5, // [11:7] 46*5113495bSYour Name ul_headroom_rsvd_7_6 : 2, // [13:12] 47*5113495bSYour Name bqr_rsvd_9_8 : 2, // [15:14] 48*5113495bSYour Name base_pn_63_48 : 16; // [31:16] 49*5113495bSYour Name uint32_t base_pn_95_64 : 32; // [31:0] 50*5113495bSYour Name uint32_t base_pn_127_96 : 32; // [31:0] 51*5113495bSYour Name uint32_t ht_control_field_bw20 : 32; // [31:0] 52*5113495bSYour Name uint32_t ht_control_field_bw40 : 32; // [31:0] 53*5113495bSYour Name uint32_t ht_control_field_bw80 : 32; // [31:0] 54*5113495bSYour Name uint32_t ht_control_field_bw160 : 32; // [31:0] 55*5113495bSYour Name uint32_t ht_control_overwrite_mask : 32; // [31:0] 56*5113495bSYour Name uint32_t cas_control_info : 8, // [7:0] 57*5113495bSYour Name cas_offset : 5, // [12:8] 58*5113495bSYour Name cas_insertion_enable : 1, // [13:13] 59*5113495bSYour Name reserved_10a : 2, // [15:14] 60*5113495bSYour Name ht_control_overwrite_source_for_srp : 4, // [19:16] 61*5113495bSYour Name ht_control_overwrite_source_for_bsrp : 4, // [23:20] 62*5113495bSYour Name reserved_10b : 6, // [29:24] 63*5113495bSYour Name mpdu_hdr_len_override_en : 1, // [30:30] 64*5113495bSYour Name bar_ssn_overwrite_enable : 1; // [31:31] 65*5113495bSYour Name uint32_t bar_ssn_offset : 12, // [11:0] 66*5113495bSYour Name mpdu_hdr_len_override_val : 9, // [20:12] 67*5113495bSYour Name reserved_11a : 11; // [31:21] 68*5113495bSYour Name uint32_t ht_control_field_bw320 : 32; // [31:0] 69*5113495bSYour Name uint32_t fw2sw_info : 32; // [31:0] 70*5113495bSYour Name #else 71*5113495bSYour Name uint32_t qos_ctl : 16, // [31:16] 72*5113495bSYour Name frame_ctl : 16; // [15:0] 73*5113495bSYour Name uint32_t reserved_1b : 6, // [31:26] 74*5113495bSYour Name ht_control_overwrite_source : 4, // [25:22] 75*5113495bSYour Name ht_control_overwrite_enable : 1, // [21:21] 76*5113495bSYour Name buf_state_source : 1, // [20:20] 77*5113495bSYour Name buf_state_sta_id : 1, // [19:19] 78*5113495bSYour Name qos_buf_state_overwrite : 1, // [18:18] 79*5113495bSYour Name key_id : 8, // [17:10] 80*5113495bSYour Name checksum_tso_disable_for_frag : 1, // [9:9] 81*5113495bSYour Name reserved_1a : 7, // [8:2] 82*5113495bSYour Name tx_notify_no_htc_override : 1, // [1:1] 83*5113495bSYour Name ampdu_flag : 1; // [0:0] 84*5113495bSYour Name uint32_t base_pn_63_48 : 16, // [31:16] 85*5113495bSYour Name bqr_rsvd_9_8 : 2, // [15:14] 86*5113495bSYour Name ul_headroom_rsvd_7_6 : 2, // [13:12] 87*5113495bSYour Name bqrp_offset : 5, // [11:7] 88*5113495bSYour Name bqrp_insertion_enable : 1, // [6:6] 89*5113495bSYour Name ul_headroom_offset : 5, // [5:1] 90*5113495bSYour Name ul_headroom_insertion_enable : 1; // [0:0] 91*5113495bSYour Name uint32_t base_pn_95_64 : 32; // [31:0] 92*5113495bSYour Name uint32_t base_pn_127_96 : 32; // [31:0] 93*5113495bSYour Name uint32_t ht_control_field_bw20 : 32; // [31:0] 94*5113495bSYour Name uint32_t ht_control_field_bw40 : 32; // [31:0] 95*5113495bSYour Name uint32_t ht_control_field_bw80 : 32; // [31:0] 96*5113495bSYour Name uint32_t ht_control_field_bw160 : 32; // [31:0] 97*5113495bSYour Name uint32_t ht_control_overwrite_mask : 32; // [31:0] 98*5113495bSYour Name uint32_t bar_ssn_overwrite_enable : 1, // [31:31] 99*5113495bSYour Name mpdu_hdr_len_override_en : 1, // [30:30] 100*5113495bSYour Name reserved_10b : 6, // [29:24] 101*5113495bSYour Name ht_control_overwrite_source_for_bsrp : 4, // [23:20] 102*5113495bSYour Name ht_control_overwrite_source_for_srp : 4, // [19:16] 103*5113495bSYour Name reserved_10a : 2, // [15:14] 104*5113495bSYour Name cas_insertion_enable : 1, // [13:13] 105*5113495bSYour Name cas_offset : 5, // [12:8] 106*5113495bSYour Name cas_control_info : 8; // [7:0] 107*5113495bSYour Name uint32_t reserved_11a : 11, // [31:21] 108*5113495bSYour Name mpdu_hdr_len_override_val : 9, // [20:12] 109*5113495bSYour Name bar_ssn_offset : 12; // [11:0] 110*5113495bSYour Name uint32_t ht_control_field_bw320 : 32; // [31:0] 111*5113495bSYour Name uint32_t fw2sw_info : 32; // [31:0] 112*5113495bSYour Name #endif 113*5113495bSYour Name }; 114*5113495bSYour Name 115*5113495bSYour Name 116*5113495bSYour Name /* Description FRAME_CTL 117*5113495bSYour Name 118*5113495bSYour Name Consumer: TXOLE 119*5113495bSYour Name Producer: SW 120*5113495bSYour Name 121*5113495bSYour Name 122*5113495bSYour Name 802.11 Frame control field: 123*5113495bSYour Name fc [1:0]: Protocol Version 124*5113495bSYour Name fc[7:2]: type/subtypeFor non-11ah fc[3:2] = Type fc[7:4] = 125*5113495bSYour Name Subtype For 11ah fc[4:2] = Typefc[7:5] = PTID/SubType 126*5113495bSYour Name fc [8]: To DS ( for Non-11ah) From DS ( for 11ah ) 127*5113495bSYour Name fc [9]: From DS ( for Non-11ah ) 128*5113495bSYour Name More Frag ( for 11ah ) 129*5113495bSYour Name fc [10]: More Frag ( for Non-11ah ) 130*5113495bSYour Name Power Management ( for 11ah) 131*5113495bSYour Name fc [11]: Retry ( for Non-11ah ) 132*5113495bSYour Name More Data ( for 11ah ) 133*5113495bSYour Name fc [12]: Pwr Mgt ( for Non-11ah ) 134*5113495bSYour Name Protected Frame ( for 11ah ) 135*5113495bSYour Name fc [13]: More Data( for Non-11ah ) 136*5113495bSYour Name EOSP ( for 11ah ) 137*5113495bSYour Name fc [14]: Protected Frame ( for Non-11ah) 138*5113495bSYour Name Relayed Frame ( for 11ah ) 139*5113495bSYour Name fc [15]: Order ( for Non-11ah ) 140*5113495bSYour Name Ack Policy ( for 11ah ) 141*5113495bSYour Name Used by OLE during the encapsulation process for Native 142*5113495bSYour Name WiFi, Ethernet II, and 802.3. 143*5113495bSYour Name When the Order field is set, TXOLE shall insert 4 placeholder 144*5113495bSYour Name bytes for the HE-control field in the frame. TXPCU will 145*5113495bSYour Name overwrite them with the final actual value... 146*5113495bSYour Name */ 147*5113495bSYour Name 148*5113495bSYour Name #define TX_QUEUE_EXTENSION_FRAME_CTL_OFFSET 0x0000000000000000 149*5113495bSYour Name #define TX_QUEUE_EXTENSION_FRAME_CTL_LSB 0 150*5113495bSYour Name #define TX_QUEUE_EXTENSION_FRAME_CTL_MSB 15 151*5113495bSYour Name #define TX_QUEUE_EXTENSION_FRAME_CTL_MASK 0x000000000000ffff 152*5113495bSYour Name 153*5113495bSYour Name 154*5113495bSYour Name /* Description QOS_CTL 155*5113495bSYour Name 156*5113495bSYour Name Consumer: TXOLE 157*5113495bSYour Name Producer: SW 158*5113495bSYour Name 159*5113495bSYour Name QoS control field is valid if the type field is data and 160*5113495bSYour Name the upper bit of the subtype field is set. The field decode 161*5113495bSYour Name is as below: 162*5113495bSYour Name qos_ctl[3:0]: TID 163*5113495bSYour Name qos_ctl[4]: EOSP (with some exceptions) 164*5113495bSYour Name qos_ctl[6:5]: Ack Policy 165*5113495bSYour Name 0x0: Normal Ack or Implicit BAR 166*5113495bSYour Name 0x1: No Ack 167*5113495bSYour Name 0x2: No explicit Ack or PSMP Ack (not supported) 168*5113495bSYour Name 0x3: Block Ack (Not supported) 169*5113495bSYour Name Qos_ctl[7]: A-MSDU Present (with some exceptions) 170*5113495bSYour Name Qos_ctl[15:8]: TXOP limit, AP PS buffer state, TXOP duration 171*5113495bSYour Name requested or queue size 172*5113495bSYour Name This field is inserted into the 802.11 header during the 173*5113495bSYour Name encapsulation process 174*5113495bSYour Name <legal all> 175*5113495bSYour Name */ 176*5113495bSYour Name 177*5113495bSYour Name #define TX_QUEUE_EXTENSION_QOS_CTL_OFFSET 0x0000000000000000 178*5113495bSYour Name #define TX_QUEUE_EXTENSION_QOS_CTL_LSB 16 179*5113495bSYour Name #define TX_QUEUE_EXTENSION_QOS_CTL_MSB 31 180*5113495bSYour Name #define TX_QUEUE_EXTENSION_QOS_CTL_MASK 0x00000000ffff0000 181*5113495bSYour Name 182*5113495bSYour Name 183*5113495bSYour Name /* Description AMPDU_FLAG 184*5113495bSYour Name 185*5113495bSYour Name Consumer: PDG/TXPCU 186*5113495bSYour Name Producer: SW 187*5113495bSYour Name 188*5113495bSYour Name Note: 189*5113495bSYour Name For legacy rate transmissions (11 b and 11a, an 11g), this 190*5113495bSYour Name bit shall always be set to zero. 191*5113495bSYour Name 192*5113495bSYour Name 0: 193*5113495bSYour Name For legacy and .11n rates: 194*5113495bSYour Name MPDUs are only allowed to be sent out 1 at a time in NON 195*5113495bSYour Name A-MPDU format. 196*5113495bSYour Name For .11ac and .11ax rates: 197*5113495bSYour Name MPDUs are sent out in S-MPDU format (TXPCU sets the 'EOF' 198*5113495bSYour Name bit in the MPDU delimiter). 199*5113495bSYour Name 1: All MPDUs should be sent out using the A-MPDU format, 200*5113495bSYour Name even if there is only one MPDU. 201*5113495bSYour Name 202*5113495bSYour Name Note that this bit should be set to 0 in order to construct 203*5113495bSYour Name an S-MPDU frame. VHT and HE frames are all A-MPDU format 204*5113495bSYour Name but if this bit is clear, EOF bit is set to 1 for the MPDU 205*5113495bSYour Name delimiter in A-MPDU, which is the indicator of S-MPDU and 206*5113495bSYour Name solicits ACK rather than BA as response frame. 207*5113495bSYour Name 208*5113495bSYour Name This bit shall be set to 1 for any MD (Multi Destination) 209*5113495bSYour Name transmission. 210*5113495bSYour Name */ 211*5113495bSYour Name 212*5113495bSYour Name #define TX_QUEUE_EXTENSION_AMPDU_FLAG_OFFSET 0x0000000000000000 213*5113495bSYour Name #define TX_QUEUE_EXTENSION_AMPDU_FLAG_LSB 32 214*5113495bSYour Name #define TX_QUEUE_EXTENSION_AMPDU_FLAG_MSB 32 215*5113495bSYour Name #define TX_QUEUE_EXTENSION_AMPDU_FLAG_MASK 0x0000000100000000 216*5113495bSYour Name 217*5113495bSYour Name 218*5113495bSYour Name /* Description TX_NOTIFY_NO_HTC_OVERRIDE 219*5113495bSYour Name 220*5113495bSYour Name When set, and a 'TX_MPDU_START' TLV has Tx_notify_frame 221*5113495bSYour Name set to TX_HARD_NOTIFY or TX_SOFT_NOTIFY or TX_SEMI_HARD_NOTIFY, 222*5113495bSYour Name then PDG would have updated the rate fields for a legacy 223*5113495bSYour Name PPDU which may not support HT Control. 224*5113495bSYour Name 225*5113495bSYour Name In this case TXOLE shall not: 226*5113495bSYour Name set the Order/+HTC bit in the 'Frame Control,' 227*5113495bSYour Name include 4 bytes for TXPCU to fill the HT Control, or 228*5113495bSYour Name set vht_control_present in 'TX_MPDU_START,' 229*5113495bSYour Name even if requested, and instead shall subtract '4' from the 230*5113495bSYour Name mpdu_length in 'TX_MPDU_START' and overwrite it. 231*5113495bSYour Name 232*5113495bSYour Name <legal all> 233*5113495bSYour Name */ 234*5113495bSYour Name 235*5113495bSYour Name #define TX_QUEUE_EXTENSION_TX_NOTIFY_NO_HTC_OVERRIDE_OFFSET 0x0000000000000000 236*5113495bSYour Name #define TX_QUEUE_EXTENSION_TX_NOTIFY_NO_HTC_OVERRIDE_LSB 33 237*5113495bSYour Name #define TX_QUEUE_EXTENSION_TX_NOTIFY_NO_HTC_OVERRIDE_MSB 33 238*5113495bSYour Name #define TX_QUEUE_EXTENSION_TX_NOTIFY_NO_HTC_OVERRIDE_MASK 0x0000000200000000 239*5113495bSYour Name 240*5113495bSYour Name 241*5113495bSYour Name 242*5113495bSYour Name #define TX_QUEUE_EXTENSION_RESERVED_1A_OFFSET 0x0000000000000000 243*5113495bSYour Name #define TX_QUEUE_EXTENSION_RESERVED_1A_LSB 34 244*5113495bSYour Name #define TX_QUEUE_EXTENSION_RESERVED_1A_MSB 40 245*5113495bSYour Name #define TX_QUEUE_EXTENSION_RESERVED_1A_MASK 0x000001fc00000000 246*5113495bSYour Name 247*5113495bSYour Name 248*5113495bSYour Name /* Description CHECKSUM_TSO_DISABLE_FOR_FRAG 249*5113495bSYour Name 250*5113495bSYour Name Field only valid in case of level-1 fragmentation, identified 251*5113495bSYour Name by TXOLE getting the 'TX_FRAG_STATE' TLV 252*5113495bSYour Name 253*5113495bSYour Name If set, TXOLE disables all checksum and TSO overwrites for 254*5113495bSYour Name the fragment(s) being transmitted. 255*5113495bSYour Name 256*5113495bSYour Name This is useful if it is known that the checksum and TSO 257*5113495bSYour Name overwrites affect only the first fragment (or first few 258*5113495bSYour Name fragments) and for the rest these can be safely disabled. 259*5113495bSYour Name 260*5113495bSYour Name 261*5113495bSYour Name <legal all> 262*5113495bSYour Name */ 263*5113495bSYour Name 264*5113495bSYour Name #define TX_QUEUE_EXTENSION_CHECKSUM_TSO_DISABLE_FOR_FRAG_OFFSET 0x0000000000000000 265*5113495bSYour Name #define TX_QUEUE_EXTENSION_CHECKSUM_TSO_DISABLE_FOR_FRAG_LSB 41 266*5113495bSYour Name #define TX_QUEUE_EXTENSION_CHECKSUM_TSO_DISABLE_FOR_FRAG_MSB 41 267*5113495bSYour Name #define TX_QUEUE_EXTENSION_CHECKSUM_TSO_DISABLE_FOR_FRAG_MASK 0x0000020000000000 268*5113495bSYour Name 269*5113495bSYour Name 270*5113495bSYour Name /* Description KEY_ID 271*5113495bSYour Name 272*5113495bSYour Name Field only valid in case of encryption, and TXOLE being 273*5113495bSYour Name instructured to insert the IV. 274*5113495bSYour Name 275*5113495bSYour Name TXOLE blindly copies this field into the key ID octet (which 276*5113495bSYour Name is part of the IV) of the encrypted frame. 277*5113495bSYour Name 278*5113495bSYour Name For AES/TKIP the encoding is: 279*5113495bSYour Name key_id_octet[7:6]: key ID 280*5113495bSYour Name key_id_octet[5]: extended IV: 281*5113495bSYour Name key_id_octet[4:0]: Reserved bits 282*5113495bSYour Name 283*5113495bSYour Name For WEP the encoding is: 284*5113495bSYour Name key_id_octet[7:6]: key ID 285*5113495bSYour Name key_id_octet[5]: extended IV: 286*5113495bSYour Name key_id_octet[4:0]: Reserved bits 287*5113495bSYour Name 288*5113495bSYour Name For WAPI the encoding is: 289*5113495bSYour Name key_id_octet[7:2]: Reserved bits 290*5113495bSYour Name key_id_octet[1:0]: key ID 291*5113495bSYour Name 292*5113495bSYour Name <legal all> 293*5113495bSYour Name */ 294*5113495bSYour Name 295*5113495bSYour Name #define TX_QUEUE_EXTENSION_KEY_ID_OFFSET 0x0000000000000000 296*5113495bSYour Name #define TX_QUEUE_EXTENSION_KEY_ID_LSB 42 297*5113495bSYour Name #define TX_QUEUE_EXTENSION_KEY_ID_MSB 49 298*5113495bSYour Name #define TX_QUEUE_EXTENSION_KEY_ID_MASK 0x0003fc0000000000 299*5113495bSYour Name 300*5113495bSYour Name 301*5113495bSYour Name /* Description QOS_BUF_STATE_OVERWRITE 302*5113495bSYour Name 303*5113495bSYour Name When clear, TXPCU shall not overwrite buffer state field 304*5113495bSYour Name in the QoS frame control field. 305*5113495bSYour Name 306*5113495bSYour Name When set, TXPCU shall overwrite the buffer state field in 307*5113495bSYour Name the QoS frame control field, with info that SW has programmed 308*5113495bSYour Name in TXPCU registers. Note that TXPCU shall pick up the values 309*5113495bSYour Name related to this TID. 310*5113495bSYour Name <legal all> 311*5113495bSYour Name */ 312*5113495bSYour Name 313*5113495bSYour Name #define TX_QUEUE_EXTENSION_QOS_BUF_STATE_OVERWRITE_OFFSET 0x0000000000000000 314*5113495bSYour Name #define TX_QUEUE_EXTENSION_QOS_BUF_STATE_OVERWRITE_LSB 50 315*5113495bSYour Name #define TX_QUEUE_EXTENSION_QOS_BUF_STATE_OVERWRITE_MSB 50 316*5113495bSYour Name #define TX_QUEUE_EXTENSION_QOS_BUF_STATE_OVERWRITE_MASK 0x0004000000000000 317*5113495bSYour Name 318*5113495bSYour Name 319*5113495bSYour Name /* Description BUF_STATE_STA_ID 320*5113495bSYour Name 321*5113495bSYour Name Field only valid when QoS_Buf_state_overwrite is set. 322*5113495bSYour Name 323*5113495bSYour Name This field indicates what the STA ID register source is 324*5113495bSYour Name of the buffer status. 325*5113495bSYour Name 326*5113495bSYour Name 1'b0: TXPCU registers: STA0_buf_status_... 327*5113495bSYour Name 1'b1: TXPCU registers: STA1_buf_status_... 328*5113495bSYour Name <legal all> 329*5113495bSYour Name */ 330*5113495bSYour Name 331*5113495bSYour Name #define TX_QUEUE_EXTENSION_BUF_STATE_STA_ID_OFFSET 0x0000000000000000 332*5113495bSYour Name #define TX_QUEUE_EXTENSION_BUF_STATE_STA_ID_LSB 51 333*5113495bSYour Name #define TX_QUEUE_EXTENSION_BUF_STATE_STA_ID_MSB 51 334*5113495bSYour Name #define TX_QUEUE_EXTENSION_BUF_STATE_STA_ID_MASK 0x0008000000000000 335*5113495bSYour Name 336*5113495bSYour Name 337*5113495bSYour Name /* Description BUF_STATE_SOURCE 338*5113495bSYour Name 339*5113495bSYour Name Field only valid when QoS_Buf_state_overwrite is set. 340*5113495bSYour Name 341*5113495bSYour Name This field indicates what the source is of the actual value 342*5113495bSYour Name TXPCU will insert 343*5113495bSYour Name 344*5113495bSYour Name <enum 0 BUF_STATE_TID_BASED> TXPCU looks at the TID field 345*5113495bSYour Name in the QoS control frame and based on this TID, selects 346*5113495bSYour Name the buffer source value from the corresponding TID register. 347*5113495bSYour Name 348*5113495bSYour Name <enum 1 BUF_STATE_SUM_BASED> TXPCU inserts the value from 349*5113495bSYour Name the buffer_state_sum register 350*5113495bSYour Name 351*5113495bSYour Name <legal all> 352*5113495bSYour Name */ 353*5113495bSYour Name 354*5113495bSYour Name #define TX_QUEUE_EXTENSION_BUF_STATE_SOURCE_OFFSET 0x0000000000000000 355*5113495bSYour Name #define TX_QUEUE_EXTENSION_BUF_STATE_SOURCE_LSB 52 356*5113495bSYour Name #define TX_QUEUE_EXTENSION_BUF_STATE_SOURCE_MSB 52 357*5113495bSYour Name #define TX_QUEUE_EXTENSION_BUF_STATE_SOURCE_MASK 0x0010000000000000 358*5113495bSYour Name 359*5113495bSYour Name 360*5113495bSYour Name /* Description HT_CONTROL_OVERWRITE_ENABLE 361*5113495bSYour Name 362*5113495bSYour Name When set, TXPCU shall overwrite some (or all) of the HT_CONTROL 363*5113495bSYour Name field with values that are programmed in TXPCU registers: 364*5113495bSYour Name HT_CONTROL_OVERWRITE_IX??? 365*5113495bSYour Name 366*5113495bSYour Name See HT/HE control overwrite order NOTE after this table 367*5113495bSYour Name 368*5113495bSYour Name <legal all> 369*5113495bSYour Name */ 370*5113495bSYour Name 371*5113495bSYour Name #define TX_QUEUE_EXTENSION_HT_CONTROL_OVERWRITE_ENABLE_OFFSET 0x0000000000000000 372*5113495bSYour Name #define TX_QUEUE_EXTENSION_HT_CONTROL_OVERWRITE_ENABLE_LSB 53 373*5113495bSYour Name #define TX_QUEUE_EXTENSION_HT_CONTROL_OVERWRITE_ENABLE_MSB 53 374*5113495bSYour Name #define TX_QUEUE_EXTENSION_HT_CONTROL_OVERWRITE_ENABLE_MASK 0x0020000000000000 375*5113495bSYour Name 376*5113495bSYour Name 377*5113495bSYour Name /* Description HT_CONTROL_OVERWRITE_SOURCE 378*5113495bSYour Name 379*5113495bSYour Name Field only valid when HT_control_overwrite_enable is set. 380*5113495bSYour Name 381*5113495bSYour Name 382*5113495bSYour Name This field indicates the index of the TXPCU register HT_CONTROL_OVERWRITE_IX??? 383*5113495bSYour Name That is the source of the overwrite data. 384*5113495bSYour Name <legal all> 385*5113495bSYour Name */ 386*5113495bSYour Name 387*5113495bSYour Name #define TX_QUEUE_EXTENSION_HT_CONTROL_OVERWRITE_SOURCE_OFFSET 0x0000000000000000 388*5113495bSYour Name #define TX_QUEUE_EXTENSION_HT_CONTROL_OVERWRITE_SOURCE_LSB 54 389*5113495bSYour Name #define TX_QUEUE_EXTENSION_HT_CONTROL_OVERWRITE_SOURCE_MSB 57 390*5113495bSYour Name #define TX_QUEUE_EXTENSION_HT_CONTROL_OVERWRITE_SOURCE_MASK 0x03c0000000000000 391*5113495bSYour Name 392*5113495bSYour Name 393*5113495bSYour Name 394*5113495bSYour Name #define TX_QUEUE_EXTENSION_RESERVED_1B_OFFSET 0x0000000000000000 395*5113495bSYour Name #define TX_QUEUE_EXTENSION_RESERVED_1B_LSB 58 396*5113495bSYour Name #define TX_QUEUE_EXTENSION_RESERVED_1B_MSB 63 397*5113495bSYour Name #define TX_QUEUE_EXTENSION_RESERVED_1B_MASK 0xfc00000000000000 398*5113495bSYour Name 399*5113495bSYour Name 400*5113495bSYour Name /* Description UL_HEADROOM_INSERTION_ENABLE 401*5113495bSYour Name 402*5113495bSYour Name When set, and this transmission services a trigger response 403*5113495bSYour Name transmission, TXPCU shall create and insert the UL headroom 404*5113495bSYour Name info in the HE control field, starting at offset indicated 405*5113495bSYour Name by field: UL_headroom_offset 406*5113495bSYour Name 407*5113495bSYour Name See HT/HE control overwrite order NOTE after this table 408*5113495bSYour Name <legal all> 409*5113495bSYour Name */ 410*5113495bSYour Name 411*5113495bSYour Name #define TX_QUEUE_EXTENSION_UL_HEADROOM_INSERTION_ENABLE_OFFSET 0x0000000000000008 412*5113495bSYour Name #define TX_QUEUE_EXTENSION_UL_HEADROOM_INSERTION_ENABLE_LSB 0 413*5113495bSYour Name #define TX_QUEUE_EXTENSION_UL_HEADROOM_INSERTION_ENABLE_MSB 0 414*5113495bSYour Name #define TX_QUEUE_EXTENSION_UL_HEADROOM_INSERTION_ENABLE_MASK 0x0000000000000001 415*5113495bSYour Name 416*5113495bSYour Name 417*5113495bSYour Name /* Description UL_HEADROOM_OFFSET 418*5113495bSYour Name 419*5113495bSYour Name Field only valid when UL_headroom_insertion_enable is set. 420*5113495bSYour Name 421*5113495bSYour Name 422*5113495bSYour Name The bit location in HE_CONTROL Field where TXPCU will start 423*5113495bSYour Name writing the the 4 bit Control ID field that needs to be 424*5113495bSYour Name inserted, followed by the lower 6 bits of the 8 bit bit 425*5113495bSYour Name UL_headroom info (UPH Control). 426*5113495bSYour Name 427*5113495bSYour Name NOTE: currently on 6 bits are defined in the UPH control 428*5113495bSYour Name field. The upper two bits are provided by SW in UL_headroom_rsvd_7_6. 429*5113495bSYour Name 430*5113495bSYour Name 431*5113495bSYour Name <legal 2-20> 432*5113495bSYour Name */ 433*5113495bSYour Name 434*5113495bSYour Name #define TX_QUEUE_EXTENSION_UL_HEADROOM_OFFSET_OFFSET 0x0000000000000008 435*5113495bSYour Name #define TX_QUEUE_EXTENSION_UL_HEADROOM_OFFSET_LSB 1 436*5113495bSYour Name #define TX_QUEUE_EXTENSION_UL_HEADROOM_OFFSET_MSB 5 437*5113495bSYour Name #define TX_QUEUE_EXTENSION_UL_HEADROOM_OFFSET_MASK 0x000000000000003e 438*5113495bSYour Name 439*5113495bSYour Name 440*5113495bSYour Name /* Description BQRP_INSERTION_ENABLE 441*5113495bSYour Name 442*5113495bSYour Name When set, and this transmission services a BQRP trigger 443*5113495bSYour Name response transmission, TXPCU shall create and insert the 444*5113495bSYour Name BQR control field into the HE control field, as well as 445*5113495bSYour Name the 4 bit preceding Control ID field. 446*5113495bSYour Name 447*5113495bSYour Name See HT/HE control overwrite order NOTE after this table 448*5113495bSYour Name <legal all> 449*5113495bSYour Name */ 450*5113495bSYour Name 451*5113495bSYour Name #define TX_QUEUE_EXTENSION_BQRP_INSERTION_ENABLE_OFFSET 0x0000000000000008 452*5113495bSYour Name #define TX_QUEUE_EXTENSION_BQRP_INSERTION_ENABLE_LSB 6 453*5113495bSYour Name #define TX_QUEUE_EXTENSION_BQRP_INSERTION_ENABLE_MSB 6 454*5113495bSYour Name #define TX_QUEUE_EXTENSION_BQRP_INSERTION_ENABLE_MASK 0x0000000000000040 455*5113495bSYour Name 456*5113495bSYour Name 457*5113495bSYour Name /* Description BQRP_OFFSET 458*5113495bSYour Name 459*5113495bSYour Name Field only valid when BQRP_insertion_enable is set. 460*5113495bSYour Name 461*5113495bSYour Name The bit location in HE_CONTROL Field where TXPCU will start 462*5113495bSYour Name writing the 4 bit Control ID field that needs to be inserted, 463*5113495bSYour Name followed by the lower 8 bits of the 10 bit BQR control field. 464*5113495bSYour Name 465*5113495bSYour Name 466*5113495bSYour Name NOTE: currently only 8 bits are defined in the 10 bit BQR 467*5113495bSYour Name control field. The upper two bits are provided by SW in 468*5113495bSYour Name BQR_rsvd_9_8. 469*5113495bSYour Name 470*5113495bSYour Name <legal 2-20> 471*5113495bSYour Name */ 472*5113495bSYour Name 473*5113495bSYour Name #define TX_QUEUE_EXTENSION_BQRP_OFFSET_OFFSET 0x0000000000000008 474*5113495bSYour Name #define TX_QUEUE_EXTENSION_BQRP_OFFSET_LSB 7 475*5113495bSYour Name #define TX_QUEUE_EXTENSION_BQRP_OFFSET_MSB 11 476*5113495bSYour Name #define TX_QUEUE_EXTENSION_BQRP_OFFSET_MASK 0x0000000000000f80 477*5113495bSYour Name 478*5113495bSYour Name 479*5113495bSYour Name /* Description UL_HEADROOM_RSVD_7_6 480*5113495bSYour Name 481*5113495bSYour Name These will be used by TXPCU to fill the upper two bits of 482*5113495bSYour Name the UPH control field. 483*5113495bSYour Name <legal all> 484*5113495bSYour Name */ 485*5113495bSYour Name 486*5113495bSYour Name #define TX_QUEUE_EXTENSION_UL_HEADROOM_RSVD_7_6_OFFSET 0x0000000000000008 487*5113495bSYour Name #define TX_QUEUE_EXTENSION_UL_HEADROOM_RSVD_7_6_LSB 12 488*5113495bSYour Name #define TX_QUEUE_EXTENSION_UL_HEADROOM_RSVD_7_6_MSB 13 489*5113495bSYour Name #define TX_QUEUE_EXTENSION_UL_HEADROOM_RSVD_7_6_MASK 0x0000000000003000 490*5113495bSYour Name 491*5113495bSYour Name 492*5113495bSYour Name /* Description BQR_RSVD_9_8 493*5113495bSYour Name 494*5113495bSYour Name These will be used by TXPCU to fill the upper two bits of 495*5113495bSYour Name the BQR control field. 496*5113495bSYour Name NOTE: When overwriting CAS control (8-bit) at the same offset 497*5113495bSYour Name as BQR control (10-bit), TXPCU will ignore the BQR overwrite, 498*5113495bSYour Name including these upper two bits. 499*5113495bSYour Name <legal all> 500*5113495bSYour Name */ 501*5113495bSYour Name 502*5113495bSYour Name #define TX_QUEUE_EXTENSION_BQR_RSVD_9_8_OFFSET 0x0000000000000008 503*5113495bSYour Name #define TX_QUEUE_EXTENSION_BQR_RSVD_9_8_LSB 14 504*5113495bSYour Name #define TX_QUEUE_EXTENSION_BQR_RSVD_9_8_MSB 15 505*5113495bSYour Name #define TX_QUEUE_EXTENSION_BQR_RSVD_9_8_MASK 0x000000000000c000 506*5113495bSYour Name 507*5113495bSYour Name 508*5113495bSYour Name /* Description BASE_PN_63_48 509*5113495bSYour Name 510*5113495bSYour Name Upper bits PN number, in case a larger then 48 bit PN number 511*5113495bSYour Name needs to be inserted in the transmit frame. 512*5113495bSYour Name 513*5113495bSYour Name 63-48 bits of the 128-bit packet number 514*5113495bSYour Name <legal all> 515*5113495bSYour Name */ 516*5113495bSYour Name 517*5113495bSYour Name #define TX_QUEUE_EXTENSION_BASE_PN_63_48_OFFSET 0x0000000000000008 518*5113495bSYour Name #define TX_QUEUE_EXTENSION_BASE_PN_63_48_LSB 16 519*5113495bSYour Name #define TX_QUEUE_EXTENSION_BASE_PN_63_48_MSB 31 520*5113495bSYour Name #define TX_QUEUE_EXTENSION_BASE_PN_63_48_MASK 0x00000000ffff0000 521*5113495bSYour Name 522*5113495bSYour Name 523*5113495bSYour Name /* Description BASE_PN_95_64 524*5113495bSYour Name 525*5113495bSYour Name Upper bits PN number, in case a larger then 48 bit PN number 526*5113495bSYour Name needs to be inserted in the transmit frame. 527*5113495bSYour Name 528*5113495bSYour Name 95-64 bits of the 128-bit packet number 529*5113495bSYour Name <legal all> 530*5113495bSYour Name */ 531*5113495bSYour Name 532*5113495bSYour Name #define TX_QUEUE_EXTENSION_BASE_PN_95_64_OFFSET 0x0000000000000008 533*5113495bSYour Name #define TX_QUEUE_EXTENSION_BASE_PN_95_64_LSB 32 534*5113495bSYour Name #define TX_QUEUE_EXTENSION_BASE_PN_95_64_MSB 63 535*5113495bSYour Name #define TX_QUEUE_EXTENSION_BASE_PN_95_64_MASK 0xffffffff00000000 536*5113495bSYour Name 537*5113495bSYour Name 538*5113495bSYour Name /* Description BASE_PN_127_96 539*5113495bSYour Name 540*5113495bSYour Name Upper bits PN number, in case a larger then 48 bit PN number 541*5113495bSYour Name needs to be inserted in the transmit frame. 542*5113495bSYour Name 543*5113495bSYour Name 127-96 bits of the 128-bit packet number 544*5113495bSYour Name <legal all> 545*5113495bSYour Name */ 546*5113495bSYour Name 547*5113495bSYour Name #define TX_QUEUE_EXTENSION_BASE_PN_127_96_OFFSET 0x0000000000000010 548*5113495bSYour Name #define TX_QUEUE_EXTENSION_BASE_PN_127_96_LSB 0 549*5113495bSYour Name #define TX_QUEUE_EXTENSION_BASE_PN_127_96_MSB 31 550*5113495bSYour Name #define TX_QUEUE_EXTENSION_BASE_PN_127_96_MASK 0x00000000ffffffff 551*5113495bSYour Name 552*5113495bSYour Name 553*5113495bSYour Name /* Description HT_CONTROL_FIELD_BW20 554*5113495bSYour Name 555*5113495bSYour Name Field used by TXPCU when in TX_MPDU_START TLV field vht_control_present 556*5113495bSYour Name is set. 557*5113495bSYour Name 558*5113495bSYour Name Note that TXPCU might overwrite some fields. This is controlled 559*5113495bSYour Name with field HT_control_overwrite_enable 560*5113495bSYour Name 561*5113495bSYour Name See HT/HE control overwrite order NOTE after this table 562*5113495bSYour Name 563*5113495bSYour Name <legal all> 564*5113495bSYour Name */ 565*5113495bSYour Name 566*5113495bSYour Name #define TX_QUEUE_EXTENSION_HT_CONTROL_FIELD_BW20_OFFSET 0x0000000000000010 567*5113495bSYour Name #define TX_QUEUE_EXTENSION_HT_CONTROL_FIELD_BW20_LSB 32 568*5113495bSYour Name #define TX_QUEUE_EXTENSION_HT_CONTROL_FIELD_BW20_MSB 63 569*5113495bSYour Name #define TX_QUEUE_EXTENSION_HT_CONTROL_FIELD_BW20_MASK 0xffffffff00000000 570*5113495bSYour Name 571*5113495bSYour Name 572*5113495bSYour Name /* Description HT_CONTROL_FIELD_BW40 573*5113495bSYour Name 574*5113495bSYour Name Field used by TXPCU when in TX_MPDU_START TLV field vht_control_present 575*5113495bSYour Name is set. 576*5113495bSYour Name 577*5113495bSYour Name Note that TXPCU might overwrite some fields. This is controlled 578*5113495bSYour Name with field HT_control_overwrite_enable 579*5113495bSYour Name 580*5113495bSYour Name See HT/HE control overwrite order NOTE after this table 581*5113495bSYour Name 582*5113495bSYour Name <legal all> 583*5113495bSYour Name */ 584*5113495bSYour Name 585*5113495bSYour Name #define TX_QUEUE_EXTENSION_HT_CONTROL_FIELD_BW40_OFFSET 0x0000000000000018 586*5113495bSYour Name #define TX_QUEUE_EXTENSION_HT_CONTROL_FIELD_BW40_LSB 0 587*5113495bSYour Name #define TX_QUEUE_EXTENSION_HT_CONTROL_FIELD_BW40_MSB 31 588*5113495bSYour Name #define TX_QUEUE_EXTENSION_HT_CONTROL_FIELD_BW40_MASK 0x00000000ffffffff 589*5113495bSYour Name 590*5113495bSYour Name 591*5113495bSYour Name /* Description HT_CONTROL_FIELD_BW80 592*5113495bSYour Name 593*5113495bSYour Name Field used by TXPCU when in TX_MPDU_START TLV field vht_control_present 594*5113495bSYour Name is set. 595*5113495bSYour Name 596*5113495bSYour Name Note that TXPCU might overwrite some fields. This is controlled 597*5113495bSYour Name with field HT_control_overwrite_enable 598*5113495bSYour Name 599*5113495bSYour Name See HT/HE control overwrite order NOTE after this table 600*5113495bSYour Name 601*5113495bSYour Name <legal all> 602*5113495bSYour Name */ 603*5113495bSYour Name 604*5113495bSYour Name #define TX_QUEUE_EXTENSION_HT_CONTROL_FIELD_BW80_OFFSET 0x0000000000000018 605*5113495bSYour Name #define TX_QUEUE_EXTENSION_HT_CONTROL_FIELD_BW80_LSB 32 606*5113495bSYour Name #define TX_QUEUE_EXTENSION_HT_CONTROL_FIELD_BW80_MSB 63 607*5113495bSYour Name #define TX_QUEUE_EXTENSION_HT_CONTROL_FIELD_BW80_MASK 0xffffffff00000000 608*5113495bSYour Name 609*5113495bSYour Name 610*5113495bSYour Name /* Description HT_CONTROL_FIELD_BW160 611*5113495bSYour Name 612*5113495bSYour Name Field used by TXPCU when in TX_MPDU_START TLV field vht_control_present 613*5113495bSYour Name is set. 614*5113495bSYour Name 615*5113495bSYour Name Note that TXPCU might overwrite some fields. This is controlled 616*5113495bSYour Name with field HT_control_overwrite_enable 617*5113495bSYour Name 618*5113495bSYour Name See HT/HE control overwrite order NOTE after this table 619*5113495bSYour Name 620*5113495bSYour Name <legal all> 621*5113495bSYour Name */ 622*5113495bSYour Name 623*5113495bSYour Name #define TX_QUEUE_EXTENSION_HT_CONTROL_FIELD_BW160_OFFSET 0x0000000000000020 624*5113495bSYour Name #define TX_QUEUE_EXTENSION_HT_CONTROL_FIELD_BW160_LSB 0 625*5113495bSYour Name #define TX_QUEUE_EXTENSION_HT_CONTROL_FIELD_BW160_MSB 31 626*5113495bSYour Name #define TX_QUEUE_EXTENSION_HT_CONTROL_FIELD_BW160_MASK 0x00000000ffffffff 627*5113495bSYour Name 628*5113495bSYour Name 629*5113495bSYour Name /* Description HT_CONTROL_OVERWRITE_MASK 630*5113495bSYour Name 631*5113495bSYour Name Field only valid when HT_control_overwrite_enable is set. 632*5113495bSYour Name 633*5113495bSYour Name 634*5113495bSYour Name This field indicates which bits of the HT_CONTROL_FIELD 635*5113495bSYour Name shall be overwritten with bits from TXPCU register HT_CONTROL_OVERWRITE_IX??? 636*5113495bSYour Name 637*5113495bSYour Name Every bit that needs to be overwritten is set to 1 in this 638*5113495bSYour Name register. 639*5113495bSYour Name <legal all> 640*5113495bSYour Name */ 641*5113495bSYour Name 642*5113495bSYour Name #define TX_QUEUE_EXTENSION_HT_CONTROL_OVERWRITE_MASK_OFFSET 0x0000000000000020 643*5113495bSYour Name #define TX_QUEUE_EXTENSION_HT_CONTROL_OVERWRITE_MASK_LSB 32 644*5113495bSYour Name #define TX_QUEUE_EXTENSION_HT_CONTROL_OVERWRITE_MASK_MSB 63 645*5113495bSYour Name #define TX_QUEUE_EXTENSION_HT_CONTROL_OVERWRITE_MASK_MASK 0xffffffff00000000 646*5113495bSYour Name 647*5113495bSYour Name 648*5113495bSYour Name /* Description CAS_CONTROL_INFO 649*5113495bSYour Name 650*5113495bSYour Name This contains 8-bit CAS control field to be used for transmission 651*5113495bSYour Name during SRP window 652*5113495bSYour Name <legal all> 653*5113495bSYour Name */ 654*5113495bSYour Name 655*5113495bSYour Name #define TX_QUEUE_EXTENSION_CAS_CONTROL_INFO_OFFSET 0x0000000000000028 656*5113495bSYour Name #define TX_QUEUE_EXTENSION_CAS_CONTROL_INFO_LSB 0 657*5113495bSYour Name #define TX_QUEUE_EXTENSION_CAS_CONTROL_INFO_MSB 7 658*5113495bSYour Name #define TX_QUEUE_EXTENSION_CAS_CONTROL_INFO_MASK 0x00000000000000ff 659*5113495bSYour Name 660*5113495bSYour Name 661*5113495bSYour Name /* Description CAS_OFFSET 662*5113495bSYour Name 663*5113495bSYour Name 5 bit offset for CAS insertion 664*5113495bSYour Name <legal 2-20> 665*5113495bSYour Name */ 666*5113495bSYour Name 667*5113495bSYour Name #define TX_QUEUE_EXTENSION_CAS_OFFSET_OFFSET 0x0000000000000028 668*5113495bSYour Name #define TX_QUEUE_EXTENSION_CAS_OFFSET_LSB 8 669*5113495bSYour Name #define TX_QUEUE_EXTENSION_CAS_OFFSET_MSB 12 670*5113495bSYour Name #define TX_QUEUE_EXTENSION_CAS_OFFSET_MASK 0x0000000000001f00 671*5113495bSYour Name 672*5113495bSYour Name 673*5113495bSYour Name /* Description CAS_INSERTION_ENABLE 674*5113495bSYour Name 675*5113495bSYour Name single bit used as ENABLE for CAS control insertion for 676*5113495bSYour Name transmission during SRP window 677*5113495bSYour Name <legal all> 678*5113495bSYour Name */ 679*5113495bSYour Name 680*5113495bSYour Name #define TX_QUEUE_EXTENSION_CAS_INSERTION_ENABLE_OFFSET 0x0000000000000028 681*5113495bSYour Name #define TX_QUEUE_EXTENSION_CAS_INSERTION_ENABLE_LSB 13 682*5113495bSYour Name #define TX_QUEUE_EXTENSION_CAS_INSERTION_ENABLE_MSB 13 683*5113495bSYour Name #define TX_QUEUE_EXTENSION_CAS_INSERTION_ENABLE_MASK 0x0000000000002000 684*5113495bSYour Name 685*5113495bSYour Name 686*5113495bSYour Name /* Description RESERVED_10A 687*5113495bSYour Name 688*5113495bSYour Name <legal 0> 689*5113495bSYour Name */ 690*5113495bSYour Name 691*5113495bSYour Name #define TX_QUEUE_EXTENSION_RESERVED_10A_OFFSET 0x0000000000000028 692*5113495bSYour Name #define TX_QUEUE_EXTENSION_RESERVED_10A_LSB 14 693*5113495bSYour Name #define TX_QUEUE_EXTENSION_RESERVED_10A_MSB 15 694*5113495bSYour Name #define TX_QUEUE_EXTENSION_RESERVED_10A_MASK 0x000000000000c000 695*5113495bSYour Name 696*5113495bSYour Name 697*5113495bSYour Name /* Description HT_CONTROL_OVERWRITE_SOURCE_FOR_SRP 698*5113495bSYour Name 699*5113495bSYour Name 4-bit index similar to HT_control_overwrite_source field 700*5113495bSYour Name to be used for transmission during SRP window 701*5113495bSYour Name <legal all> 702*5113495bSYour Name */ 703*5113495bSYour Name 704*5113495bSYour Name #define TX_QUEUE_EXTENSION_HT_CONTROL_OVERWRITE_SOURCE_FOR_SRP_OFFSET 0x0000000000000028 705*5113495bSYour Name #define TX_QUEUE_EXTENSION_HT_CONTROL_OVERWRITE_SOURCE_FOR_SRP_LSB 16 706*5113495bSYour Name #define TX_QUEUE_EXTENSION_HT_CONTROL_OVERWRITE_SOURCE_FOR_SRP_MSB 19 707*5113495bSYour Name #define TX_QUEUE_EXTENSION_HT_CONTROL_OVERWRITE_SOURCE_FOR_SRP_MASK 0x00000000000f0000 708*5113495bSYour Name 709*5113495bSYour Name 710*5113495bSYour Name /* Description HT_CONTROL_OVERWRITE_SOURCE_FOR_BSRP 711*5113495bSYour Name 712*5113495bSYour Name 4-bit index similar to HT_control_overwrite_source field 713*5113495bSYour Name to be used for response to BSRP triggers (even during SRP 714*5113495bSYour Name window) 715*5113495bSYour Name <legal all> 716*5113495bSYour Name */ 717*5113495bSYour Name 718*5113495bSYour Name #define TX_QUEUE_EXTENSION_HT_CONTROL_OVERWRITE_SOURCE_FOR_BSRP_OFFSET 0x0000000000000028 719*5113495bSYour Name #define TX_QUEUE_EXTENSION_HT_CONTROL_OVERWRITE_SOURCE_FOR_BSRP_LSB 20 720*5113495bSYour Name #define TX_QUEUE_EXTENSION_HT_CONTROL_OVERWRITE_SOURCE_FOR_BSRP_MSB 23 721*5113495bSYour Name #define TX_QUEUE_EXTENSION_HT_CONTROL_OVERWRITE_SOURCE_FOR_BSRP_MASK 0x0000000000f00000 722*5113495bSYour Name 723*5113495bSYour Name 724*5113495bSYour Name /* Description RESERVED_10B 725*5113495bSYour Name 726*5113495bSYour Name <legal 0> 727*5113495bSYour Name */ 728*5113495bSYour Name 729*5113495bSYour Name #define TX_QUEUE_EXTENSION_RESERVED_10B_OFFSET 0x0000000000000028 730*5113495bSYour Name #define TX_QUEUE_EXTENSION_RESERVED_10B_LSB 24 731*5113495bSYour Name #define TX_QUEUE_EXTENSION_RESERVED_10B_MSB 29 732*5113495bSYour Name #define TX_QUEUE_EXTENSION_RESERVED_10B_MASK 0x000000003f000000 733*5113495bSYour Name 734*5113495bSYour Name 735*5113495bSYour Name /* Description MPDU_HDR_LEN_OVERRIDE_EN 736*5113495bSYour Name 737*5113495bSYour Name This is for the FW override of MPDU overhead length programmed 738*5113495bSYour Name in the TQM queue. 739*5113495bSYour Name 740*5113495bSYour Name If enabled, PDG will update the length of each MPDU by subtracting 741*5113495bSYour Name the value of field Mpdu_header_length in 'MPDU_QUEUE_OVERVIEW' 742*5113495bSYour Name and adding Mpdu_hdr_len_override_val (in this TLV). 743*5113495bSYour Name <legal all> 744*5113495bSYour Name */ 745*5113495bSYour Name 746*5113495bSYour Name #define TX_QUEUE_EXTENSION_MPDU_HDR_LEN_OVERRIDE_EN_OFFSET 0x0000000000000028 747*5113495bSYour Name #define TX_QUEUE_EXTENSION_MPDU_HDR_LEN_OVERRIDE_EN_LSB 30 748*5113495bSYour Name #define TX_QUEUE_EXTENSION_MPDU_HDR_LEN_OVERRIDE_EN_MSB 30 749*5113495bSYour Name #define TX_QUEUE_EXTENSION_MPDU_HDR_LEN_OVERRIDE_EN_MASK 0x0000000040000000 750*5113495bSYour Name 751*5113495bSYour Name 752*5113495bSYour Name /* Description BAR_SSN_OVERWRITE_ENABLE 753*5113495bSYour Name 754*5113495bSYour Name If enabled, TXPCU will overwrite the starting sequence number 755*5113495bSYour Name in case of Tx BAR or MU-BAR Trigger from with the sequence 756*5113495bSYour Name number from 'MPDU_QUEUE_OVERVIEW' 757*5113495bSYour Name <legal all> 758*5113495bSYour Name */ 759*5113495bSYour Name 760*5113495bSYour Name #define TX_QUEUE_EXTENSION_BAR_SSN_OVERWRITE_ENABLE_OFFSET 0x0000000000000028 761*5113495bSYour Name #define TX_QUEUE_EXTENSION_BAR_SSN_OVERWRITE_ENABLE_LSB 31 762*5113495bSYour Name #define TX_QUEUE_EXTENSION_BAR_SSN_OVERWRITE_ENABLE_MSB 31 763*5113495bSYour Name #define TX_QUEUE_EXTENSION_BAR_SSN_OVERWRITE_ENABLE_MASK 0x0000000080000000 764*5113495bSYour Name 765*5113495bSYour Name 766*5113495bSYour Name /* Description BAR_SSN_OFFSET 767*5113495bSYour Name 768*5113495bSYour Name Offset to the starting sequence number in case of Tx BAR 769*5113495bSYour Name or MU-BAR Trigger that TXPCU can overwrite with the sequence 770*5113495bSYour Name number from 'MPDU_QUEUE_OVERVIEW' 771*5113495bSYour Name <legal all> 772*5113495bSYour Name */ 773*5113495bSYour Name 774*5113495bSYour Name #define TX_QUEUE_EXTENSION_BAR_SSN_OFFSET_OFFSET 0x0000000000000028 775*5113495bSYour Name #define TX_QUEUE_EXTENSION_BAR_SSN_OFFSET_LSB 32 776*5113495bSYour Name #define TX_QUEUE_EXTENSION_BAR_SSN_OFFSET_MSB 43 777*5113495bSYour Name #define TX_QUEUE_EXTENSION_BAR_SSN_OFFSET_MASK 0x00000fff00000000 778*5113495bSYour Name 779*5113495bSYour Name 780*5113495bSYour Name /* Description MPDU_HDR_LEN_OVERRIDE_VAL 781*5113495bSYour Name 782*5113495bSYour Name This is for the FW override of MPDU overhead length programmed 783*5113495bSYour Name in the TQM queue. 784*5113495bSYour Name 785*5113495bSYour Name <legal all> 786*5113495bSYour Name */ 787*5113495bSYour Name 788*5113495bSYour Name #define TX_QUEUE_EXTENSION_MPDU_HDR_LEN_OVERRIDE_VAL_OFFSET 0x0000000000000028 789*5113495bSYour Name #define TX_QUEUE_EXTENSION_MPDU_HDR_LEN_OVERRIDE_VAL_LSB 44 790*5113495bSYour Name #define TX_QUEUE_EXTENSION_MPDU_HDR_LEN_OVERRIDE_VAL_MSB 52 791*5113495bSYour Name #define TX_QUEUE_EXTENSION_MPDU_HDR_LEN_OVERRIDE_VAL_MASK 0x001ff00000000000 792*5113495bSYour Name 793*5113495bSYour Name 794*5113495bSYour Name 795*5113495bSYour Name #define TX_QUEUE_EXTENSION_RESERVED_11A_OFFSET 0x0000000000000028 796*5113495bSYour Name #define TX_QUEUE_EXTENSION_RESERVED_11A_LSB 53 797*5113495bSYour Name #define TX_QUEUE_EXTENSION_RESERVED_11A_MSB 63 798*5113495bSYour Name #define TX_QUEUE_EXTENSION_RESERVED_11A_MASK 0xffe0000000000000 799*5113495bSYour Name 800*5113495bSYour Name 801*5113495bSYour Name /* Description HT_CONTROL_FIELD_BW320 802*5113495bSYour Name 803*5113495bSYour Name Field used by TXPCU when in TX_MPDU_START TLV field vht_control_present 804*5113495bSYour Name is set. 805*5113495bSYour Name 806*5113495bSYour Name Note that TXPCU might overwrite some fields. This is controlled 807*5113495bSYour Name with field HT_control_overwrite_enable 808*5113495bSYour Name 809*5113495bSYour Name <legal all> 810*5113495bSYour Name */ 811*5113495bSYour Name 812*5113495bSYour Name #define TX_QUEUE_EXTENSION_HT_CONTROL_FIELD_BW320_OFFSET 0x0000000000000030 813*5113495bSYour Name #define TX_QUEUE_EXTENSION_HT_CONTROL_FIELD_BW320_LSB 0 814*5113495bSYour Name #define TX_QUEUE_EXTENSION_HT_CONTROL_FIELD_BW320_MSB 31 815*5113495bSYour Name #define TX_QUEUE_EXTENSION_HT_CONTROL_FIELD_BW320_MASK 0x00000000ffffffff 816*5113495bSYour Name 817*5113495bSYour Name 818*5113495bSYour Name /* Description FW2SW_INFO 819*5113495bSYour Name 820*5113495bSYour Name This field is provided by FW, to be logged via TXMON to 821*5113495bSYour Name host SW. It is transparent to HW. 822*5113495bSYour Name 823*5113495bSYour Name <legal all> 824*5113495bSYour Name */ 825*5113495bSYour Name 826*5113495bSYour Name #define TX_QUEUE_EXTENSION_FW2SW_INFO_OFFSET 0x0000000000000030 827*5113495bSYour Name #define TX_QUEUE_EXTENSION_FW2SW_INFO_LSB 32 828*5113495bSYour Name #define TX_QUEUE_EXTENSION_FW2SW_INFO_MSB 63 829*5113495bSYour Name #define TX_QUEUE_EXTENSION_FW2SW_INFO_MASK 0xffffffff00000000 830*5113495bSYour Name 831*5113495bSYour Name 832*5113495bSYour Name 833*5113495bSYour Name #endif // TX_QUEUE_EXTENSION 834