HWDESC
[HAL]

HW descriptor definitions. More...

Collaboration diagram for HWDESC:

Data Structures

struct  machdr
 MAC header content as defined in the MAC HW User Manual transmit MPDU template. More...
struct  tx_policy_tbl
 Policy Table Structure used to store Policy Table Information used by MAC HW to prepare transmit vector to used by PHY. More...
struct  tx_compressed_policy_tbl
 Compressed Policy Table Structure used to store Policy Table Information used by MAC HW to get TX information for secondary users in case of MU-MIMO PPDU transmission. More...
struct  tx_hd
 Definition of a TX header descriptor. More...
struct  tx_pbd
 Definition of a TX payload buffer descriptor. More...
struct  tx_dmadesc
 Definition of a TX DMA descriptor. More...
struct  rx_vector_1
 Structure for receive Vector 1. More...
struct  rx_vector_2
 Structure for receive Vector 2. More...
struct  rx_hd
 Element in the pool of RX header descriptor. More...
struct  rx_pbd
 Element in the pool of rx payload buffer descriptors. More...
struct  rx_dmadesc
 Definition of a Rx DMA header descriptor. More...
struct  rx_payloaddesc
 Definition of a Rx DMA payload descriptor. More...
struct  tx_cfm_tag
 Structure indicating the status and other information about the transmission. More...
struct  tx_hw_desc
 Definition of a TX confirmation descriptor. More...
struct  debug_info_tag
 Control structure used for the debug information dump. More...

Defines

#define RADAR_PULSE_MAX   4
 Number of pulses in a radar event structure.
#define RADAR_EVENT_MAX   10
 Number of radar event structures.
#define UNSUP_RX_VECT_MAX   8
 Number of rx vectors of unsupported frames.
#define TX_HEADER_DESC_PATTERN   0xCAFEBABE
 uPattern for TX header descriptor.
#define TX_PAYLOAD_DESC_PATTERN   0xCAFEFADE
 uPattern for TX buffer descriptor
#define RX_HEADER_DESC_PATTERN   0xBAADF00D
 uPattern for RX header descriptor.
#define RX_PAYLOAD_DESC_PATTERN   0xC0DEDBAD
 uPattern for RX payload descriptor.
#define TBD_DONE_HW   CO_BIT(31)
 Flag indicating if HW handled the buffer.
#define TBD_INTERRUPT_EN   CO_BIT(0)
 Bit allowing to request HW to generate an interrupt upon a payload buffer transmission.
#define SOUNDING_TX_BIT   CO_BIT(0)
 Sounding of PPDU Frame Transmission (Bit 0).
#define SMOOTHING_TX_BIT   CO_BIT(1)
 Smoothing for PPDU frames (Bit 1).
#define SMOOTHING_PROT_TX_BIT   CO_BIT(2)
 Smoothing for Control frames (Bit 2).
#define USE_BW_SIG_TX_BIT   CO_BIT(3)
 Use BW signaling bit.
#define DYN_BW_TX_BIT   CO_BIT(4)
 Dynamic BW.
#define DOZE_ALLOWED_TX_BIT   CO_BIT(5)
 Doze allowed by AP during TXOP.
#define CONT_TX_BIT   CO_BIT(6)
 Continuous transmit.
#define USER_POS_OFT   12
 User Position field offset.
#define USER_POS_MASK   (0x3 << USER_POS_OFT)
 User Position field mask.
#define USE_RIFS_TX_BIT   CO_BIT(14)
 Use RIFS for Transmission (Bit 14).
#define USE_MUMIMO_TX_BIT   CO_BIT(15)
 Use MU-MIMO for Transmission (Bit 15).
#define GID_TX_OFT   16
 GroupId field offset.
#define GID_TX_MASK   (0x3F << GID_TX_OFT)
 GroupId field mask.
#define PAID_TX_OFT   22
 Partial AID field offset.
#define PAID_TX_MASK   (0x1FF << PAID_TX_OFT)
 Partial AID field mask.
#define PROT_FRM_DURATION_OFT   16
 Protection Frame Duration offset.
#define PROT_FRM_DURATION_MSK   (0xFFFF << PROT_FRM_DURATION_OFT)
 Protection Frame Duration mask.
#define WRITE_ACK   CO_BIT(14)
 Set if ACK has to be passed to SW.
#define LOW_RATE_RETRY   CO_BIT(13)
 Set if lower rates have to be used for retries.
#define LSTP_PROT   CO_BIT(12)
 L-SIG TXOP Protection for protection frame.
#define LSTP   CO_BIT(11)
 L-SIG TXOP Protection.
#define EXPECTED_ACK_OFT   9
 Expected Acknowledgment offset.
#define EXPECTED_ACK_MSK   (0x3 << EXPECTED_ACK_OFT)
 Expected Acknowledgment mask.
#define EXPECTED_ACK_NO_ACK   (0x0 << EXPECTED_ACK_OFT)
 No acknowledgment.
