blob: c0e9ddbedd7a49f6e5b4b1921068712d00d4dea8 [file] [log] [blame]
Jeff Johnson295189b2012-06-20 16:38:30 -07001/*
2 * Copyright (c) 2012, Code Aurora Forum. 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
22/**
23 *
24 * @file: wlan_qct_dev_defs.h
25 *
26 * @brief: This file contains the hardware related definitions.
27 *
28 * Copyright (C) 2008, Qualcomm, Inc. All rights reserved.
29 */
30
31#ifndef __WLAN_QCT_DEV_DEFS_H
32#define __WLAN_QCT_DEV_DEFS_H
33
34
35/* --------------------------------------------------------------------
36 * HW definitions for WLAN Chip
37 * --------------------------------------------------------------------
38 */
39
40/*In prima 12 HW stations are supported including BCAST STA(staId 0)
41 and SELF STA(staId 1) so total ASSOC stations which can connect to Prima
42 SoftAP = 12 - 1(Self STa) - 1(Bcast Sta) = 10 Stations. */
43
44#define HAL_NUM_STA 12
45#define HAL_NUM_BSSID 2
46#define HAL_NUM_UMA_DESC_ENTRIES 12
47
48#define HAL_INVALID_BSSIDX HAL_NUM_BSSID
49
50#define MAX_NUM_OF_BACKOFFS 8
51#define HAL_MAX_ASSOC_ID HAL_NUM_STA
52
53#define WLANHAL_TX_BD_HEADER_SIZE 40 //FIXME_PRIMA - Revisit
54#define WLANHAL_RX_BD_HEADER_SIZE 76
55
56/*
57 * From NOVA Mac Arch document
58 * Encryp. mode The encryption mode
59 * 000: Encryption functionality is not enabled
60 * 001: Encryption is set to WEP
61 * 010: Encryption is set to WEP 104
62 * 011: Encryption is set to TKIP
63 * 100: Encryption is set to AES
64 * 101 - 111: Reserved for future
65 */
66
67#define HAL_ENC_POLICY_NULL 0
68#define HAL_ENC_POLICY_WEP40 1
69#define HAL_ENC_POLICY_WEP104 2
70#define HAL_ENC_POLICY_TKIP 3
71#define HAL_ENC_POLICY_AES_CCM 4
72
73/* --------------------------------------------------------------------- */
74/* BMU */
75/* --------------------------------------------------------------------- */
76
77/*
78 * BMU WQ assignment, as per Prima Programmer's Guide - FIXME_PRIMA: Revisit
79 *
80 */
81
82typedef enum sBmuWqId {
83
84 /* ====== In use WQs ====== */
85
86 /* BMU */
87 BMUWQ_BMU_IDLE_BD = 0,
88 BMUWQ_BMU_IDLE_PDU = 1,
89
90 /* RxP */
91 BMUWQ_RXP_UNKNWON_ADDR = 2, /* currently unhandled by HAL */
92
93 /* DPU RX */
94 BMUWQ_DPU_RX = 3,
95
96 /* DPU TX */
97 BMUWQ_DPU_TX = 6,
98
99 /* Firmware */
100 BMUWQ_FW_TRANSMIT = 12, /* DPU Tx->FW Tx */
101 BMUWQ_FW_RECV = 7, /* DPU Rx->FW Rx */
102
103 BMUWQ_FW_RPE_RECV = 16, /* RXP/RPE Rx->FW Rx */
104 FW_SCO_WQ = BMUWQ_FW_RPE_RECV,
105
106 /* DPU Error */
107 BMUWQ_DPU_ERROR_WQ = 8,
108
109 /* DXE RX */
110 BMUWQ_DXE_RX = 11,
111
112 BMUWQ_DXE_RX_HI = 4,
113
114 /* ADU/UMA */
115 BMUWQ_ADU_UMA_TX = 23,
116 BMUWQ_ADU_UMA_RX = 24,
117
118 /* BMU BTQM */
119 BMUWQ_BTQM = 25,
120
121 /* Special WQ for BMU to dropping all frames coming to this WQ ID */
122 BMUWQ_SINK = 255,
123
124 /* Total BMU WQ count in Volans */
125 BMUWQ_NUM = 27,
126
127 //Volans has excluded support for WQs 17 through 22.
128 BMUWQ_NOT_SUPPORTED_MASK = 0x7e0000,
129
130 /* Aliases */
131 BMUWQ_BTQM_TX_MGMT = BMUWQ_BTQM,
132 BMUWQ_BTQM_TX_DATA = BMUWQ_BTQM,
133 BMUWQ_BMU_WQ2 = BMUWQ_RXP_UNKNWON_ADDR,
134 BMUWQ_FW_DPU_TX = 5,
135
136 //WQ where all the frames with addr1/addr2/addr3 with value 254/255 go to.
137 BMUWQ_FW_RECV_EXCEPTION = 14, //using BMUWQ_FW_MESSAGE WQ for this purpose.
138
139 //WQ where all frames with unknown Addr2 filter exception cases frames will pushed if FW wants host to
140 //send deauth to the sender.
141 BMUWQ_HOST_RX_UNKNOWN_ADDR2_FRAMES = 15, //using BMUWQ_FW_DXECH2_0 for this purpose.
142
143 /* ====== Unused/Reserved WQ ====== */
144
145 /* ADU/UMA Error WQ */
146 BMUWQ_ADU_UMA_TX_ERROR_WQ = 13, /* Not in use by HAL */
147 BMUWQ_ADU_UMA_RX_ERROR_WQ = 10, /* Not in use by HAL */
148
149 /* DPU Error WQ2 */
150 BMUWQ_DPU_ERROR_WQ2 = 9, /* Not in use by HAL */
151
152 /* FW WQs */
153 //This WQ is being used for RXP to push in frames in exception cases ( addr1/add2/addr3 254/255)
154 //BMUWQ_FW_MESG = 14, /* DxE Tx->FW, Not in use by FW */
155 //BMUWQ_FW_DXECH2_0 = 15, /* BD/PDU<->MEM conversion using DxE CH2. Not in use by FW */
156 BMUWQ_FW_DXECH2_1 = 16, /* BD/PDU<->MEM conversion using DxE CH2. Not in use by FW */
157
158/* These WQs are not supported in Volans
159 BMUWQ_BMU_WQ17 = 17,
160 BMUWQ_BMU_WQ18 = 18,
161 BMUWQ_BMU_WQ19 = 19,
162 BMUWQ_BMU_WQ20 = 20,
163 BMUWQ_BMU_WQ21 = 21,
164 BMUWQ_BMU_WQ22 = 22
165*/
166} tBmuWqId;
167
168typedef enum
169{
170 BTQM_QID0 = 0,
171 BTQM_QID1,
172 BTQM_QID2,
173 BTQM_QID3,
174 BTQM_QID4,
175 BTQM_QID5,
176 BTQM_QID6,
177 BTQM_QID7,
178 BTQM_QID8,
179 BTQM_QID9,
180 BTQM_QID10,
181
182 BTQM_QUEUE_TX_TID_0 = BTQM_QID0,
183 BTQM_QUEUE_TX_TID_1,
184 BTQM_QUEUE_TX_TID_2,
185 BTQM_QUEUE_TX_TID_3,
186 BTQM_QUEUE_TX_TID_4,
187 BTQM_QUEUE_TX_TID_5,
188 BTQM_QUEUE_TX_TID_6,
189 BTQM_QUEUE_TX_TID_7,
190
191
192 /* Queue Id <-> BO
193 */
194 BTQM_QUEUE_TX_nQOS = BTQM_QID8,
195 BTQM_QUEUE_SELF_STA_BCAST_MGMT = BTQM_QID10,
196 BTQM_QUEUE_SELF_STA_UCAST_MGMT = BTQM_QID9,
197 BTQM_QUEUE_SELF_STA_UCAST_DATA = BTQM_QID9,
198 BTQM_QUEUE_NULL_FRAME = BTQM_QID9,
199 BTQM_QUEUE_SELF_STA_PROBE_RSP = BTQM_QID9,
200 BTQM_QUEUE_TX_AC_BE = BTQM_QUEUE_TX_TID_0,
201 BTQM_QUEUE_TX_AC_BK = BTQM_QUEUE_TX_TID_2,
202 BTQM_QUEUE_TX_AC_VI = BTQM_QUEUE_TX_TID_4,
203 BTQM_QUEUE_TX_AC_VO = BTQM_QUEUE_TX_TID_6
204}tBtqmQId;
205
206#define STACFG_MAX_TC 8
207
208/* --------------------------------------------------------------------- */
209/* BD type*/
210/* --------------------------------------------------------------------- */
211#define HWBD_TYPE_GENERIC 0 /* generic BD format */
212#define HWBD_TYPE_FRAG 1 /* fragmentation BD format*/
213
214#endif /* __WLAN_QCT_DEV_DEFS_H */