blob: 9a6ea8f11acf8d215160e48ac6c0a7c89cd2098f [file] [log] [blame]
Jeff Johnson295189b2012-06-20 16:38:30 -07001/*
Gopichand Nakkala9c070ad2013-01-08 21:16:34 -08002 * Copyright (c) 2012-2013, The Linux Foundation. All rights reserved.
3 *
4 * Previously licensed under the ISC license by Qualcomm Atheros, Inc.
5 *
6 *
7 * Permission to use, copy, modify, and/or distribute this software for
8 * any purpose with or without fee is hereby granted, provided that the
9 * above copyright notice and this permission notice appear in all
10 * copies.
11 *
12 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
13 * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
14 * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
15 * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
16 * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
17 * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
18 * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
19 * PERFORMANCE OF THIS SOFTWARE.
20 */
21/*
Jeff Johnson32d95a32012-09-10 13:15:23 -070022 * Copyright (c) 2012, The Linux Foundation. All rights reserved.
Jeff Johnson295189b2012-06-20 16:38:30 -070023 *
24 * Previously licensed under the ISC license by Qualcomm Atheros, Inc.
25 *
26 *
27 * Permission to use, copy, modify, and/or distribute this software for
28 * any purpose with or without fee is hereby granted, provided that the
29 * above copyright notice and this permission notice appear in all
30 * copies.
31 *
32 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
33 * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
34 * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
35 * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
36 * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
37 * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
38 * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
39 * PERFORMANCE OF THIS SOFTWARE.
40 */
41
42/**
43 *
44 * @file: wlan_qct_dev_defs.h
45 *
46 * @brief: This file contains the hardware related definitions.
47 *
48 * Copyright (C) 2008, Qualcomm, Inc. All rights reserved.
49 */
50
51#ifndef __WLAN_QCT_DEV_DEFS_H
52#define __WLAN_QCT_DEV_DEFS_H
53
54
55/* --------------------------------------------------------------------
56 * HW definitions for WLAN Chip
57 * --------------------------------------------------------------------
58 */
59
Jeff Johnsone7245742012-09-05 17:12:55 -070060#ifdef WCN_PRONTO
61#ifdef WCN_PRONTO_V1
62
63/* In Pronto 1.0 TPE descriptor size is increased to 1K per station
64 * but not the cMEM allocated for hardware descriptors. Due to this
65 * memory limitation the number of stations are limited to 9 and BSS
66 * to 2 respectively.
67 *
68 * In Pronto 2.0, TPE descriptor size is reverted
69 * back to 512 bytes and hence more stations and BSSs can be supported
70 * from Pronto 2.0
71 *
72 * In Pronto 1.0, 9 HW stations are supported including BCAST STA(staId 0)
73 * and SELF STA(staId 1). So total ASSOC stations which can connect to
74 * Pronto 1.0 Softap = 9 - 1(self sta) - 1(Bcast sta) = 7 stations
75 */
76#define HAL_NUM_STA 9
77#define HAL_NUM_BSSID 2
78#define HAL_NUM_UMA_DESC_ENTRIES 9
79
80#else /* WCN_PRONTO_V1 */
81
82#define HAL_NUM_STA 14
83#define HAL_NUM_BSSID 4
84#define HAL_NUM_UMA_DESC_ENTRIES 14
85
86#endif /* WCN_PRONTO_V1 */
87#else /* WCN_PRONTO */
88
Jeff Johnson295189b2012-06-20 16:38:30 -070089/*In prima 12 HW stations are supported including BCAST STA(staId 0)
90 and SELF STA(staId 1) so total ASSOC stations which can connect to Prima
91 SoftAP = 12 - 1(Self STa) - 1(Bcast Sta) = 10 Stations. */
Jeff Johnson295189b2012-06-20 16:38:30 -070092#define HAL_NUM_STA 12
93#define HAL_NUM_BSSID 2
94#define HAL_NUM_UMA_DESC_ENTRIES 12
95
Jeff Johnsone7245742012-09-05 17:12:55 -070096#endif /* WCN_PRONTO */
97
98
Jeff Johnson295189b2012-06-20 16:38:30 -070099#define HAL_INVALID_BSSIDX HAL_NUM_BSSID
100
101#define MAX_NUM_OF_BACKOFFS 8
102#define HAL_MAX_ASSOC_ID HAL_NUM_STA
103
104#define WLANHAL_TX_BD_HEADER_SIZE 40 //FIXME_PRIMA - Revisit
105#define WLANHAL_RX_BD_HEADER_SIZE 76
106
107/*
108 * From NOVA Mac Arch document
109 * Encryp. mode The encryption mode
110 * 000: Encryption functionality is not enabled
111 * 001: Encryption is set to WEP
112 * 010: Encryption is set to WEP 104
113 * 011: Encryption is set to TKIP
114 * 100: Encryption is set to AES
115 * 101 - 111: Reserved for future
116 */
117
118#define HAL_ENC_POLICY_NULL 0
119#define HAL_ENC_POLICY_WEP40 1
120#define HAL_ENC_POLICY_WEP104 2
121#define HAL_ENC_POLICY_TKIP 3
122#define HAL_ENC_POLICY_AES_CCM 4
123
124/* --------------------------------------------------------------------- */
125/* BMU */
126/* --------------------------------------------------------------------- */
127
128/*
129 * BMU WQ assignment, as per Prima Programmer's Guide - FIXME_PRIMA: Revisit
130 *
131 */
132
133typedef enum sBmuWqId {
134
135 /* ====== In use WQs ====== */
136
137 /* BMU */
138 BMUWQ_BMU_IDLE_BD = 0,
139 BMUWQ_BMU_IDLE_PDU = 1,
140
141 /* RxP */
142 BMUWQ_RXP_UNKNWON_ADDR = 2, /* currently unhandled by HAL */
143
144 /* DPU RX */
145 BMUWQ_DPU_RX = 3,
146
147 /* DPU TX */
148 BMUWQ_DPU_TX = 6,
149
150 /* Firmware */
151 BMUWQ_FW_TRANSMIT = 12, /* DPU Tx->FW Tx */
152 BMUWQ_FW_RECV = 7, /* DPU Rx->FW Rx */
153
154 BMUWQ_FW_RPE_RECV = 16, /* RXP/RPE Rx->FW Rx */
155 FW_SCO_WQ = BMUWQ_FW_RPE_RECV,
156
157 /* DPU Error */
158 BMUWQ_DPU_ERROR_WQ = 8,
159
160 /* DXE RX */
161 BMUWQ_DXE_RX = 11,
162
163 BMUWQ_DXE_RX_HI = 4,
164
165 /* ADU/UMA */
166 BMUWQ_ADU_UMA_TX = 23,
167 BMUWQ_ADU_UMA_RX = 24,
168
169 /* BMU BTQM */
170 BMUWQ_BTQM = 25,
171
172 /* Special WQ for BMU to dropping all frames coming to this WQ ID */
173 BMUWQ_SINK = 255,
174
Jeff Johnsone7245742012-09-05 17:12:55 -0700175#ifdef WCN_PRONTO
176 BMUWQ_BMU_CMEM_IDLE_BD = 27,
177 /* Total BMU WQ count in Pronto */
178 BMUWQ_NUM = 28,
179
180 //WQs 17 through 22 are enabled in Pronto. So, set not supported mask to 0.
181 BMUWQ_NOT_SUPPORTED_MASK = 0x0,
182#else
183 /* Total BMU WQ count in Prima */
Jeff Johnson295189b2012-06-20 16:38:30 -0700184 BMUWQ_NUM = 27,
185
Jeff Johnsone7245742012-09-05 17:12:55 -0700186 //Prima has excluded support for WQs 17 through 22.
Jeff Johnson295189b2012-06-20 16:38:30 -0700187 BMUWQ_NOT_SUPPORTED_MASK = 0x7e0000,
Jeff Johnsone7245742012-09-05 17:12:55 -0700188#endif //WCN_PRONTO
189
Jeff Johnson295189b2012-06-20 16:38:30 -0700190
191 /* Aliases */
192 BMUWQ_BTQM_TX_MGMT = BMUWQ_BTQM,
193 BMUWQ_BTQM_TX_DATA = BMUWQ_BTQM,
194 BMUWQ_BMU_WQ2 = BMUWQ_RXP_UNKNWON_ADDR,
195 BMUWQ_FW_DPU_TX = 5,
196
197 //WQ where all the frames with addr1/addr2/addr3 with value 254/255 go to.
198 BMUWQ_FW_RECV_EXCEPTION = 14, //using BMUWQ_FW_MESSAGE WQ for this purpose.
199
200 //WQ where all frames with unknown Addr2 filter exception cases frames will pushed if FW wants host to
201 //send deauth to the sender.
202 BMUWQ_HOST_RX_UNKNOWN_ADDR2_FRAMES = 15, //using BMUWQ_FW_DXECH2_0 for this purpose.
203
204 /* ====== Unused/Reserved WQ ====== */
205
206 /* ADU/UMA Error WQ */
207 BMUWQ_ADU_UMA_TX_ERROR_WQ = 13, /* Not in use by HAL */
208 BMUWQ_ADU_UMA_RX_ERROR_WQ = 10, /* Not in use by HAL */
209
210 /* DPU Error WQ2 */
211 BMUWQ_DPU_ERROR_WQ2 = 9, /* Not in use by HAL */
212
213 /* FW WQs */
214 //This WQ is being used for RXP to push in frames in exception cases ( addr1/add2/addr3 254/255)
215 //BMUWQ_FW_MESG = 14, /* DxE Tx->FW, Not in use by FW */
216 //BMUWQ_FW_DXECH2_0 = 15, /* BD/PDU<->MEM conversion using DxE CH2. Not in use by FW */
217 BMUWQ_FW_DXECH2_1 = 16, /* BD/PDU<->MEM conversion using DxE CH2. Not in use by FW */
218
219/* These WQs are not supported in Volans
220 BMUWQ_BMU_WQ17 = 17,
221 BMUWQ_BMU_WQ18 = 18,
222 BMUWQ_BMU_WQ19 = 19,
223 BMUWQ_BMU_WQ20 = 20,
224 BMUWQ_BMU_WQ21 = 21,
225 BMUWQ_BMU_WQ22 = 22
226*/
227} tBmuWqId;
228
229typedef enum
230{
231 BTQM_QID0 = 0,
232 BTQM_QID1,
233 BTQM_QID2,
234 BTQM_QID3,
235 BTQM_QID4,
236 BTQM_QID5,
237 BTQM_QID6,
238 BTQM_QID7,
239 BTQM_QID8,
240 BTQM_QID9,
241 BTQM_QID10,
242
243 BTQM_QUEUE_TX_TID_0 = BTQM_QID0,
244 BTQM_QUEUE_TX_TID_1,
245 BTQM_QUEUE_TX_TID_2,
246 BTQM_QUEUE_TX_TID_3,
247 BTQM_QUEUE_TX_TID_4,
248 BTQM_QUEUE_TX_TID_5,
249 BTQM_QUEUE_TX_TID_6,
250 BTQM_QUEUE_TX_TID_7,
251
252
253 /* Queue Id <-> BO
254 */
255 BTQM_QUEUE_TX_nQOS = BTQM_QID8,
256 BTQM_QUEUE_SELF_STA_BCAST_MGMT = BTQM_QID10,
257 BTQM_QUEUE_SELF_STA_UCAST_MGMT = BTQM_QID9,
258 BTQM_QUEUE_SELF_STA_UCAST_DATA = BTQM_QID9,
259 BTQM_QUEUE_NULL_FRAME = BTQM_QID9,
260 BTQM_QUEUE_SELF_STA_PROBE_RSP = BTQM_QID9,
261 BTQM_QUEUE_TX_AC_BE = BTQM_QUEUE_TX_TID_0,
262 BTQM_QUEUE_TX_AC_BK = BTQM_QUEUE_TX_TID_2,
263 BTQM_QUEUE_TX_AC_VI = BTQM_QUEUE_TX_TID_4,
264 BTQM_QUEUE_TX_AC_VO = BTQM_QUEUE_TX_TID_6
265}tBtqmQId;
266
267#define STACFG_MAX_TC 8
268
269/* --------------------------------------------------------------------- */
270/* BD type*/
271/* --------------------------------------------------------------------- */
272#define HWBD_TYPE_GENERIC 0 /* generic BD format */
273#define HWBD_TYPE_FRAG 1 /* fragmentation BD format*/
274
275#endif /* __WLAN_QCT_DEV_DEFS_H */