#define EXPECTED_ACK_NORMAL_ACK   (0x1 << EXPECTED_ACK_OFT)
 Normal acknowledgment.
#define EXPECTED_ACK_BLOCK_ACK   (0x2 << EXPECTED_ACK_OFT)
 Uncompressed block acknowledgment.
#define EXPECTED_ACK_COMPRESSED_BLOCK_ACK   (0x3 << EXPECTED_ACK_OFT)
 Compressed block acknowledgment.
#define TS_VALID_BIT   CO_BIT(0)
 Type and Subtype fields Valid bit.
#define FRM_TYPE_OFT   1
 Type field offset.
#define FRM_TYPE_MSK   (0x3<<FRM_TYPE_OFT)
 Type field mask.
#define FRM_TYPE_MNG   (0<<FRM_TYPE_OFT)
 Management type.
#define FRM_TYPE_CNTL   (1<<FRM_TYPE_OFT)
 Control type.
#define FRM_TYPE_DATA   (2<<FRM_TYPE_OFT)
 Data type.
#define FRM_SUBTYPE_OFT   3
 Subtype field offset.
#define FRM_SUBTYPE_MSK   (0xF<<FRM_SUBTYPE_OFT)
 Subtype field mask.
#define FRM_CNTL_SUBTYPE_BAR   (8<<FRM_SUBTYPE_OFT)
 BAR subtype.
#define FRM_CNTL_SUBTYPE_BA   (9<<FRM_SUBTYPE_OFT)
 BA subtype.
#define INTERRUPT_EN_TX   CO_BIT(8)
 Bit indicating if an interrupt has to be set or not once packet is transmitted.
#define NB_BLANK_DELIM_OFT   9
 Offset of Number of Blank delimiters.
#define NB_BLANK_DELIM_MSK   (0x3FF << NB_BLANK_DELIM_OFT)
 Mask of Number of Blank delimiters.
#define WHICHDESC_OFT   19
 WhichDescriptor definition - contains aMPDU bit and position value Offset of WhichDescriptor field in the MAC CONTROL INFO 2 word.
#define WHICHDESC_MSK   (0x07 << WHICHDESC_OFT)
 Mask of the WhichDescriptor field.
#define WHICHDESC_UNFRAGMENTED_MSDU   (0x00 << WHICHDESC_OFT)
 Only 1 THD possible, describing an unfragmented MSDU.
#define WHICHDESC_FRAGMENTED_MSDU_FIRST   (0x01 << WHICHDESC_OFT)
 THD describing the first MPDU of a fragmented MSDU.
#define WHICHDESC_FRAGMENTED_MSDU_INT   (0x02 << WHICHDESC_OFT)
 THD describing intermediate MPDUs of a fragmented MSDU.
#define WHICHDESC_FRAGMENTED_MSDU_LAST   (0x03 << WHICHDESC_OFT)
 THD describing the last MPDU of a fragmented MSDU.
#define WHICHDESC_AMPDU_EXTRA   (0x04 << WHICHDESC_OFT)
 THD for extra descriptor starting an AMPDU.
#define WHICHDESC_AMPDU_FIRST   (0x05 << WHICHDESC_OFT)
 THD describing the first MPDU of an A-MPDU.
#define WHICHDESC_AMPDU_INT   (0x06 << WHICHDESC_OFT)
 THD describing intermediate MPDUs of an A-MPDU.
#define WHICHDESC_AMPDU_LAST   (0x07 << WHICHDESC_OFT)
 THD describing the last MPDU of an A-MPDU.
#define AMPDU_OFT   21
 aMPDU bit offset
#define AMPDU_BIT   CO_BIT(AMPDU_OFT)
 aMPDU bit
#define UNDER_BA_SETUP_BIT   CO_BIT(22)
 Under BA setup bit.
#define DONT_TOUCH_DUR   CO_BIT(28)
 Don't touch duration bit.
#define NUM_RTS_RETRIES_OFT   0
 Number of RTS frame retries offset.
#define NUM_RTS_RETRIES_MSK   (0xFF << NUM_RTS_RETRIES_OFT)
 Number of RTS frame retries mask.
#define NUM_MPDU_RETRIES_OFT   8
 Number of MPDU frame retries offset.
#define NUM_MPDU_RETRIES_MSK   (0xFF << NUM_MPDU_RETRIES_OFT)
 Number of MPDU frame retries mask.
#define RETRY_LIMIT_REACHED_BIT   CO_BIT(16)
 Retry limit reached: frame unsuccessful.
#define LIFETIME_EXPIRED_BIT   CO_BIT(17)
 Frame lifetime expired: frame unsuccessful.
#define BA_FRAME_RECEIVED_BIT   CO_BIT(18)
 BA frame not received - valid only for MPDUs part of AMPDU.
#define HE_TB_TX_BIT   CO_BIT(22)
 Frame was transmitted in a HE TB PPDU - Set by SW.
#define FRAME_SUCCESSFUL_TX_BIT   CO_BIT(23)
 Frame successful by TX DMA: Ack received successfully.
