source: ReferenceDesigns/w3_802.11/c/wlan_w3_low/include/w3_mac_phy_regs.h

Last change on this file was 6319, checked in by chunter, 5 years ago

1.8.0 release wlan-mac-se

File size: 22.6 KB
Line 
1/** @file w3_mac_phy_regs.h
2 *  @brief Platform abstraction header for CPU Low
3 *
4 *  This contains code for configuring low-level parameters in the PHY and hardware.
5 *
6 *  @copyright Copyright 2013-2019, Mango Communications. All rights reserved.
7 *          Distributed under the Mango Communications Reference Design License
8 *                See LICENSE.txt included in the design archive or
9 *                at http://mangocomm.com/802.11/license
10 *
11 *  This file is part of the Mango 802.11 Reference Design (https://mangocomm.com/802.11)
12 */
13
14#ifndef W3_MAC_PHY_REGS_H_
15#define W3_MAC_PHY_REGS_H_
16
17/***********************************************************************
18 * Register renames
19 *
20 * The macros below rename the per-register macros defined in xparameters.h
21 * for the System Generator cores in the 802.11 ref design. Each macro
22 * below encodes the memory address (as seen by CPU Low) for each register
23 * in the PHY Tx, PHY Rx and MAC Hw cores. The low-level MAC and PHY code
24 * access these registers directly with Xil_In/Out32() in order to
25 * minimize latency in time-sensitive polling/update loops in the MAC code.
26 *
27 ***********************************************************************/
28
29/********************************************************************************
30 * Register definitions for wlan_phy_rx core
31********************************************************************************/
32#define WLAN_RX_REG_CTRL             XPAR_WLAN_PHY_RX_MEMMAP_CONTROL
33#define WLAN_RX_REG_CFG              XPAR_WLAN_PHY_RX_MEMMAP_CONFIG
34#define WLAN_RX_STATUS               XPAR_WLAN_PHY_RX_MEMMAP_STATUS
35#define WLAN_RX_PKT_BUF_SEL          XPAR_WLAN_PHY_RX_MEMMAP_PKT_BUF_SEL
36#define WLAN_RX_FEC_CFG              XPAR_WLAN_PHY_RX_MEMMAP_FEC_CONFIG
37#define WLAN_RX_LTS_CFG              XPAR_WLAN_PHY_RX_MEMMAP_LTS_CORR_CONFIG
38#define WLAN_RX_LTS_THRESH           XPAR_WLAN_PHY_RX_MEMMAP_LTS_CORR_THRESH
39#define WLAN_RX_LTS_PEAKTYPE_THRESH  XPAR_WLAN_PHY_RX_MEMMAP_LTS_CORR_PEAKTYPE_THRESH
40#define WLAN_RX_FFT_CFG              XPAR_WLAN_PHY_RX_MEMMAP_FFT_CONFIG
41#define WLAN_RX_RSSI_THRESH          XPAR_WLAN_PHY_RX_MEMMAP_RSSI_THRESH
42#define WLAN_RX_PKTDET_RSSI_CFG      XPAR_WLAN_PHY_RX_MEMMAP_PKTDET_RSSI_CONFIG
43#define WLAN_RX_PHY_CCA_CFG          XPAR_WLAN_PHY_RX_MEMMAP_PHY_CCA_CONFIG
44#define WLAN_RX_PKT_RSSI_AB          XPAR_WLAN_PHY_RX_MEMMAP_RX_PKT_RSSI_AB
45#define WLAN_RX_PKT_RSSI_CD          XPAR_WLAN_PHY_RX_MEMMAP_RX_PKT_RSSI_CD
46#define WLAN_RX_PKT_AGC_GAINS        XPAR_WLAN_PHY_RX_MEMMAP_RX_PKT_AGC_GAINS
47#define WLAN_RX_DSSS_CFG             XPAR_WLAN_PHY_RX_MEMMAP_DSSS_RX_CONFIG
48#define WLAN_RX_PKT_DET_OFDM_CFG     XPAR_WLAN_PHY_RX_MEMMAP_PKTDET_AUTOCORR_CONFIG
49#define WLAN_RX_PKT_DET_DSSS_CFG     XPAR_WLAN_PHY_RX_MEMMAP_PKTDET_DSSS_CONFIG
50#define WLAN_RX_PKT_BUF_MAXADDR      XPAR_WLAN_PHY_RX_MEMMAP_PKTBUF_MAX_WRITE_ADDR
51#define WLAN_RX_CFO_EST_TIME_DOMAIN  XPAR_WLAN_PHY_RX_MEMMAP_CFO_EST_TIME_DOMAIN
52#define WLAN_RX_CHAN_EST_SMOOTHING   XPAR_WLAN_PHY_RX_MEMMAP_CHAN_EST_SMOOTHING
53#define WLAN_RX_DSSS_SYNC_WRADDR     XPAR_WLAN_PHY_RX_MEMMAP_RAMS_ADDR_WREN
54#define WLAN_RX_DSSS_SYNC_MASK_DATA  XPAR_WLAN_PHY_RX_MEMMAP_MASK_1_RAM_WR_DATA
55#define WLAN_RX_DSSS_SYNC_TRGT_DATA  XPAR_WLAN_PHY_RX_MEMMAP_TARGET_RAM_WR_DATA
56#define WLAN_RX_PKT_DET_COUNT_OFDM   XPAR_WLAN_PHY_RX_MEMMAP_PKT_DET_COUNT_OFDM
57#define WLAN_RX_PKT_DET_COUNT_DSSS   XPAR_WLAN_PHY_RX_MEMMAP_PKT_DET_COUNT_DSSS
58
59//-----------------------------------------------
60// RX CONTROL
61//
62#define WLAN_RX_REG_CTRL_RESET                             0x00000001
63
64//-----------------------------------------------
65// RX CONFIG
66//
67#define WLAN_RX_REG_CFG_DSSS_RX_EN            0x00000001     // Enable DSSS Rx
68#define WLAN_RX_REG_CFG_USE_TX_SIG_BLOCK      0x00000002     // Force I/Q/RSSI signals to zero during Tx
69#define WLAN_RX_REG_CFG_PKT_BUF_WEN_SWAP      0x00000004     // Swap byte order at pkt buf interface
70#define WLAN_RX_REG_CFG_CHAN_EST_WEN_SWAP     0x00000008     // Swap the order of H est writes per u64 ([0,1] vs [1,0])
71#define WLAN_RX_REG_CFG_DSSS_RX_REQ_PKT_DET   0x00000010     // Block DSSS Rx until DSSS pkt det asserts
72#define WLAN_RX_REG_CFG_CFO_EST_BYPASS        0x00000020     // Bypass time-domain CFO correction
73#define WLAN_RX_REG_CFG_RECORD_CHAN_EST       0x00000040     // Enable recording channel estimates to the Rx pkt buffer
74#define WLAN_RX_REG_CFG_SWITCHING_DIV_EN      0x00000080     // Enable switching diversity per-Rx
75#define WLAN_RX_REG_CFG_DISABLE_OFDM_RX       0x00000100     // Holds OFDM pipeline in reset, blocking all OFDM Rx
76#define WLAN_RX_REG_CFG_PKT_DET_EN_ANT_A      0x00000200     // Enable pkt detection on RF A
77#define WLAN_RX_REG_CFG_PKT_DET_EN_ANT_B      0x00000400     // Enable pkt detection on RF B
78#define WLAN_RX_REG_CFG_PKT_DET_EN_ANT_C      0x00000800     // Enable pkt detection on RF C
79#define WLAN_RX_REG_CFG_PKT_DET_EN_ANT_D      0x00001000     // Enable pkt detection on RF D
80#define WLAN_RX_REG_CFG_PKT_DET_EN_EXT        0x00002000     // Enable pkt detection via pkt_det_in port
81#define WLAN_RX_REG_CFG_PHY_CCA_MODE_SEL      0x00004000     // Selects any(0) or all(1) antenna requirement for PHY CCA BUSY
82#define WLAN_RX_REG_CFG_ANT_SEL_MASK          0x00018000     // Selects antenna for PHY input when sel div is disabled ([0,1,2,3] = RF[A,B,C,D])
83#define WLAN_RX_REG_CFG_MAX_PKT_LEN_MASK      0x001E0000     // Sets max SIGNAL.LENGTH value in kB
84#define WLAN_RX_REG_CFG_REQ_BOTH_PKT_DET_OFDM 0x00200000     // Requires both auto_corr and RSSI pkt det assertion to start OFDM Rx
85#define WLAN_RX_REG_CFG_BUSY_HOLD_PKT_DET     0x00400000     // Valid SIGNAL holds pkt det for rate*lengh duration, even if unsupported
86#define WLAN_RX_REG_CFG_DSSS_ASSERTS_CCA      0x00800000     // DSSS active holds CCA busy
87#define WLAN_RX_REG_CFG_ENABLE_HTMF_DET       0x01000000     // Enables 11n Rx support; when disabled all Rx are processed as 11a waveforms
88#define WLAN_RX_REG_CFG_ENABLE_VHT_DET        0x02000000     // Enables VHT phy_mode detections; when disabled VHT waveforms are detected as NONHT
89#define WLAN_RX_REG_CFG_REQ_BOTH_PKT_DET_DSSS 0x04000000     // Requires both auto_corr and RSSI pkt det assertion to start OFDM Rx
90#define WLAN_RX_REG_CFG_RESET_PKT_DET_COUNTS  0x08000000     // Resets the pkt det counters
91#define WLAN_RX_REG_CFG_DSSS_SYNC_PKT_DET_DIS 0x10000000     // Disables pkt det after DSSS Rx finds SYNC without pkt det
92#define WLAN_RX_REG_CFG_OFDM_RX_REQ_PKT_DET   0x20000000     // Requires pkt det before OFDM Rx (0=Rx on LTF-only allowed)
93#define WLAN_RX_REG_CFG_ILA_SW_TRIG           0x80000000     // Connected to ChipScope ILA as trigger
94
95//-----------------------------------------------
96// RX STATUS
97//
98#define WLAN_RX_REG_STATUS_OFDM_FCS_GOOD             0x00000001
99#define WLAN_RX_REG_STATUS_DSSS_FCS_GOOD             0x00000002
100#define WLAN_RX_REG_STATUS_ACTIVE_ANT_MASK           0x0000000C // 2-bits: [0,1,2,3] = RF[A,B,C,D]
101#define WLAN_RX_REG_STATUS_OFDM_PKT_DET_STATUS_MASK  0x000003F0 // 6 bits: [LTF-only, ext, RF D/C/B/A]
102#define WLAN_RX_REG_STATUS_DSSS_PKT_DET_STATUS_MASK  0x00003C00 // 4 bits: [RF D/C/B/A]
103
104
105#define WLAN_RX_DSSS_SYNC_WREN_MASK_TARGET              0x01000000
106#define WLAN_RX_DSSS_SYNC_WREN_MASK_MASK1               0x02000000
107
108
109/********************************************************************************
110 * Register definitions for wlan_phy_tx core
111********************************************************************************/
112#define WLAN_TX_REG_STATUS           XPAR_WLAN_PHY_TX_MEMMAP_STATUS
113#define WLAN_TX_REG_CFG              XPAR_WLAN_PHY_TX_MEMMAP_CONFIG
114#define WLAN_TX_REG_PKT_BUF_SEL      XPAR_WLAN_PHY_TX_MEMMAP_PKT_BUF_SEL
115#define WLAN_TX_REG_SCALING          XPAR_WLAN_PHY_TX_MEMMAP_OUTPUT_SCALING
116#define WLAN_TX_REG_START            XPAR_WLAN_PHY_TX_MEMMAP_TX_START
117#define WLAN_TX_REG_FFT_CFG          XPAR_WLAN_PHY_TX_MEMMAP_FFT_CONFIG
118#define WLAN_TX_REG_TIMING           XPAR_WLAN_PHY_TX_MEMMAP_TIMING
119
120//-----------------------------------------------
121// TX CONFIG
122//
123#define WLAN_TX_REG_CFG_SET_RC_RXEN               0x00000001
124#define WLAN_TX_REG_CFG_RESET_SCRAMBLING_PER_PKT  0x00000002
125#define WLAN_TX_REG_CFG_ANT_A_TXEN                0x00000004
126#define WLAN_TX_REG_CFG_ANT_B_TXEN                0x00000008
127#define WLAN_TX_REG_CFG_ANT_C_TXEN                0x00000010
128#define WLAN_TX_REG_CFG_ANT_D_TXEN                0x00000020
129#define WLAN_TX_REG_CFG_USE_MAC_ANT_MASKS         0x00000040
130#define WLAN_TX_REG_CFG_DELAY_DBG_TX_RUNNING      0x00000080
131#define WLAN_TX_REG_CFG_PHY_MODE_SW_TX            0x00007000
132#define WLAN_TX_REG_CFG_RESET                     0x80000000
133
134//-----------------------------------------------
135// TX STATUS
136//
137#define WLAN_TX_REG_STATUS_TX_RUNNING  0x00000001
138
139//-----------------------------------------------
140// TX START
141//
142#define WLAN_TX_REG_START_DIRECT  0x00000001
143#define WLAN_TX_REG_START_VIA_RC  0x00000002
144
145
146/********************************************************************************
147 * Register definitions for wlan_mac_hw core
148********************************************************************************/
149
150// RO:
151#define WLAN_MAC_REG_STATUS                                XPAR_WLAN_MAC_HW_MEMMAP_STATUS
152#define WLAN_MAC_REG_LATEST_RX_BYTE                        XPAR_WLAN_MAC_HW_MEMMAP_LATEST_RX_BYTE
153#define WLAN_MAC_REG_PHY_RX_PHY_HDR_PARAMS                 XPAR_WLAN_MAC_HW_MEMMAP_PHY_RX_PARAMS
154#define WLAN_MAC_REG_TX_A_BACKOFF_COUNTER                  XPAR_WLAN_MAC_HW_MEMMAP_TX_A_BACKOFF_COUNTER
155#define WLAN_MAC_REG_TX_CD_BACKOFF_COUNTERS                XPAR_WLAN_MAC_HW_MEMMAP_TX_CD_BACKOFF_COUNTERS
156#define WLAN_MAC_REG_RX_TIMESTAMP_LSB                      XPAR_WLAN_MAC_HW_MEMMAP_RX_START_TIMESTAMP_LSB
157#define WLAN_MAC_REG_RX_TIMESTAMP_MSB                      XPAR_WLAN_MAC_HW_MEMMAP_RX_START_TIMESTAMP_MSB
158#define WLAN_MAC_REG_TX_TIMESTAMP_LSB                      XPAR_WLAN_MAC_HW_MEMMAP_TX_START_TIMESTAMP_LSB
159#define WLAN_MAC_REG_TX_TIMESTAMP_MSB                      XPAR_WLAN_MAC_HW_MEMMAP_TX_START_TIMESTAMP_MSB
160#define WLAN_MAC_REG_TXRX_TIMESTAMPS_FRAC                  XPAR_WLAN_MAC_HW_MEMMAP_TXRX_START_TIMESTAMPS_FRAC
161#define WLAN_MAC_REG_NAV_VALUE                             XPAR_WLAN_MAC_HW_MEMMAP_NAV_VALUE
162#define WLAN_MAC_REG_TX_CTRL_STATUS                        XPAR_WLAN_MAC_HW_MEMMAP_TX_CTRL_STATUS
163
164// RW:
165#define WLAN_MAC_REG_TX_START                              XPAR_WLAN_MAC_HW_MEMMAP_TX_START
166#define WLAN_MAC_REG_CALIB_TIMES                           XPAR_WLAN_MAC_HW_MEMMAP_CALIB_TIMES
167#define WLAN_MAC_REG_IFS_1                                 XPAR_WLAN_MAC_HW_MEMMAP_IFS_INTERVALS1
168#define WLAN_MAC_REG_IFS_2                                 XPAR_WLAN_MAC_HW_MEMMAP_IFS_INTERVALS2
169#define WLAN_MAC_REG_CONTROL                               XPAR_WLAN_MAC_HW_MEMMAP_CONTROL
170#define WLAN_MAC_REG_SW_BACKOFF_CTRL                       XPAR_WLAN_MAC_HW_MEMMAP_BACKOFF_CTRL
171#define WLAN_MAC_REG_TX_CTRL_A_PARAMS                      XPAR_WLAN_MAC_HW_MEMMAP_TX_CTRL_A_PARAMS
172#define WLAN_MAC_REG_TX_CTRL_A_GAINS                       XPAR_WLAN_MAC_HW_MEMMAP_TX_CTRL_A_GAINS
173#define WLAN_MAC_REG_TX_CTRL_B_PARAMS                      XPAR_WLAN_MAC_HW_MEMMAP_TX_CTRL_B_PARAMS
174#define WLAN_MAC_REG_TX_CTRL_B_GAINS                       XPAR_WLAN_MAC_HW_MEMMAP_TX_CTRL_B_GAINS
175#define WLAN_MAC_REG_TX_CTRL_C_PARAMS                      XPAR_WLAN_MAC_HW_MEMMAP_TX_CTRL_C_PARAMS
176#define WLAN_MAC_REG_TX_CTRL_C_GAINS                       XPAR_WLAN_MAC_HW_MEMMAP_TX_CTRL_C_GAINS
177#define WLAN_MAC_REG_TX_CTRL_D_PARAMS                      XPAR_WLAN_MAC_HW_MEMMAP_TX_CTRL_D_PARAMS
178#define WLAN_MAC_REG_TX_CTRL_D_GAINS                       XPAR_WLAN_MAC_HW_MEMMAP_TX_CTRL_D_GAINS
179#define WLAN_MAC_REG_POST_TX_TIMERS                        XPAR_WLAN_MAC_HW_MEMMAP_POST_TX_TIMERS
180#define WLAN_MAC_REG_POST_RX_TIMERS                        XPAR_WLAN_MAC_HW_MEMMAP_POST_RX_TIMERS
181#define WLAN_MAC_REG_NAV_CHECK_ADDR_1                      XPAR_WLAN_MAC_HW_MEMMAP_NAV_MATCH_ADDR_1
182#define WLAN_MAC_REG_NAV_CHECK_ADDR_2                      XPAR_WLAN_MAC_HW_MEMMAP_NAV_MATCH_ADDR_2
183#define WLAN_MAC_REG_TU_TARGET_LSB                         XPAR_WLAN_MAC_HW_MEMMAP_TU_TARGET_LSB
184#define WLAN_MAC_REG_TU_TARGET_MSB                         XPAR_WLAN_MAC_HW_MEMMAP_TU_TARGET_MSB
185
186//-----------------------------------------------
187// WLAN MAC HW - Tx/Rx timer bit masks / macros
188//
189#define WLAN_MAC_POST_TX_TIMERS_MASK_TIMER1_COUNTTO        0x00007FFF
190#define WLAN_MAC_POST_TX_TIMERS_MASK_TIMER1_EN             0x00008000
191#define WLAN_MAC_POST_TX_TIMERS_MASK_TIMER2_COUNTTO        0x7FFF0000
192#define WLAN_MAC_POST_TX_TIMERS_MASK_TIMER2_EN             0x80000000
193
194#define WLAN_MAC_POST_RX_TIMERS_MASK_TIMER1_COUNTTO        0x00007FFF
195#define WLAN_MAC_POST_RX_TIMERS_MASK_TIMER1_EN             0x00008000
196#define WLAN_MAC_POST_RX_TIMERS_MASK_TIMER2_COUNTTO        0x7FFF0000
197#define WLAN_MAC_POST_RX_TIMERS_MASK_TIMER2_EN             0x80000000
198
199
200// WLAN MAC HW - TX_CTRL_STATUS register bit masks
201#define WLAN_MAC_TXCTRL_STATUS_MASK_TX_A_PENDING                  0x00000001     // b[0]
202#define WLAN_MAC_TXCTRL_STATUS_MASK_TX_A_DONE                     0x00000002     // b[1]
203#define WLAN_MAC_TXCTRL_STATUS_MASK_TX_A_RESULT                   0x0000000C     // b[3:2]
204#define WLAN_MAC_TXCTRL_STATUS_MASK_TX_A_STATE                    0x00000070     // b[6:4]
205#define WLAN_MAC_TXCTRL_STATUS_MASK_TX_B_PENDING                  0x00000080     // b[7]
206#define WLAN_MAC_TXCTRL_STATUS_MASK_TX_B_DONE                     0x00000100     // b[8]
207#define WLAN_MAC_TXCTRL_STATUS_MASK_TX_B_RESULT                   0x00000600     // b[10:9]
208#define WLAN_MAC_TXCTRL_STATUS_MASK_TX_B_STATE                    0x00003800     // b[13:11]
209#define WLAN_MAC_TXCTRL_STATUS_MASK_TX_C_PENDING                  0x00004000     // b[14]
210#define WLAN_MAC_TXCTRL_STATUS_MASK_TX_C_DONE                     0x00008000     // b[15]
211#define WLAN_MAC_TXCTRL_STATUS_MASK_TX_C_STATE                    0x00070000     // b[18:16]
212#define WLAN_MAC_TXCTRL_STATUS_MASK_TX_D_PENDING                  0x00080000     // b[19]
213#define WLAN_MAC_TXCTRL_STATUS_MASK_TX_D_DONE                     0x00100000     // b[20]
214#define WLAN_MAC_TXCTRL_STATUS_MASK_TX_D_STATE                    0x00E00000     // b[23:21]
215#define WLAN_MAC_TXCTRL_STATUS_MASK_POSTTX_TIMER2_RUNNING         0x01000000     // b[24]
216#define WLAN_MAC_TXCTRL_STATUS_MASK_POSTTX_TIMER1_RUNNING         0x02000000     // b[25]
217#define WLAN_MAC_TXCTRL_STATUS_MASK_POSTRX_TIMER2_RUNNING         0x04000000     // b[26]
218#define WLAN_MAC_TXCTRL_STATUS_MASK_POSTRX_TIMER1_RUNNING         0x08000000     // b[27]
219
220#define WLAN_MAC_TXCTRL_STATUS_TX_A_RESULT_NONE                  (0 << 2)        // FSM idle or still running
221#define WLAN_MAC_TXCTRL_STATUS_TX_A_RESULT_TIMEOUT               (1 << 2)        // FSM completed with postTx timer expiration
222#define WLAN_MAC_TXCTRL_STATUS_TX_A_RESULT_RX_STARTED            (2 << 2)        // FSM completed with PHY Rx starting
223
224#define WLAN_MAC_TXCTRL_STATUS_TX_A_STATE_IDLE                   (0 << 4)
225#define WLAN_MAC_TXCTRL_STATUS_TX_A_STATE_PRE_TX_WAIT            (1 << 4)
226#define WLAN_MAC_TXCTRL_STATUS_TX_A_STATE_START_BO               (2 << 4)
227#define WLAN_MAC_TXCTRL_STATUS_TX_A_STATE_DEFER                  (3 << 4)
228#define WLAN_MAC_TXCTRL_STATUS_TX_A_STATE_DO_TX                  (4 << 4)
229#define WLAN_MAC_TXCTRL_STATUS_TX_A_STATE_POST_TX                (5 << 4)
230#define WLAN_MAC_TXCTRL_STATUS_TX_A_STATE_POST_TX_WAIT           (6 << 4)
231#define WLAN_MAC_TXCTRL_STATUS_TX_A_STATE_DONE                   (7 << 4)
232
233#define WLAN_MAC_TXCTRL_STATUS_TX_B_RESULT_NONE                  (0 << 9)        // FSM idle or still running
234#define WLAN_MAC_TXCTRL_STATUS_TX_B_RESULT_DID_TX                (1 << 9)        // FSM completed with PHY Tx
235#define WLAN_MAC_TXCTRL_STATUS_TX_B_RESULT_NO_TX                 (2 << 9)        // FSM completed, skipped PHY Tx
236
237#define WLAN_MAC_TXCTRL_STATUS_TX_B_STATE_IDLE                   (0 << 11)
238#define WLAN_MAC_TXCTRL_STATUS_TX_B_STATE_PRE_TX_WAIT            (1 << 11)
239#define WLAN_MAC_TXCTRL_STATUS_TX_B_STATE_CHECK_NAV              (2 << 11)
240#define WLAN_MAC_TXCTRL_STATUS_TX_B_STATE_DO_TX                  (3 << 11)
241#define WLAN_MAC_TXCTRL_STATUS_TX_B_STATE_DONE                   (4 << 11)
242
243#define WLAN_MAC_TXCTRL_STATUS_TX_C_STATE_IDLE        (0 << 16)
244#define WLAN_MAC_TXCTRL_STATUS_TX_C_STATE_START_BO    (1 << 16) //Starting backoff counter - 1 cycle
245#define WLAN_MAC_TXCTRL_STATUS_TX_C_STATE_DEFER       (2 << 16) //Waiting for zero backoff - unbounded time
246#define WLAN_MAC_TXCTRL_STATUS_TX_C_STATE_DO_TX       (3 << 16) //PHY Tx started, waiting on TX_DONE - TX_TIME
247#define WLAN_MAC_TXCTRL_STATUS_TX_C_STATE_DONE        (4 << 16) //TX_DONE occurred - 1 cycle
248
249#define WLAN_MAC_TXCTRL_STATUS_TX_D_STATE_IDLE        (0 << 21)
250#define WLAN_MAC_TXCTRL_STATUS_TX_D_STATE_START_BO    (1 << 21) //Starting backoff counter - 1 cycle
251#define WLAN_MAC_TXCTRL_STATUS_TX_D_STATE_DEFER       (2 << 21) //Waiting for zero backoff - unbounded time
252#define WLAN_MAC_TXCTRL_STATUS_TX_D_STATE_DO_TX       (3 << 21) //PHY Tx started, waiting on TX_DONE - TX_TIME
253#define WLAN_MAC_TXCTRL_STATUS_TX_D_STATE_DONE        (4 << 21) //TX_DONE occurred - 1 cycle
254
255#define wlan_mac_get_tx_ctrl_status() (Xil_In32(WLAN_MAC_REG_TX_CTRL_STATUS))
256
257// WLAN MAC HW - STATUS register bit masks
258#define WLAN_MAC_STATUS_MASK_TX_A_PENDING                  0x00000001     // b[0]
259#define WLAN_MAC_STATUS_MASK_TX_A_DONE                     0x00000002     // b[1]
260#define WLAN_MAC_STATUS_MASK_TX_B_PENDING                  0x00000004     // b[2]
261#define WLAN_MAC_STATUS_MASK_TX_B_DONE                     0x00000008     // b[3]
262#define WLAN_MAC_STATUS_MASK_TX_C_PENDING                  0x00000010     // b[4]
263#define WLAN_MAC_STATUS_MASK_TX_C_DONE                     0x00000020     // b[5]
264#define WLAN_MAC_STATUS_MASK_TX_D_PENDING                  0x00000040     // b[6]
265#define WLAN_MAC_STATUS_MASK_TX_D_DONE                     0x00000080     // b[7]
266
267#define WLAN_MAC_STATUS_MASK_TX_PHY_ACTIVE                 0x00000100     // b[8]
268#define WLAN_MAC_STATUS_MASK_RX_PHY_ACTIVE                 0x00000200     // b[9]
269#define WLAN_MAC_STATUS_MASK_RX_PHY_STARTED                0x00000400     // b[10]
270#define WLAN_MAC_STATUS_MASK_RX_FCS_GOOD                   0x00000800     // b[11]
271#define WLAN_MAC_STATUS_MASK_RX_END_ERROR                  0x00007000     // b[14:12]
272#define WLAN_MAC_STATUS_MASK_NAV_ADDR_MATCHED              0x00008000     // b[15]
273#define WLAN_MAC_STATUS_MASK_NAV_BUSY                      0x00010000     // b[16]
274#define WLAN_MAC_STATUS_MASK_CCA_BUSY                      0x00020000     // b[17]
275#define WLAN_MAC_STATUS_MASK_TU_LATCH                      0x00040000     // b[18]
276#define WLAN_MAC_STATUS_MASK_RX_PHY_WRITING_PAYLOAD        0x00080000     // b[19]
277#define WLAN_MAC_STATUS_MASK_AUX_STATUS0                   0x00100000     // b[20]
278#define WLAN_MAC_STATUS_MASK_AUX_STATUS1                   0x00200000     // b[21]
279#define WLAN_MAC_STATUS_MASK_AUX_STATUS2                   0x00400000     // b[22]
280#define WLAN_MAC_STATUS_MASK_AUX_STATUS3                   0x00800000     // b[23]
281
282#define wlan_mac_get_status() (Xil_In32(WLAN_MAC_REG_STATUS))
283#define wlan_mac_check_tu_latch() ((wlan_mac_get_status() & WLAN_MAC_STATUS_MASK_TU_LATCH) >> 16)
284
285//-----------------------------------------------
286// WLAN MAC HW - RX_PHY_HDR_PARAMS bit masks
287//
288#define WLAN_MAC_PHY_RX_PHY_HDR_MASK_LENGTH                 0x0000FFFF     // b[15:0]
289#define WLAN_MAC_PHY_RX_PHY_HDR_MASK_MCS                    0x007F0000     // b[22:16]
290#define WLAN_MAC_PHY_RX_PHY_HDR_MASK_UNSUPPORTED            0x00800000     // b[23]
291#define WLAN_MAC_PHY_RX_PHY_HDR_MASK_PHY_MODE               0x07000000     // b[26:24]
292#define WLAN_MAC_PHY_RX_PHY_HDR_READY                       0x08000000     // b[27]
293#define WLAN_MAC_PHY_RX_PHY_HDR_MASK_PHY_SEL                0x10000000     // b[28]
294#define WLAN_MAC_PHY_RX_PHY_HDR_MASK_RX_ERROR               0xE0000000     // b[31:29]
295
296#define WLAN_MAC_PHY_RX_PHY_HDR_PHY_SEL_DSSS                0x00000000
297#define WLAN_MAC_PHY_RX_PHY_HDR_PHY_SEL_OFDM                0x10000000
298
299#define WLAN_MAC_PHY_RX_PHY_HDR_PHY_MODE_11AG               0x1
300#define WLAN_MAC_PHY_RX_PHY_HDR_PHY_MODE_11N                0x2
301#define WLAN_MAC_PHY_RX_PHY_HDR_PHY_MODE_11AC               0x8
302
303
304//-----------------------------------------------
305// WLAN MAC HW - CONTROL bit masks / macros
306//
307#define WLAN_MAC_CTRL_MASK_RESET                           0x00000001
308#define WLAN_MAC_CTRL_MASK_DISABLE_NAV                     0x00000002
309#define WLAN_MAC_CTRL_MASK_RESET_NAV                       0x00000004
310#define WLAN_MAC_CTRL_MASK_BLOCK_RX_ON_TX                  0x00000008
311#define WLAN_MAC_CTRL_MASK_RESET_TU_LATCH                  0x00000010
312#define WLAN_MAC_CTRL_MASK_CCA_IGNORE_PHY_CS               0x00000020
313#define WLAN_MAC_CTRL_MASK_CCA_IGNORE_TX_BUSY              0x00000040
314#define WLAN_MAC_CTRL_MASK_CCA_IGNORE_NAV                  0x00000080
315#define WLAN_MAC_CTRL_MASK_FORCE_CCA_BUSY                  0x00000100
316#define WLAN_MAC_CTRL_MASK_RESET_RX_STARTED_LATCH          0x00000400
317#define WLAN_MAC_CTRL_MASK_RESET_TX_CTRL_A                 0x00000800
318#define WLAN_MAC_CTRL_MASK_RESET_TX_CTRL_B                 0x00001000
319#define WLAN_MAC_CTRL_MASK_RESET_TX_CTRL_C                 0x00002000
320#define WLAN_MAC_CTRL_MASK_RESET_TX_CTRL_D                 0x00004000
321#define WLAN_MAC_CTRL_MASK_RESET_A_BACKOFF                 0x00008000
322#define WLAN_MAC_CTRL_MASK_RESET_C_BACKOFF                 0x00010000
323#define WLAN_MAC_CTRL_MASK_RESET_D_BACKOFF                 0x00020000
324#define WLAN_MAC_CTRL_MASK_PAUSE_TX_A                      0x00040000
325#define WLAN_MAC_CTRL_MASK_PAUSE_TX_C                      0x00080000
326#define WLAN_MAC_CTRL_MASK_PAUSE_TX_D                      0x00100000
327#define WLAN_MAC_CTRL_MASK_EN_EXT_CCABUSY                  0x00200000
328#define WLAN_MAC_CTRL_MASK_EN_EXT_POSTRXTIMER1_START       0x00400000
329#define WLAN_MAC_CTRL_MASK_RESET_RX_PHY_ACTIVE_LATCHES     0x00800000
330#define WLAN_MAC_CTRL_MASK_RESET_TX_PHY_ACTIVE_LATCHES     0x01000000
331
332//-----------------------------------------------
333// WLAN MAC HW - START bit masks / macros
334//
335#define WLAN_MAC_START_REG_MASK_START_TX_A  0x1
336#define WLAN_MAC_START_REG_MASK_START_TX_B  0x2
337#define WLAN_MAC_START_REG_MASK_START_TX_C  0x4
338#define WLAN_MAC_START_REG_MASK_START_TX_D  0x8
339
340// TXRX_TIMESTAMPS_FRAC register
341// b[15:8]: Fractional part of RX_START microsecond timestamp
342// b[ 7:0]: Fractional part of TX_START microsecond timestamp
343#define wlan_mac_low_get_rx_start_timestamp_frac() ((Xil_In32(WLAN_MAC_REG_TXRX_TIMESTAMPS_FRAC) & 0xFF00) >> 8)
344#define wlan_mac_low_get_tx_start_timestamp_frac()  (Xil_In32(WLAN_MAC_REG_TXRX_TIMESTAMPS_FRAC) & 0x00FF)
345
346
347#endif /* W3_MAC_PHY_REGS_H_ */
Note: See TracBrowser for help on using the repository browser.