123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870 |
- /* Copyright (c) 2022, Qualcomm Innovation Center, Inc. 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 _TX_QUEUE_EXTENSION_H_
- #define _TX_QUEUE_EXTENSION_H_
- #if !defined(__ASSEMBLER__)
- #endif
- #define NUM_OF_DWORDS_TX_QUEUE_EXTENSION 14
- #define NUM_OF_QWORDS_TX_QUEUE_EXTENSION 7
- struct tx_queue_extension {
- #ifndef WIFI_BIT_ORDER_BIG_ENDIAN
- uint32_t frame_ctl : 16, // [15:0]
- qos_ctl : 16; // [31:16]
- uint32_t ampdu_flag : 1, // [0:0]
- tx_notify_no_htc_override : 1, // [1:1]
- reserved_1a : 7, // [8:2]
- checksum_tso_disable_for_frag : 1, // [9:9]
- key_id : 8, // [17:10]
- qos_buf_state_overwrite : 1, // [18:18]
- buf_state_sta_id : 1, // [19:19]
- buf_state_source : 1, // [20:20]
- ht_control_overwrite_enable : 1, // [21:21]
- ht_control_overwrite_source : 4, // [25:22]
- reserved_1b : 6; // [31:26]
- uint32_t ul_headroom_insertion_enable : 1, // [0:0]
- ul_headroom_offset : 5, // [5:1]
- bqrp_insertion_enable : 1, // [6:6]
- bqrp_offset : 5, // [11:7]
- ul_headroom_rsvd_7_6 : 2, // [13:12]
- bqr_rsvd_9_8 : 2, // [15:14]
- base_pn_63_48 : 16; // [31:16]
- uint32_t base_pn_95_64 : 32; // [31:0]
- uint32_t base_pn_127_96 : 32; // [31:0]
- uint32_t ht_control_field_bw20 : 32; // [31:0]
- uint32_t ht_control_field_bw40 : 32; // [31:0]
- uint32_t ht_control_field_bw80 : 32; // [31:0]
- uint32_t ht_control_field_bw160 : 32; // [31:0]
- uint32_t ht_control_overwrite_mask : 32; // [31:0]
- uint32_t cas_control_info : 8, // [7:0]
- cas_offset : 5, // [12:8]
- cas_insertion_enable : 1, // [13:13]
- reserved_10a : 2, // [15:14]
- ht_control_overwrite_source_for_srp : 4, // [19:16]
- ht_control_overwrite_source_for_bsrp : 4, // [23:20]
- reserved_10b : 6, // [29:24]
- mpdu_hdr_len_override_en : 1, // [30:30]
- bar_ssn_overwrite_enable : 1; // [31:31]
- uint32_t bar_ssn_offset : 12, // [11:0]
- mpdu_hdr_len_override_val : 9, // [20:12]
- reserved_11a : 11; // [31:21]
- uint32_t ht_control_field_bw320 : 32; // [31:0]
- uint32_t fw2sw_info : 32; // [31:0]
- #else
- uint32_t qos_ctl : 16, // [31:16]
- frame_ctl : 16; // [15:0]
- uint32_t reserved_1b : 6, // [31:26]
- ht_control_overwrite_source : 4, // [25:22]
- ht_control_overwrite_enable : 1, // [21:21]
- buf_state_source : 1, // [20:20]
- buf_state_sta_id : 1, // [19:19]
- qos_buf_state_overwrite : 1, // [18:18]
- key_id : 8, // [17:10]
- checksum_tso_disable_for_frag : 1, // [9:9]
- reserved_1a : 7, // [8:2]
- tx_notify_no_htc_override : 1, // [1:1]
- ampdu_flag : 1; // [0:0]
- uint32_t base_pn_63_48 : 16, // [31:16]
- bqr_rsvd_9_8 : 2, // [15:14]
- ul_headroom_rsvd_7_6 : 2, // [13:12]
- bqrp_offset : 5, // [11:7]
- bqrp_insertion_enable : 1, // [6:6]
- ul_headroom_offset : 5, // [5:1]
- ul_headroom_insertion_enable : 1; // [0:0]
- uint32_t base_pn_95_64 : 32; // [31:0]
- uint32_t base_pn_127_96 : 32; // [31:0]
- uint32_t ht_control_field_bw20 : 32; // [31:0]
- uint32_t ht_control_field_bw40 : 32; // [31:0]
- uint32_t ht_control_field_bw80 : 32; // [31:0]
- uint32_t ht_control_field_bw160 : 32; // [31:0]
- uint32_t ht_control_overwrite_mask : 32; // [31:0]
- uint32_t bar_ssn_overwrite_enable : 1, // [31:31]
- mpdu_hdr_len_override_en : 1, // [30:30]
- reserved_10b : 6, // [29:24]
- ht_control_overwrite_source_for_bsrp : 4, // [23:20]
- ht_control_overwrite_source_for_srp : 4, // [19:16]
- reserved_10a : 2, // [15:14]
- cas_insertion_enable : 1, // [13:13]
- cas_offset : 5, // [12:8]
- cas_control_info : 8; // [7:0]
- uint32_t reserved_11a : 11, // [31:21]
- mpdu_hdr_len_override_val : 9, // [20:12]
- bar_ssn_offset : 12; // [11:0]
- uint32_t ht_control_field_bw320 : 32; // [31:0]
- uint32_t fw2sw_info : 32; // [31:0]
- #endif
- };
- /* Description FRAME_CTL
- Consumer: TXOLE
- Producer: SW
-
-
- 802.11 Frame control field:
- fc [1:0]: Protocol Version
- fc[7:2]: type/subtypeFor non-11ah fc[3:2] = Type fc[7:4] =
- Subtype For 11ah fc[4:2] = Typefc[7:5] = PTID/SubType
- fc [8]: To DS ( for Non-11ah) From DS ( for 11ah )
- fc [9]: From DS ( for Non-11ah )
- More Frag ( for 11ah )
- fc [10]: More Frag ( for Non-11ah )
- Power Management ( for 11ah)
- fc [11]: Retry ( for Non-11ah )
- More Data ( for 11ah )
- fc [12]: Pwr Mgt ( for Non-11ah )
- Protected Frame ( for 11ah )
- fc [13]: More Data( for Non-11ah )
- EOSP ( for 11ah )
- fc [14]: Protected Frame ( for Non-11ah)
- Relayed Frame ( for 11ah )
- fc [15]: Order ( for Non-11ah )
- Ack Policy ( for 11ah )
- Used by OLE during the encapsulation process for Native
- WiFi, Ethernet II, and 802.3.
- When the Order field is set, TXOLE shall insert 4 placeholder
- bytes for the HE-control field in the frame. TXPCU will
- overwrite them with the final actual value...
- */
- #define TX_QUEUE_EXTENSION_FRAME_CTL_OFFSET 0x0000000000000000
- #define TX_QUEUE_EXTENSION_FRAME_CTL_LSB 0
- #define TX_QUEUE_EXTENSION_FRAME_CTL_MSB 15
- #define TX_QUEUE_EXTENSION_FRAME_CTL_MASK 0x000000000000ffff
- /* Description QOS_CTL
- Consumer: TXOLE
- Producer: SW
-
- QoS control field is valid if the type field is data and
- the upper bit of the subtype field is set. The field decode
- is as below:
- qos_ctl[3:0]: TID
- qos_ctl[4]: EOSP (with some exceptions)
- qos_ctl[6:5]: Ack Policy
- 0x0: Normal Ack or Implicit BAR
- 0x1: No Ack
- 0x2: No explicit Ack or PSMP Ack (not supported)
- 0x3: Block Ack (Not supported)
- Qos_ctl[7]: A-MSDU Present (with some exceptions)
- Qos_ctl[15:8]: TXOP limit, AP PS buffer state, TXOP duration
- requested or queue size
- This field is inserted into the 802.11 header during the
- encapsulation process
- <legal all>
- */
- #define TX_QUEUE_EXTENSION_QOS_CTL_OFFSET 0x0000000000000000
- #define TX_QUEUE_EXTENSION_QOS_CTL_LSB 16
- #define TX_QUEUE_EXTENSION_QOS_CTL_MSB 31
- #define TX_QUEUE_EXTENSION_QOS_CTL_MASK 0x00000000ffff0000
- /* Description AMPDU_FLAG
- Consumer: PDG/TXPCU
- Producer: SW
-
- Note:
- For legacy rate transmissions (11 b and 11a, an 11g), this
- bit shall always be set to zero.
-
- 0:
- For legacy and .11n rates:
- MPDUs are only allowed to be sent out 1 at a time in NON
- A-MPDU format.
- For .11ac and .11ax rates:
- MPDUs are sent out in S-MPDU format (TXPCU sets the 'EOF'
- bit in the MPDU delimiter).
- 1: All MPDUs should be sent out using the A-MPDU format,
- even if there is only one MPDU.
-
- Note that this bit should be set to 0 in order to construct
- an S-MPDU frame. VHT and HE frames are all A-MPDU format
- but if this bit is clear, EOF bit is set to 1 for the MPDU
- delimiter in A-MPDU, which is the indicator of S-MPDU and
- solicits ACK rather than BA as response frame.
-
- This bit shall be set to 1 for any MD (Multi Destination)
- transmission.
- */
- #define TX_QUEUE_EXTENSION_AMPDU_FLAG_OFFSET 0x0000000000000000
- #define TX_QUEUE_EXTENSION_AMPDU_FLAG_LSB 32
- #define TX_QUEUE_EXTENSION_AMPDU_FLAG_MSB 32
- #define TX_QUEUE_EXTENSION_AMPDU_FLAG_MASK 0x0000000100000000
- /* Description TX_NOTIFY_NO_HTC_OVERRIDE
- When set, and a 'TX_MPDU_START' TLV has Tx_notify_frame
- set to TX_HARD_NOTIFY or TX_SOFT_NOTIFY or TX_SEMI_HARD_NOTIFY,
- then PDG would have updated the rate fields for a legacy
- PPDU which may not support HT Control.
-
- In this case TXOLE shall not:
- set the Order/+HTC bit in the 'Frame Control,'
- include 4 bytes for TXPCU to fill the HT Control, or
- set vht_control_present in 'TX_MPDU_START,'
- even if requested, and instead shall subtract '4' from the
- mpdu_length in 'TX_MPDU_START' and overwrite it.
-
- Hamilton v1 used bits [29:26], [8:1] along with word 11
- bits [31:12] for 'HT_control_field_bw320.'
- <legal all>
- */
- #define TX_QUEUE_EXTENSION_TX_NOTIFY_NO_HTC_OVERRIDE_OFFSET 0x0000000000000000
- #define TX_QUEUE_EXTENSION_TX_NOTIFY_NO_HTC_OVERRIDE_LSB 33
- #define TX_QUEUE_EXTENSION_TX_NOTIFY_NO_HTC_OVERRIDE_MSB 33
- #define TX_QUEUE_EXTENSION_TX_NOTIFY_NO_HTC_OVERRIDE_MASK 0x0000000200000000
- /* Description RESERVED_1A
- Hamilton v1 used bits [29:26], [8:1] along with word 11
- bits [31:12] for 'HT_control_field_bw320.'
- <legal 0>
- */
- #define TX_QUEUE_EXTENSION_RESERVED_1A_OFFSET 0x0000000000000000
- #define TX_QUEUE_EXTENSION_RESERVED_1A_LSB 34
- #define TX_QUEUE_EXTENSION_RESERVED_1A_MSB 40
- #define TX_QUEUE_EXTENSION_RESERVED_1A_MASK 0x000001fc00000000
- /* Description CHECKSUM_TSO_DISABLE_FOR_FRAG
- Field only valid in case of level-1 fragmentation, identified
- by TXOLE getting the 'TX_FRAG_STATE' TLV
-
- If set, TXOLE disables all checksum and TSO overwrites for
- the fragment(s) being transmitted.
-
- This is useful if it is known that the checksum and TSO
- overwrites affect only the first fragment (or first few
- fragments) and for the rest these can be safely disabled.
-
-
- <legal all>
- */
- #define TX_QUEUE_EXTENSION_CHECKSUM_TSO_DISABLE_FOR_FRAG_OFFSET 0x0000000000000000
- #define TX_QUEUE_EXTENSION_CHECKSUM_TSO_DISABLE_FOR_FRAG_LSB 41
- #define TX_QUEUE_EXTENSION_CHECKSUM_TSO_DISABLE_FOR_FRAG_MSB 41
- #define TX_QUEUE_EXTENSION_CHECKSUM_TSO_DISABLE_FOR_FRAG_MASK 0x0000020000000000
- /* Description KEY_ID
- Field only valid in case of encryption, and TXOLE being
- instructured to insert the IV.
-
- TXOLE blindly copies this field into the key ID octet (which
- is part of the IV) of the encrypted frame.
-
- For AES/TKIP the encoding is:
- key_id_octet[7:6]: key ID
- key_id_octet[5]: extended IV:
- key_id_octet[4:0]: Reserved bits
-
- For WEP the encoding is:
- key_id_octet[7:6]: key ID
- key_id_octet[5]: extended IV:
- key_id_octet[4:0]: Reserved bits
-
- For WAPI the encoding is:
- key_id_octet[7:2]: Reserved bits
- key_id_octet[1:0]: key ID
-
- <legal all>
- */
- #define TX_QUEUE_EXTENSION_KEY_ID_OFFSET 0x0000000000000000
- #define TX_QUEUE_EXTENSION_KEY_ID_LSB 42
- #define TX_QUEUE_EXTENSION_KEY_ID_MSB 49
- #define TX_QUEUE_EXTENSION_KEY_ID_MASK 0x0003fc0000000000
- /* Description QOS_BUF_STATE_OVERWRITE
- When clear, TXPCU shall not overwrite buffer state field
- in the QoS frame control field.
-
- When set, TXPCU shall overwrite the buffer state field in
- the QoS frame control field, with info that SW has programmed
- in TXPCU registers. Note that TXPCU shall pick up the values
- related to this TID.
- <legal all>
- */
- #define TX_QUEUE_EXTENSION_QOS_BUF_STATE_OVERWRITE_OFFSET 0x0000000000000000
- #define TX_QUEUE_EXTENSION_QOS_BUF_STATE_OVERWRITE_LSB 50
- #define TX_QUEUE_EXTENSION_QOS_BUF_STATE_OVERWRITE_MSB 50
- #define TX_QUEUE_EXTENSION_QOS_BUF_STATE_OVERWRITE_MASK 0x0004000000000000
- /* Description BUF_STATE_STA_ID
- Field only valid when QoS_Buf_state_overwrite is set.
-
- This field indicates what the STA ID register source is
- of the buffer status.
-
- 1'b0: TXPCU registers: STA0_buf_status_...
- 1'b1: TXPCU registers: STA1_buf_status_...
- <legal all>
- */
- #define TX_QUEUE_EXTENSION_BUF_STATE_STA_ID_OFFSET 0x0000000000000000
- #define TX_QUEUE_EXTENSION_BUF_STATE_STA_ID_LSB 51
- #define TX_QUEUE_EXTENSION_BUF_STATE_STA_ID_MSB 51
- #define TX_QUEUE_EXTENSION_BUF_STATE_STA_ID_MASK 0x0008000000000000
- /* Description BUF_STATE_SOURCE
- Field only valid when QoS_Buf_state_overwrite is set.
-
- This field indicates what the source is of the actual value
- TXPCU will insert
-
- <enum 0 BUF_STATE_TID_BASED> TXPCU looks at the TID field
- in the QoS control frame and based on this TID, selects
- the buffer source value from the corresponding TID register.
-
- <enum 1 BUF_STATE_SUM_BASED> TXPCU inserts the value from
- the buffer_state_sum register
-
- <legal all>
- */
- #define TX_QUEUE_EXTENSION_BUF_STATE_SOURCE_OFFSET 0x0000000000000000
- #define TX_QUEUE_EXTENSION_BUF_STATE_SOURCE_LSB 52
- #define TX_QUEUE_EXTENSION_BUF_STATE_SOURCE_MSB 52
- #define TX_QUEUE_EXTENSION_BUF_STATE_SOURCE_MASK 0x0010000000000000
- /* Description HT_CONTROL_OVERWRITE_ENABLE
- When set, TXPCU shall overwrite some (or all) of the HT_CONTROL
- field with values that are programmed in TXPCU registers:
- HT_CONTROL_OVERWRITE_IX???
-
- See HT/HE control overwrite order NOTE after this table
-
- <legal all>
- */
- #define TX_QUEUE_EXTENSION_HT_CONTROL_OVERWRITE_ENABLE_OFFSET 0x0000000000000000
- #define TX_QUEUE_EXTENSION_HT_CONTROL_OVERWRITE_ENABLE_LSB 53
- #define TX_QUEUE_EXTENSION_HT_CONTROL_OVERWRITE_ENABLE_MSB 53
- #define TX_QUEUE_EXTENSION_HT_CONTROL_OVERWRITE_ENABLE_MASK 0x0020000000000000
- /* Description HT_CONTROL_OVERWRITE_SOURCE
- Field only valid when HT_control_overwrite_enable is set.
-
-
- This field indicates the index of the TXPCU register HT_CONTROL_OVERWRITE_IX???
- That is the source of the overwrite data.
- <legal all>
- */
- #define TX_QUEUE_EXTENSION_HT_CONTROL_OVERWRITE_SOURCE_OFFSET 0x0000000000000000
- #define TX_QUEUE_EXTENSION_HT_CONTROL_OVERWRITE_SOURCE_LSB 54
- #define TX_QUEUE_EXTENSION_HT_CONTROL_OVERWRITE_SOURCE_MSB 57
- #define TX_QUEUE_EXTENSION_HT_CONTROL_OVERWRITE_SOURCE_MASK 0x03c0000000000000
- /* Description RESERVED_1B
- Hamilton v1 used bits [29:26], [8:1] along with word 11
- bits [31:12] for 'HT_control_field_bw320.'
- <legal 0>
- */
- #define TX_QUEUE_EXTENSION_RESERVED_1B_OFFSET 0x0000000000000000
- #define TX_QUEUE_EXTENSION_RESERVED_1B_LSB 58
- #define TX_QUEUE_EXTENSION_RESERVED_1B_MSB 63
- #define TX_QUEUE_EXTENSION_RESERVED_1B_MASK 0xfc00000000000000
- /* Description UL_HEADROOM_INSERTION_ENABLE
- When set, and this transmission services a trigger response
- transmission, TXPCU shall create and insert the UL headroom
- info in the HE control field, starting at offset indicated
- by field: UL_headroom_offset
-
- See HT/HE control overwrite order NOTE after this table
- <legal all>
- */
- #define TX_QUEUE_EXTENSION_UL_HEADROOM_INSERTION_ENABLE_OFFSET 0x0000000000000008
- #define TX_QUEUE_EXTENSION_UL_HEADROOM_INSERTION_ENABLE_LSB 0
- #define TX_QUEUE_EXTENSION_UL_HEADROOM_INSERTION_ENABLE_MSB 0
- #define TX_QUEUE_EXTENSION_UL_HEADROOM_INSERTION_ENABLE_MASK 0x0000000000000001
- /* Description UL_HEADROOM_OFFSET
- Field only valid when UL_headroom_insertion_enable is set.
-
-
- The bit location in HE_CONTROL Field where TXPCU will start
- writing the the 4 bit Control ID field that needs to be
- inserted, followed by the lower 6 bits of the 8 bit bit
- UL_headroom info (UPH Control).
-
- NOTE: currently on 6 bits are defined in the UPH control
- field. The upper two bits are provided by SW in UL_headroom_rsvd_7_6.
-
-
- <legal 2-20>
- */
- #define TX_QUEUE_EXTENSION_UL_HEADROOM_OFFSET_OFFSET 0x0000000000000008
- #define TX_QUEUE_EXTENSION_UL_HEADROOM_OFFSET_LSB 1
- #define TX_QUEUE_EXTENSION_UL_HEADROOM_OFFSET_MSB 5
- #define TX_QUEUE_EXTENSION_UL_HEADROOM_OFFSET_MASK 0x000000000000003e
- /* Description BQRP_INSERTION_ENABLE
- When set, and this transmission services a BQRP trigger
- response transmission, TXPCU shall create and insert the
- BQR control field into the HE control field, as well as
- the 4 bit preceding Control ID field.
-
- See HT/HE control overwrite order NOTE after this table
- <legal all>
- */
- #define TX_QUEUE_EXTENSION_BQRP_INSERTION_ENABLE_OFFSET 0x0000000000000008
- #define TX_QUEUE_EXTENSION_BQRP_INSERTION_ENABLE_LSB 6
- #define TX_QUEUE_EXTENSION_BQRP_INSERTION_ENABLE_MSB 6
- #define TX_QUEUE_EXTENSION_BQRP_INSERTION_ENABLE_MASK 0x0000000000000040
- /* Description BQRP_OFFSET
- Field only valid when BQRP_insertion_enable is set.
-
- The bit location in HE_CONTROL Field where TXPCU will start
- writing the 4 bit Control ID field that needs to be inserted,
- followed by the lower 8 bits of the 10 bit BQR control field.
-
-
- NOTE: currently only 8 bits are defined in the 10 bit BQR
- control field. The upper two bits are provided by SW in
- BQR_rsvd_9_8.
-
- <legal 2-20>
- */
- #define TX_QUEUE_EXTENSION_BQRP_OFFSET_OFFSET 0x0000000000000008
- #define TX_QUEUE_EXTENSION_BQRP_OFFSET_LSB 7
- #define TX_QUEUE_EXTENSION_BQRP_OFFSET_MSB 11
- #define TX_QUEUE_EXTENSION_BQRP_OFFSET_MASK 0x0000000000000f80
- /* Description UL_HEADROOM_RSVD_7_6
- These will be used by TXPCU to fill the upper two bits of
- the UPH control field.
- <legal all>
- */
- #define TX_QUEUE_EXTENSION_UL_HEADROOM_RSVD_7_6_OFFSET 0x0000000000000008
- #define TX_QUEUE_EXTENSION_UL_HEADROOM_RSVD_7_6_LSB 12
- #define TX_QUEUE_EXTENSION_UL_HEADROOM_RSVD_7_6_MSB 13
- #define TX_QUEUE_EXTENSION_UL_HEADROOM_RSVD_7_6_MASK 0x0000000000003000
- /* Description BQR_RSVD_9_8
- These will be used by TXPCU to fill the upper two bits of
- the BQR control field.
- NOTE: When overwriting CAS control (8-bit) at the same offset
- as BQR control (10-bit), TXPCU will ignore the BQR overwrite,
- including these upper two bits.
- <legal all>
- */
- #define TX_QUEUE_EXTENSION_BQR_RSVD_9_8_OFFSET 0x0000000000000008
- #define TX_QUEUE_EXTENSION_BQR_RSVD_9_8_LSB 14
- #define TX_QUEUE_EXTENSION_BQR_RSVD_9_8_MSB 15
- #define TX_QUEUE_EXTENSION_BQR_RSVD_9_8_MASK 0x000000000000c000
- /* Description BASE_PN_63_48
- Upper bits PN number, in case a larger then 48 bit PN number
- needs to be inserted in the transmit frame.
-
- 63-48 bits of the 128-bit packet number
- <legal all>
- */
- #define TX_QUEUE_EXTENSION_BASE_PN_63_48_OFFSET 0x0000000000000008
- #define TX_QUEUE_EXTENSION_BASE_PN_63_48_LSB 16
- #define TX_QUEUE_EXTENSION_BASE_PN_63_48_MSB 31
- #define TX_QUEUE_EXTENSION_BASE_PN_63_48_MASK 0x00000000ffff0000
- /* Description BASE_PN_95_64
- Upper bits PN number, in case a larger then 48 bit PN number
- needs to be inserted in the transmit frame.
-
- 95-64 bits of the 128-bit packet number
- <legal all>
- */
- #define TX_QUEUE_EXTENSION_BASE_PN_95_64_OFFSET 0x0000000000000008
- #define TX_QUEUE_EXTENSION_BASE_PN_95_64_LSB 32
- #define TX_QUEUE_EXTENSION_BASE_PN_95_64_MSB 63
- #define TX_QUEUE_EXTENSION_BASE_PN_95_64_MASK 0xffffffff00000000
- /* Description BASE_PN_127_96
- Upper bits PN number, in case a larger then 48 bit PN number
- needs to be inserted in the transmit frame.
-
- 127-96 bits of the 128-bit packet number
- <legal all>
- */
- #define TX_QUEUE_EXTENSION_BASE_PN_127_96_OFFSET 0x0000000000000010
- #define TX_QUEUE_EXTENSION_BASE_PN_127_96_LSB 0
- #define TX_QUEUE_EXTENSION_BASE_PN_127_96_MSB 31
- #define TX_QUEUE_EXTENSION_BASE_PN_127_96_MASK 0x00000000ffffffff
- /* Description HT_CONTROL_FIELD_BW20
- Field used by TXPCU when in TX_MPDU_START TLV field vht_control_present
- is set.
-
- Note that TXPCU might overwrite some fields. This is controlled
- with field HT_control_overwrite_enable
-
- See HT/HE control overwrite order NOTE after this table
-
- <legal all>
- */
- #define TX_QUEUE_EXTENSION_HT_CONTROL_FIELD_BW20_OFFSET 0x0000000000000010
- #define TX_QUEUE_EXTENSION_HT_CONTROL_FIELD_BW20_LSB 32
- #define TX_QUEUE_EXTENSION_HT_CONTROL_FIELD_BW20_MSB 63
- #define TX_QUEUE_EXTENSION_HT_CONTROL_FIELD_BW20_MASK 0xffffffff00000000
- /* Description HT_CONTROL_FIELD_BW40
- Field used by TXPCU when in TX_MPDU_START TLV field vht_control_present
- is set.
-
- Note that TXPCU might overwrite some fields. This is controlled
- with field HT_control_overwrite_enable
-
- See HT/HE control overwrite order NOTE after this table
-
- <legal all>
- */
- #define TX_QUEUE_EXTENSION_HT_CONTROL_FIELD_BW40_OFFSET 0x0000000000000018
- #define TX_QUEUE_EXTENSION_HT_CONTROL_FIELD_BW40_LSB 0
- #define TX_QUEUE_EXTENSION_HT_CONTROL_FIELD_BW40_MSB 31
- #define TX_QUEUE_EXTENSION_HT_CONTROL_FIELD_BW40_MASK 0x00000000ffffffff
- /* Description HT_CONTROL_FIELD_BW80
- Field used by TXPCU when in TX_MPDU_START TLV field vht_control_present
- is set.
-
- Note that TXPCU might overwrite some fields. This is controlled
- with field HT_control_overwrite_enable
-
- See HT/HE control overwrite order NOTE after this table
-
- <legal all>
- */
- #define TX_QUEUE_EXTENSION_HT_CONTROL_FIELD_BW80_OFFSET 0x0000000000000018
- #define TX_QUEUE_EXTENSION_HT_CONTROL_FIELD_BW80_LSB 32
- #define TX_QUEUE_EXTENSION_HT_CONTROL_FIELD_BW80_MSB 63
- #define TX_QUEUE_EXTENSION_HT_CONTROL_FIELD_BW80_MASK 0xffffffff00000000
- /* Description HT_CONTROL_FIELD_BW160
- Field used by TXPCU when in TX_MPDU_START TLV field vht_control_present
- is set.
-
- Note that TXPCU might overwrite some fields. This is controlled
- with field HT_control_overwrite_enable
-
- See HT/HE control overwrite order NOTE after this table
-
- <legal all>
- */
- #define TX_QUEUE_EXTENSION_HT_CONTROL_FIELD_BW160_OFFSET 0x0000000000000020
- #define TX_QUEUE_EXTENSION_HT_CONTROL_FIELD_BW160_LSB 0
- #define TX_QUEUE_EXTENSION_HT_CONTROL_FIELD_BW160_MSB 31
- #define TX_QUEUE_EXTENSION_HT_CONTROL_FIELD_BW160_MASK 0x00000000ffffffff
- /* Description HT_CONTROL_OVERWRITE_MASK
- Field only valid when HT_control_overwrite_enable is set.
-
-
- This field indicates which bits of the HT_CONTROL_FIELD
- shall be overwritten with bits from TXPCU register HT_CONTROL_OVERWRITE_IX???
-
- Every bit that needs to be overwritten is set to 1 in this
- register.
- <legal all>
- */
- #define TX_QUEUE_EXTENSION_HT_CONTROL_OVERWRITE_MASK_OFFSET 0x0000000000000020
- #define TX_QUEUE_EXTENSION_HT_CONTROL_OVERWRITE_MASK_LSB 32
- #define TX_QUEUE_EXTENSION_HT_CONTROL_OVERWRITE_MASK_MSB 63
- #define TX_QUEUE_EXTENSION_HT_CONTROL_OVERWRITE_MASK_MASK 0xffffffff00000000
- /* Description CAS_CONTROL_INFO
- This contains 8-bit CAS control field to be used for transmission
- during SRP window
- <legal all>
- */
- #define TX_QUEUE_EXTENSION_CAS_CONTROL_INFO_OFFSET 0x0000000000000028
- #define TX_QUEUE_EXTENSION_CAS_CONTROL_INFO_LSB 0
- #define TX_QUEUE_EXTENSION_CAS_CONTROL_INFO_MSB 7
- #define TX_QUEUE_EXTENSION_CAS_CONTROL_INFO_MASK 0x00000000000000ff
- /* Description CAS_OFFSET
- 5 bit offset for CAS insertion
- <legal 2-20>
- */
- #define TX_QUEUE_EXTENSION_CAS_OFFSET_OFFSET 0x0000000000000028
- #define TX_QUEUE_EXTENSION_CAS_OFFSET_LSB 8
- #define TX_QUEUE_EXTENSION_CAS_OFFSET_MSB 12
- #define TX_QUEUE_EXTENSION_CAS_OFFSET_MASK 0x0000000000001f00
- /* Description CAS_INSERTION_ENABLE
- single bit used as ENABLE for CAS control insertion for
- transmission during SRP window
- <legal all>
- */
- #define TX_QUEUE_EXTENSION_CAS_INSERTION_ENABLE_OFFSET 0x0000000000000028
- #define TX_QUEUE_EXTENSION_CAS_INSERTION_ENABLE_LSB 13
- #define TX_QUEUE_EXTENSION_CAS_INSERTION_ENABLE_MSB 13
- #define TX_QUEUE_EXTENSION_CAS_INSERTION_ENABLE_MASK 0x0000000000002000
- /* Description RESERVED_10A
- <legal 0>
- */
- #define TX_QUEUE_EXTENSION_RESERVED_10A_OFFSET 0x0000000000000028
- #define TX_QUEUE_EXTENSION_RESERVED_10A_LSB 14
- #define TX_QUEUE_EXTENSION_RESERVED_10A_MSB 15
- #define TX_QUEUE_EXTENSION_RESERVED_10A_MASK 0x000000000000c000
- /* Description HT_CONTROL_OVERWRITE_SOURCE_FOR_SRP
- 4-bit index similar to HT_control_overwrite_source field
- to be used for transmission during SRP window
- <legal all>
- */
- #define TX_QUEUE_EXTENSION_HT_CONTROL_OVERWRITE_SOURCE_FOR_SRP_OFFSET 0x0000000000000028
- #define TX_QUEUE_EXTENSION_HT_CONTROL_OVERWRITE_SOURCE_FOR_SRP_LSB 16
- #define TX_QUEUE_EXTENSION_HT_CONTROL_OVERWRITE_SOURCE_FOR_SRP_MSB 19
- #define TX_QUEUE_EXTENSION_HT_CONTROL_OVERWRITE_SOURCE_FOR_SRP_MASK 0x00000000000f0000
- /* Description HT_CONTROL_OVERWRITE_SOURCE_FOR_BSRP
- 4-bit index similar to HT_control_overwrite_source field
- to be used for response to BSRP triggers (even during SRP
- window)
- <legal all>
- */
- #define TX_QUEUE_EXTENSION_HT_CONTROL_OVERWRITE_SOURCE_FOR_BSRP_OFFSET 0x0000000000000028
- #define TX_QUEUE_EXTENSION_HT_CONTROL_OVERWRITE_SOURCE_FOR_BSRP_LSB 20
- #define TX_QUEUE_EXTENSION_HT_CONTROL_OVERWRITE_SOURCE_FOR_BSRP_MSB 23
- #define TX_QUEUE_EXTENSION_HT_CONTROL_OVERWRITE_SOURCE_FOR_BSRP_MASK 0x0000000000f00000
- /* Description RESERVED_10B
- <legal 0>
- */
- #define TX_QUEUE_EXTENSION_RESERVED_10B_OFFSET 0x0000000000000028
- #define TX_QUEUE_EXTENSION_RESERVED_10B_LSB 24
- #define TX_QUEUE_EXTENSION_RESERVED_10B_MSB 29
- #define TX_QUEUE_EXTENSION_RESERVED_10B_MASK 0x000000003f000000
- /* Description MPDU_HDR_LEN_OVERRIDE_EN
- This is for the FW override of MPDU overhead length programmed
- in the TQM queue.
-
- If enabled, PDG will update the length of each MPDU by subtracting
- the value of field Mpdu_header_length in 'MPDU_QUEUE_OVERVIEW'
- and adding Mpdu_hdr_len_override_val (in this TLV).
- <legal all>
- */
- #define TX_QUEUE_EXTENSION_MPDU_HDR_LEN_OVERRIDE_EN_OFFSET 0x0000000000000028
- #define TX_QUEUE_EXTENSION_MPDU_HDR_LEN_OVERRIDE_EN_LSB 30
- #define TX_QUEUE_EXTENSION_MPDU_HDR_LEN_OVERRIDE_EN_MSB 30
- #define TX_QUEUE_EXTENSION_MPDU_HDR_LEN_OVERRIDE_EN_MASK 0x0000000040000000
- /* Description BAR_SSN_OVERWRITE_ENABLE
- If enabled, TXPCU will overwrite the starting sequence number
- in case of Tx BAR or MU-BAR Trigger from with the sequence
- number from 'MPDU_QUEUE_OVERVIEW'
- <legal all>
- */
- #define TX_QUEUE_EXTENSION_BAR_SSN_OVERWRITE_ENABLE_OFFSET 0x0000000000000028
- #define TX_QUEUE_EXTENSION_BAR_SSN_OVERWRITE_ENABLE_LSB 31
- #define TX_QUEUE_EXTENSION_BAR_SSN_OVERWRITE_ENABLE_MSB 31
- #define TX_QUEUE_EXTENSION_BAR_SSN_OVERWRITE_ENABLE_MASK 0x0000000080000000
- /* Description BAR_SSN_OFFSET
- Offset to the starting sequence number in case of Tx BAR
- or MU-BAR Trigger that TXPCU can overwrite with the sequence
- number from 'MPDU_QUEUE_OVERVIEW'
- <legal all>
- */
- #define TX_QUEUE_EXTENSION_BAR_SSN_OFFSET_OFFSET 0x0000000000000028
- #define TX_QUEUE_EXTENSION_BAR_SSN_OFFSET_LSB 32
- #define TX_QUEUE_EXTENSION_BAR_SSN_OFFSET_MSB 43
- #define TX_QUEUE_EXTENSION_BAR_SSN_OFFSET_MASK 0x00000fff00000000
- /* Description MPDU_HDR_LEN_OVERRIDE_VAL
- This is for the FW override of MPDU overhead length programmed
- in the TQM queue.
-
- See field Mpdu_hdr_len_override_en.
-
- Hamilton v1 used bits [31:12] along with word 1 bits [29:26], [8:1]
- for 'HT_control_field_bw320.'
- <legal all>
- */
- #define TX_QUEUE_EXTENSION_MPDU_HDR_LEN_OVERRIDE_VAL_OFFSET 0x0000000000000028
- #define TX_QUEUE_EXTENSION_MPDU_HDR_LEN_OVERRIDE_VAL_LSB 44
- #define TX_QUEUE_EXTENSION_MPDU_HDR_LEN_OVERRIDE_VAL_MSB 52
- #define TX_QUEUE_EXTENSION_MPDU_HDR_LEN_OVERRIDE_VAL_MASK 0x001ff00000000000
- /* Description RESERVED_11A
- Hamilton v1 used bits [31:12] along with word 1 bits [29:26], [8:1]
- for 'HT_control_field_bw320.'
- <legal 0>
- */
- #define TX_QUEUE_EXTENSION_RESERVED_11A_OFFSET 0x0000000000000028
- #define TX_QUEUE_EXTENSION_RESERVED_11A_LSB 53
- #define TX_QUEUE_EXTENSION_RESERVED_11A_MSB 63
- #define TX_QUEUE_EXTENSION_RESERVED_11A_MASK 0xffe0000000000000
- /* Description HT_CONTROL_FIELD_BW320
- Field used by TXPCU when in TX_MPDU_START TLV field vht_control_present
- is set.
-
- Note that TXPCU might overwrite some fields. This is controlled
- with field HT_control_overwrite_enable
-
- See HT/HE control overwrite order NOTE after this table
-
- Hamilton v1 did not include this (and any subsequent) word.
-
- <legal all>
- */
- #define TX_QUEUE_EXTENSION_HT_CONTROL_FIELD_BW320_OFFSET 0x0000000000000030
- #define TX_QUEUE_EXTENSION_HT_CONTROL_FIELD_BW320_LSB 0
- #define TX_QUEUE_EXTENSION_HT_CONTROL_FIELD_BW320_MSB 31
- #define TX_QUEUE_EXTENSION_HT_CONTROL_FIELD_BW320_MASK 0x00000000ffffffff
- /* Description FW2SW_INFO
- This field is provided by FW, to be logged via TXMON to
- host SW. It is transparent to HW.
-
- <legal all>
- */
- #define TX_QUEUE_EXTENSION_FW2SW_INFO_OFFSET 0x0000000000000030
- #define TX_QUEUE_EXTENSION_FW2SW_INFO_LSB 32
- #define TX_QUEUE_EXTENSION_FW2SW_INFO_MSB 63
- #define TX_QUEUE_EXTENSION_FW2SW_INFO_MASK 0xffffffff00000000
- #endif // TX_QUEUE_EXTENSION
|