#define A_MPDU_LAST   (0x0F << 26)
 Last MPDU of an A-MPDU.
#define BW_TX_OFT   24
 Transmission bandwidth offset.
#define BW_TX_MSK   (0x3 << BW_TX_OFT)
 Transmission bandwidth mask.
#define BW_20MHZ_TX   (0x0 << BW_TX_OFT)
 Transmission bandwidth - 20MHz.
#define BW_40MHZ_TX   (0x1 << BW_TX_OFT)
 Transmission bandwidth - 40MHz.
#define BW_80MHZ_TX   (0x2 << BW_TX_OFT)
 Transmission bandwidth - 80MHz.
#define BW_160MHZ_TX   (0x3 << BW_TX_OFT)
 Transmission bandwidth - 160MHz.
#define DESC_DONE_TX_BIT   CO_BIT(31)
 Descriptor done bit: Set by HW for TX DMA.
#define DESC_DONE_SW_TX_BIT   CO_BIT(30)
 Descriptor done bit: Set by SW for TX DMA.
#define RXL_HWDESC_RXV_LEN   40
 Length of the receive vectors.

Enumerations

enum  {
  HW_RATE_1MBPS = 0, HW_RATE_2MBPS, HW_RATE_5_5MBPS, HW_RATE_11MBPS,
  HW_RATE_6MBPS, HW_RATE_9MBPS, HW_RATE_12MBPS, HW_RATE_18MBPS,
  HW_RATE_24MBPS, HW_RATE_36MBPS, HW_RATE_48MBPS, HW_RATE_54MBPS
}
 

legacy RATE definitions

More...

Functions

__INLINE int8_t hal_desc_get_rssi (struct rx_vector_1 *rx_vec_1, int8_t *rx_rssi)
 Retrieve the RSSI values from the RX vector.
__INLINE uint16_t hal_desc_get_ht_length (struct rx_vector_1 *rx_vec_1)
 Retrieve the length of the HT PPDU from the RX vector.
__INLINE uint8_t hal_desc_get_rx_format (struct rx_vector_1 *rx_vec_1)
 Retrieve the modulation format from the RX vector.
__INLINE uint8_t hal_desc_get_preamble_type (struct rx_vector_1 *rx_vec_1)
 Retrieve the preamble type (short/long) of the RX vector.
__INLINE uint8_t hal_desc_get_legacy_rate (struct rx_vector_1 *rx_vec_1)
 Retrieve Legacy Rate of the PPDU from the RX vector.

Variables

struct tx_hw_desc tx_hw_desc0 [RW_USER_MAX *NX_TXDESC_CNT0]
 Array of HW descriptors for BK queue.
struct tx_hw_desc tx_hw_desc1 [RW_USER_MAX *NX_TXDESC_CNT1]
 Array of HW descriptors for BE queue.
struct tx_hw_desc tx_hw_desc2 [RW_USER_MAX *NX_TXDESC_CNT2]
 Array of HW descriptors for VI queue.
struct tx_hw_desc tx_hw_desc3 [RW_USER_MAX *NX_TXDESC_CNT3]
 Array of HW descriptors for VO queue.
struct tx_hw_desc tx_hw_desc4 [NX_TXDESC_CNT4]
 Array of HW descriptors for BCN queue.
struct dma_desc bcn_dwnld_desc
 IPC DMA control structure for beacon download.
struct dma_desc bcn_dwnld_desc
 IPC DMA control structure for beacon download.
struct tx_hw_desc tx_hw_desc0 [RW_USER_MAX *NX_TXDESC_CNT0]
 Array of HW descriptors for BK queue.
struct tx_hw_desc tx_hw_desc1 [RW_USER_MAX *NX_TXDESC_CNT1]
 Array of HW descriptors for BE queue.
struct tx_hw_desc tx_hw_desc2 [RW_USER_MAX *NX_TXDESC_CNT2]
 Array of HW descriptors for VI queue.
struct tx_hw_desc tx_hw_desc3 [RW_USER_MAX *NX_TXDESC_CNT3]
 Array of HW descriptors for VO queue.
struct tx_hw_desc tx_hw_desc4 [NX_TXDESC_CNT4]
 Array of HW descriptors for BCN queue.
struct machw_mib_tag machw_mib
 Context variable for MIB.

Policy table definitions



#define RATE_CONTROL_STEPS   4
 Number of rate control steps in the policy table.
#define POLICY_TABLE_PATTERN   0xBADCAB1E
 uPattern for Policy Table
#define BF_FORM_EXT_PT_OFT   3
 Beam Forming Frame Exchange offset.
#define BF_FORM_EXT_PT_MASK   (0x1 << BF_FORM_EXT_PT_OFT)
 Beam Forming Frame Exchange mask.
#define NO_EXTN_SS_PT_OFT   4
 Number of Extension Spatial Streams offset.
#define NO_EXTN_SS_PT_MASK   (0x3 << NO_EXTN_SS_PT_OFT)
 Number of Extension Spatial Streams mask.
