Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: ISC */
0002 
0003 #ifndef __MT7603_MAC_H
0004 #define __MT7603_MAC_H
0005 
0006 #define MT_RXD0_LENGTH          GENMASK(15, 0)
0007 #define MT_RXD0_PKT_TYPE        GENMASK(31, 29)
0008 
0009 #define MT_RXD0_NORMAL_ETH_TYPE_OFS GENMASK(22, 16)
0010 #define MT_RXD0_NORMAL_IP_SUM       BIT(23)
0011 #define MT_RXD0_NORMAL_UDP_TCP_SUM  BIT(24)
0012 #define MT_RXD0_NORMAL_GROUP_1      BIT(25)
0013 #define MT_RXD0_NORMAL_GROUP_2      BIT(26)
0014 #define MT_RXD0_NORMAL_GROUP_3      BIT(27)
0015 #define MT_RXD0_NORMAL_GROUP_4      BIT(28)
0016 
0017 enum rx_pkt_type {
0018     PKT_TYPE_TXS        = 0,
0019     PKT_TYPE_TXRXV      = 1,
0020     PKT_TYPE_NORMAL     = 2,
0021     PKT_TYPE_RX_DUP_RFB = 3,
0022     PKT_TYPE_RX_TMR     = 4,
0023     PKT_TYPE_RETRIEVE   = 5,
0024     PKT_TYPE_RX_EVENT   = 7,
0025 };
0026 
0027 #define MT_RXD1_NORMAL_BSSID        GENMASK(31, 26)
0028 #define MT_RXD1_NORMAL_PAYLOAD_FORMAT   GENMASK(25, 24)
0029 #define MT_RXD1_NORMAL_HDR_TRANS    BIT(23)
0030 #define MT_RXD1_NORMAL_HDR_OFFSET   BIT(22)
0031 #define MT_RXD1_NORMAL_MAC_HDR_LEN  GENMASK(21, 16)
0032 #define MT_RXD1_NORMAL_CH_FREQ      GENMASK(15, 8)
0033 #define MT_RXD1_NORMAL_KEY_ID       GENMASK(7, 6)
0034 #define MT_RXD1_NORMAL_BEACON_UC    BIT(5)
0035 #define MT_RXD1_NORMAL_BEACON_MC    BIT(4)
0036 #define MT_RXD1_NORMAL_BCAST        BIT(3)
0037 #define MT_RXD1_NORMAL_MCAST        BIT(2)
0038 #define MT_RXD1_NORMAL_U2M      BIT(1)
0039 #define MT_RXD1_NORMAL_HTC_VLD      BIT(0)
0040 
0041 #define MT_RXD2_NORMAL_NON_AMPDU    BIT(31)
0042 #define MT_RXD2_NORMAL_NON_AMPDU_SUB    BIT(30)
0043 #define MT_RXD2_NORMAL_NDATA        BIT(29)
0044 #define MT_RXD2_NORMAL_NULL_FRAME   BIT(28)
0045 #define MT_RXD2_NORMAL_FRAG     BIT(27)
0046 #define MT_RXD2_NORMAL_UDF_VALID    BIT(26)
0047 #define MT_RXD2_NORMAL_LLC_MIS      BIT(25)
0048 #define MT_RXD2_NORMAL_MAX_LEN_ERROR    BIT(24)
0049 #define MT_RXD2_NORMAL_AMSDU_ERR    BIT(23)
0050 #define MT_RXD2_NORMAL_LEN_MISMATCH BIT(22)
0051 #define MT_RXD2_NORMAL_TKIP_MIC_ERR BIT(21)
0052 #define MT_RXD2_NORMAL_ICV_ERR      BIT(20)
0053 #define MT_RXD2_NORMAL_CLM      BIT(19)
0054 #define MT_RXD2_NORMAL_CM       BIT(18)
0055 #define MT_RXD2_NORMAL_FCS_ERR      BIT(17)
0056 #define MT_RXD2_NORMAL_SW_BIT       BIT(16)
0057 #define MT_RXD2_NORMAL_SEC_MODE     GENMASK(15, 12)
0058 #define MT_RXD2_NORMAL_TID      GENMASK(11, 8)
0059 #define MT_RXD2_NORMAL_WLAN_IDX     GENMASK(7, 0)
0060 
0061 #define MT_RXD3_NORMAL_PF_STS       GENMASK(31, 30)
0062 #define MT_RXD3_NORMAL_PF_MODE      BIT(29)
0063 #define MT_RXD3_NORMAL_CLS_BITMAP   GENMASK(28, 19)
0064 #define MT_RXD3_NORMAL_WOL      GENMASK(18, 14)
0065 #define MT_RXD3_NORMAL_MAGIC_PKT    BIT(13)
0066 #define MT_RXD3_NORMAL_OFLD     GENMASK(12, 11)
0067 #define MT_RXD3_NORMAL_CLS      BIT(10)
0068 #define MT_RXD3_NORMAL_PATTERN_DROP BIT(9)
0069 #define MT_RXD3_NORMAL_TSF_COMPARE_LOSS BIT(8)
0070 #define MT_RXD3_NORMAL_RXV_SEQ      GENMASK(7, 0)
0071 
0072 #define MT_RXV1_VHTA1_B5_B4     GENMASK(31, 30)
0073 #define MT_RXV1_VHTA2_B8_B1     GENMASK(29, 22)
0074 #define MT_RXV1_HT_NO_SOUND     BIT(21)
0075 #define MT_RXV1_HT_SMOOTH       BIT(20)
0076 #define MT_RXV1_HT_SHORT_GI     BIT(19)
0077 #define MT_RXV1_HT_AGGR         BIT(18)
0078 #define MT_RXV1_VHTA1_B22       BIT(17)
0079 #define MT_RXV1_FRAME_MODE      GENMASK(16, 15)
0080 #define MT_RXV1_TX_MODE         GENMASK(14, 12)
0081 #define MT_RXV1_HT_EXT_LTF      GENMASK(11, 10)
0082 #define MT_RXV1_HT_AD_CODE      BIT(9)
0083 #define MT_RXV1_HT_STBC         GENMASK(8, 7)
0084 #define MT_RXV1_TX_RATE         GENMASK(6, 0)
0085 
0086 #define MT_RXV2_VHTA1_B16_B6        GENMASK(31, 21)
0087 #define MT_RXV2_LENGTH          GENMASK(20, 0)
0088 
0089 #define MT_RXV3_F_AGC1_CAL_GAIN     GENMASK(31, 29)
0090 #define MT_RXV3_F_AGC1_EQ_CAL       BIT(28)
0091 #define MT_RXV3_RCPI1           GENMASK(27, 20)
0092 #define MT_RXV3_F_AGC0_CAL_GAIN     GENMASK(19, 17)
0093 #define MT_RXV3_F_AGC0_EQ_CAL       BIT(16)
0094 #define MT_RXV3_RCPI0           GENMASK(15, 8)
0095 #define MT_RXV3_SEL_ANT         BIT(7)
0096 #define MT_RXV3_ACI_DET_X       BIT(6)
0097 #define MT_RXV3_OFDM_FREQ_TRANS_DETECT  BIT(5)
0098 #define MT_RXV3_VHTA1_B21_B17       GENMASK(4, 0)
0099 
0100 #define MT_RXV4_F_AGC_CAL_GAIN      GENMASK(31, 29)
0101 #define MT_RXV4_F_AGC2_EQ_CAL       BIT(28)
0102 #define MT_RXV4_IB_RSSI1        GENMASK(27, 20)
0103 #define MT_RXV4_F_AGC_LPF_GAIN_X    GENMASK(19, 16)
0104 #define MT_RXV4_WB_RSSI_X       GENMASK(15, 8)
0105 #define MT_RXV4_IB_RSSI0        GENMASK(7, 0)
0106 
0107 #define MT_RXV5_LTF_SNR0        GENMASK(31, 26)
0108 #define MT_RXV5_LTF_PROC_TIME       GENMASK(25, 19)
0109 #define MT_RXV5_FOE         GENMASK(18, 7)
0110 #define MT_RXV5_C_AGC_SATE      GENMASK(6, 4)
0111 #define MT_RXV5_F_AGC_LNA_GAIN_0    GENMASK(3, 2)
0112 #define MT_RXV5_F_AGC_LNA_GAIN_1    GENMASK(1, 0)
0113 
0114 #define MT_RXV6_C_AGC_STATE     GENMASK(30, 28)
0115 #define MT_RXV6_NS_TS_FIELD     GENMASK(27, 25)
0116 #define MT_RXV6_RX_VALID        BIT(24)
0117 #define MT_RXV6_NF2         GENMASK(23, 16)
0118 #define MT_RXV6_NF1         GENMASK(15, 8)
0119 #define MT_RXV6_NF0         GENMASK(7, 0)
0120 
0121 enum mt7603_tx_header_format {
0122     MT_HDR_FORMAT_802_3,
0123     MT_HDR_FORMAT_CMD,
0124     MT_HDR_FORMAT_802_11,
0125     MT_HDR_FORMAT_802_11_EXT,
0126 };
0127 
0128 #define MT_TXD_SIZE         (8 * 4)
0129 
0130 #define MT_TXD0_P_IDX           BIT(31)
0131 #define MT_TXD0_Q_IDX           GENMASK(30, 27)
0132 #define MT_TXD0_UTXB            BIT(26)
0133 #define MT_TXD0_UNXV            BIT(25)
0134 #define MT_TXD0_UDP_TCP_SUM     BIT(24)
0135 #define MT_TXD0_IP_SUM          BIT(23)
0136 #define MT_TXD0_ETH_TYPE_OFFSET     GENMASK(22, 16)
0137 #define MT_TXD0_TX_BYTES        GENMASK(15, 0)
0138 
0139 #define MT_TXD1_OWN_MAC         GENMASK(31, 26)
0140 #define MT_TXD1_PROTECTED       BIT(23)
0141 #define MT_TXD1_TID         GENMASK(22, 20)
0142 #define MT_TXD1_NO_ACK          BIT(19)
0143 #define MT_TXD1_HDR_PAD         GENMASK(18, 16)
0144 #define MT_TXD1_LONG_FORMAT     BIT(15)
0145 #define MT_TXD1_HDR_FORMAT      GENMASK(14, 13)
0146 #define MT_TXD1_HDR_INFO        GENMASK(12, 8)
0147 #define MT_TXD1_WLAN_IDX        GENMASK(7, 0)
0148 
0149 #define MT_TXD2_FIX_RATE        BIT(31)
0150 #define MT_TXD2_TIMING_MEASURE      BIT(30)
0151 #define MT_TXD2_BA_DISABLE      BIT(29)
0152 #define MT_TXD2_POWER_OFFSET        GENMASK(28, 24)
0153 #define MT_TXD2_MAX_TX_TIME     GENMASK(23, 16)
0154 #define MT_TXD2_FRAG            GENMASK(15, 14)
0155 #define MT_TXD2_HTC_VLD         BIT(13)
0156 #define MT_TXD2_DURATION        BIT(12)
0157 #define MT_TXD2_BIP         BIT(11)
0158 #define MT_TXD2_MULTICAST       BIT(10)
0159 #define MT_TXD2_RTS         BIT(9)
0160 #define MT_TXD2_SOUNDING        BIT(8)
0161 #define MT_TXD2_NDPA            BIT(7)
0162 #define MT_TXD2_NDP         BIT(6)
0163 #define MT_TXD2_FRAME_TYPE      GENMASK(5, 4)
0164 #define MT_TXD2_SUB_TYPE        GENMASK(3, 0)
0165 
0166 #define MT_TXD3_SN_VALID        BIT(31)
0167 #define MT_TXD3_PN_VALID        BIT(30)
0168 #define MT_TXD3_SEQ         GENMASK(27, 16)
0169 #define MT_TXD3_REM_TX_COUNT        GENMASK(15, 11)
0170 #define MT_TXD3_TX_COUNT        GENMASK(10, 6)
0171 
0172 #define MT_TXD4_PN_LOW          GENMASK(31, 0)
0173 
0174 #define MT_TXD5_PN_HIGH         GENMASK(31, 16)
0175 #define MT_TXD5_SW_POWER_MGMT       BIT(13)
0176 #define MT_TXD5_BA_SEQ_CTRL     BIT(12)
0177 #define MT_TXD5_DA_SELECT       BIT(11)
0178 #define MT_TXD5_TX_STATUS_HOST      BIT(10)
0179 #define MT_TXD5_TX_STATUS_MCU       BIT(9)
0180 #define MT_TXD5_TX_STATUS_FMT       BIT(8)
0181 #define MT_TXD5_PID         GENMASK(7, 0)
0182 
0183 #define MT_TXD6_SGI         BIT(31)
0184 #define MT_TXD6_LDPC            BIT(30)
0185 #define MT_TXD6_TX_RATE         GENMASK(29, 18)
0186 #define MT_TXD6_I_TXBF          BIT(17)
0187 #define MT_TXD6_E_TXBF          BIT(16)
0188 #define MT_TXD6_DYN_BW          BIT(15)
0189 #define MT_TXD6_ANT_PRI         GENMASK(14, 12)
0190 #define MT_TXD6_SPE_EN          BIT(11)
0191 #define MT_TXD6_FIXED_BW        BIT(10)
0192 #define MT_TXD6_BW          GENMASK(9, 8)
0193 #define MT_TXD6_ANT_ID          GENMASK(7, 2)
0194 #define MT_TXD6_FIXED_RATE      BIT(0)
0195 
0196 #define MT_TX_RATE_STBC         BIT(11)
0197 #define MT_TX_RATE_NSS          GENMASK(10, 9)
0198 #define MT_TX_RATE_MODE         GENMASK(8, 6)
0199 #define MT_TX_RATE_IDX          GENMASK(5, 0)
0200 
0201 #define MT_TXS0_ANTENNA         GENMASK(31, 26)
0202 #define MT_TXS0_TID         GENMASK(25, 22)
0203 #define MT_TXS0_BA_ERROR        BIT(22)
0204 #define MT_TXS0_PS_FLAG         BIT(21)
0205 #define MT_TXS0_TXOP_TIMEOUT        BIT(20)
0206 #define MT_TXS0_BIP_ERROR       BIT(19)
0207 
0208 #define MT_TXS0_QUEUE_TIMEOUT       BIT(18)
0209 #define MT_TXS0_RTS_TIMEOUT     BIT(17)
0210 #define MT_TXS0_ACK_TIMEOUT     BIT(16)
0211 #define MT_TXS0_ACK_ERROR_MASK      GENMASK(18, 16)
0212 
0213 #define MT_TXS0_TX_STATUS_HOST      BIT(15)
0214 #define MT_TXS0_TX_STATUS_MCU       BIT(14)
0215 #define MT_TXS0_TXS_FORMAT      BIT(13)
0216 #define MT_TXS0_FIXED_RATE      BIT(12)
0217 #define MT_TXS0_TX_RATE         GENMASK(11, 0)
0218 
0219 #define MT_TXS1_F0_TIMESTAMP        GENMASK(31, 0)
0220 #define MT_TXS1_F1_NOISE_2      GENMASK(23, 16)
0221 #define MT_TXS1_F1_NOISE_1      GENMASK(15, 8)
0222 #define MT_TXS1_F1_NOISE_0      GENMASK(7, 0)
0223 
0224 #define MT_TXS2_F0_FRONT_TIME       GENMASK(24, 0)
0225 #define MT_TXS2_F1_RCPI_2       GENMASK(23, 16)
0226 #define MT_TXS2_F1_RCPI_1       GENMASK(15, 8)
0227 #define MT_TXS2_F1_RCPI_0       GENMASK(7, 0)
0228 
0229 #define MT_TXS3_WCID            GENMASK(31, 24)
0230 #define MT_TXS3_RXV_SEQNO       GENMASK(23, 16)
0231 #define MT_TXS3_TX_DELAY        GENMASK(15, 0)
0232 
0233 #define MT_TXS4_LAST_TX_RATE        GENMASK(31, 29)
0234 #define MT_TXS4_TX_COUNT        GENMASK(28, 24)
0235 #define MT_TXS4_AMPDU           BIT(23)
0236 #define MT_TXS4_ACKED_MPDU      BIT(22)
0237 #define MT_TXS4_PID         GENMASK(21, 14)
0238 #define MT_TXS4_BW          GENMASK(13, 12)
0239 #define MT_TXS4_F0_SEQNO        GENMASK(11, 0)
0240 #define MT_TXS4_F1_TSSI         GENMASK(11, 0)
0241 
0242 #endif