| |
| /* 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 _PDG_RESPONSE_H_ |
| #define _PDG_RESPONSE_H_ |
| #if !defined(__ASSEMBLER__) |
| #endif |
| |
| #include "pdg_response_rate_setting.h" |
| #define NUM_OF_DWORDS_PDG_RESPONSE 12 |
| |
| #define NUM_OF_QWORDS_PDG_RESPONSE 6 |
| |
| |
| struct pdg_response { |
| #ifndef WIFI_BIT_ORDER_BIG_ENDIAN |
| struct pdg_response_rate_setting hw_response_rate_info; |
| uint32_t hw_response_tx_duration : 16, // [15:0] |
| rx_duration_field : 16; // [31:16] |
| uint32_t punctured_response_transmission : 1, // [0:0] |
| cca_subband_channel_bonding_mask : 16, // [16:1] |
| scrambler_seed_override : 2, // [18:17] |
| response_density_valid : 1, // [19:19] |
| response_density : 5, // [24:20] |
| more_data : 1, // [25:25] |
| duration_indication : 1, // [26:26] |
| relayed_frame : 1, // [27:27] |
| address_indicator : 1, // [28:28] |
| bandwidth : 3; // [31:29] |
| uint32_t ack_id : 16, // [15:0] |
| block_ack_bitmap : 16; // [31:16] |
| uint32_t response_frame_type : 4, // [3:0] |
| ack_id_ext : 10, // [13:4] |
| ftm_en : 1, // [14:14] |
| group_id : 6, // [20:15] |
| sta_partial_aid : 11; // [31:21] |
| uint32_t ndp_ba_start_seq_ctrl : 12, // [11:0] |
| active_channel : 3, // [14:12] |
| txop_duration_all_ones : 1, // [15:15] |
| frame_length : 16; // [31:16] |
| #else |
| struct pdg_response_rate_setting hw_response_rate_info; |
| uint32_t rx_duration_field : 16, // [31:16] |
| hw_response_tx_duration : 16; // [15:0] |
| uint32_t bandwidth : 3, // [31:29] |
| address_indicator : 1, // [28:28] |
| relayed_frame : 1, // [27:27] |
| duration_indication : 1, // [26:26] |
| more_data : 1, // [25:25] |
| response_density : 5, // [24:20] |
| response_density_valid : 1, // [19:19] |
| scrambler_seed_override : 2, // [18:17] |
| cca_subband_channel_bonding_mask : 16, // [16:1] |
| punctured_response_transmission : 1; // [0:0] |
| uint32_t block_ack_bitmap : 16, // [31:16] |
| ack_id : 16; // [15:0] |
| uint32_t sta_partial_aid : 11, // [31:21] |
| group_id : 6, // [20:15] |
| ftm_en : 1, // [14:14] |
| ack_id_ext : 10, // [13:4] |
| response_frame_type : 4; // [3:0] |
| uint32_t frame_length : 16, // [31:16] |
| txop_duration_all_ones : 1, // [15:15] |
| active_channel : 3, // [14:12] |
| ndp_ba_start_seq_ctrl : 12; // [11:0] |
| #endif |
| }; |
| |
| |
| /* Description HW_RESPONSE_RATE_INFO |
| |
| All transmit rate related parameters |
| */ |
| |
| |
| /* Description RESERVED_0A |
| |
| |
| <legal 0> |
| */ |
| |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_RESERVED_0A_OFFSET 0x0000000000000000 |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_RESERVED_0A_LSB 0 |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_RESERVED_0A_MSB 0 |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_RESERVED_0A_MASK 0x0000000000000001 |
| |
| |
| /* Description TX_ANTENNA_SECTOR_CTRL |
| |
| Sectored transmit antenna |
| <legal all> |
| */ |
| |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_TX_ANTENNA_SECTOR_CTRL_OFFSET 0x0000000000000000 |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_TX_ANTENNA_SECTOR_CTRL_LSB 1 |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_TX_ANTENNA_SECTOR_CTRL_MSB 24 |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_TX_ANTENNA_SECTOR_CTRL_MASK 0x0000000001fffffe |
| |
| |
| /* Description PKT_TYPE |
| |
| Packet type: |
| <enum 0 dot11a>802.11a PPDU type |
| <enum 1 dot11b>802.11b PPDU type |
| <enum 2 dot11n_mm>802.11n Mixed Mode PPDU type |
| <enum 3 dot11ac>802.11ac PPDU type |
| <enum 4 dot11ax>802.11ax PPDU type |
| <enum 5 dot11ba>802.11ba (WUR) PPDU type |
| <enum 6 dot11be>802.11be PPDU type |
| <enum 7 dot11az>802.11az (ranging) PPDU type |
| <enum 8 dot11n_gf>802.11n Green Field PPDU type (unsupported |
| & aborted) |
| */ |
| |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_PKT_TYPE_OFFSET 0x0000000000000000 |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_PKT_TYPE_LSB 25 |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_PKT_TYPE_MSB 28 |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_PKT_TYPE_MASK 0x000000001e000000 |
| |
| |
| /* Description SMOOTHING |
| |
| This field is used by PDG to populate the SMOOTHING filed |
| in the SIG Preamble of the PPDU |
| <legal 0-1> |
| */ |
| |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_SMOOTHING_OFFSET 0x0000000000000000 |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_SMOOTHING_LSB 29 |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_SMOOTHING_MSB 29 |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_SMOOTHING_MASK 0x0000000020000000 |
| |
| |
| /* Description LDPC |
| |
| When set, use LDPC transmission rates |
| */ |
| |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_LDPC_OFFSET 0x0000000000000000 |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_LDPC_LSB 30 |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_LDPC_MSB 30 |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_LDPC_MASK 0x0000000040000000 |
| |
| |
| /* Description STBC |
| |
| When set, use STBC transmission rates |
| */ |
| |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_STBC_OFFSET 0x0000000000000000 |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_STBC_LSB 31 |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_STBC_MSB 31 |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_STBC_MASK 0x0000000080000000 |
| |
| |
| /* Description ALT_TX_PWR |
| |
| Coex related AlternativeTransmit parameter |
| |
| Transmit Power in s6.2 format. |
| In units of 0.25 dBm |
| <legal all> |
| */ |
| |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_ALT_TX_PWR_OFFSET 0x0000000000000000 |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_ALT_TX_PWR_LSB 32 |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_ALT_TX_PWR_MSB 39 |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_ALT_TX_PWR_MASK 0x000000ff00000000 |
| |
| |
| /* Description ALT_MIN_TX_PWR |
| |
| Coex related Alternative Transmit parameter |
| |
| Minimum allowed Transmit Power in s6.2 format. |
| In units of 0.25 dBm |
| <legal all> |
| */ |
| |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_ALT_MIN_TX_PWR_OFFSET 0x0000000000000000 |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_ALT_MIN_TX_PWR_LSB 40 |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_ALT_MIN_TX_PWR_MSB 47 |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_ALT_MIN_TX_PWR_MASK 0x0000ff0000000000 |
| |
| |
| /* Description ALT_NSS |
| |
| Coex related Alternative Transmit parameter |
| |
| Number of spatial streams. |
| |
| <enum 0 1_spatial_stream>Single spatial stream |
| <enum 1 2_spatial_streams>2 spatial streams |
| <enum 2 3_spatial_streams>3 spatial streams |
| <enum 3 4_spatial_streams>4 spatial streams |
| <enum 4 5_spatial_streams>5 spatial streams |
| <enum 5 6_spatial_streams>6 spatial streams |
| <enum 6 7_spatial_streams>7 spatial streams |
| <enum 7 8_spatial_streams>8 spatial streams |
| */ |
| |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_ALT_NSS_OFFSET 0x0000000000000000 |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_ALT_NSS_LSB 48 |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_ALT_NSS_MSB 50 |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_ALT_NSS_MASK 0x0007000000000000 |
| |
| |
| /* Description ALT_TX_CHAIN_MASK |
| |
| Coex related Alternative Transmit parameter |
| |
| Chain mask to support up to 8 antennas. |
| <legal 1-255> |
| */ |
| |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_ALT_TX_CHAIN_MASK_OFFSET 0x0000000000000000 |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_ALT_TX_CHAIN_MASK_LSB 51 |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_ALT_TX_CHAIN_MASK_MSB 58 |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_ALT_TX_CHAIN_MASK_MASK 0x07f8000000000000 |
| |
| |
| /* Description ALT_BW |
| |
| Coex related Alternative Transmit parameter |
| |
| The BW of the upcoming transmission. |
| |
| <enum 0 20_mhz>20 Mhz BW |
| <enum 1 40_mhz>40 Mhz BW |
| <enum 2 80_mhz>80 Mhz BW |
| <enum 3 160_mhz>160 Mhz BW |
| <enum 4 320_mhz>320 Mhz BW |
| <enum 5 240_mhz>240 Mhz BW |
| */ |
| |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_ALT_BW_OFFSET 0x0000000000000000 |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_ALT_BW_LSB 59 |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_ALT_BW_MSB 61 |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_ALT_BW_MASK 0x3800000000000000 |
| |
| |
| /* Description STF_LTF_3DB_BOOST |
| |
| Boost the STF and LTF power by 3dB in 11a/n/ac packets. |
| This includes both the legacy preambles and the HT/VHT preambles.0: |
| disable power boost1: enable power boost |
| <legal all> |
| */ |
| |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_STF_LTF_3DB_BOOST_OFFSET 0x0000000000000000 |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_STF_LTF_3DB_BOOST_LSB 62 |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_STF_LTF_3DB_BOOST_MSB 62 |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_STF_LTF_3DB_BOOST_MASK 0x4000000000000000 |
| |
| |
| /* Description FORCE_EXTRA_SYMBOL |
| |
| Set to 1 to force an extra OFDM symbol (or symbols) even |
| if the PPDU encoding process does not result in an extra |
| OFDM symbol (or symbols) |
| */ |
| |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_FORCE_EXTRA_SYMBOL_OFFSET 0x0000000000000000 |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_FORCE_EXTRA_SYMBOL_LSB 63 |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_FORCE_EXTRA_SYMBOL_MSB 63 |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_FORCE_EXTRA_SYMBOL_MASK 0x8000000000000000 |
| |
| |
| /* Description ALT_RATE_MCS |
| |
| Coex related Alternative Transmit parameter |
| |
| For details, refer to MCS_TYPE |
| Note: This is "rate" in case of 11a/11b |
| description |
| <legal all> |
| */ |
| |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_ALT_RATE_MCS_OFFSET 0x0000000000000008 |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_ALT_RATE_MCS_LSB 0 |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_ALT_RATE_MCS_MSB 3 |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_ALT_RATE_MCS_MASK 0x000000000000000f |
| |
| |
| /* Description NSS |
| |
| Number of spatial streams. |
| |
| <enum 0 1_spatial_stream>Single spatial stream |
| <enum 1 2_spatial_streams>2 spatial streams |
| <enum 2 3_spatial_streams>3 spatial streams |
| <enum 3 4_spatial_streams>4 spatial streams |
| <enum 4 5_spatial_streams>5 spatial streams |
| <enum 5 6_spatial_streams>6 spatial streams |
| <enum 6 7_spatial_streams>7 spatial streams |
| <enum 7 8_spatial_streams>8 spatial streams |
| */ |
| |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_NSS_OFFSET 0x0000000000000008 |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_NSS_LSB 4 |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_NSS_MSB 6 |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_NSS_MASK 0x0000000000000070 |
| |
| |
| /* Description DPD_ENABLE |
| |
| DPD enable control |
| |
| This is needed on a per packet basis |
| <enum 0 dpd_off> DPD profile not applied to current |
| packet |
| <enum 1 dpd_on> DPD profile applied to current packet |
| if available |
| <legal 0-1> |
| |
| This field is not applicable in11ah mode of operation and |
| is ignored by the HW |
| */ |
| |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DPD_ENABLE_OFFSET 0x0000000000000008 |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DPD_ENABLE_LSB 7 |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DPD_ENABLE_MSB 7 |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DPD_ENABLE_MASK 0x0000000000000080 |
| |
| |
| /* Description TX_PWR |
| |
| Transmit Power in s6.2 format. |
| In units of 0.25 dBm |
| <legal all> |
| */ |
| |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_TX_PWR_OFFSET 0x0000000000000008 |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_TX_PWR_LSB 8 |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_TX_PWR_MSB 15 |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_TX_PWR_MASK 0x000000000000ff00 |
| |
| |
| /* Description MIN_TX_PWR |
| |
| Coex related field: |
| |
| Minimum allowed Transmit Power in s6.2 format. |
| In units of 0.25 dBm |
| <legal all> |
| */ |
| |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_MIN_TX_PWR_OFFSET 0x0000000000000008 |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_MIN_TX_PWR_LSB 16 |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_MIN_TX_PWR_MSB 23 |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_MIN_TX_PWR_MASK 0x0000000000ff0000 |
| |
| |
| /* Description TX_CHAIN_MASK |
| |
| Chain mask to support up to 8 antennas. |
| <legal 1-255> |
| */ |
| |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_TX_CHAIN_MASK_OFFSET 0x0000000000000008 |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_TX_CHAIN_MASK_LSB 24 |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_TX_CHAIN_MASK_MSB 31 |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_TX_CHAIN_MASK_MASK 0x00000000ff000000 |
| |
| |
| /* Description RESERVED_3A |
| |
| <legal 0> |
| */ |
| |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_RESERVED_3A_OFFSET 0x0000000000000008 |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_RESERVED_3A_LSB 32 |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_RESERVED_3A_MSB 39 |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_RESERVED_3A_MASK 0x000000ff00000000 |
| |
| |
| /* Description SGI |
| |
| Field only valid when pkt type is HT or VHT.For 11ax see |
| field Dot11ax_CP_LTF_size |
| |
| <enum 0 0_8_us_sgi > Legacy normal GI. Can also be used |
| for HE |
| <enum 1 0_4_us_sgi > Legacy short GI. Can also be used |
| for HE |
| <enum 2 1_6_us_sgi > Not used for pre 11ax pkt_types. |
| |
| <enum 3 3_2_us_sgi > Not used for pre 11ax pkt_types |
| |
| |
| <legal 0 - 3> |
| */ |
| |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_SGI_OFFSET 0x0000000000000008 |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_SGI_LSB 40 |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_SGI_MSB 41 |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_SGI_MASK 0x0000030000000000 |
| |
| |
| /* Description RATE_MCS |
| |
| For details, refer to MCS_TYPE description |
| Note: This is "rate" in case of 11a/11b |
| |
| <legal all> |
| */ |
| |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_RATE_MCS_OFFSET 0x0000000000000008 |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_RATE_MCS_LSB 42 |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_RATE_MCS_MSB 45 |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_RATE_MCS_MASK 0x00003c0000000000 |
| |
| |
| /* Description RESERVED_3B |
| |
| <legal 0> |
| */ |
| |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_RESERVED_3B_OFFSET 0x0000000000000008 |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_RESERVED_3B_LSB 46 |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_RESERVED_3B_MSB 47 |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_RESERVED_3B_MASK 0x0000c00000000000 |
| |
| |
| /* Description TX_PWR_1 |
| |
| Default (desired) transmit parameter for the second chain |
| |
| |
| Transmit Power in s6.2 format. |
| In units of 0.25 dBm |
| |
| Note that there is no Min value for this |
| <legal all> |
| */ |
| |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_TX_PWR_1_OFFSET 0x0000000000000008 |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_TX_PWR_1_LSB 48 |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_TX_PWR_1_MSB 55 |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_TX_PWR_1_MASK 0x00ff000000000000 |
| |
| |
| /* Description ALT_TX_PWR_1 |
| |
| Alternate (desired) transmit parameter for the second chain |
| |
| |
| Transmit Power in s6.2 format. |
| In units of 0.25 dBm |
| |
| Note that there is no Min value for this |
| <legal all> |
| */ |
| |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_ALT_TX_PWR_1_OFFSET 0x0000000000000008 |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_ALT_TX_PWR_1_LSB 56 |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_ALT_TX_PWR_1_MSB 63 |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_ALT_TX_PWR_1_MASK 0xff00000000000000 |
| |
| |
| /* Description AGGREGATION |
| |
| Field only valid in case of pkt_type == 11n |
| |
| <enum 0 mpdu> Indicates MPDU format. TXPCU will select |
| this setting if the CBF response only contains a single |
| segment |
| <enum 1 a_mpdu> Indicates A-MPDU format. TXPCU will |
| select this setting if the CBF response will contain two |
| or more segments |
| <legal 0-1> |
| */ |
| |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_AGGREGATION_OFFSET 0x0000000000000010 |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_AGGREGATION_LSB 0 |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_AGGREGATION_MSB 0 |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_AGGREGATION_MASK 0x0000000000000001 |
| |
| |
| /* Description DOT11AX_BSS_COLOR_ID |
| |
| BSS color of the nextwork to which this STA belongs. |
| When generated by TXPCU, this field is set equal to: Dot11ax_received_Bss_color_id |
| |
| |
| <legal all> |
| */ |
| |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_BSS_COLOR_ID_OFFSET 0x0000000000000010 |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_BSS_COLOR_ID_LSB 1 |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_BSS_COLOR_ID_MSB 6 |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_BSS_COLOR_ID_MASK 0x000000000000007e |
| |
| |
| /* Description DOT11AX_SPATIAL_REUSE |
| |
| This field is only valid for pkt_type == 11ax |
| |
| Spatial re-use |
| <legal all> |
| */ |
| |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_SPATIAL_REUSE_OFFSET 0x0000000000000010 |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_SPATIAL_REUSE_LSB 7 |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_SPATIAL_REUSE_MSB 10 |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_SPATIAL_REUSE_MASK 0x0000000000000780 |
| |
| |
| /* Description DOT11AX_CP_LTF_SIZE |
| |
| field is only valid for pkt_type == 11ax |
| |
| Indicates the CP and HE-LTF type |
| |
| <enum 0 OneX_LTF_0_8CP> 1xLTF + 0.8 us CP |
| <enum 1 TwoX_LTF_0_8CP> 2x LTF + 0.8 µs CP |
| <enum 2 TwoX_LTF_1_6CP> 2x LTF + 1.6 µs CP |
| <enum 3 FourX_LTF_0_8CP_3_2CP> |
| When DCM == 0 OR STBC == 0: 4x LTF + 3.2 µs CP |
| When DCM == 1 AND STBC == 1: 4x LTF + 0.8 µs CP. Note: |
| In this scenario, Neither DCM nor STBC is applied to HE |
| data field. |
| |
| If ( DCM == 1 ) and ( MCS > 0 ) and (STBC == 0) |
| 0 = 1xLTF + 0.4 usec |
| 1 = 2xLTF + 0.4 usec |
| 2~3 = Reserved |
| |
| <legal all> |
| */ |
| |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_CP_LTF_SIZE_OFFSET 0x0000000000000010 |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_CP_LTF_SIZE_LSB 11 |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_CP_LTF_SIZE_MSB 12 |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_CP_LTF_SIZE_MASK 0x0000000000001800 |
| |
| |
| /* Description DOT11AX_DCM |
| |
| field is only valid for pkt_type == 11ax |
| |
| Indicates whether dual sub-carrier modulation is applied |
| |
| 0: No DCM |
| 1:DCM |
| <legal all> |
| */ |
| |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_DCM_OFFSET 0x0000000000000010 |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_DCM_LSB 13 |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_DCM_MSB 13 |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_DCM_MASK 0x0000000000002000 |
| |
| |
| /* Description DOT11AX_DOPPLER_INDICATION |
| |
| field is only valid for pkt_type == 11ax |
| |
| 0: No Doppler support |
| 1: Doppler support |
| <legal all> |
| */ |
| |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_DOPPLER_INDICATION_OFFSET 0x0000000000000010 |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_DOPPLER_INDICATION_LSB 14 |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_DOPPLER_INDICATION_MSB 14 |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_DOPPLER_INDICATION_MASK 0x0000000000004000 |
| |
| |
| /* Description DOT11AX_SU_EXTENDED |
| |
| field is only valid for pkt_type == 11ax OR pkt_type == |
| 11be |
| |
| When set, the 11ax or 11be frame is of the extended range |
| format |
| <legal all> |
| */ |
| |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_SU_EXTENDED_OFFSET 0x0000000000000010 |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_SU_EXTENDED_LSB 15 |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_SU_EXTENDED_MSB 15 |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_SU_EXTENDED_MASK 0x0000000000008000 |
| |
| |
| /* Description DOT11AX_MIN_PACKET_EXTENSION |
| |
| field is only valid for pkt_type == 11ax OR pkt_type == |
| 11be |
| |
| The min packet extension duration for this user. |
| 0: no extension |
| 1: 8us |
| 2: 16 us |
| 3: 20 us (only for .11be) |
| <legal 0-3> |
| */ |
| |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_MIN_PACKET_EXTENSION_OFFSET 0x0000000000000010 |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_MIN_PACKET_EXTENSION_LSB 16 |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_MIN_PACKET_EXTENSION_MSB 17 |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_MIN_PACKET_EXTENSION_MASK 0x0000000000030000 |
| |
| |
| /* Description DOT11AX_PE_NSS |
| |
| Number of active spatial streams during packet extension. |
| |
| |
| <enum 0 1_spatial_stream>Single spatial stream |
| <enum 1 2_spatial_streams>2 spatial streams |
| <enum 2 3_spatial_streams>3 spatial streams |
| <enum 3 4_spatial_streams>4 spatial streams |
| <enum 4 5_spatial_streams>5 spatial streams |
| <enum 5 6_spatial_streams>6 spatial streams |
| <enum 6 7_spatial_streams>7 spatial streams |
| <enum 7 8_spatial_streams>8 spatial streams |
| */ |
| |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_PE_NSS_OFFSET 0x0000000000000010 |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_PE_NSS_LSB 18 |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_PE_NSS_MSB 20 |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_PE_NSS_MASK 0x00000000001c0000 |
| |
| |
| /* Description DOT11AX_PE_CONTENT |
| |
| Content of packet extension. Valid for all 11ax packets |
| having packet extension |
| |
| 0-he_ltf, 1-last_data_symbol |
| <legal all> |
| */ |
| |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_PE_CONTENT_OFFSET 0x0000000000000010 |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_PE_CONTENT_LSB 21 |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_PE_CONTENT_MSB 21 |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_PE_CONTENT_MASK 0x0000000000200000 |
| |
| |
| /* Description DOT11AX_PE_LTF_SIZE |
| |
| LTF size to be used during packet extention. . This field |
| is valid for both FTM and non-FTM packets. |
| 0-1x |
| 1-2x (unsupported un HWK-1) |
| 2-4x (unsupported un HWK-1) |
| <legal all> |
| */ |
| |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_PE_LTF_SIZE_OFFSET 0x0000000000000010 |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_PE_LTF_SIZE_LSB 22 |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_PE_LTF_SIZE_MSB 23 |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_PE_LTF_SIZE_MASK 0x0000000000c00000 |
| |
| |
| /* Description DOT11AX_CHAIN_CSD_EN |
| |
| This field denotes whether to apply CSD on the preamble |
| and data portion of the packet. This field is valid for |
| all transmit packets |
| 0: disable per-chain csd |
| 1: enable per-chain csd |
| <legal all> |
| */ |
| |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_CHAIN_CSD_EN_OFFSET 0x0000000000000010 |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_CHAIN_CSD_EN_LSB 24 |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_CHAIN_CSD_EN_MSB 24 |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_CHAIN_CSD_EN_MASK 0x0000000001000000 |
| |
| |
| /* Description DOT11AX_PE_CHAIN_CSD_EN |
| |
| This field denotes whether to apply CSD on the packet extension |
| portion of the packet. This field is valid for all 11ax |
| packets. |
| 0: disable per-chain csd |
| 1: enable per-chain csd |
| <legal all> |
| */ |
| |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_PE_CHAIN_CSD_EN_OFFSET 0x0000000000000010 |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_PE_CHAIN_CSD_EN_LSB 25 |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_PE_CHAIN_CSD_EN_MSB 25 |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_PE_CHAIN_CSD_EN_MASK 0x0000000002000000 |
| |
| |
| /* Description DOT11AX_DL_UL_FLAG |
| |
| field is only valid for pkt_type == 11ax |
| |
| <enum 0 DL_UL_FLAG_IS_DL_OR_TDLS> |
| <enum 1 DL_UL_FLAG_IS_UL> |
| |
| <legal all> |
| */ |
| |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_DL_UL_FLAG_OFFSET 0x0000000000000010 |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_DL_UL_FLAG_LSB 26 |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_DL_UL_FLAG_MSB 26 |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_DL_UL_FLAG_MASK 0x0000000004000000 |
| |
| |
| /* Description RESERVED_4A |
| |
| <legal 0> |
| */ |
| |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_RESERVED_4A_OFFSET 0x0000000000000010 |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_RESERVED_4A_LSB 27 |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_RESERVED_4A_MSB 31 |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_RESERVED_4A_MASK 0x00000000f8000000 |
| |
| |
| /* Description DOT11AX_EXT_RU_START_INDEX |
| |
| field is only valid for pkt_type == 11ax and Dot11ax_su_extended |
| == 1 |
| |
| RU Number to which User is assigned |
| |
| The RU numbering bitwidth is only enough to cover the 20MHz |
| BW that extended range allows |
| <legal 0-8> |
| */ |
| |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_EXT_RU_START_INDEX_OFFSET 0x0000000000000010 |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_EXT_RU_START_INDEX_LSB 32 |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_EXT_RU_START_INDEX_MSB 35 |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_EXT_RU_START_INDEX_MASK 0x0000000f00000000 |
| |
| |
| /* Description DOT11AX_EXT_RU_SIZE |
| |
| field is only valid for pkt_type == 11ax and Dot11ax_su_extended |
| == 1 or pkt_type == 11be and EHT_duplicate_mode == 1 |
| |
| The size of the RU for this user. |
| |
| In case of EHT duplicate transmissions, this field indicates |
| the width of the actual content before duplication, e.g. |
| a 40 MHz PPDU duplicated to 160 MHz will have the bandwidth |
| fields indicating 160 MHz and this field set to e-num 4 |
| (RU_484). |
| |
| <enum 0 RU_26> |
| <enum 1 RU_52> |
| <enum 2 RU_106> |
| <enum 3 RU_242> |
| <enum 4 RU_484> |
| <enum 5 RU_996> |
| <enum 6 RU_1992> |
| <enum 7 RU_FULLBW> Set when the RU occupies the full packet |
| bandwidth |
| <enum 8 RU_FULLBW_240> Set when the RU occupies the full |
| packet bandwidth |
| <enum 9 RU_FULLBW_320> Set when the RU occupies the full |
| packet bandwidth |
| <enum 10 RU_MULTI_LARGE> DO NOT USE |
| <enum 11 RU_78> DO NOT USE |
| <enum 12 RU_132> DO NOT USE |
| <legal 0-12> |
| */ |
| |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_EXT_RU_SIZE_OFFSET 0x0000000000000010 |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_EXT_RU_SIZE_LSB 36 |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_EXT_RU_SIZE_MSB 39 |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11AX_EXT_RU_SIZE_MASK 0x000000f000000000 |
| |
| |
| /* Description EHT_DUPLICATE_MODE |
| |
| Field only valid for pkt_type == 11be |
| |
| Indicates EHT duplicate modulation |
| |
| <enum 0 eht_no_duplicate> |
| <enum 1 eht_2x_duplicate> |
| <enum 2 eht_4x_duplicate> |
| |
| <legal 0-2> |
| */ |
| |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_EHT_DUPLICATE_MODE_OFFSET 0x0000000000000010 |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_EHT_DUPLICATE_MODE_LSB 40 |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_EHT_DUPLICATE_MODE_MSB 41 |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_EHT_DUPLICATE_MODE_MASK 0x0000030000000000 |
| |
| |
| /* Description HE_SIGB_DCM |
| |
| Indicates whether dual sub-carrier modulation is applied |
| to EHT-SIG |
| <legal all> |
| */ |
| |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_HE_SIGB_DCM_OFFSET 0x0000000000000010 |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_HE_SIGB_DCM_LSB 42 |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_HE_SIGB_DCM_MSB 42 |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_HE_SIGB_DCM_MASK 0x0000040000000000 |
| |
| |
| /* Description HE_SIGB_0_MCS |
| |
| Indicates the MCS of EHT-SIG |
| |
| For details, refer to MCS_TYPE description |
| <legal all> |
| */ |
| |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_HE_SIGB_0_MCS_OFFSET 0x0000000000000010 |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_HE_SIGB_0_MCS_LSB 43 |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_HE_SIGB_0_MCS_MSB 45 |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_HE_SIGB_0_MCS_MASK 0x0000380000000000 |
| |
| |
| /* Description NUM_HE_SIGB_SYM |
| |
| Indicates the number of EHT-SIG symbols |
| |
| This field is 0-based with 0 indicating that 1 eht_sig symbol |
| needs to be transmitted. |
| <legal all> |
| */ |
| |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_NUM_HE_SIGB_SYM_OFFSET 0x0000000000000010 |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_NUM_HE_SIGB_SYM_LSB 46 |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_NUM_HE_SIGB_SYM_MSB 50 |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_NUM_HE_SIGB_SYM_MASK 0x0007c00000000000 |
| |
| |
| /* Description REQUIRED_RESPONSE_TIME_SOURCE |
| |
| <enum 0 reqd_resp_time_src_is_RXPCU> Typically from received |
| HT Control for sync MLO response |
| <enum 1 reqd_resp_time_src_is_FW> |
| Typically from 'PCU_PPDU_SETUP_INIT' for sync MLO response |
| to response |
| <legal all> |
| */ |
| |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_REQUIRED_RESPONSE_TIME_SOURCE_OFFSET 0x0000000000000010 |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_REQUIRED_RESPONSE_TIME_SOURCE_LSB 51 |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_REQUIRED_RESPONSE_TIME_SOURCE_MSB 51 |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_REQUIRED_RESPONSE_TIME_SOURCE_MASK 0x0008000000000000 |
| |
| |
| /* Description RESERVED_5A |
| |
| <legal 0> |
| */ |
| |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_RESERVED_5A_OFFSET 0x0000000000000010 |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_RESERVED_5A_LSB 52 |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_RESERVED_5A_MSB 57 |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_RESERVED_5A_MASK 0x03f0000000000000 |
| |
| |
| /* Description U_SIG_PUNCTURE_PATTERN_ENCODING |
| |
| 6-bit value copied from 'RX_RESPONSE_REQUIRED_INFO' and 'TX_CBF_INFO' |
| to pass on to PDG |
| <legal 0-29> |
| */ |
| |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_U_SIG_PUNCTURE_PATTERN_ENCODING_OFFSET 0x0000000000000010 |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_U_SIG_PUNCTURE_PATTERN_ENCODING_LSB 58 |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_U_SIG_PUNCTURE_PATTERN_ENCODING_MSB 63 |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_U_SIG_PUNCTURE_PATTERN_ENCODING_MASK 0xfc00000000000000 |
| |
| |
| /* Description MLO_STA_ID_DETAILS_RX |
| |
| 16-bi value copied from 'RX_RESPONSE_REQUIRED_INFO' to pass |
| on to PDG |
| |
| Bits 10 and 11 are not valid, bits [9:0] reflect 'NSTR_MLO_STA_ID' |
| from address search. |
| |
| See definition of mlo_sta_id_details. |
| */ |
| |
| |
| /* Description NSTR_MLO_STA_ID |
| |
| ID of peer participating in non-STR MLO |
| */ |
| |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_MLO_STA_ID_DETAILS_RX_NSTR_MLO_STA_ID_OFFSET 0x0000000000000018 |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_MLO_STA_ID_DETAILS_RX_NSTR_MLO_STA_ID_LSB 0 |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_MLO_STA_ID_DETAILS_RX_NSTR_MLO_STA_ID_MSB 9 |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_MLO_STA_ID_DETAILS_RX_NSTR_MLO_STA_ID_MASK 0x00000000000003ff |
| |
| |
| /* Description BLOCK_SELF_ML_SYNC |
| |
| Only valid for TX |
| |
| When set, this provides an indication to block the peer |
| for self-link. |
| */ |
| |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_MLO_STA_ID_DETAILS_RX_BLOCK_SELF_ML_SYNC_OFFSET 0x0000000000000018 |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_MLO_STA_ID_DETAILS_RX_BLOCK_SELF_ML_SYNC_LSB 10 |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_MLO_STA_ID_DETAILS_RX_BLOCK_SELF_ML_SYNC_MSB 10 |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_MLO_STA_ID_DETAILS_RX_BLOCK_SELF_ML_SYNC_MASK 0x0000000000000400 |
| |
| |
| /* Description BLOCK_PARTNER_ML_SYNC |
| |
| Only valid for TX |
| |
| When set, this provides an indication to block the peer |
| for partner links. |
| */ |
| |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_MLO_STA_ID_DETAILS_RX_BLOCK_PARTNER_ML_SYNC_OFFSET 0x0000000000000018 |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_MLO_STA_ID_DETAILS_RX_BLOCK_PARTNER_ML_SYNC_LSB 11 |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_MLO_STA_ID_DETAILS_RX_BLOCK_PARTNER_ML_SYNC_MSB 11 |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_MLO_STA_ID_DETAILS_RX_BLOCK_PARTNER_ML_SYNC_MASK 0x0000000000000800 |
| |
| |
| /* Description NSTR_MLO_STA_ID_VALID |
| |
| All the fields in this TLV are valid only if this bit is |
| set. |
| */ |
| |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_MLO_STA_ID_DETAILS_RX_NSTR_MLO_STA_ID_VALID_OFFSET 0x0000000000000018 |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_MLO_STA_ID_DETAILS_RX_NSTR_MLO_STA_ID_VALID_LSB 12 |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_MLO_STA_ID_DETAILS_RX_NSTR_MLO_STA_ID_VALID_MSB 12 |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_MLO_STA_ID_DETAILS_RX_NSTR_MLO_STA_ID_VALID_MASK 0x0000000000001000 |
| |
| |
| /* Description RESERVED_0A |
| |
| <legal 0> |
| */ |
| |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_MLO_STA_ID_DETAILS_RX_RESERVED_0A_OFFSET 0x0000000000000018 |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_MLO_STA_ID_DETAILS_RX_RESERVED_0A_LSB 13 |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_MLO_STA_ID_DETAILS_RX_RESERVED_0A_MSB 15 |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_MLO_STA_ID_DETAILS_RX_RESERVED_0A_MASK 0x000000000000e000 |
| |
| |
| /* Description REQUIRED_RESPONSE_TIME |
| |
| When non-zero, indicates that PDG shall pad the response |
| transmission to the indicated duration (in us) |
| */ |
| |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_REQUIRED_RESPONSE_TIME_OFFSET 0x0000000000000018 |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_REQUIRED_RESPONSE_TIME_LSB 16 |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_REQUIRED_RESPONSE_TIME_MSB 27 |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_REQUIRED_RESPONSE_TIME_MASK 0x000000000fff0000 |
| |
| |
| /* Description DOT11BE_PARAMS_PLACEHOLDER |
| |
| 4 bytes for use as placeholders for 'Dot11be_*' parameters |
| |
| */ |
| |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11BE_PARAMS_PLACEHOLDER_OFFSET 0x0000000000000018 |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11BE_PARAMS_PLACEHOLDER_LSB 28 |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11BE_PARAMS_PLACEHOLDER_MSB 31 |
| #define PDG_RESPONSE_HW_RESPONSE_RATE_INFO_DOT11BE_PARAMS_PLACEHOLDER_MASK 0x00000000f0000000 |
| |
| |
| /* Description HW_RESPONSE_TX_DURATION |
| |
| The amount of time the transmission of the HW response will |
| take (in us) |
| |
| Used for coex..... |
| |
| This field also represents the 'alt_hw_response_tx_duration'. |
| Note that this implies that no different duration can be |
| programmed for the default and alt setting. SW should program |
| the worst case value in the RXPCU table in case they are |
| different. |
| <legal all> |
| */ |
| |
| #define PDG_RESPONSE_HW_RESPONSE_TX_DURATION_OFFSET 0x0000000000000018 |
| #define PDG_RESPONSE_HW_RESPONSE_TX_DURATION_LSB 32 |
| #define PDG_RESPONSE_HW_RESPONSE_TX_DURATION_MSB 47 |
| #define PDG_RESPONSE_HW_RESPONSE_TX_DURATION_MASK 0x0000ffff00000000 |
| |
| |
| /* Description RX_DURATION_FIELD |
| |
| The duration field in the received frame. |
| PDG uses this field to calculate what the duration field |
| value should be in the response frame. |
| This is returned to the TX PCU |
| |
| This field is used in 11ah mode as well |
| <legal all> |
| */ |
| |
| #define PDG_RESPONSE_RX_DURATION_FIELD_OFFSET 0x0000000000000018 |
| #define PDG_RESPONSE_RX_DURATION_FIELD_LSB 48 |
| #define PDG_RESPONSE_RX_DURATION_FIELD_MSB 63 |
| #define PDG_RESPONSE_RX_DURATION_FIELD_MASK 0xffff000000000000 |
| |
| |
| /* Description PUNCTURED_RESPONSE_TRANSMISSION |
| |
| When set, this response frame will be transmitted using |
| a puncture transmit pattern that is indicated in the cca_subband_channel_bonding_mask |
| field. |
| |
| Typically used in the Response to response transmissions. |
| |
| <legal all> |
| */ |
| |
| #define PDG_RESPONSE_PUNCTURED_RESPONSE_TRANSMISSION_OFFSET 0x0000000000000020 |
| #define PDG_RESPONSE_PUNCTURED_RESPONSE_TRANSMISSION_LSB 0 |
| #define PDG_RESPONSE_PUNCTURED_RESPONSE_TRANSMISSION_MSB 0 |
| #define PDG_RESPONSE_PUNCTURED_RESPONSE_TRANSMISSION_MASK 0x0000000000000001 |
| |
| |
| /* Description CCA_SUBBAND_CHANNEL_BONDING_MASK |
| |
| Field only valid when 'Punctured_response_transmission' |
| is set |
| |
| Indicates which 20 Mhz channels will be used for the transmission. |
| |
| |
| Bit 0: primary 20 Mhz |
| Bit 1: secondary 20 MHz. |
| Etc. |
| |
| <legal 1-65535> |
| */ |
| |
| #define PDG_RESPONSE_CCA_SUBBAND_CHANNEL_BONDING_MASK_OFFSET 0x0000000000000020 |
| #define PDG_RESPONSE_CCA_SUBBAND_CHANNEL_BONDING_MASK_LSB 1 |
| #define PDG_RESPONSE_CCA_SUBBAND_CHANNEL_BONDING_MASK_MSB 16 |
| #define PDG_RESPONSE_CCA_SUBBAND_CHANNEL_BONDING_MASK_MASK 0x000000000001fffe |
| |
| |
| /* Description SCRAMBLER_SEED_OVERRIDE |
| |
| Used in dynamic BW RTS-CTS, BAR -BA, etc. kind of exchanges. |
| |
| |
| 0: PDG will use all 7 bits of the scrambler seed. |
| 1: PDG will override bits [6:5] of the scrambler_seed |
| with BW information. |
| 2: PDG will override bits [6:5] and bit [3] of the scrambler_seed |
| with BW information for .11be dynamic BW procedure. |
| |
| <legal 0-2> |
| */ |
| |
| #define PDG_RESPONSE_SCRAMBLER_SEED_OVERRIDE_OFFSET 0x0000000000000020 |
| #define PDG_RESPONSE_SCRAMBLER_SEED_OVERRIDE_LSB 17 |
| #define PDG_RESPONSE_SCRAMBLER_SEED_OVERRIDE_MSB 18 |
| #define PDG_RESPONSE_SCRAMBLER_SEED_OVERRIDE_MASK 0x0000000000060000 |
| |
| |
| /* Description RESPONSE_DENSITY_VALID |
| |
| When set, field Response_density has valid info. TXPCU sets |
| this for multi segment CBF response generation. |
| <legal all> |
| */ |
| |
| #define PDG_RESPONSE_RESPONSE_DENSITY_VALID_OFFSET 0x0000000000000020 |
| #define PDG_RESPONSE_RESPONSE_DENSITY_VALID_LSB 19 |
| #define PDG_RESPONSE_RESPONSE_DENSITY_VALID_MSB 19 |
| #define PDG_RESPONSE_RESPONSE_DENSITY_VALID_MASK 0x0000000000080000 |
| |
| |
| /* Description RESPONSE_DENSITY |
| |
| Field only valid when Response_density_valid is set. |
| When Response_density_valid is NOT set, this field is set |
| to 0 |
| |
| The MPDU density is required for the response frame (in |
| us). PDG will translate this value into minimum number of |
| words per MPDU and give this back to TXPCU in TLV PCU_PPDU_SETUP_USER |
| field min_mpdu_spacing |
| |
| TXPCU gets this value from a register. |
| <legal all> |
| */ |
| |
| #define PDG_RESPONSE_RESPONSE_DENSITY_OFFSET 0x0000000000000020 |
| #define PDG_RESPONSE_RESPONSE_DENSITY_LSB 20 |
| #define PDG_RESPONSE_RESPONSE_DENSITY_MSB 24 |
| #define PDG_RESPONSE_RESPONSE_DENSITY_MASK 0x0000000001f00000 |
| |
| |
| /* Description MORE_DATA |
| |
| This setting is used for |
| NDP ACK response frames |
| NDP Modified ACK response frames |
| The value of this field comes from a register programming. |
| The register resides in TxPCU and is programmed by SW within |
| SIFS response time when responding with NDP ACK or NDP |
| Modified ACK. |
| <legal all> |
| */ |
| |
| #define PDG_RESPONSE_MORE_DATA_OFFSET 0x0000000000000020 |
| #define PDG_RESPONSE_MORE_DATA_LSB 25 |
| #define PDG_RESPONSE_MORE_DATA_MSB 25 |
| #define PDG_RESPONSE_MORE_DATA_MASK 0x0000000002000000 |
| |
| |
| /* Description DURATION_INDICATION |
| |
| This setting is used for |
| NDP ACK response frames |
| NDP Modified ACK response frames |
| The value of this field comes from a register programming. |
| The register resides in TxPCU and is programmed by SW within |
| SIFS response time when responding with NDP ACK or NDP |
| Modified ACK. |
| <legal all> |
| */ |
| |
| #define PDG_RESPONSE_DURATION_INDICATION_OFFSET 0x0000000000000020 |
| #define PDG_RESPONSE_DURATION_INDICATION_LSB 26 |
| #define PDG_RESPONSE_DURATION_INDICATION_MSB 26 |
| #define PDG_RESPONSE_DURATION_INDICATION_MASK 0x0000000004000000 |
| |
| |
| /* Description RELAYED_FRAME |
| |
| This setting is used to fill the field in the SIG preamble |
| for |
| NDP ACK response frame |
| This feature is not supported and TxPCU should program this |
| field to Zero. PDG will ignore this field. |
| <legal all> |
| */ |
| |
| #define PDG_RESPONSE_RELAYED_FRAME_OFFSET 0x0000000000000020 |
| #define PDG_RESPONSE_RELAYED_FRAME_LSB 27 |
| #define PDG_RESPONSE_RELAYED_FRAME_MSB 27 |
| #define PDG_RESPONSE_RELAYED_FRAME_MASK 0x0000000008000000 |
| |
| |
| /* Description ADDRESS_INDICATOR |
| |
| This bit is used to fill the address_indicator field in |
| the SIG preamble of NDP CTS response frame. |
| |
| This feature is not supported and TxPCU should program this |
| field to Zero. PDG will use this field to populate the |
| NDP response frame |
| <legal all> |
| */ |
| |
| #define PDG_RESPONSE_ADDRESS_INDICATOR_OFFSET 0x0000000000000020 |
| #define PDG_RESPONSE_ADDRESS_INDICATOR_LSB 28 |
| #define PDG_RESPONSE_ADDRESS_INDICATOR_MSB 28 |
| #define PDG_RESPONSE_ADDRESS_INDICATOR_MASK 0x0000000010000000 |
| |
| |
| /* Description BANDWIDTH |
| |
| Packet bandwidth: |
| |
| <enum 0 20_mhz>20 Mhz BW |
| <enum 1 40_mhz>40 Mhz BW |
| <enum 2 80_mhz>80 Mhz BW |
| <enum 3 160_mhz>160 Mhz BW |
| <enum 4 320_mhz>320 Mhz BW |
| <enum 5 240_mhz>240 Mhz BW |
| */ |
| |
| #define PDG_RESPONSE_BANDWIDTH_OFFSET 0x0000000000000020 |
| #define PDG_RESPONSE_BANDWIDTH_LSB 29 |
| #define PDG_RESPONSE_BANDWIDTH_MSB 31 |
| #define PDG_RESPONSE_BANDWIDTH_MASK 0x00000000e0000000 |
| |
| |
| /* Description ACK_ID |
| |
| ACK_ID in NDP_ACK frames, NDP Modified ACK frames |
| |
| For BW > 1MHz |
| [15:0] = ack_id |
| |
| For BW = 1MHz |
| |
| [8:0] = ack_id |
| [15:9] = Reserved |
| For NDP BA |
| If BW=1MHz |
| [1:0] = Block ACK ID |
| [15:2] = Reserved |
| |
| If BW>1MHz |
| [5:0] = Block ACK ID |
| [15:2] = Reserved |
| <legal all> |
| */ |
| |
| #define PDG_RESPONSE_ACK_ID_OFFSET 0x0000000000000020 |
| #define PDG_RESPONSE_ACK_ID_LSB 32 |
| #define PDG_RESPONSE_ACK_ID_MSB 47 |
| #define PDG_RESPONSE_ACK_ID_MASK 0x0000ffff00000000 |
| |
| |
| /* Description BLOCK_ACK_BITMAP |
| |
| Block Ack bitmap field for generating the NDP BA frames |
| in 1MHz and >= 2MHz |
| <legal all> |
| */ |
| |
| #define PDG_RESPONSE_BLOCK_ACK_BITMAP_OFFSET 0x0000000000000020 |
| #define PDG_RESPONSE_BLOCK_ACK_BITMAP_LSB 48 |
| #define PDG_RESPONSE_BLOCK_ACK_BITMAP_MSB 63 |
| #define PDG_RESPONSE_BLOCK_ACK_BITMAP_MASK 0xffff000000000000 |
| |
| |
| /* Description RESPONSE_FRAME_TYPE |
| |
| Coex related field |
| <enum 0 Non_11ah_ACK > |
| <enum 1 Non_11ah_BA > also used for M-BA |
| <enum 2 Non_11ah_CTS > |
| <enum 3 AH_NDP_CTS> |
| <enum 4 AH_NDP_ACK> |
| <enum 5 AH_NDP_BA> |
| <enum 6 AH_NDP_MOD_ACK> |
| <enum 7 AH_Normal_ACK> |
| <enum 8 AH_Normal_BA> |
| <enum 9 RTT_ACK> |
| <enum 10 CBF_RESPONSE> |
| <enum 11 MBA> This can be a multi STA BA or multi TID BA |
| |
| <enum 12 Ranging_NDP> |
| <enum 13 LMR_RESPONSE> Ranging NDP response followed by |
| LMR response for Rx ranging NDPA followed by NDP |
| |
| <legal 0-13> |
| */ |
| |
| #define PDG_RESPONSE_RESPONSE_FRAME_TYPE_OFFSET 0x0000000000000028 |
| #define PDG_RESPONSE_RESPONSE_FRAME_TYPE_LSB 0 |
| #define PDG_RESPONSE_RESPONSE_FRAME_TYPE_MSB 3 |
| #define PDG_RESPONSE_RESPONSE_FRAME_TYPE_MASK 0x000000000000000f |
| |
| |
| /* Description ACK_ID_EXT |
| |
| This is populated by TxPCU from the RX_RESPONSE_REQUIRED_INFO.ack_id_ext. |
| |
| */ |
| |
| #define PDG_RESPONSE_ACK_ID_EXT_OFFSET 0x0000000000000028 |
| #define PDG_RESPONSE_ACK_ID_EXT_LSB 4 |
| #define PDG_RESPONSE_ACK_ID_EXT_MSB 13 |
| #define PDG_RESPONSE_ACK_ID_EXT_MASK 0x0000000000003ff0 |
| |
| |
| /* Description FTM_EN |
| |
| This field is set to 1 if the response packet is either |
| an FTM_1 or an FTM_2 packet or an HE-Ranging NDP (11az). |
| |
| |
| 0: non-FTM frame |
| 1: FTM or HE-Randing NDP Frame |
| <legal all> |
| */ |
| |
| #define PDG_RESPONSE_FTM_EN_OFFSET 0x0000000000000028 |
| #define PDG_RESPONSE_FTM_EN_LSB 14 |
| #define PDG_RESPONSE_FTM_EN_MSB 14 |
| #define PDG_RESPONSE_FTM_EN_MASK 0x0000000000004000 |
| |
| |
| /* Description GROUP_ID |
| |
| Specifies the Group ID of response frames transmitted at |
| VHT rates for MU transmissions. This filed applies to both |
| non-11ah and 11ah modes. |
| */ |
| |
| #define PDG_RESPONSE_GROUP_ID_OFFSET 0x0000000000000028 |
| #define PDG_RESPONSE_GROUP_ID_LSB 15 |
| #define PDG_RESPONSE_GROUP_ID_MSB 20 |
| #define PDG_RESPONSE_GROUP_ID_MASK 0x00000000001f8000 |
| |
| |
| /* Description STA_PARTIAL_AID |
| |
| In 11AH mode of Operation: |
| |
| This field is used to populate the ID field in the SIG PPDUs |
| of BW>1MHz and non-NDP frames. For example, the use case |
| would be in a Speed Frame Exchange, we may be generating |
| the SIG PPDU in response and this field is needed to populate |
| the ID field in the SIGA preamble . This value is based |
| on the Table provided by 9.17b section of the Draft P802.11ah_D1.1 |
| Specification |
| |
| In 11AH mode of Operation: |
| |
| This field is also used to populate the field of RA/Parial_BSSID |
| in the NDP CTS response frames In non-11AH mode: |
| |
| In non-11AH mode of Operation: |
| |
| Specifies the partial AID of response frames transmitted |
| at VHT rates. |
| <legal all> |
| */ |
| |
| #define PDG_RESPONSE_STA_PARTIAL_AID_OFFSET 0x0000000000000028 |
| #define PDG_RESPONSE_STA_PARTIAL_AID_LSB 21 |
| #define PDG_RESPONSE_STA_PARTIAL_AID_MSB 31 |
| #define PDG_RESPONSE_STA_PARTIAL_AID_MASK 0x00000000ffe00000 |
| |
| |
| /* Description NDP_BA_START_SEQ_CTRL |
| |
| Starting Sequence Control - Sequence number of the first |
| MPDU in the frame soliciting the Block Ack. |
| */ |
| |
| #define PDG_RESPONSE_NDP_BA_START_SEQ_CTRL_OFFSET 0x0000000000000028 |
| #define PDG_RESPONSE_NDP_BA_START_SEQ_CTRL_LSB 32 |
| #define PDG_RESPONSE_NDP_BA_START_SEQ_CTRL_MSB 43 |
| #define PDG_RESPONSE_NDP_BA_START_SEQ_CTRL_MASK 0x00000fff00000000 |
| |
| |
| /* Description ACTIVE_CHANNEL |
| |
| This field indicates the active frequency band when the |
| packet bandwidth is less than the channel bandwidth. For |
| non 11ax packets this is same as the primary channel |
| <legal all> |
| */ |
| |
| #define PDG_RESPONSE_ACTIVE_CHANNEL_OFFSET 0x0000000000000028 |
| #define PDG_RESPONSE_ACTIVE_CHANNEL_LSB 44 |
| #define PDG_RESPONSE_ACTIVE_CHANNEL_MSB 46 |
| #define PDG_RESPONSE_ACTIVE_CHANNEL_MASK 0x0000700000000000 |
| |
| |
| /* Description TXOP_DURATION_ALL_ONES |
| |
| When set, either the TXOP_DURATION of the received frame |
| was set to all 1s or there is a BSS color collision. The |
| TXOP_DURATION of the transmit response should be forced |
| to all 1s. |
| |
| <legal all> |
| */ |
| |
| #define PDG_RESPONSE_TXOP_DURATION_ALL_ONES_OFFSET 0x0000000000000028 |
| #define PDG_RESPONSE_TXOP_DURATION_ALL_ONES_LSB 47 |
| #define PDG_RESPONSE_TXOP_DURATION_ALL_ONES_MSB 47 |
| #define PDG_RESPONSE_TXOP_DURATION_ALL_ONES_MASK 0x0000800000000000 |
| |
| |
| /* Description FRAME_LENGTH |
| |
| The response frame length in bytes |
| (This includes the FCS field) |
| <legal all> |
| */ |
| |
| #define PDG_RESPONSE_FRAME_LENGTH_OFFSET 0x0000000000000028 |
| #define PDG_RESPONSE_FRAME_LENGTH_LSB 48 |
| #define PDG_RESPONSE_FRAME_LENGTH_MSB 63 |
| #define PDG_RESPONSE_FRAME_LENGTH_MASK 0xffff000000000000 |
| |
| |
| |
| #endif // PDG_RESPONSE |