#define FEC_CODING_PT_OFT   6
 FEC Coding offset.
#define FEC_CODING_PT_BIT   CO_BIT(FEC_CODING_PT_OFT)
 FEC Coding bit.
#define STBC_PT_OFT   7
 Space Time Block Coding offset.
#define STBC_PT_MASK   (0x3 << STBC_PT_OFT)
 Space Time Block Coding mask.
#define NX_TX_PT_OFT   14
 Number of Transmit Chains for PPDU offset.
#define NX_TX_PT_MASK   (0x7 << NX_TX_PT_OFT)
 Number of Transmit Chains for PPDU mask.
#define NX_TX_PROT_PT_OFT   17
 Number of Transmit Chains for Protection Frame offset.
#define NX_TX_PROT_PT_MASK   (0x7 << NX_TX_PROT_PT_OFT)
 Number of Transmit Chains for Protection Frame mask.
#define DOPPLER_OFT   20
 Doppler offset.
#define DOPPLER_BIT   CO_BIT(DOPPLER_OFT)
 Doppler bit.
#define SPATIAL_REUSE_OFT   24
 Spatial reuse offset.
#define SPATIAL_REUSE_MASK   (0xF << SPATIAL_REUSE_OFT)
 Spatial reuse mask.
#define ANTENNA_SET_PT_OFT   0
 Antenna Set offset.
#define ANTENNA_SET_PT_MASK   0XFF
 Antenna Set mask.
#define SMM_INDEX_PT_OFT   8
 Spatial Map Matrix Index offset.
#define SMM_INDEX_PT_MASK   (0XFF << SMM_INDEX_PT_OFT)
 Spatial Map Matrix Index mask.
#define BMFED_OFT   16
 Beamformed Offset.
#define BMFED_BIT   CO_BIT(BMFED_OFT)
 Beamformed Bit.
#define BMCHANGE_OFT   17
 Beam Change Offset.
#define BMCHANGE_BIT   CO_BIT(BMCHANGE_OFT)
 Beam Change Bit.
#define UPLINK_FLAG_OFT   18
 Uplink Flag Offset.
#define UPLINK_FLAG_BIT   CO_BIT(UPLINK_FLAG_OFT)
 Uplink Flag Bit.
#define BSS_COLOR_OFT   20
 BSS Color offset.
#define BSS_COLOR_MASK   (0X3F << BSS_COLOR_OFT)
 BSS Color mask.
#define PKT_EXTENSION_OFT   26
 Packet Extension offset.
#define PKT_EXTENSION_MASK   (0X07 << PKT_EXTENSION_OFT)
 Packet Extension mask.
#define KEYSRAM_INDEX_OFT   0
 Key Storage RAM Index offset.
#define KEYSRAM_INDEX_MASK   (0X3FF << KEYSRAM_INDEX_OFT)
 Key Storage RAM Index mask.
#define KEYSRAM_INDEX_RA_OFT   10
 Key Storage RAM Index for Receiver Address offset.
#define KEYSRAM_INDEX_RA_MASK   (0X3FF << KEYSRAM_INDEX_RA_OFT)
 Key Storage RAM Index for Receiver Address mask.
#define LONG_RETRY_LIMIT_OFT   0
 dot11LongRetryLimit MIB Value offset
#define LONG_RETRY_LIMIT_MASK   (0XFF << LONG_RETRY_LIMIT_OFT)
 dot11LongRetryLimit MIB Value mask
#define SHORT_RETRY_LIMIT_OFT   8
 dot11ShortRetryLimit MIB Value offset
#define SHORT_RETRY_LIMIT_MASK   (0XFF << SHORT_RETRY_LIMIT_OFT)
 dot11ShortRetryLimit MIB Value mask
#define RTS_THRSHOLD_OFT   16
 dot11RtsThrshold MIB Value offset
#define RTS_THRSHOLD_MASK   (0XFF << RTS_THRSHOLD_OFT)
 dot11RtsThrshold MIB Value mask
#define MCS_INDEX_TX_RCX_OFT   0
 MCS Index offset.
#define MCS_INDEX_TX_RCX_MASK   (0X7F << MCS_INDEX_TX_RCX_OFT)
 MCS Index mask.
#define BW_TX_RCX_OFT   7
 Bandwidth for transmission offset.
#define BW_TX_RCX_MASK   (0X3 << BW_TX_RCX_OFT)
 Bandwidth for transmission mask.
#define SHORT_GI_TX_RCX_OFT   9
 Short Guard Interval for Transmission offset.
#define SHORT_GI_TX_RCX_MASK   (0x1 << SHORT_GI_TX_RCX_OFT)
 Short Guard Interval for Transmission mask.
#define PRE_TYPE_TX_RCX_OFT   10
 Preamble type for 11b Transmission offset.
#define PRE_TYPE_TX_RCX_MASK   (0x1 << PRE_TYPE_TX_RCX_OFT)
 Preamble type for 11b Transmission mask.
