1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
|
/*
* Header file of 8188E register
*
* $Id: 8188e_reg.h,v 1.1 2011/06/30 11:02:56 victoryman Exp $
*
* Copyright (c) 2011 Realtek Semiconductor Corp.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*/
#ifndef _8192E_REG_H_
#define _8192E_REG_H_
//============================================================
// 8188E Regsiter offset definition
//============================================================
/*
* Project RTL8188E follows most of registers in Project RTL8192c
* This file includes additional registers for RTL8188E only
* Header file of RTL8192C registers should always be included
*/
//
// 1. System Configure Register. (Offset 0x000 - 0x0FFh)
//
#define REG_92E_BB_PAD_CTRL 0x64
#define REG_92E_HMEBOX_E0 0x88
#define REG_92E_HMEBOX_E1 0x8A
#define REG_92E_HMEBOX_E2 0x8C
#define REG_92E_HMEBOX_E3 0x8E
#define REG_92E_WLLPS_CTRL 0x90
#define REG_92E_RPWM2 0x9E
#define REG_92E_HIMR 0xB0
#define REG_92E_HISR 0xB4
#define REG_92E_HIMRE 0xB8
#define REG_92E_HISRE 0xBC
#define REG_92E_EFUSE_DATA1 0xCC
#define REG_92E_EFUSE_DATA0 0xCD
#define REG_92E_EPPR 0xCF
#define REG_92E_TDECTRL1 0x228
#define REG_92E_WATCHDOG 0x35C
#define REG_92E_VOQ_IDX 0x310
#define REG_92E_VIQ_IDX 0x314
#define REG_92E_MGQ_DESA 0x318
#define REG_92E_VOQ_DESA 0x320
#define REG_92E_VIQ_DESA 0x328
#define REG_92E_BEQ_DESA 0x330
#define REG_92E_BKQ_DESA 0x338
#define REG_92E_PCIE_HRPWM 0x361
#define REG_92E_PCIE_CLK_RECOVER 0x362
#define REG_92E_PCIE_HCPWM 0x363
#define REG_92E_BEQ_IDX 0x364
#define REG_92E_BKQ_IDX 0x368
#define REG_92E_MGQ_IDX 0x36C
#define REG_92E_HI0Q_IDX 0x370
#define REG_92E_HI1Q_IDX 0x374
#define REG_92E_HI2Q_IDX 0x378
#define REG_92E_HI3Q_IDX 0x37C
#define REG_92E_PCIE_HRPWM2 0x380
#define REG_92E_PCIE_HCPWM2 0x382
#define REG_92E_HCI_PCIE_H2C_MSG 0x384
#define REG_92E_HCI_PCIE_C2H_MSG 0x388
#define REG_92E_RXQ_IDX 0x38C
#define REG_92E_HI4Q_IDX 0x390
#define REG_92E_HI5Q_IDX 0x394
#define REG_92E_HI6Q_IDX 0x398
#define REG_92E_HI7Q_IDX 0x39C
#define REG_92E_HQ_DES_NUM0 0x3A0
#define REG_92E_HQ_DES_NUM1 0x3A4
#define REG_92E_HQ_DES_NUM2 0x3A8
#define REG_92E_HQ_DES_NUM3 0x3AC
#define REG_92E_TSFT_CLRQ 0x3B0
#define REG_92E_ACQ_DES_NUM0 0x3B4
#define REG_92E_ACQ_DES_NUM1 0x3B8
#define REG_92E_ACQ_DES_NUM2 0x3BC
#define REG_92E_HI0Q_DESA 0x3C0
#define REG_92E_HI1Q_DESA 0x3C8
#define REG_92E_HI2Q_DESA 0x3D0
#define REG_92E_HI3Q_DESA 0x3D8
#define REG_92E_HI4Q_DESA 0x3E0
#define REG_92E_HI5Q_DESA 0x3E8
#define REG_92E_HI6Q_DESA 0x3F0
#define REG_92E_HI7Q_DESA 0x3F8
#define REG_92E_TXPKTBUF_BCNQ_BDNY1 0x457
#define REG_92E_MACID_NOLINK 0x484
#define REG_92E_MACID_PAUSE 0x48C
#define REG_92E_TXRPT_CTRL 0x4EC
#define REG_92E_TXRPT_TIM 0x4F0
#define REG_92E_TXRPT_STSSET 0x4F2
#define REG_92E_TXRPT_STSVLD 0x4F4
#define REG_92E_TXRPT_STSINF 0x4F8
#define REG_92E_MBSSID_CTRL 0x526
#define REG_92E_PKT_LIFETIME_CTRL 0x528
#define REG_92E_ATIMWND1 0x570
#define REG_92E_PRE_DL_BCN_ITV 0x58F
#define REG_92E_ATIMWND2 0x5A0
#define REG_92E_ATIMWND3 0x5A1
#define REG_92E_ATIMWND4 0x5A2
#define REG_92E_ATIMWND5 0x5A3
#define REG_92E_ATIMWND6 0x5A4
#define REG_92E_ATIMWND7 0x5A5
#define REG_92E_ATIMUGT 0x5A6
#define REG_92E_HIQ_NO_LMT_EN 0x5A7
#define REG_92E_DTIM_COUNT_ROOT 0x5A8
#define REG_92E_DTIM_COUNT_VAP1 0x5A9
#define REG_92E_DTIM_COUNT_VAP2 0x5AA
#define REG_92E_DTIM_COUNT_VAP3 0x5AB
#define REG_92E_DTIM_COUNT_VAP4 0x5AC
#define REG_92E_DTIM_COUNT_VAP5 0x5AD
#define REG_92E_DTIM_COUNT_VAP6 0x5AE
#define REG_92E_DTIM_COUNT_VAP7 0x5AF
#define REG_92E_DIS_ATIM 0x5B0
#define REG_92E_UPD_HGQMD 0x604
//----------------------------------------------------------------------------
// 8192E REG_92E_HIMR bits (Offset 0xB0-B3, 32 bits)
//----------------------------------------------------------------------------
//----------------------------------------------------------------------------
// 8192E REG_92E_HISR bits (Offset 0xB4-B7, 32 bits)
//----------------------------------------------------------------------------
#define HIMR_92E_TXCCK BIT(30) // TXRPT interrupt when CCX bit of the packet is set
#define HIMR_92E_PSTIMEOUT BIT(29) // Power Save Time Out Interrupt
#define HIMR_92E_GTINT4 BIT(28) // When GTIMER4 expires, this bit is set to 1
#define HIMR_92E_GTINT3 BIT(27) // When GTIMER3 expires, this bit is set to 1
#define HIMR_92E_TBDER BIT(26) // Transmit Beacon0 Error
#define HIMR_92E_TBDOK BIT(25) // Transmit Beacon0 OK, ad hoc only
#define HIMR_92E_TSF_BIT32_TOGGLE BIT(24) // TSF Timer BIT32 toggle indication interrupt
#define HIMR_92E_BcnInt BIT(20) // Beacon DMA Interrupt 0
#define HIMR_92E_BDERR0 BIT(16) // Beacon Queue DMA OK0
#define HIMR_92E_HSISR_IND_ON_INT BIT(15) // HSISR Indicator (HSIMR & HSISR is true, this bit is set to 1)
#define HIMR_92E_BCNDMAINT_E BIT(14) // Beacon DMA Interrupt Extension for Win7
#define HIMR_92E_ATIMEND BIT(12) // CTWidnow End or ATIM Window End
#define HIMR_92E_HISR1_IND_INT BIT(11) // HISR1 Indicator (HISR1 & HIMR1 is true, this bit is set to 1)
#define HIMR_92E_C2HCMD BIT(10) // CPU to Host Command INT Status, Write 1 clear
#define HIMR_92E_CPWM2 BIT(9) // CPU power Mode exchange INT Status, Write 1 clear
#define HIMR_92E_CPWM BIT(8) // CPU power Mode exchange INT Status, Write 1 clear
#define HIMR_92E_HIGHDOK BIT(7) // High Queue DMA OK
#define HIMR_92E_MGNTDOK BIT(6) // Management Queue DMA OK
#define HIMR_92E_BKDOK BIT(5) // AC_BK DMA OK
#define HIMR_92E_BEDOK BIT(4) // AC_BE DMA OK
#define HIMR_92E_VIDOK BIT(3) // AC_VI DMA OK
#define HIMR_92E_VODOK BIT(2) // AC_VO DMA OK
#define HIMR_92E_RDU BIT(1) // Rx Descriptor Unavailable
#define HIMR_92E_ROK BIT(0) // Receive DMA OK
//----------------------------------------------------------------------------
// 8192E REG_92E_HIMRE bits (Offset 0xB8-BB, 32 bits)
//----------------------------------------------------------------------------
//----------------------------------------------------------------------------
// 8192E REG_92E_HIMSE bits (Offset 0xBC-BF, 32 bits)
//----------------------------------------------------------------------------
#define HIMRE_92E_BCNDMAINT7 BIT(27) // Beacon DMA Interrupt 7
#define HIMRE_92E_BCNDMAINT6 BIT(26) // Beacon DMA Interrupt 6
#define HIMRE_92E_BCNDMAINT5 BIT(25) // Beacon DMA Interrupt 5
#define HIMRE_92E_BCNDMAINT4 BIT(24) // Beacon DMA Interrupt 4
#define HIMRE_92E_BCNDMAINT3 BIT(23) // Beacon DMA Interrupt 3
#define HIMRE_92E_BCNDMAINT2 BIT(22) // Beacon DMA Interrupt 2
#define HIMRE_92E_BCNDMAINT1 BIT(21) // Beacon DMA Interrupt 1
#define HIMRE_92E_BCNDOK7 BIT(20) // Beacon Queue DMA OK Interrup 7
#define HIMRE_92E_BCNDOK6 BIT(19) // Beacon Queue DMA OK Interrup 6
#define HIMRE_92E_BCNDOK5 BIT(18) // Beacon Queue DMA OK Interrup 5
#define HIMRE_92E_BCNDOK4 BIT(17) // Beacon Queue DMA OK Interrup 4
#define HIMRE_92E_BCNDOK3 BIT(16) // Beacon Queue DMA OK Interrup 3
#define HIMRE_92E_BCNDOK2 BIT(15) // Beacon Queue DMA OK Interrup 2
#define HIMRE_92E_BCNDOK1 BIT(14) // Beacon Queue DMA OK Interrup 1
#define HIMRE_92E_ATIMEND_E BIT(13) // ATIM Window End Extension for Win7
#define HIMRE_92E_TXERR BIT(11) // Tx Error Flag Interrupt Status, write 1 clear.
#define HIMRE_92E_RXERR BIT(10) // Rx Error Flag INT Status, Write 1 clear
#define HIMRE_92E_TXFOVW BIT(9) // Transmit FIFO Overflow
#define HIMRE_92E_RXFOVW BIT(8) // Receive FIFO Overflow
//----------------------------------------------------------------------------
// 8192E REG_92E_HQ_DES_NUM0 bits (Offset 0x3A0-3A3, 32 bits)
//----------------------------------------------------------------------------
#define ACQ_92E_H1Q_DESCS_MODE_8SEG BIT(31)
#define ACQ_92E_H1Q_DESC_NUM_MASK 0xfff
#define ACQ_92E_H1Q_DESC_NUM_SHIFT 16
#define ACQ_92E_H0Q_DESCS_MODE_8SEG BIT(15)
#define ACQ_92E_H0Q_DESC_NUM_MASK 0xfff
#define ACQ_92E_H0Q_DESC_NUM_SHIFT 0
//----------------------------------------------------------------------------
// 8192E REG_92E_HQ_DES_NUM1 bits (Offset 0x3A4-3A7, 32 bits)
//----------------------------------------------------------------------------
#define ACQ_92E_H3Q_DESCS_MODE_8SEG BIT(31)
#define ACQ_92E_H3Q_DESC_NUM_MASK 0xfff
#define ACQ_92E_H3Q_DESC_NUM_SHIFT 16
#define ACQ_92E_H2Q_DESCS_MODE_8SEG BIT(15)
#define ACQ_92E_H2Q_DESC_NUM_MASK 0xfff
#define ACQ_92E_H2Q_DESC_NUM_SHIFT 0
//----------------------------------------------------------------------------
// 8192E REG_92E_HQ_DES_NUM2 bits (Offset 0x3A8-3AB, 32 bits)
//----------------------------------------------------------------------------
#define ACQ_92E_H5Q_DESCS_MODE_8SEG BIT(31)
#define ACQ_92E_H5Q_DESC_NUM_MASK 0xfff
#define ACQ_92E_H5Q_DESC_NUM_SHIFT 16
#define ACQ_92E_H4Q_DESCS_MODE_8SEG BIT(15)
#define ACQ_92E_H4Q_DESC_NUM_MASK 0xfff
#define ACQ_92E_H4Q_DESC_NUM_SHIFT 0
//----------------------------------------------------------------------------
// 8192E REG_92E_HQ_DES_NUM3 bits (Offset 0x3AC-3AF, 32 bits)
//----------------------------------------------------------------------------
#define ACQ_92E_H7Q_DESCS_MODE_8SEG BIT(31)
#define ACQ_92E_H7Q_DESC_NUM_MASK 0xfff
#define ACQ_92E_H7Q_DESC_NUM_SHIFT 16
#define ACQ_92E_H6Q_DESCS_MODE_8SEG BIT(15)
#define ACQ_92E_H6Q_DESC_NUM_MASK 0xfff
#define ACQ_92E_H6Q_DESC_NUM_SHIFT 0
//----------------------------------------------------------------------------
// 8192E REG_92E_CLRQ bits (Offset 0x3B0-3B4, 32 bits)
//----------------------------------------------------------------------------
#define CLRQ_92E_ALL_IDX 0x3FFF3FFF
#define CLRQ_92E_HI7Q_HW_IDX BIT(29)
#define CLRQ_92E_HI6Q_HW_IDX BIT(28)
#define CLRQ_92E_HI5Q_HW_IDX BIT(27)
#define CLRQ_92E_HI4Q_HW_IDX BIT(26)
#define CLRQ_92E_HI3Q_HW_IDX BIT(25)
#define CLRQ_92E_HI2Q_HW_IDX BIT(24)
#define CLRQ_92E_HI1Q_HW_IDX BIT(23)
#define CLRQ_92E_HI0Q_HW_IDX BIT(22)
#define CLRQ_92E_BKQ_HW_IDX BIT(21)
#define CLRQ_92E_BEQ_HW_IDX BIT(20)
#define CLRQ_92E_VIQ_HW_IDX BIT(19)
#define CLRQ_92E_VOQ_HW_IDX BIT(18)
#define CLRQ_92E_MGQ_HW_IDX BIT(17)
#define CLRQ_92E_RXQ_HW_IDX BIT(16)
#define CLRQ_92E_HI7Q_HOST_IDX BIT(13)
#define CLRQ_92E_HI6Q_HOST_IDX BIT(12)
#define CLRQ_92E_HI5Q_HOST_IDX BIT(11)
#define CLRQ_92E_HI4Q_HOST_IDX BIT(10)
#define CLRQ_92E_HI3Q_HOST_IDX BIT(9)
#define CLRQ_92E_HI2Q_HOST_IDX BIT(8)
#define CLRQ_92E_HI1Q_HOST_IDX BIT(7)
#define CLRQ_92E_HI0Q_HOST_IDX BIT(6)
#define CLRQ_92E_BKQ_HOST_IDX BIT(5)
#define CLRQ_92E_BEQ_HOST_IDX BIT(4)
#define CLRQ_92E_VIQ_HOST_IDX BIT(3)
#define CLRQ_92E_VOQ_HOST_IDX BIT(2)
#define CLRQ_92E_MGQ_HOST_IDX BIT(1)
#define CLRQ_92E_RXQ_HOST_IDX BIT(0)
//----------------------------------------------------------------------------
// 8192E REG_92E_ACQ_DES_NUM0 bits (Offset 0x3B4-3B7, 32 bits)
//----------------------------------------------------------------------------
#define ACQ_92E_VIQ_DESCS_MODE_8SEG BIT(31)
#define ACQ_92E_VIQ_DESC_NUM_MASK 0xfff
#define ACQ_92E_VIQ_DESC_NUM_SHIFT 16
#define ACQ_92E_VOQ_DESCS_MODE_8SEG BIT(15)
#define ACQ_92E_VOQ_DESC_NUM_MASK 0xfff
#define ACQ_92E_VOQ_DESC_NUM_SHIFT 0
//----------------------------------------------------------------------------
// 8192E REG_92E_ACQ_DES_NUM1 bits (Offset 0x3B8-3BB, 32 bits)
//----------------------------------------------------------------------------
#define ACQ_92E_BKQ_DESCS_MODE_8SEG BIT(31)
#define ACQ_92E_BKQ_DESC_NUM_MASK 0xfff
#define ACQ_92E_BKQ_DESC_NUM_SHIFT 16
#define ACQ_92E_BEQ_DESCS_MODE_8SEG BIT(15)
#define ACQ_92E_BEQ_DESC_NUM_MASK 0xfff
#define ACQ_92E_BEQ_DESC_NUM_SHIFT 0
//----------------------------------------------------------------------------
// 8192E REG_92E_ACQ_DES_NUM2 bits (Offset 0x3BC-3BF, 32 bits)
//----------------------------------------------------------------------------
#define ACQ_92E_RXQ_DESC_NUM_MASK 0xfff
#define ACQ_92E_RXQ_DESC_NUM_SHIFT 16
#define ACQ_92E_MGQ_DESCS_MODE_8SEG BIT(15)
#define ACQ_92E_MGQ_DESC_NUM_MASK 0xfff
#define ACQ_92E_MGQ_DESC_NUM_SHIFT 0
//----------------------------------------------------------------------------
// 8192E MBID_NUM bits (Offset 0x552, 8 bits)
//----------------------------------------------------------------------------
#define MBID_NUM_92E_EN_PREDOWN_BCN BIT(3)
#endif
|