#define HE_GI_TYPE_TX_RCX_OFT   9
 Guard Interval/Preamble type for Transmission offset.
#define HE_GI_TYPE_TX_RCX_MASK   (0x3 << HE_GI_TYPE_TX_RCX_OFT)
 Guard Interval/Preamble for Transmission mask.
#define GI_TYPE_0_8   (0x0 << HE_GI_TYPE_TX_RCX_OFT)
 HE 0.8us GI.
#define GI_TYPE_1_6   (0x1 << HE_GI_TYPE_TX_RCX_OFT)
 HE 1.6us GI.
#define GI_TYPE_3_2   (0x2 << HE_GI_TYPE_TX_RCX_OFT)
 HE 3.2us GI.
#define FORMAT_MOD_TX_RCX_OFT   11
 Format of the modulation offset.
#define FORMAT_MOD_TX_RCX_MASK   (0X7 << FORMAT_MOD_TX_RCX_OFT)
 Format of the modulation mask.
#define PROT_FRM_EX_RCX_OFT   14
 Type of NAV protection frame exchange offset.
#define PROT_FRM_EX_RCX_MASK   (0X7 << PROT_FRM_EX_RCX_OFT)
 Type of NAV protection frame exchange mask.
#define PROT_NO_PROT   (0x0 << PROT_FRM_EX_RCX_OFT)
 No protection.
#define PROT_SELF_CTS   (0x1 << PROT_FRM_EX_RCX_OFT)
 Self-CTS.
#define PROT_RTS_CTS   (0x2 << PROT_FRM_EX_RCX_OFT)
 RTS-CTS with intended receiver.
#define PROT_RTS_CTS_WITH_QAP   (0x3 << PROT_FRM_EX_RCX_OFT)
 RTS-CTS with QAP.
#define PROT_STBC   (0x4 << PROT_FRM_EX_RCX_OFT)
 STBC protection.
#define MCS_INDEX_PROT_TX_RCX_OFT   17
 MCS Index for protection frame offset.
#define MCS_INDEX_PROT_TX_RCX_MASK   (0x7F << MCS_INDEX_PROT_TX_RCX_OFT)
 MCS Index for protection frame mask.
#define BW_PROT_TX_RCX_OFT   24
 Bandwidth for protection frame transmission offset.
#define BW_PROT_TX_RCX_MASK   (0x3 << BW_PROT_TX_RCX_OFT)
 Bandwidth for protection frame transmission mask.
#define FORMAT_MOD_PROT_TX_RCX_OFT   26
 Format of the modulation for the protection frame offset.
#define FORMAT_MOD_PROT_TX_RCX_MASK   (0x7 << FORMAT_MOD_PROT_TX_RCX_OFT)
 Format of the modulation for the protection frame mask.
#define N_RETRY_RCX_OFT   29
 Number of retries at this rate offset.
#define N_RETRY_RCX_MASK   (0x7 << N_RETRY_RCX_OFT)
 Number of retries at this rate mask.
#define FORMATMOD_NON_HT   0
 Non-HT format.
#define FORMATMOD_NON_HT_DUP_OFDM   1
 Non-HT duplicate OFDM format.
#define FORMATMOD_HT_MF   2
 HT mixed mode format.
#define FORMATMOD_HT_GF   3
 HT greenfield format.
#define FORMATMOD_VHT   4
 VHT format.
#define FORMATMOD_HE_SU   5
 HE-SU format.
#define FORMATMOD_HE_MU   6
 HE-MU format.
#define FORMATMOD_HE_ER   7
 HE-ER format.
#define BW_20MHZ   0
 20 MHz bandwidth
#define BW_40MHZ   1
 40 MHz bandwidth
#define BW_80MHZ   2
 80 MHz bandwidth
#define BW_160MHZ   3
 160 or 80+80 MHz bandwidth
#define VHT_NSS_OFT   4
 VHT Nss offset.
#define VHT_NSS_MASK   (0x7 << VHT_NSS_OFT)
 VHT Nss mask.
#define VHT_MCS_OFT   0
 VHT MCS offset.
#define VHT_MCS_MASK   (0xF << VHT_MCS_OFT)
 VHT MCS mask.
#define HT_NSS_OFT   3
 Offset of the NSS in a HT MCS value (valid for MCS <= 31).
#define HT_NSS_MASK   (0x3 << HT_NSS_OFT)
 Mask of the NSS in a HT MCS value (valid for MCS <= 31).
#define HT_MCS_OFT   0
 Offset of the MCS in a HT MCS value (valid for MCS <= 31).
#define HT_MCS_MASK   (0x7 << HT_MCS_OFT)
 Mask of the MCS in a HT MCS value (valid for MCS <= 31).
#define TX_PWR_LEVEL_PT_RCX_OFT   0
 Transmit Power Level for RCX offset.
#define TX_PWR_LEVEL_PT_RCX_MASK   (0xff << TX_PWR_LEVEL_PT_RCX_OFT)
 Transmit Power Level for RCX mask.
#define TX_PWR_LEVEL_PROT_PT_RCX_OFT   8
 Transmit Power Level of Protection for RCX offset.
#define TX_PWR_LEVEL_PROT_PT_RCX_MASK   (0xff << TX_PWR_LEVEL_PROT_PT_RCX_OFT)
 Transmit Power Level of Protection for RCX mask.
#define TX_PWR_LEVEL_MASK   (TX_PWR_LEVEL_PT_RCX_MASK | TX_PWR_LEVEL_PROT_PT_RCX_MASK)
 Transmit Power Level mask.
#define TX_PWR_LEVEL_SET(pwr)
 Macro used to compute both the Protection and Data power indexes.
#define TX_HE_LTF_TYPE_PT_RCX_OFT   16
 HE LTF type for RCX offset.
#define TX_HE_LTF_TYPE_PT_RCX_MASK   (0x03 << TX_HE_LTF_TYPE_PT_RCX_OFT)
 HE LTF type for RCX mask.
#define TX_1x_HE_LTF_FOR_3_2_US   (0x00 << TX_HE_LTF_TYPE_PT_RCX_OFT)
 1x HE-LTF for 3.2 µs
#define TX_2x_HE_LTF_FOR_6_4_US   (0x01 << TX_HE_LTF_TYPE_PT_RCX_OFT)
 2x HE-LTF for 6.4 µs
#define TX_4x_HE_LTF_FOR_12_8_US   (0x02 << TX_HE_LTF_TYPE_PT_RCX_OFT)
 4x HE-LTF for 12.8 µs
#define TX_HE_DCM_OFT   18
 DCM bit offset.
#define TX_HE_DCM_BIT   CO_BIT(TX_HE_DCM_OFT)
 DCM Bit.

Compressed Policy table definitions



#define MCS_IDX_TX_CPT_OFT   0
 MCS index offset.
#define MCS_IDX_TX_CPT_MASK   (0x7F << MCS_IDX_TX_CPT_OFT)
 MCS index mask.
#define FEC_CODING_CPT_OFT   7
 FEC Coding offset.
#define FEC_CODING_CPT_BIT   CO_BIT(FEC_CODING_CPT_OFT)
 FEC Coding bit.
#define SMM_INDEX_CPT_OFT   8
 Spatial Map Matrix Index offset.
#define SMM_INDEX_CPT_MASK   (0XFF << SMM_INDEX_CPT_OFT)
 Spatial Map Matrix Index mask.
#define KEYSRAM_INDEX_CPT_OFT   16
 Key Storage RAM Index offset.
#define KEYSRAM_INDEX_CPT_MASK   (0X3FF << KEYSRAM_INDEX_OFT)
 Key Storage RAM Index mask.

RHD STATINFO



#define KEY_IDX_OFT   15
 Key index offset.
#define KEY_IDX_MSK   (0x3FF << KEY_IDX_OFT)
 Key index mask.
#define KEY_IDX_VALID_BIT   CO_BIT(25)
 Key index valid bit.
#define IMM_RSP_AC_OFT   11
 Immediate response access category offset.
#define IMM_RSP_AC_MSK   (0x03 << IMM_RSP_AC_OFT)
 Immediate response access category mask.
#define RX_PD_LASTBUF   0x0001
 Last buffer of the MPDU.
#define RX_PD_DONE   0x0002
 Descriptor Done in HW.
#define RX_HD_KEYIDV   0x02000000
 Storage RAM key index valid bit.
#define RX_HD_KEYID   0x01FF8000
 Storage RAM key index.
#define RX_HD_KEYID_LSB   15
 Lowest significant bit of the storage RAM key index.
#define RX_HD_DONE   0x00004000
 Done bit.
#define RX_HD_SUCCESS   0x00002000
 Frame successfully received bit.
#define RX_HD_GA_FRAME   0x00000400
 Group Addressed frame bit.
#define RX_HD_ADDRMIS   0x00000200
 Address mismatch bit.
#define RX_HD_FCSERR   0x0100
 FCS error bit.
#define RX_HD_PHY_ERR   0x00000080
 PHY error bit.
#define RX_HD_UNDEF_ERR   0x00000040
 Undefined error bit.
#define RX_HD_DECRSTATUS   0x0000001C
 Decryption status mask.
#define RX_HD_DECR_UNENC   0x0000
 Frame unencrypted.
#define RX_HD_DECR_WEP_SUCCESS   0x0014
 MAC security type WEP.
#define RX_HD_DECR_TKIP_SUCCESS   0x0018
 MAC security type TKIP.
#define RX_HD_DECR_CCMP128_SUCCESS   0x001C
 MAC security type CCMP.
#define RX_HD_RSP_FRM   0x00000002
 Is response frame bit.
#define RX_HD_RXVEC2V   0x00000001
 Vector 2 valid bit.
#define RX_HD_KEYID_GET(__s)   (((__s) & RX_HD_KEYID) >> RX_HD_KEYID_LSB)
 Macro to retrieve the storage RAM key index for the received frame.
#define RX_HD_DONE_GET(__s)   ((__s) & RX_HD_DONE)
 Macro to retrieve the done bit of the received frame.
#define RX_HD_SUCCESS_GET(__s)   ((__s) & (RX_HD_SUCCESS | RX_HD_FCSERR))
 Macro to retrieve the success bit of the received frame.

RX VECTOR related definitions.



#define RXVEC1_NUM_REG   4
 Number of 32 bits registers forming the RX vector.
#define RXVEC_LEGRATE(__x)   (((__x) & 0x0000F000) >> 12)
 Macro retrieving the legacy rate of the RX vector.
#define RXVEC_HTLENGTH_0(__x)   (((__x) & 0xFFFF0000) >> 16)
 Macro retrieving the HT length [15:0] of the RX vector.
#define RXVEC_HTLENGTH_1(__x)   (((__x) & 0x0000000F))
 Macro retrieving the HT length [19:16] of the RX vector.
#define RXVEC_PRETYPE(__x)   (((__x) & 0x00008000) >> 15)
 Macro retrieving the preamble type of the RX vector.
#define RXVEC_FORMATMOD(__x)   (((__x) & 0x00070000) >> 16)
 Macro retrieving the modulation format of the RX vector.
#define RXVEC_RSSI1(__x)   (((__x) & 0xFF000000) >> 24)
 Macro retrieving the 1st chain RSSI of the RX vector.
#define RXVEC_RSSI2(__x)   (((__x) & 0x000000FF))
 Macro retrieving the 2nd chain RSSI of the RX vector.

AMPDU Status Information related definitions.

Macro retrieving the A-MPDU counter

Parameters:
[in] __x AMPDU Status Information value.


#define RX_AMPDU_AMPDUCNT(__x)   (((__x) & 0xC000) >> 14)
 Macro retrieving the MPDU Counter inside the A-MPDU.
#define RX_AMPDU_MPDUCNT(__x)   ((__x) & 0x3F00)
 Macro retrieving the MPDU Counter inside the A-MPDU.

Detailed Description

HW descriptor definitions.


Define Documentation

#define FORMATMOD_HE_MU   6

HE-MU format.

Note:
This format cannot be used in the policy table but is used when reporting HE TB transmissions/MU receptions to upper layers

Definition at line 450 of file hal_desc.h.

Referenced by rc_get_mcs_index(), and rc_get_nss().

#define RX_AMPDU_AMPDUCNT ( __x   )     (((__x) & 0xC000) >> 14)

Macro retrieving the MPDU Counter inside the A-MPDU.

Parameters:
[in] __x AMPDU Status Information value.

Definition at line 715 of file hal_desc.h.

#define RX_AMPDU_MPDUCNT ( __x   )     ((__x) & 0x3F00)

Macro retrieving the MPDU Counter inside the A-MPDU.

Parameters:
[in] __x AMPDU Status Information value.

Definition at line 718 of file hal_desc.h.

#define RX_HD_DONE_GET ( __s   )     ((__s) & RX_HD_DONE)

Macro to retrieve the done bit of the received frame.

Parameters:
[in] __s MPDU status information from the RX header descriptor.

Definition at line 639 of file hal_desc.h.

#define RX_HD_KEYID_GET ( __s   )     (((__s) & RX_HD_KEYID) >> RX_HD_KEYID_LSB)

Macro to retrieve the storage RAM key index for the received frame.

Parameters:
[in] __s MPDU status information from the RX header descriptor.

Definition at line 636 of file hal_desc.h.

Referenced by rxl_frame_handle().

#define RX_HD_SUCCESS_GET ( __s   )     ((__s) & (RX_HD_SUCCESS | RX_HD_FCSERR))

Macro to retrieve the success bit of the received frame.

Parameters:
[in] __s MPDU status information from the RX header descriptor.

Definition at line 642 of file hal_desc.h.

#define RXVEC_FORMATMOD ( __x   )     (((__x) & 0x00070000) >> 16)

Macro retrieving the modulation format of the RX vector.

Parameters:
[in] __x RX Vector 1B value.

Definition at line 692 of file hal_desc.h.

Referenced by hal_desc_get_rx_format().

#define RXVEC_HTLENGTH_0 ( __x   )     (((__x) & 0xFFFF0000) >> 16)

Macro retrieving the HT length [15:0] of the RX vector.

Parameters:
[in] __x RX Vector 1A value.

Definition at line 683 of file hal_desc.h.

Referenced by hal_desc_get_ht_length().

#define RXVEC_HTLENGTH_1 ( __x   )     (((__x) & 0x0000000F))

Macro retrieving the HT length [19:16] of the RX vector.

Parameters:
[in] __x RX Vector 1B value.

Definition at line 686 of file hal_desc.h.

#define RXVEC_LEGRATE ( __x   )     (((__x) & 0x0000F000) >> 12)

Macro retrieving the legacy rate of the RX vector.

Parameters:
[in] __x RX Vector 1A value.

Definition at line 680 of file hal_desc.h.

Referenced by hal_desc_get_legacy_rate().

#define RXVEC_PRETYPE ( __x   )     (((__x) & 0x00008000) >> 15)

Macro retrieving the preamble type of the RX vector.

Parameters:
[in] __x RX Vector 1B value.

Definition at line 689 of file hal_desc.h.

Referenced by hal_desc_get_preamble_type().

#define RXVEC_RSSI1 ( __x   )     (((__x) & 0xFF000000) >> 24)

Macro retrieving the 1st chain RSSI of the RX vector.

Parameters:
[in] __x RX Vector 1C value.

Definition at line 698 of file hal_desc.h.

Referenced by hal_desc_get_rssi().

#define RXVEC_RSSI2 ( __x   )     (((__x) & 0x000000FF))

Macro retrieving the 2nd chain RSSI of the RX vector.

Parameters:
[in] __x RX Vector 1D value.

Definition at line 705 of file hal_desc.h.

Referenced by hal_desc_get_rssi().

#define TX_PWR_LEVEL_SET ( pwr   ) 
Value:

Macro used to compute both the Protection and Data power indexes.

Definition at line 495 of file hal_desc.h.

Referenced by me_update_buffer_control(), mm_bcn_desc_prep(), tpc_update_frame_tx_power(), txl_fill_bar(), txl_frame_prepare(), and txu_cntrl_umacdesc_mgmt_prep().


Enumeration Type Documentation

anonymous enum

legacy RATE definitions

Enumerator:
HW_RATE_1MBPS 

1Mbps

HW_RATE_2MBPS 

2Mbps

HW_RATE_5_5MBPS 

5.5Mbps

HW_RATE_11MBPS 

11Mbps

HW_RATE_6MBPS 

6Mbps

HW_RATE_9MBPS 

9Mbps

HW_RATE_12MBPS 

12Mbps

HW_RATE_18MBPS 

18Mbps

HW_RATE_24MBPS 

24Mbps

HW_RATE_36MBPS 

36Mbps

HW_RATE_48MBPS 

48Mbps

HW_RATE_54MBPS 

54Mbps

Definition at line 723 of file hal_desc.h.


Function Documentation

__INLINE uint16_t hal_desc_get_ht_length ( struct rx_vector_1 rx_vec_1  ) 

Retrieve the length of the HT PPDU from the RX vector.

Parameters:
[in] rx_vec_1 Receive Vector 1
Returns:
HT PPDU length .

Definition at line 1196 of file hal_desc.h.

References rx_vector_1::recvec1a, rx_vector_1::recvec1c, and RXVEC_HTLENGTH_0.

__INLINE uint8_t hal_desc_get_legacy_rate ( struct rx_vector_1 rx_vec_1  ) 

Retrieve Legacy Rate of the PPDU from the RX vector.

Parameters:
[in] rx_vec_1 Receive Vector 1
Returns:
the Legacy Rate value.

Definition at line 1262 of file hal_desc.h.

References rx_vector_1::recvec1a, rx_vector_1::recvec1b, and RXVEC_LEGRATE.

Referenced by hal_machw_rx_bcn_duration().

__INLINE uint8_t hal_desc_get_preamble_type ( struct rx_vector_1 rx_vec_1  ) 

Retrieve the preamble type (short/long) of the RX vector.

Parameters:
[in] rx_vec_1 Receive Vector 1
Returns:
the preamble type.

Definition at line 1240 of file hal_desc.h.

References rx_vector_1::recvec1a, rx_vector_1::recvec1b, and RXVEC_PRETYPE.

Referenced by hal_machw_rx_bcn_duration().

__INLINE int8_t hal_desc_get_rssi ( struct rx_vector_1 rx_vec_1,
int8_t *  rx_rssi 
)

Retrieve the RSSI values from the RX vector.

Parameters:
[in] rx_vec_1 Receive Vector 1
[out] rx_rssi Array of RSSI values for each RX path.
Returns:
Average RSSI considering all RX paths.

Definition at line 1162 of file hal_desc.h.

References phy_get_nrx(), rx_vector_1::recvec1b, rx_vector_1::recvec1c, rx_vector_1::recvec1d, RXVEC_RSSI1, and RXVEC_RSSI2.

Referenced by rxu_mgt_frame_check().

__INLINE uint8_t hal_desc_get_rx_format ( struct rx_vector_1 rx_vec_1  ) 

Retrieve the modulation format from the RX vector.

Parameters:
[in] rx_vec_1 Receive Vector 1
Returns:
the modulation format value.

Definition at line 1218 of file hal_desc.h.

References rx_vector_1::recvec1a, rx_vector_1::recvec1b, and RXVEC_FORMATMOD.

Referenced by hal_machw_rx_bcn_duration().


Variable Documentation

Context variable for MIB.

In embedded, defined at specific address; otherwise, defined by other means

Definition at line 36 of file hal_mib.c.


Generated on 14 Jan 2020 for Ceva-RW WLAN FullMAC SW documentation by  doxygen 1.6.1