blob: 8d23e6852e80ffe0cae0b1422981963bf2e32acb [file] [log] [blame]
Prasanna Kumarf6c94ae2013-04-11 20:05:21 -07001/*
Xun Luo7cce87c2014-02-18 14:45:23 -08002 * Copyright (c) 2013-2014 The Linux Foundation. All rights reserved.
Kiet Lam1ed83fc2014-02-19 01:15:45 -08003 *
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.
Madan Mohan Koyyalamudia997c1e2013-09-03 12:16:32 -070020 */
Kiet Lam1ed83fc2014-02-19 01:15:45 -080021
22/*
23 * This file was originally distributed by Qualcomm Atheros, Inc.
24 * under proprietary terms before Copyright ownership was assigned
25 * to the Linux Foundation.
26 */
27
Prasanna Kumarf6c94ae2013-04-11 20:05:21 -070028/*===========================================================================
29 EDIT HISTORY FOR FILE
30
31 This section contains comments describing changes made to the module.
32 Notice that changes are listed in reverse chronological order.
33
34 $Header:$ $DateTime: $ $Author: $
35
36 when who what, where, why
37 -------- --- -----------------------------------------------
38 04/10/13 kumarpra nv built in creation
39===========================================================================*/
40
41
42/*
43 -----------------------------------------
44 This file is generated by nvTmplRun Parser
45 -----------------------------------------
46 To be auto-generated, or
47 This is the source file and the header file can be generated from this
48 template file.
49
50 Template constructs
51 1. TABLE_: struct
52 2. INDEX_ENUM: enums, e.g. {RATE_OFDM_6M,RATE_OFDM_54M}
53 3. INDEX_INT: int, e.g.{min, max, increment}
54 3. Basic data types: tANI_U8, tANI_S8, tANI_U32, tANI_S32
55 4. Storage types:
56 4.1 SINGULAR: one element of basic data type
57 4.2 ARRAY_1: one dimensional array, x-axis
58 4.3 ARRAY_2: two dimensional array, (x, y)
59 4.4 ARRAY_3: three dimensional array, (x, y, z)
60 4.5 ARRAY_4: four dimensional array, (x, y, z, t)
61
62 Implementation notes
63 1. Flow of changing NV data format: (TBD) Either change the template and
64 generate the header file, or modify header file and auto-generate
65 the template.
66 2. Flow of writing NV data: encode the template in the data stream, so the
67 NV data is "self-sufficient". No separate template, no compability
68 issue, no need of version control.
69 3. Flow of reading NV data: parse the binary NV data stream based on the
70 template info in the data stream.
71 4. The above NV logic is decoupled from the actual data content, a generic,
72 content ergonostic parser (reading) and encoder (writing).
73 The NV logic is common code shared by tools, s/w
74 (both host and firmware), and off-line utilities.
75 5. NV data parsing and "acceptanace" into an s/w moduel data structure can
76 be "configured" in several ways:
77 5.1 only total matching of all fields, otherwise, reject the whole data
78 stream (a table).
79 5.2 partial matching of fields allowed and the rest fields assume
80 reasonal default values,
81 The choice can be determined later, but the capability is provided.
82 6. We could also design in this selection on an individual table base.
83 To design such capability, reserve some header bits in the data stream.
84 7. The NV data streams can be modified, replaced, or intact with a new data
85 stream of the same table ID added to NV data.
86 The choice can be determined later, but the NV scheme provides such
87 capability.
88 8. The template construct definitions can be common to all tables
89 (tbd: in a common section) or table specific, or updated in a
90 subsequent format section.
91 The use cases are:
92 - An index enum (e.g. RF channels) is common to all tables when the NV
93 data is created. Later new enums are added (e.g.
94 additional channels), one can choose to add the new index enum for new
95 tables appended to the NV data, or replace the
96 old table with new template info and data.
97 The template precedence is table specific then common, and later
98 "common" overwrites "earlier" commmon.
99 - A new field is added to the table, the user decides to replace the
100 old table data, he can simply encode the template info in the
101 data stream.
102 - In the same scenario (a new field is added), the user decides to
103 append a new table, he can encode the template
104 in the new data table and append it to NV data, or write a new common
105 template section and append the data.
106
107 Key "ingredients", (re-iterate the most important features and capabilities)
108 1. How to parse the data is embedded in the NV data itself. It removes the
109 dependency on header file matching,
110 version checking, compatibility among tools, host and firmware.
111 2. Table field ID enables "partial" data acceptance in an s/w module data
112 structure. Whether full matching or reject the whole table, or "partial"
113 acceptance, the capabiilty is in place and further ensures the robust
114 NV data extensibility and compatibility.
115 3. The table granularity, data stream based NV data has variable length
116 and flexibility of modifying an existing table data, replacing the
117 whole data, or leaving the existing data table intact and appending
118 a new table.
119 Misc notes:
120 1. For endianness, support only 4 bytes integer or 4 1-byte
121 2. String identifier needs to be shortened to save storage
122 3. string_field_name, field type, field storage class, storage size
123*/
124
125
126#include "wlan_nv_types.h"
127#include "wlan_nv_stream.h"
128#include "wlan_nv.h"
129#include "wlan_nv_template_internal.h"
130#include "wlan_nv_template_api.h"
131#include "wlan_nv_template_builtin.h"
132
133
134
135static int enumNoOfFieldArray[INDEX_ENUM_BUILTIN_MAX] =
Leo Chang80de3c22013-11-26 10:52:12 -0800136 {7,1,9,5,40,14,3,55};
Prasanna Kumarf6c94ae2013-04-11 20:05:21 -0700137
138_NV_TEMPLATE_ENUM NvEnumsBuiltIn[/*INDEX_ENUM_MAX*/][ENUM_ENTRIES_MAX] = {
139 { // INDEX_ENUM_ALL
140 {"j1",INDEX_ENUM_NUM_PHY_MAX_TX_CHAINS,0,{nul}},
141 {"j2",INDEX_ENUM_NUM_REG_DOMAINS,0,{nul}},
142 {"j3",INDEX_ENUM_NUM_RF_SUBBANDS,0,{nul}},
143 {"j4",INDEX_ENUM_NUM_RF_CHANNELS,0,{nul}},
144 {"j5",INDEX_ENUM_NUM_2_4GHZ_CHANNELS,0,{nul}},
145 {"j6",INDEX_ENUM_NUM_802_11_MODES,0,{nul}},
146 {"j7",INDEX_ENUM_NUM_HAL_PHY_RATES,0,{nul}},
147 {{nul},0, 0,{nul}},
148 }, // INDEX_ENUM_ALL
149
150 { // INDEX_ENUM_NUM_PHY_MAX_TX_CHAINS
151 {"a1",PHY_TX_CHAIN_0,0,{nul}},
152 {{nul},0, 0,{nul}},
153 }, // INDEX_ENUM_NUM_PHY_MAX_TX_CHAINS
154
155 { // INDEX_ENUM_NUM_REG_DOMAINS
156 {"a3",REG_DOMAIN_FCC,0,{nul}},
157 {"a4",REG_DOMAIN_ETSI,0,{nul}},
158 {"a5",REG_DOMAIN_JAPAN,0,{nul}},
159 {"a6",REG_DOMAIN_WORLD,0,{nul}},
160 {"a7",REG_DOMAIN_N_AMER_EXC_FCC,0,{nul}},
161 {"a8",REG_DOMAIN_APAC,0,{nul}},
162 {"a9",REG_DOMAIN_KOREA,0,{nul}},
163 {"ba",REG_DOMAIN_HI_5GHZ,0,{nul}},
164 {"bb",REG_DOMAIN_NO_5GHZ,0,{nul}},
165 {{nul},0, 0,{nul}},
166 }, // INDEX_ENUM_NUM_REG_DOMAINS
167
168 { // INDEX_ENUM_NUM_RF_SUBBANDS
169 {"bd",RF_SUBBAND_2_4_GHZ,0,{nul}},
170 {"be",RF_SUBBAND_5_LOW_GHZ,0,{nul}},
171 {"bf",RF_SUBBAND_5_MID_GHZ,0,{nul}},
172 {"bg",RF_SUBBAND_5_HIGH_GHZ,0,{nul}},
173 {"bh",RF_SUBBAND_4_9_GHZ,0,{nul}},
174 {{nul},0, 0,{nul}},
175 }, // INDEX_ENUM_NUM_RF_SUBBANDS
176
177 { // INDEX_ENUM_NUM_RF_CHANNELS
178 {"bj",RF_CHAN_1,0,{nul}},
179 {"bk",RF_CHAN_2,0,{nul}},
180 {"bl",RF_CHAN_3,0,{nul}},
181 {"bm",RF_CHAN_4,0,{nul}},
182 {"bn",RF_CHAN_5,0,{nul}},
183 {"bo",RF_CHAN_6,0,{nul}},
184 {"bp",RF_CHAN_7,0,{nul}},
185 {"bq",RF_CHAN_8,0,{nul}},
186 {"br",RF_CHAN_9,0,{nul}},
187 {"bs",RF_CHAN_10,0,{nul}},
188 {"bt",RF_CHAN_11,0,{nul}},
189 {"bu",RF_CHAN_12,0,{nul}},
190 {"bv",RF_CHAN_13,0,{nul}},
191 {"bw",RF_CHAN_14,0,{nul}},
192 {"bx",RF_CHAN_240,0,{nul}},
193 {"by",RF_CHAN_244,0,{nul}},
194 {"bz",RF_CHAN_248,0,{nul}},
195 {"b0",RF_CHAN_252,0,{nul}},
196 {"b1",RF_CHAN_208,0,{nul}},
197 {"b2",RF_CHAN_212,0,{nul}},
198 {"b3",RF_CHAN_216,0,{nul}},
199 {"b4",RF_CHAN_36,0,{nul}},
200 {"b5",RF_CHAN_40,0,{nul}},
201 {"b6",RF_CHAN_44,0,{nul}},
202 {"b7",RF_CHAN_48,0,{nul}},
203 {"b8",RF_CHAN_52,0,{nul}},
204 {"b9",RF_CHAN_56,0,{nul}},
205 {"ca",RF_CHAN_60,0,{nul}},
206 {"cb",RF_CHAN_64,0,{nul}},
207 {"cc",RF_CHAN_100,0,{nul}},
208 {"cd",RF_CHAN_104,0,{nul}},
209 {"ce",RF_CHAN_108,0,{nul}},
210 {"cf",RF_CHAN_112,0,{nul}},
211 {"cg",RF_CHAN_116,0,{nul}},
212 {"ch",RF_CHAN_120,0,{nul}},
213 {"ci",RF_CHAN_124,0,{nul}},
214 {"cj",RF_CHAN_128,0,{nul}},
215 {"ck",RF_CHAN_132,0,{nul}},
216 {"cl",RF_CHAN_136,0,{nul}},
217 {"cm",RF_CHAN_140,0,{nul}},
Leo Chang80de3c22013-11-26 10:52:12 -0800218#ifdef FEATURE_WLAN_CH144
219 {"kt",RF_CHAN_144,0,{nul}},
220#endif /* FEATURE_WLAN_CH144 */
Prasanna Kumarf6c94ae2013-04-11 20:05:21 -0700221 {"cn",RF_CHAN_149,0,{nul}},
222 {"co",RF_CHAN_153,0,{nul}},
223 {"cp",RF_CHAN_157,0,{nul}},
224 {"cq",RF_CHAN_161,0,{nul}},
225 {"cr",RF_CHAN_165,0,{nul}},
226 {"cs",RF_CHAN_BOND_3,0,{nul}},
227 {"ct",RF_CHAN_BOND_4,0,{nul}},
228 {"cu",RF_CHAN_BOND_5,0,{nul}},
229 {"cv",RF_CHAN_BOND_6,0,{nul}},
230 {"cw",RF_CHAN_BOND_7,0,{nul}},
231 {"cx",RF_CHAN_BOND_8,0,{nul}},
232 {"cy",RF_CHAN_BOND_9,0,{nul}},
233 {"cz",RF_CHAN_BOND_10,0,{nul}},
234 {"c0",RF_CHAN_BOND_11,0,{nul}},
235 {"c1",RF_CHAN_BOND_242,0,{nul}},
236 {"c2",RF_CHAN_BOND_246,0,{nul}},
237 {"c3",RF_CHAN_BOND_250,0,{nul}},
238 {"c4",RF_CHAN_BOND_210,0,{nul}},
239 {"c5",RF_CHAN_BOND_214,0,{nul}},
240 {"c6",RF_CHAN_BOND_38,0,{nul}},
241 {"c7",RF_CHAN_BOND_42,0,{nul}},
242 {"c8",RF_CHAN_BOND_46,0,{nul}},
243 {"c9",RF_CHAN_BOND_50,0,{nul}},
244 {"da",RF_CHAN_BOND_54,0,{nul}},
245 {"db",RF_CHAN_BOND_58,0,{nul}},
246 {"dc",RF_CHAN_BOND_62,0,{nul}},
247 {"dd",RF_CHAN_BOND_102,0,{nul}},
248 {"de",RF_CHAN_BOND_106,0,{nul}},
249 {"df",RF_CHAN_BOND_110,0,{nul}},
250 {"dg",RF_CHAN_BOND_114,0,{nul}},
251 {"dh",RF_CHAN_BOND_118,0,{nul}},
252 {"di",RF_CHAN_BOND_122,0,{nul}},
253 {"dj",RF_CHAN_BOND_126,0,{nul}},
254 {"dk",RF_CHAN_BOND_130,0,{nul}},
255 {"dl",RF_CHAN_BOND_134,0,{nul}},
256 {"dm",RF_CHAN_BOND_138,0,{nul}},
Leo Chang80de3c22013-11-26 10:52:12 -0800257#ifdef FEATURE_WLAN_CH144
258 {"ku",RF_CHAN_BOND_142,0,{nul}},
259#endif /* FEATURE_WLAN_CH144 */
Prasanna Kumarf6c94ae2013-04-11 20:05:21 -0700260 {"dn",RF_CHAN_BOND_151,0,{nul}},
261 {"do",RF_CHAN_BOND_155,0,{nul}},
262 {"dp",RF_CHAN_BOND_159,0,{nul}},
263 {"dq",RF_CHAN_BOND_163,0,{nul}},
264 {{nul},0, 0,{nul}},
265 }, // INDEX_ENUM_NUM_RF_CHANNELS
266
267 { // INDEX_ENUM_NUM_2_4GHZ_CHANNELS
268 {"ke",RF_CHAN_1_1,0,{nul}},
269 {"kf",RF_CHAN_2_1,0,{nul}},
270 {"kg",RF_CHAN_3_1,0,{nul}},
271 {"kh",RF_CHAN_4_1,0,{nul}},
272 {"ki",RF_CHAN_5_1,0,{nul}},
273 {"kj",RF_CHAN_6_1,0,{nul}},
274 {"kk",RF_CHAN_7_1,0,{nul}},
275 {"kl",RF_CHAN_8_1,0,{nul}},
276 {"km",RF_CHAN_9_1,0,{nul}},
277 {"kn",RF_CHAN_10_1,0,{nul}},
278 {"ko",RF_CHAN_11_1,0,{nul}},
279 {"kp",RF_CHAN_12_1,0,{nul}},
280 {"kq",RF_CHAN_13_1,0,{nul}},
281 {"kr",RF_CHAN_14_1,0,{nul}},
282 {{nul},0, 0,{nul}},
283 }, // INDEX_ENUM_NUM_2_4GHZ_CHANNELS
284
285 { // INDEX_ENUM_NUM_802_11_MODES
286 {"d6",MODE_802_11B,0,{nul}},
287 {"d7",MODE_802_11AG,0,{nul}},
288 {"d8",MODE_802_11N,0,{nul}},
289 {{nul},0, 0,{nul}},
290 }, // INDEX_ENUM_NUM_802_11_MODES
291
292 { // INDEX_ENUM_NUM_HAL_PHY_RATES
293 {"ez",HAL_PHY_RATE_11B_LONG_1_MBPS,0,{nul}},
294 {"e0",HAL_PHY_RATE_11B_LONG_2_MBPS,0,{nul}},
295 {"e1",HAL_PHY_RATE_11B_LONG_5_5_MBPS,0,{nul}},
296 {"e2",HAL_PHY_RATE_11B_LONG_11_MBPS,0,{nul}},
297 {"e3",HAL_PHY_RATE_11B_SHORT_2_MBPS,0,{nul}},
298 {"e4",HAL_PHY_RATE_11B_SHORT_5_5_MBPS,0,{nul}},
299 {"e5",HAL_PHY_RATE_11B_SHORT_11_MBPS,0,{nul}},
300 {"e6",HAL_PHY_RATE_11A_6_MBPS,0,{nul}},
301 {"e7",HAL_PHY_RATE_11A_9_MBPS,0,{nul}},
302 {"e8",HAL_PHY_RATE_11A_12_MBPS,0,{nul}},
303 {"e9",HAL_PHY_RATE_11A_18_MBPS,0,{nul}},
304 {"fa",HAL_PHY_RATE_11A_24_MBPS,0,{nul}},
305 {"fb",HAL_PHY_RATE_11A_36_MBPS,0,{nul}},
306 {"fc",HAL_PHY_RATE_11A_48_MBPS,0,{nul}},
307 {"fd",HAL_PHY_RATE_11A_54_MBPS,0,{nul}},
308 {"fe",HAL_PHY_RATE_11A_DUP_6_MBPS,0,{nul}},
309 {"ff",HAL_PHY_RATE_11A_DUP_9_MBPS,0,{nul}},
310 {"fg",HAL_PHY_RATE_11A_DUP_12_MBPS,0,{nul}},
311 {"fh",HAL_PHY_RATE_11A_DUP_18_MBPS,0,{nul}},
312 {"fi",HAL_PHY_RATE_11A_DUP_24_MBPS,0,{nul}},
313 {"fj",HAL_PHY_RATE_11A_DUP_36_MBPS,0,{nul}},
314 {"fk",HAL_PHY_RATE_11A_DUP_48_MBPS,0,{nul}},
315 {"fl",HAL_PHY_RATE_11A_DUP_54_MBPS,0,{nul}},
316 {"fm",HAL_PHY_RATE_MCS_1NSS_6_5_MBPS,0,{nul}},
317 {"fn",HAL_PHY_RATE_MCS_1NSS_13_MBPS,0,{nul}},
318 {"fo",HAL_PHY_RATE_MCS_1NSS_19_5_MBPS,0,{nul}},
319 {"fp",HAL_PHY_RATE_MCS_1NSS_26_MBPS,0,{nul}},
320 {"fq",HAL_PHY_RATE_MCS_1NSS_39_MBPS,0,{nul}},
321 {"fr",HAL_PHY_RATE_MCS_1NSS_52_MBPS,0,{nul}},
322 {"fs",HAL_PHY_RATE_MCS_1NSS_58_5_MBPS,0,{nul}},
323 {"ft",HAL_PHY_RATE_MCS_1NSS_65_MBPS,0,{nul}},
324 {"fu",HAL_PHY_RATE_MCS_1NSS_MM_SG_7_2_MBPS,0,{nul}},
325 {"fv",HAL_PHY_RATE_MCS_1NSS_MM_SG_14_4_MBPS,0,{nul}},
326 {"fw",HAL_PHY_RATE_MCS_1NSS_MM_SG_21_7_MBPS,0,{nul}},
327 {"fx",HAL_PHY_RATE_MCS_1NSS_MM_SG_28_9_MBPS,0,{nul}},
328 {"fy",HAL_PHY_RATE_MCS_1NSS_MM_SG_43_3_MBPS,0,{nul}},
329 {"fz",HAL_PHY_RATE_MCS_1NSS_MM_SG_57_8_MBPS,0,{nul}},
330 {"f0",HAL_PHY_RATE_MCS_1NSS_MM_SG_65_MBPS,0,{nul}},
331 {"f1",HAL_PHY_RATE_MCS_1NSS_MM_SG_72_2_MBPS,0,{nul}},
332 {"f2",HAL_PHY_RATE_MCS_1NSS_CB_13_5_MBPS,0,{nul}},
333 {"f3",HAL_PHY_RATE_MCS_1NSS_CB_27_MBPS,0,{nul}},
334 {"f4",HAL_PHY_RATE_MCS_1NSS_CB_40_5_MBPS,0,{nul}},
335 {"f5",HAL_PHY_RATE_MCS_1NSS_CB_54_MBPS,0,{nul}},
336 {"f6",HAL_PHY_RATE_MCS_1NSS_CB_81_MBPS,0,{nul}},
337 {"f7",HAL_PHY_RATE_MCS_1NSS_CB_108_MBPS,0,{nul}},
338 {"f8",HAL_PHY_RATE_MCS_1NSS_CB_121_5_MBPS,0,{nul}},
339 {"f9",HAL_PHY_RATE_MCS_1NSS_CB_135_MBPS,0,{nul}},
340 {"ga",HAL_PHY_RATE_MCS_1NSS_MM_SG_CB_15_MBPS,0,{nul}},
341 {"gb",HAL_PHY_RATE_MCS_1NSS_MM_SG_CB_30_MBPS,0,{nul}},
342 {"gc",HAL_PHY_RATE_MCS_1NSS_MM_SG_CB_45_MBPS,0,{nul}},
343 {"gd",HAL_PHY_RATE_MCS_1NSS_MM_SG_CB_60_MBPS,0,{nul}},
344 {"ge",HAL_PHY_RATE_MCS_1NSS_MM_SG_CB_90_MBPS,0,{nul}},
345 {"gf",HAL_PHY_RATE_MCS_1NSS_MM_SG_CB_120_MBPS,0,{nul}},
346 {"gg",HAL_PHY_RATE_MCS_1NSS_MM_SG_CB_135_MBPS,0,{nul}},
347 {"gh",HAL_PHY_RATE_MCS_1NSS_MM_SG_CB_150_MBPS,0,{nul}},
348#ifdef WLAN_FEATURE_11AC
349 {"gj",HAL_PHY_RATE_11AC_DUP_6_MBPS,0,{nul}},
350 {"gk",HAL_PHY_RATE_11AC_DUP_9_MBPS,0,{nul}},
351 {"gl",HAL_PHY_RATE_11AC_DUP_12_MBPS,0,{nul}},
352 {"gm",HAL_PHY_RATE_11AC_DUP_18_MBPS,0,{nul}},
353 {"gn",HAL_PHY_RATE_11AC_DUP_24_MBPS,0,{nul}},
354 {"go",HAL_PHY_RATE_11AC_DUP_36_MBPS,0,{nul}},
355 {"gp",HAL_PHY_RATE_11AC_DUP_48_MBPS,0,{nul}},
356 {"gq",HAL_PHY_RATE_11AC_DUP_54_MBPS,0,{nul}},
357 {"gr",HAL_PHY_RATE_VHT_20MHZ_MCS_1NSS_NGI_6_5_MBPS,0,{nul}},
358 {"gs",HAL_PHY_RATE_VHT_20MHZ_MCS_1NSS_NGI_13_MBPS,0,{nul}},
359 {"gt",HAL_PHY_RATE_VHT_20MHZ_MCS_1NSS_NGI_19_5_MBPS,0,{nul}},
360 {"gu",HAL_PHY_RATE_VHT_20MHZ_MCS_1NSS_NGI_26_MBPS,0,{nul}},
361 {"gv",HAL_PHY_RATE_VHT_20MHZ_MCS_1NSS_NGI_39_MBPS,0,{nul}},
362 {"gw",HAL_PHY_RATE_VHT_20MHZ_MCS_1NSS_NGI_52_MBPS,0,{nul}},
363 {"gx",HAL_PHY_RATE_VHT_20MHZ_MCS_1NSS_NGI_58_5_MBPS,0,{nul}},
364 {"gy",HAL_PHY_RATE_VHT_20MHZ_MCS_1NSS_NGI_65_MBPS,0,{nul}},
365 {"gz",HAL_PHY_RATE_VHT_20MHZ_MCS_1NSS_NGI_78_MBPS,0,{nul}},
366#ifdef WCN_PRONTO
367 {"j8",HAL_PHY_RATE_VHT_20MHZ_MCS_1NSS_NGI_86_5_MBPS,0,{nul}},
368#endif
369 {"g0",HAL_PHY_RATE_VHT_20MHZ_MCS_1NSS_SGI_7_2_MBPS,0,{nul}},
370 {"g1",HAL_PHY_RATE_VHT_20MHZ_MCS_1NSS_SGI_14_4_MBPS,0,{nul}},
371 {"g2",HAL_PHY_RATE_VHT_20MHZ_MCS_1NSS_SGI_21_6_MBPS,0,{nul}},
372 {"g3",HAL_PHY_RATE_VHT_20MHZ_MCS_1NSS_SGI_28_8_MBPS,0,{nul}},
373 {"g4",HAL_PHY_RATE_VHT_20MHZ_MCS_1NSS_SGI_43_3_MBPS,0,{nul}},
374 {"g5",HAL_PHY_RATE_VHT_20MHZ_MCS_1NSS_SGI_57_7_MBPS,0,{nul}},
375 {"g6",HAL_PHY_RATE_VHT_20MHZ_MCS_1NSS_SGI_65_MBPS,0,{nul}},
376 {"g7",HAL_PHY_RATE_VHT_20MHZ_MCS_1NSS_SGI_72_2_MBPS,0,{nul}},
377 {"g8",HAL_PHY_RATE_VHT_20MHZ_MCS_1NSS_SGI_86_6_MBPS,0,{nul}},
378#ifdef WCN_PRONTO
379 {"j9",HAL_PHY_RATE_VHT_20MHZ_MCS_1NSS_SGI_96_1_MBPS,0,{nul}},
380#endif
381 {"g9",HAL_PHY_RATE_VHT_40MHZ_MCS_1NSS_CB_NGI_13_5_MBPS,0,{nul}},
382 {"ha",HAL_PHY_RATE_VHT_40MHZ_MCS_1NSS_CB_NGI_27_MBPS,0,{nul}},
383 {"hb",HAL_PHY_RATE_VHT_40MHZ_MCS_1NSS_CB_NGI_40_5_MBPS,0,{nul}},
384 {"hc",HAL_PHY_RATE_VHT_40MHZ_MCS_1NSS_CB_NGI_54_MBPS,0,{nul}},
385 {"hd",HAL_PHY_RATE_VHT_40MHZ_MCS_1NSS_CB_NGI_81_MBPS,0,{nul}},
386 {"he",HAL_PHY_RATE_VHT_40MHZ_MCS_1NSS_CB_NGI_108_MBPS,0,{nul}},
387 {"hf",HAL_PHY_RATE_VHT_40MHZ_MCS_1NSS_CB_NGI_121_5_MBPS,0,{nul}},
388 {"hg",HAL_PHY_RATE_VHT_40MHZ_MCS_1NSS_CB_NGI_135_MBPS,0,{nul}},
389 {"hh",HAL_PHY_RATE_VHT_40MHZ_MCS_1NSS_CB_NGI_162_MBPS,0,{nul}},
390 {"hi",HAL_PHY_RATE_VHT_40MHZ_MCS_1NSS_CB_NGI_180_MBPS,0,{nul}},
391 {"hj",HAL_PHY_RATE_VHT_40MHZ_MCS_1NSS_CB_SGI_15_MBPS,0,{nul}},
392 {"hk",HAL_PHY_RATE_VHT_40MHZ_MCS_1NSS_CB_SGI_30_MBPS,0,{nul}},
393 {"hl",HAL_PHY_RATE_VHT_40MHZ_MCS_1NSS_CB_SGI_45_MBPS,0,{nul}},
394 {"hm",HAL_PHY_RATE_VHT_40MHZ_MCS_1NSS_CB_SGI_60_MBPS,0,{nul}},
395 {"hn",HAL_PHY_RATE_VHT_40MHZ_MCS_1NSS_CB_SGI_90_MBPS,0,{nul}},
396 {"ho",HAL_PHY_RATE_VHT_40MHZ_MCS_1NSS_CB_SGI_120_MBPS,0,{nul}},
397 {"hp",HAL_PHY_RATE_VHT_40MHZ_MCS_1NSS_CB_SGI_135_MBPS,0,{nul}},
398 {"hq",HAL_PHY_RATE_VHT_40MHZ_MCS_1NSS_CB_SGI_150_MBPS,0,{nul}},
399 {"hr",HAL_PHY_RATE_VHT_40MHZ_MCS_1NSS_CB_SGI_180_MBPS,0,{nul}},
400 {"hs",HAL_PHY_RATE_VHT_40MHZ_MCS_1NSS_CB_SGI_200_MBPS,0,{nul}},
401 {"ht",HAL_PHY_RATE_VHT_80MHZ_MCS_1NSS_CB_NGI_29_3_MBPS,0,{nul}},
402 {"hu",HAL_PHY_RATE_VHT_80MHZ_MCS_1NSS_CB_NGI_58_5_MBPS,0,{nul}},
403 {"hv",HAL_PHY_RATE_VHT_80MHZ_MCS_1NSS_CB_NGI_87_8_MBPS,0,{nul}},
404 {"hw",HAL_PHY_RATE_VHT_80MHZ_MCS_1NSS_CB_NGI_117_MBPS,0,{nul}},
405 {"hx",HAL_PHY_RATE_VHT_80MHZ_MCS_1NSS_CB_NGI_175_5_MBPS,0,{nul}},
406 {"hy",HAL_PHY_RATE_VHT_80MHZ_MCS_1NSS_CB_NGI_234_MBPS,0,{nul}},
407 {"hz",HAL_PHY_RATE_VHT_80MHZ_MCS_1NSS_CB_NGI_263_3_MBPS,0,{nul}},
408 {"h0",HAL_PHY_RATE_VHT_80MHZ_MCS_1NSS_CB_NGI_292_5_MBPS,0,{nul}},
409 {"h1",HAL_PHY_RATE_VHT_80MHZ_MCS_1NSS_CB_NGI_351_MBPS,0,{nul}},
410 {"h2",HAL_PHY_RATE_VHT_80MHZ_MCS_1NSS_CB_NGI_390_MBPS,0,{nul}},
411 {"h3",HAL_PHY_RATE_VHT_80MHZ_MCS_1NSS_CB_SGI_32_5_MBPS,0,{nul}},
412 {"h4",HAL_PHY_RATE_VHT_80MHZ_MCS_1NSS_CB_SGI_65_MBPS,0,{nul}},
413 {"h5",HAL_PHY_RATE_VHT_80MHZ_MCS_1NSS_CB_SGI_97_5_MBPS,0,{nul}},
414 {"h6",HAL_PHY_RATE_VHT_80MHZ_MCS_1NSS_CB_SGI_130_MBPS,0,{nul}},
415 {"h7",HAL_PHY_RATE_VHT_80MHZ_MCS_1NSS_CB_SGI_195_MBPS,0,{nul}},
416 {"h8",HAL_PHY_RATE_VHT_80MHZ_MCS_1NSS_CB_SGI_260_MBPS,0,{nul}},
417 {"h9",HAL_PHY_RATE_VHT_80MHZ_MCS_1NSS_CB_SGI_292_5_MBPS,0,{nul}},
418 {"ia",HAL_PHY_RATE_VHT_80MHZ_MCS_1NSS_CB_SGI_325_MBPS,0,{nul}},
419 {"ib",HAL_PHY_RATE_VHT_80MHZ_MCS_1NSS_CB_SGI_390_MBPS,0,{nul}},
420 {"ic",HAL_PHY_RATE_VHT_80MHZ_MCS_1NSS_CB_SGI_433_3_MBPS,0,{nul}},
421#endif
422 {{nul},0, 0,{nul}},
423 }, // INDEX_ENUM_NUM_HAL_PHY_RATES
424
425 { //INDEX_ENUM_LAST
426 {{nul},0, 0,{nul}},
427 }, //INDEX_ENUM_LAST
428}; // END _NV_TEMPLATE_ENUM
429
430
431int getEnumNoOfFields(int enumIdx){
Leo Chang80de3c22013-11-26 10:52:12 -0800432#ifdef FEATURE_WLAN_CH144
433 enumNoOfFieldArray[4] = enumNoOfFieldArray[4] + 1;
434#endif
435 enumNoOfFieldArray[4] = enumNoOfFieldArray[4] + 36;
436#ifdef FEATURE_WLAN_CH144
437 enumNoOfFieldArray[4] = enumNoOfFieldArray[4] + 1;
438#endif
Prasanna Kumarf6c94ae2013-04-11 20:05:21 -0700439#ifdef WLAN_FEATURE_11AC
440 enumNoOfFieldArray[7] = enumNoOfFieldArray[7] + 17;
441#ifdef WCN_PRONTO
442 enumNoOfFieldArray[7] = enumNoOfFieldArray[7] + 1;
443#endif
444 enumNoOfFieldArray[7] = enumNoOfFieldArray[7] + 9;
445#ifdef WCN_PRONTO
446 enumNoOfFieldArray[7] = enumNoOfFieldArray[7] + 1;
447#endif
448 enumNoOfFieldArray[7] = enumNoOfFieldArray[7] + 40;
449#endif
450
451 return enumNoOfFieldArray[enumIdx];
452}
453
454
455static int tableNoOfFieldArray[TABLE_BUILTIN_MAX] =
456 {14,12,2,2,16,1,2,2,23,1,1,1,4,2,13};
457
458_NV_TEMPLATE_TABLE NvTablesBuiltIn[/*TABLES_MAX*/][TABLE_ENTRIES_MAX] = {
459 { // TABLE_sHalNv
460 {"jz",_TABLE_IDX(TABLE_sNvFields),SINGULAR,0,0,0,
Xun Luo7cce87c2014-02-18 14:45:23 -0800461 ((char *)&(nvDefaults.fields) - (char *)&nvDefaults),"fields"},
Prasanna Kumarf6c94ae2013-04-11 20:05:21 -0700462 {"jm",_TABLE_IDX(TABLE_tRateGroupPwr),(ARRAY_1),
463 ((FIELD_SIZE_TYPE_BIT(FIELD_SIZE_IDX_ENUM))|
464 (FIELD_SIZE_VALUE_BITS(INDEX_ENUM_NUM_RF_SUBBANDS))),0,0,
Xun Luo7cce87c2014-02-18 14:45:23 -0800465 ((char *)&(nvDefaults.tables.pwrOptimum[0]) - (char *)&nvDefaults.tables),
Prasanna Kumarf6c94ae2013-04-11 20:05:21 -0700466 "pwrOptimum"},
467 {"dx",_TABLE_IDX(TABLE_sRegulatoryChannel),(ARRAY_1),
468 ((FIELD_SIZE_TYPE_BIT(FIELD_SIZE_IDX_ENUM))|
469 (FIELD_SIZE_VALUE_BITS(INDEX_ENUM_NUM_RF_CHANNELS))),0,0,
Xun Luo7cce87c2014-02-18 14:45:23 -0800470 ((char *)&(nvDefaults.tables.regDomains[0].channels[0]) -
471 (char *)&nvDefaults.tables.regDomains[0]),"channels"},
Prasanna Kumarf6c94ae2013-04-11 20:05:21 -0700472 {"jn",_TABLE_IDX(TABLE_sRegulatoryDomains),(ARRAY_1),
473 ((FIELD_SIZE_TYPE_BIT(FIELD_SIZE_IDX_ENUM))|
474 (FIELD_SIZE_VALUE_BITS(INDEX_ENUM_NUM_REG_DOMAINS))),0,0,
Xun Luo7cce87c2014-02-18 14:45:23 -0800475 ((char *)&(nvDefaults.tables.regDomains[0]) - (char *)&nvDefaults.tables),
Prasanna Kumarf6c94ae2013-04-11 20:05:21 -0700476 "regDomains"},
477 {"jo",_TABLE_IDX(TABLE_sDefaultCountry),SINGULAR,0,0,0,
Xun Luo7cce87c2014-02-18 14:45:23 -0800478 ((char *)&(nvDefaults.tables.defaultCountryTable) -
479 (char *)&nvDefaults.tables),"defaultCountryTable"},
Prasanna Kumarf6c94ae2013-04-11 20:05:21 -0700480 {"jp",_TABLE_IDX(TABLE_tTpcPowerTable),(ARRAY_1),
481 ((FIELD_SIZE_TYPE_BIT(FIELD_SIZE_IDX_ENUM))|
482 (FIELD_SIZE_VALUE_BITS(INDEX_ENUM_NUM_RF_CHANNELS))),0,0,
Xun Luo7cce87c2014-02-18 14:45:23 -0800483 ((char *)&(nvDefaults.tables.plutCharacterized[0]) -
484 (char *)&nvDefaults.tables),"plutCharacterized"},
Prasanna Kumarf6c94ae2013-04-11 20:05:21 -0700485 {"jr",_TABLE_IDX(TABLE_tRateGroupPwrVR),(ARRAY_1),
486 ((FIELD_SIZE_TYPE_BIT(FIELD_SIZE_IDX_ENUM))|
487 (FIELD_SIZE_VALUE_BITS(INDEX_ENUM_NUM_RF_SUBBANDS))),0,0,
Xun Luo7cce87c2014-02-18 14:45:23 -0800488 ((char *)&(nvDefaults.tables.pwrOptimum_virtualRate[0]) -
489 (char *)&nvDefaults.tables),"pwrOptimum_virtualRate"},
Prasanna Kumarf6c94ae2013-04-11 20:05:21 -0700490 {"js",_TABLE_IDX(TABLE_sFwConfig),SINGULAR,0,0,0,
Xun Luo7cce87c2014-02-18 14:45:23 -0800491 ((char *)&(nvDefaults.tables.fwConfig) - (char *)&nvDefaults.tables),
Prasanna Kumarf6c94ae2013-04-11 20:05:21 -0700492 "fwConfig"},
493 {"jt",_TABLE_IDX(TABLE_sRssiChannelOffsets),(_ADD_SIZE1(2)|ARRAY_1),
494 ((FIELD_SIZE_TYPE_BIT(FIELD_SIZE_IDX_INT))|(FIELD_SIZE_VALUE_BITS(2))),
Xun Luo7cce87c2014-02-18 14:45:23 -0800495 0,0,((char *)&(nvDefaults.tables.rssiChanOffsets[0]) -
496 (char *)&nvDefaults.tables),"rssiChanOffsets"},
Prasanna Kumarf6c94ae2013-04-11 20:05:21 -0700497 {"er",_TABLE_IDX(TABLE_sCalData),SINGULAR,0,0,0,
Xun Luo7cce87c2014-02-18 14:45:23 -0800498 ((char *)&(nvDefaults.tables.hwCalValues.calData) -
499 (char *)&nvDefaults.tables.hwCalValues),"calData"},
Prasanna Kumarf6c94ae2013-04-11 20:05:21 -0700500 {"ju",_TABLE_IDX(TABLE_sHwCalValues),SINGULAR,0,0,0,
Xun Luo7cce87c2014-02-18 14:45:23 -0800501 ((char *)&(nvDefaults.tables.hwCalValues) - (char *)&nvDefaults.tables),
Prasanna Kumarf6c94ae2013-04-11 20:05:21 -0700502 "hwCalValues"},
503 {"jx",_TABLE_IDX(TABLE_sOfdmCmdPwrOffset),SINGULAR,0,0,0,
Xun Luo7cce87c2014-02-18 14:45:23 -0800504 ((char *)&(nvDefaults.tables.ofdmCmdPwrOffset) - (char *)&nvDefaults.tables),
Prasanna Kumarf6c94ae2013-04-11 20:05:21 -0700505 "ofdmCmdPwrOffset"},
506 {"jy",_TABLE_IDX(TABLE_sTxBbFilterMode),SINGULAR,0,0,0,
Xun Luo7cce87c2014-02-18 14:45:23 -0800507 ((char *)&(nvDefaults.tables.txbbFilterMode) - (char *)&nvDefaults.tables),
Prasanna Kumarf6c94ae2013-04-11 20:05:21 -0700508 "txbbFilterMode"},
509 {"j0",_TABLE_IDX(TABLE_sNvTables),SINGULAR,0,0,0,
Xun Luo7cce87c2014-02-18 14:45:23 -0800510 ((char *)&(nvDefaults.tables) - (char *)&nvDefaults),"tables"},
Prasanna Kumarf6c94ae2013-04-11 20:05:21 -0700511 {{nul}, 0, 0, 0, 0, 0, 0,{nul}},
512 }, // TABLE_sHalNv
513
514 { // TABLE_sNvFields
Xun Luo7cce87c2014-02-18 14:45:23 -0800515 {"ap",_ID_U16,SINGULAR,0,0,0,((char *)&(nvDefaults.fields.productId) -
516 (char *)&nvDefaults.fields),"productId"},
517 {"aq",_ID_U8,SINGULAR,0,0,0,((char *)&(nvDefaults.fields.productBands) -
518 (char *)&nvDefaults.fields),"productBands"},
519 {"ar",_ID_U8,SINGULAR,0,0,0,((char *)&(nvDefaults.fields.wlanNvRevId) -
520 (char *)&nvDefaults.fields),"wlanNvRevId"},
521 {"as",_ID_U8,SINGULAR,0,0,0,((char *)&(nvDefaults.fields.numOfTxChains) -
522 (char *)&nvDefaults.fields),"numOfTxChains"},
523 {"at",_ID_U8,SINGULAR,0,0,0,((char *)&(nvDefaults.fields.numOfRxChains) -
524 (char *)&nvDefaults.fields),"numOfRxChains"},
Prasanna Kumarf6c94ae2013-04-11 20:05:21 -0700525 {"au",_ID_U8,(_ADD_SIZE1(NV_FIELD_MAC_ADDR_SIZE)|ARRAY_1),
526 ((FIELD_SIZE_TYPE_BIT(FIELD_SIZE_IDX_INT))|
527 (FIELD_SIZE_VALUE_BITS(NV_FIELD_MAC_ADDR_SIZE))),0,0,
Xun Luo7cce87c2014-02-18 14:45:23 -0800528 ((char *)&(nvDefaults.fields.macAddr[0]) - (char *)&nvDefaults.fields),
Prasanna Kumarf6c94ae2013-04-11 20:05:21 -0700529 "macAddr"},
530 {"av",_ID_U8,(_ADD_SIZE1(NV_FIELD_MAC_ADDR_SIZE)|ARRAY_1),
531 ((FIELD_SIZE_TYPE_BIT(FIELD_SIZE_IDX_INT))|
532 (FIELD_SIZE_VALUE_BITS(NV_FIELD_MAC_ADDR_SIZE))),0,0,
Xun Luo7cce87c2014-02-18 14:45:23 -0800533 ((char *)&(nvDefaults.fields.macAddr2[0]) - (char *)&nvDefaults.fields),
Prasanna Kumarf6c94ae2013-04-11 20:05:21 -0700534 "macAddr2"},
535 {"aw",_ID_U8,(_ADD_SIZE1(NV_FIELD_MAC_ADDR_SIZE)|ARRAY_1),
536 ((FIELD_SIZE_TYPE_BIT(FIELD_SIZE_IDX_INT))|
537 (FIELD_SIZE_VALUE_BITS(NV_FIELD_MAC_ADDR_SIZE))),0,0,
Xun Luo7cce87c2014-02-18 14:45:23 -0800538 ((char *)&(nvDefaults.fields.macAddr3[0]) - (char *)&nvDefaults.fields),
Prasanna Kumarf6c94ae2013-04-11 20:05:21 -0700539 "macAddr3"},
540 {"ax",_ID_U8,(_ADD_SIZE1(NV_FIELD_MAC_ADDR_SIZE)|ARRAY_1),
541 ((FIELD_SIZE_TYPE_BIT(FIELD_SIZE_IDX_INT))|
542 (FIELD_SIZE_VALUE_BITS(NV_FIELD_MAC_ADDR_SIZE))),0,0,
Xun Luo7cce87c2014-02-18 14:45:23 -0800543 ((char *)&(nvDefaults.fields.macAddr4[0]) - (char *)&nvDefaults.fields),
Prasanna Kumarf6c94ae2013-04-11 20:05:21 -0700544 "macAddr4"},
545 {"ay",_ID_U8,(_ADD_SIZE1(NV_FIELD_MFG_SN_SIZE)|ARRAY_1),
546 ((FIELD_SIZE_TYPE_BIT(FIELD_SIZE_IDX_INT))|
547 (FIELD_SIZE_VALUE_BITS(NV_FIELD_MFG_SN_SIZE))),0,0,
Xun Luo7cce87c2014-02-18 14:45:23 -0800548 ((char *)&(nvDefaults.fields.mfgSN[0]) - (char *)&nvDefaults.fields),"mfgSN"}
Prasanna Kumarf6c94ae2013-04-11 20:05:21 -0700549 ,
Xun Luo7cce87c2014-02-18 14:45:23 -0800550 {"az",_ID_U8,SINGULAR,0,0,0,((char *)&(nvDefaults.fields.couplerType) -
551 (char *)&nvDefaults.fields),"couplerType"},
552 {"a0",_ID_U8,SINGULAR,0,0,0,((char *)&(nvDefaults.fields.nvVersion) -
553 (char *)&nvDefaults.fields),"nvVersion"},
Prasanna Kumarf6c94ae2013-04-11 20:05:21 -0700554 {{nul}, 0, 0, 0, 0, 0, 0,{nul}},
555 }, // TABLE_sNvFields
556
557 { // TABLE_sRegulatoryChannel
558 {"dv",_ID_U8,SINGULAR,0,0,0,
Xun Luo7cce87c2014-02-18 14:45:23 -0800559 ((char *)&(nvDefaults.tables.regDomains[0].channels[0].enabled) -
560 (char *)&nvDefaults.tables.regDomains[0].channels[0]),"enabled"},
Prasanna Kumarf6c94ae2013-04-11 20:05:21 -0700561 {"dw",_ID_S8,SINGULAR,0,0,0,
Xun Luo7cce87c2014-02-18 14:45:23 -0800562 ((char *)&(nvDefaults.tables.regDomains[0].channels[0].pwrLimit) -
563 (char *)&nvDefaults.tables.regDomains[0].channels[0]),"pwrLimit"},
Prasanna Kumarf6c94ae2013-04-11 20:05:21 -0700564 {{nul}, 0, 0, 0, 0, 0, 0,{nul}},
565 }, // TABLE_sRegulatoryChannel
566
567 { // TABLE_sRssiChannelOffsets
568 {"d1",_ID_S16,(ARRAY_1),((FIELD_SIZE_TYPE_BIT(FIELD_SIZE_IDX_ENUM))|
569 (FIELD_SIZE_VALUE_BITS(INDEX_ENUM_NUM_RF_CHANNELS))),0,0,
Xun Luo7cce87c2014-02-18 14:45:23 -0800570 ((char *)&(nvDefaults.tables.rssiChanOffsets[0].bRssiOffset[0]) -
571 (char *)&nvDefaults.tables.rssiChanOffsets[0]),"bRssiOffset"},
Prasanna Kumarf6c94ae2013-04-11 20:05:21 -0700572 {"d2",_ID_S16,(ARRAY_1),((FIELD_SIZE_TYPE_BIT(FIELD_SIZE_IDX_ENUM))|
573 (FIELD_SIZE_VALUE_BITS(INDEX_ENUM_NUM_RF_CHANNELS))),0,0,
Xun Luo7cce87c2014-02-18 14:45:23 -0800574 ((char *)&(nvDefaults.tables.rssiChanOffsets[0].gnRssiOffset[0]) -
575 (char *)&nvDefaults.tables.rssiChanOffsets[0]),"gnRssiOffset"},
Prasanna Kumarf6c94ae2013-04-11 20:05:21 -0700576 {{nul}, 0, 0, 0, 0, 0, 0,{nul}},
577 }, // TABLE_sRssiChannelOffsets
578
579 { // TABLE_sCalData
580 {"ea",_ID_U16,SINGULAR,0,0,0,
Xun Luo7cce87c2014-02-18 14:45:23 -0800581 ((char *)&(nvDefaults.tables.hwCalValues.calData.psSlpTimeOvrHd2G) -
582 (char *)&nvDefaults.tables.hwCalValues.calData),"psSlpTimeOvrHd2G"},
Prasanna Kumarf6c94ae2013-04-11 20:05:21 -0700583 {"eb",_ID_U16,SINGULAR,0,0,0,
Xun Luo7cce87c2014-02-18 14:45:23 -0800584 ((char *)&(nvDefaults.tables.hwCalValues.calData.psSlpTimeOvrHd5G) -
585 (char *)&nvDefaults.tables.hwCalValues.calData),"psSlpTimeOvrHd5G"},
Prasanna Kumarf6c94ae2013-04-11 20:05:21 -0700586 {"ec",_ID_U16,SINGULAR,0,0,0,
Xun Luo7cce87c2014-02-18 14:45:23 -0800587 ((char *)&(nvDefaults.tables.hwCalValues.calData.psSlpTimeOvrHdxLNA5G) -
588 (char *)&nvDefaults.tables.hwCalValues.calData),"psSlpTimeOvrHdxLNA5G"},
Prasanna Kumarf6c94ae2013-04-11 20:05:21 -0700589 {"ed",_ID_U8,SINGULAR,0,0,0,
Sourav Mohapatra96412282018-04-04 14:12:55 +0530590 ((char *)&(nvDefaults.tables.hwCalValues.calData.psSlpTimeOvrHdxLNA5G) -
591 (char *)&nvDefaults.tables.hwCalValues.calData) + sizeof(uint16),
Prasanna Kumarf6c94ae2013-04-11 20:05:21 -0700592 "nv_TxBBFSel9MHz"},
593 {"ee",_ID_U8,SINGULAR,0,0,0,
Xun Luo7cce87c2014-02-18 14:45:23 -0800594 ((char *)&(nvDefaults.tables.hwCalValues.calData.hwParam2) -
595 (char *)&nvDefaults.tables.hwCalValues.calData),"hwParam2"},
Prasanna Kumarf6c94ae2013-04-11 20:05:21 -0700596 {"ef",_ID_U16,SINGULAR,0,0,0,
Xun Luo7cce87c2014-02-18 14:45:23 -0800597 ((char *)&(nvDefaults.tables.hwCalValues.calData.custom_tcxo_reg8) -
598 (char *)&nvDefaults.tables.hwCalValues.calData),"custom_tcxo_reg8"},
Prasanna Kumarf6c94ae2013-04-11 20:05:21 -0700599 {"eg",_ID_U16,SINGULAR,0,0,0,
Xun Luo7cce87c2014-02-18 14:45:23 -0800600 ((char *)&(nvDefaults.tables.hwCalValues.calData.custom_tcxo_reg9) -
601 (char *)&nvDefaults.tables.hwCalValues.calData),"custom_tcxo_reg9"},
Prasanna Kumarf6c94ae2013-04-11 20:05:21 -0700602 {"eh",_ID_U32,SINGULAR,0,0,0,
Xun Luo7cce87c2014-02-18 14:45:23 -0800603 ((char *)&(nvDefaults.tables.hwCalValues.calData.hwParam3) -
604 (char *)&nvDefaults.tables.hwCalValues.calData),"hwParam3"},
Prasanna Kumarf6c94ae2013-04-11 20:05:21 -0700605 {"ei",_ID_U32,SINGULAR,0,0,0,
Xun Luo7cce87c2014-02-18 14:45:23 -0800606 ((char *)&(nvDefaults.tables.hwCalValues.calData.hwParam4) -
607 (char *)&nvDefaults.tables.hwCalValues.calData),"hwParam4"},
Prasanna Kumarf6c94ae2013-04-11 20:05:21 -0700608 {"ej",_ID_U32,SINGULAR,0,0,0,
Xun Luo7cce87c2014-02-18 14:45:23 -0800609 ((char *)&(nvDefaults.tables.hwCalValues.calData.hwParam5) -
610 (char *)&nvDefaults.tables.hwCalValues.calData),"hwParam5"},
Prasanna Kumarf6c94ae2013-04-11 20:05:21 -0700611 {"ek",_ID_U32,SINGULAR,0,0,0,
Xun Luo7cce87c2014-02-18 14:45:23 -0800612 ((char *)&(nvDefaults.tables.hwCalValues.calData.hwParam6) -
613 (char *)&nvDefaults.tables.hwCalValues.calData),"hwParam6"},
Prasanna Kumarf6c94ae2013-04-11 20:05:21 -0700614 {"el",_ID_U32,SINGULAR,0,0,0,
Xun Luo7cce87c2014-02-18 14:45:23 -0800615 ((char *)&(nvDefaults.tables.hwCalValues.calData.hwParam7) -
616 (char *)&nvDefaults.tables.hwCalValues.calData),"hwParam7"},
Prasanna Kumarf6c94ae2013-04-11 20:05:21 -0700617 {"em",_ID_U32,SINGULAR,0,0,0,
Xun Luo7cce87c2014-02-18 14:45:23 -0800618 ((char *)&(nvDefaults.tables.hwCalValues.calData.hwParam8) -
619 (char *)&nvDefaults.tables.hwCalValues.calData),"hwParam8"},
Prasanna Kumarf6c94ae2013-04-11 20:05:21 -0700620 {"en",_ID_U32,SINGULAR,0,0,0,
Xun Luo7cce87c2014-02-18 14:45:23 -0800621 ((char *)&(nvDefaults.tables.hwCalValues.calData.hwParam9) -
622 (char *)&nvDefaults.tables.hwCalValues.calData),"hwParam9"},
Prasanna Kumarf6c94ae2013-04-11 20:05:21 -0700623 {"eo",_ID_U32,SINGULAR,0,0,0,
Xun Luo7cce87c2014-02-18 14:45:23 -0800624 ((char *)&(nvDefaults.tables.hwCalValues.calData.hwParam10) -
625 (char *)&nvDefaults.tables.hwCalValues.calData),"hwParam10"},
Prasanna Kumarf6c94ae2013-04-11 20:05:21 -0700626 {"ep",_ID_U32,SINGULAR,0,0,0,
Xun Luo7cce87c2014-02-18 14:45:23 -0800627 ((char *)&(nvDefaults.tables.hwCalValues.calData.hwParam11) -
628 (char *)&nvDefaults.tables.hwCalValues.calData),"hwParam11"},
Prasanna Kumarf6c94ae2013-04-11 20:05:21 -0700629 {{nul}, 0, 0, 0, 0, 0, 0,{nul}},
630 }, // TABLE_sCalData
631
632 { // TABLE_sTxBbFilterMode
633 {"es",_ID_U32,SINGULAR,0,0,0,
Xun Luo7cce87c2014-02-18 14:45:23 -0800634 ((char *)&(nvDefaults.tables.txbbFilterMode.txFirFilterMode) -
635 (char *)&nvDefaults.tables.txbbFilterMode),"txFirFilterMode"},
Prasanna Kumarf6c94ae2013-04-11 20:05:21 -0700636 {{nul}, 0, 0, 0, 0, 0, 0,{nul}},
637 }, // TABLE_sTxBbFilterMode
638
639 { // TABLE_sOfdmCmdPwrOffset
640 {"et",_ID_S16,SINGULAR,0,0,0,
Xun Luo7cce87c2014-02-18 14:45:23 -0800641 ((char *)&(nvDefaults.tables.ofdmCmdPwrOffset.ofdmPwrOffset) -
642 (char *)&nvDefaults.tables.ofdmCmdPwrOffset),"ofdmPwrOffset"},
Prasanna Kumarf6c94ae2013-04-11 20:05:21 -0700643 {"eu",_ID_S16,SINGULAR,0,0,0,
Xun Luo7cce87c2014-02-18 14:45:23 -0800644 ((char *)&(nvDefaults.tables.ofdmCmdPwrOffset.rsvd) -
645 (char *)&nvDefaults.tables.ofdmCmdPwrOffset),"rsvd"},
Prasanna Kumarf6c94ae2013-04-11 20:05:21 -0700646 {{nul}, 0, 0, 0, 0, 0, 0,{nul}},
647 }, // TABLE_sOfdmCmdPwrOffset
648
649 { // TABLE_sDefaultCountry
650 {"if",_ID_U8,SINGULAR,0,0,0,
Xun Luo7cce87c2014-02-18 14:45:23 -0800651 ((char *)&(nvDefaults.tables.defaultCountryTable.regDomain) -
652 (char *)&nvDefaults.tables.defaultCountryTable),"regDomain"},
Prasanna Kumarf6c94ae2013-04-11 20:05:21 -0700653 {"ig",_ID_U8,(_ADD_SIZE1(NV_FIELD_COUNTRY_CODE_SIZE)|ARRAY_1),
654 ((FIELD_SIZE_TYPE_BIT(FIELD_SIZE_IDX_INT))|
655 (FIELD_SIZE_VALUE_BITS(NV_FIELD_COUNTRY_CODE_SIZE))),0,0,
Xun Luo7cce87c2014-02-18 14:45:23 -0800656 ((char *)&(nvDefaults.tables.defaultCountryTable.countryCode[0]) -
657 (char *)&nvDefaults.tables.defaultCountryTable),"countryCode"},
Prasanna Kumarf6c94ae2013-04-11 20:05:21 -0700658 {{nul}, 0, 0, 0, 0, 0, 0,{nul}},
659 }, // TABLE_sDefaultCountry
660
661 { // TABLE_sFwConfig
Xun Luo7cce87c2014-02-18 14:45:23 -0800662 {"ih",_ID_U8,SINGULAR,0,0,0,((char *)&(nvDefaults.tables.fwConfig.skuID) -
663 (char *)&nvDefaults.tables.fwConfig),"skuID"},
664 {"ii",_ID_U8,SINGULAR,0,0,0,((char *)&(nvDefaults.tables.fwConfig.tpcMode2G)
665 - (char *)&nvDefaults.tables.fwConfig),"tpcMode2G"},
666 {"ij",_ID_U8,SINGULAR,0,0,0,((char *)&(nvDefaults.tables.fwConfig.tpcMode5G)
667 - (char *)&nvDefaults.tables.fwConfig),"tpcMode5G"},
Leo Chang80de3c22013-11-26 10:52:12 -0800668 {"ik",_ID_U8,SINGULAR,0,0,0,
Xun Luo7cce87c2014-02-18 14:45:23 -0800669 ((char *)&(nvDefaults.tables.fwConfig.configItem1) -
670 (char *)&nvDefaults.tables.fwConfig),"configItem1"},
671 {"il",_ID_U8,SINGULAR,0,0,0,((char *)&(nvDefaults.tables.fwConfig.xPA2G) -
672 (char *)&nvDefaults.tables.fwConfig),"xPA2G"},
673 {"im",_ID_U8,SINGULAR,0,0,0,((char *)&(nvDefaults.tables.fwConfig.xPA5G) -
674 (char *)&nvDefaults.tables.fwConfig),"xPA5G"},
Prasanna Kumarf6c94ae2013-04-11 20:05:21 -0700675 {"in",_ID_U8,SINGULAR,0,0,0,
Xun Luo7cce87c2014-02-18 14:45:23 -0800676 ((char *)&(nvDefaults.tables.fwConfig.extPaCtrl0Polarity) -
677 (char *)&nvDefaults.tables.fwConfig),"extPaCtrl0Polarity"},
Prasanna Kumarf6c94ae2013-04-11 20:05:21 -0700678 {"io",_ID_U8,SINGULAR,0,0,0,
Xun Luo7cce87c2014-02-18 14:45:23 -0800679 ((char *)&(nvDefaults.tables.fwConfig.extPaCtrl1Polarity) -
680 (char *)&nvDefaults.tables.fwConfig),"extPaCtrl1Polarity"},
681 {"ip",_ID_U8,SINGULAR,0,0,0,((char *)&(nvDefaults.tables.fwConfig.xLNA2G) -
682 (char *)&nvDefaults.tables.fwConfig),"xLNA2G"},
683 {"iq",_ID_U8,SINGULAR,0,0,0,((char *)&(nvDefaults.tables.fwConfig.xLNA5G) -
684 (char *)&nvDefaults.tables.fwConfig),"xLNA5G"},
685 {"ir",_ID_U8,SINGULAR,0,0,0,((char *)&(nvDefaults.tables.fwConfig.xCoupler2G)
686 - (char *)&nvDefaults.tables.fwConfig),"xCoupler2G"},
687 {"is",_ID_U8,SINGULAR,0,0,0,((char *)&(nvDefaults.tables.fwConfig.xCoupler5G)
688 - (char *)&nvDefaults.tables.fwConfig),"xCoupler5G"},
689 {"it",_ID_U8,SINGULAR,0,0,0,((char *)&(nvDefaults.tables.fwConfig.xPdet2G) -
690 (char *)&nvDefaults.tables.fwConfig),"xPdet2G"},
691 {"iu",_ID_U8,SINGULAR,0,0,0,((char *)&(nvDefaults.tables.fwConfig.xPdet5G) -
692 (char *)&nvDefaults.tables.fwConfig),"xPdet5G"},
Prasanna Kumarf6c94ae2013-04-11 20:05:21 -0700693 {"iv",_ID_U8,SINGULAR,0,0,0,
Xun Luo7cce87c2014-02-18 14:45:23 -0800694 ((char *)&(nvDefaults.tables.fwConfig.enableDPD2G) -
695 (char *)&nvDefaults.tables.fwConfig),"enableDPD2G"},
Prasanna Kumarf6c94ae2013-04-11 20:05:21 -0700696 {"iw",_ID_U8,SINGULAR,0,0,0,
Xun Luo7cce87c2014-02-18 14:45:23 -0800697 ((char *)&(nvDefaults.tables.fwConfig.enableDPD5G) -
698 (char *)&nvDefaults.tables.fwConfig),"enableDPD5G"},
Prasanna Kumarf6c94ae2013-04-11 20:05:21 -0700699 {"ix",_ID_U8,SINGULAR,0,0,0,
Xun Luo7cce87c2014-02-18 14:45:23 -0800700 ((char *)&(nvDefaults.tables.fwConfig.pdadcSelect2G) -
701 (char *)&nvDefaults.tables.fwConfig),"pdadcSelect2G"},
Prasanna Kumarf6c94ae2013-04-11 20:05:21 -0700702 {"iy",_ID_U8,SINGULAR,0,0,0,
Xun Luo7cce87c2014-02-18 14:45:23 -0800703 ((char *)&(nvDefaults.tables.fwConfig.pdadcSelect5GLow) -
704 (char *)&nvDefaults.tables.fwConfig),"pdadcSelect5GLow"},
Prasanna Kumarf6c94ae2013-04-11 20:05:21 -0700705 {"iz",_ID_U8,SINGULAR,0,0,0,
Xun Luo7cce87c2014-02-18 14:45:23 -0800706 ((char *)&(nvDefaults.tables.fwConfig.pdadcSelect5GMid) -
707 (char *)&nvDefaults.tables.fwConfig),"pdadcSelect5GMid"},
Prasanna Kumarf6c94ae2013-04-11 20:05:21 -0700708 {"i0",_ID_U8,SINGULAR,0,0,0,
Xun Luo7cce87c2014-02-18 14:45:23 -0800709 ((char *)&(nvDefaults.tables.fwConfig.pdadcSelect5GHigh) -
710 (char *)&nvDefaults.tables.fwConfig),"pdadcSelect5GHigh"},
Leo Chang80de3c22013-11-26 10:52:12 -0800711 {"i1",_ID_U32,SINGULAR,0,0,0,
Xun Luo7cce87c2014-02-18 14:45:23 -0800712 ((char *)&(nvDefaults.tables.fwConfig.configItem2) -
713 (char *)&nvDefaults.tables.fwConfig),"configItem2"},
Leo Chang80de3c22013-11-26 10:52:12 -0800714 {"i2",_ID_U32,SINGULAR,0,0,0,
Xun Luo7cce87c2014-02-18 14:45:23 -0800715 ((char *)&(nvDefaults.tables.fwConfig.configItem3) -
716 (char *)&nvDefaults.tables.fwConfig),"configItem3"},
Leo Chang80de3c22013-11-26 10:52:12 -0800717 {"i3",_ID_U32,SINGULAR,0,0,0,
Xun Luo7cce87c2014-02-18 14:45:23 -0800718 ((char *)&(nvDefaults.tables.fwConfig.configItem4) -
719 (char *)&nvDefaults.tables.fwConfig),"configItem4"},
Prasanna Kumarf6c94ae2013-04-11 20:05:21 -0700720 {{nul}, 0, 0, 0, 0, 0, 0,{nul}},
721 }, // TABLE_sFwConfig
722
723 { // TABLE_tTpcPowerTable
724 {"kc",_ID_U8,(_ADD_SIZE2(TPC_MEM_POWER_LUT_DEPTH)|ARRAY_2),
725 ((FIELD_SIZE_TYPE_BIT(FIELD_SIZE_IDX_ENUM))|
726 (FIELD_SIZE_VALUE_BITS(INDEX_ENUM_NUM_PHY_MAX_TX_CHAINS))),
727 ((FIELD_SIZE_TYPE_BIT(FIELD_SIZE_IDX_INT))|
728 (FIELD_SIZE_VALUE_BITS(TPC_MEM_POWER_LUT_DEPTH))),0,
Xun Luo7cce87c2014-02-18 14:45:23 -0800729 ((char *)&(nvDefaults.tables.plutCharacterized[0]) -
730 (char *)&nvDefaults.tables.plutCharacterized[0]),"tTpcPowerTable"},
Prasanna Kumarf6c94ae2013-04-11 20:05:21 -0700731 {{nul}, 0, 0, 0, 0, 0, 0,{nul}},
732 }, // TABLE_tTpcPowerTable
733
734 { // TABLE_tRateGroupPwr
735 {"kb",_ID_U32,(ARRAY_1),((FIELD_SIZE_TYPE_BIT(FIELD_SIZE_IDX_ENUM))|
736 (FIELD_SIZE_VALUE_BITS(INDEX_ENUM_NUM_HAL_PHY_RATES))),0,0,
Xun Luo7cce87c2014-02-18 14:45:23 -0800737 ((char *)&(nvDefaults.tables.pwrOptimum[0]) -
738 (char *)&nvDefaults.tables.pwrOptimum[0]),"tRateGroupPwr"},
Prasanna Kumarf6c94ae2013-04-11 20:05:21 -0700739 {{nul}, 0, 0, 0, 0, 0, 0,{nul}},
740 }, // TABLE_tRateGroupPwr
741
742 { // TABLE_tRateGroupPwrVR
743 {"kd",_ID_U32,(_ADD_SIZE1(NUM_RF_VR_RATE)|ARRAY_1),
744 ((FIELD_SIZE_TYPE_BIT(FIELD_SIZE_IDX_INT))|
745 (FIELD_SIZE_VALUE_BITS(NUM_RF_VR_RATE))),0,0,
Xun Luo7cce87c2014-02-18 14:45:23 -0800746 ((char *)&(nvDefaults.tables.pwrOptimum_virtualRate[0]) -
747 (char *)&nvDefaults.tables.pwrOptimum_virtualRate[0]),"tRateGroupPwrVR"},
Leo Chang80de3c22013-11-26 10:52:12 -0800748
Prasanna Kumarf6c94ae2013-04-11 20:05:21 -0700749 {{nul}, 0, 0, 0, 0, 0, 0,{nul}},
750 }, // TABLE_tRateGroupPwrVR
751
752 { // TABLE_sRegulatoryDomains
753 {"dx",_TABLE_IDX(TABLE_sRegulatoryChannel),(ARRAY_1),
754 ((FIELD_SIZE_TYPE_BIT(FIELD_SIZE_IDX_ENUM))|
755 (FIELD_SIZE_VALUE_BITS(INDEX_ENUM_NUM_RF_CHANNELS))),0,0,
Xun Luo7cce87c2014-02-18 14:45:23 -0800756 ((char *)&(nvDefaults.tables.regDomains[0].channels[0]) -
757 (char *)&nvDefaults.tables.regDomains[0]),"channels"},
Prasanna Kumarf6c94ae2013-04-11 20:05:21 -0700758 {"dy",_ID_U32,(ARRAY_1),((FIELD_SIZE_TYPE_BIT(FIELD_SIZE_IDX_ENUM))|
759 (FIELD_SIZE_VALUE_BITS(INDEX_ENUM_NUM_RF_SUBBANDS))),0,0,
Xun Luo7cce87c2014-02-18 14:45:23 -0800760 ((char *)&(nvDefaults.tables.regDomains[0].antennaGain[0]) -
761 (char *)&nvDefaults.tables.regDomains[0]),"antennaGain"},
Prasanna Kumarf6c94ae2013-04-11 20:05:21 -0700762 {"dz",_ID_U32,(ARRAY_1),((FIELD_SIZE_TYPE_BIT(FIELD_SIZE_IDX_ENUM))|
763 (FIELD_SIZE_VALUE_BITS(INDEX_ENUM_NUM_2_4GHZ_CHANNELS))),0,0,
Xun Luo7cce87c2014-02-18 14:45:23 -0800764 ((char *)&(nvDefaults.tables.regDomains[0].bRatePowerOffset[0]) -
765 (char *)&nvDefaults.tables.regDomains[0]),"bRatePowerOffset"},
Prasanna Kumarf6c94ae2013-04-11 20:05:21 -0700766 {"d0",_ID_U32,(ARRAY_1),((FIELD_SIZE_TYPE_BIT(FIELD_SIZE_IDX_ENUM))|
767 (FIELD_SIZE_VALUE_BITS(INDEX_ENUM_NUM_RF_CHANNELS))),0,0,
Xun Luo7cce87c2014-02-18 14:45:23 -0800768 ((char *)&(nvDefaults.tables.regDomains[0].gnRatePowerOffset[0]) -
769 (char *)&nvDefaults.tables.regDomains[0]),"gnRatePowerOffset"},
Prasanna Kumarf6c94ae2013-04-11 20:05:21 -0700770 {{nul}, 0, 0, 0, 0, 0, 0,{nul}},
771 }, // TABLE_sRegulatoryDomains
772
773 { // TABLE_sHwCalValues
774 {"eq",_ID_U32,SINGULAR,0,0,0,
Xun Luo7cce87c2014-02-18 14:45:23 -0800775 ((char *)&(nvDefaults.tables.hwCalValues.validBmap) -
776 (char *)&nvDefaults.tables.hwCalValues),"validBmap"},
Prasanna Kumarf6c94ae2013-04-11 20:05:21 -0700777 {"er",_TABLE_IDX(TABLE_sCalData),SINGULAR,0,0,0,
Xun Luo7cce87c2014-02-18 14:45:23 -0800778 ((char *)&(nvDefaults.tables.hwCalValues.calData) -
779 (char *)&nvDefaults.tables.hwCalValues),"calData"},
Prasanna Kumarf6c94ae2013-04-11 20:05:21 -0700780 {{nul}, 0, 0, 0, 0, 0, 0,{nul}},
781 }, // TABLE_sHwCalValues
782
783 { // TABLE_sNvTables
784 {"jm",_TABLE_IDX(TABLE_tRateGroupPwr),(ARRAY_1),
785 ((FIELD_SIZE_TYPE_BIT(FIELD_SIZE_IDX_ENUM))|
786 (FIELD_SIZE_VALUE_BITS(INDEX_ENUM_NUM_RF_SUBBANDS))),0,0,
Xun Luo7cce87c2014-02-18 14:45:23 -0800787 ((char *)&(nvDefaults.tables.pwrOptimum[0]) - (char *)&nvDefaults.tables),
Prasanna Kumarf6c94ae2013-04-11 20:05:21 -0700788 "pwrOptimum"},
789 {"jn",_TABLE_IDX(TABLE_sRegulatoryDomains),(ARRAY_1),
790 ((FIELD_SIZE_TYPE_BIT(FIELD_SIZE_IDX_ENUM))|
791 (FIELD_SIZE_VALUE_BITS(INDEX_ENUM_NUM_REG_DOMAINS))),0,0,
Xun Luo7cce87c2014-02-18 14:45:23 -0800792 ((char *)&(nvDefaults.tables.regDomains[0]) - (char *)&nvDefaults.tables),
Prasanna Kumarf6c94ae2013-04-11 20:05:21 -0700793 "regDomains"},
794 {"jo",_TABLE_IDX(TABLE_sDefaultCountry),SINGULAR,0,0,0,
Xun Luo7cce87c2014-02-18 14:45:23 -0800795 ((char *)&(nvDefaults.tables.defaultCountryTable) -
796 (char *)&nvDefaults.tables),"defaultCountryTable"},
Prasanna Kumarf6c94ae2013-04-11 20:05:21 -0700797 {"jp",_TABLE_IDX(TABLE_tTpcPowerTable),(ARRAY_1),
798 ((FIELD_SIZE_TYPE_BIT(FIELD_SIZE_IDX_ENUM))|
799 (FIELD_SIZE_VALUE_BITS(INDEX_ENUM_NUM_RF_CHANNELS))),0,0,
Xun Luo7cce87c2014-02-18 14:45:23 -0800800 ((char *)&(nvDefaults.tables.plutCharacterized[0]) -
801 (char *)&nvDefaults.tables),"plutCharacterized"},
Prasanna Kumarf6c94ae2013-04-11 20:05:21 -0700802 {"jq",_ID_S16,(ARRAY_1),((FIELD_SIZE_TYPE_BIT(FIELD_SIZE_IDX_ENUM))|
803 (FIELD_SIZE_VALUE_BITS(INDEX_ENUM_NUM_RF_CHANNELS))),0,0,
Xun Luo7cce87c2014-02-18 14:45:23 -0800804 ((char *)&(nvDefaults.tables.plutPdadcOffset[0]) -
805 (char *)&nvDefaults.tables),"plutPdadcOffset"},
Prasanna Kumarf6c94ae2013-04-11 20:05:21 -0700806 {"jr",_TABLE_IDX(TABLE_tRateGroupPwrVR),(ARRAY_1),
807 ((FIELD_SIZE_TYPE_BIT(FIELD_SIZE_IDX_ENUM))|
808 (FIELD_SIZE_VALUE_BITS(INDEX_ENUM_NUM_RF_SUBBANDS))),0,0,
Xun Luo7cce87c2014-02-18 14:45:23 -0800809 ((char *)&(nvDefaults.tables.pwrOptimum_virtualRate[0]) -
810 (char *)&nvDefaults.tables),"pwrOptimum_virtualRate"},
Prasanna Kumarf6c94ae2013-04-11 20:05:21 -0700811 {"js",_TABLE_IDX(TABLE_sFwConfig),SINGULAR,0,0,0,
Xun Luo7cce87c2014-02-18 14:45:23 -0800812 ((char *)&(nvDefaults.tables.fwConfig) - (char *)&nvDefaults.tables),
Prasanna Kumarf6c94ae2013-04-11 20:05:21 -0700813 "fwConfig"},
814 {"jt",_TABLE_IDX(TABLE_sRssiChannelOffsets),(_ADD_SIZE1(2)|ARRAY_1),
815 ((FIELD_SIZE_TYPE_BIT(FIELD_SIZE_IDX_INT))|(FIELD_SIZE_VALUE_BITS(2))),
Xun Luo7cce87c2014-02-18 14:45:23 -0800816 0,0,((char *)&(nvDefaults.tables.rssiChanOffsets[0]) -
817 (char *)&nvDefaults.tables),"rssiChanOffsets"},
Prasanna Kumarf6c94ae2013-04-11 20:05:21 -0700818 {"ju",_TABLE_IDX(TABLE_sHwCalValues),SINGULAR,0,0,0,
Xun Luo7cce87c2014-02-18 14:45:23 -0800819 ((char *)&(nvDefaults.tables.hwCalValues) - (char *)&nvDefaults.tables),
Prasanna Kumarf6c94ae2013-04-11 20:05:21 -0700820 "hwCalValues"},
821 {"jv",_ID_S16,(ARRAY_1),((FIELD_SIZE_TYPE_BIT(FIELD_SIZE_IDX_ENUM))|
822 (FIELD_SIZE_VALUE_BITS(INDEX_ENUM_NUM_RF_CHANNELS))),0,0,
Xun Luo7cce87c2014-02-18 14:45:23 -0800823 ((char *)&(nvDefaults.tables.antennaPathLoss[0]) -
824 (char *)&nvDefaults.tables),"antennaPathLoss"},
Prasanna Kumarf6c94ae2013-04-11 20:05:21 -0700825 {"jw",_ID_S16,(ARRAY_2),((FIELD_SIZE_TYPE_BIT(FIELD_SIZE_IDX_ENUM))|
826 (FIELD_SIZE_VALUE_BITS(INDEX_ENUM_NUM_802_11_MODES))),
827 ((FIELD_SIZE_TYPE_BIT(FIELD_SIZE_IDX_ENUM))|
828 (FIELD_SIZE_VALUE_BITS(INDEX_ENUM_NUM_RF_CHANNELS))),0,
Xun Luo7cce87c2014-02-18 14:45:23 -0800829 ((char *)&(nvDefaults.tables.pktTypePwrLimits[0][0]) -
830 (char *)&nvDefaults.tables),"pktTypePwrLimits"},
Prasanna Kumarf6c94ae2013-04-11 20:05:21 -0700831 {"jx",_TABLE_IDX(TABLE_sOfdmCmdPwrOffset),SINGULAR,0,0,0,
Xun Luo7cce87c2014-02-18 14:45:23 -0800832 ((char *)&(nvDefaults.tables.ofdmCmdPwrOffset) - (char *)&nvDefaults.tables),
Prasanna Kumarf6c94ae2013-04-11 20:05:21 -0700833 "ofdmCmdPwrOffset"},
834 {"jy",_TABLE_IDX(TABLE_sTxBbFilterMode),SINGULAR,0,0,0,
Xun Luo7cce87c2014-02-18 14:45:23 -0800835 ((char *)&(nvDefaults.tables.txbbFilterMode) - (char *)&nvDefaults.tables),
Prasanna Kumarf6c94ae2013-04-11 20:05:21 -0700836 "txbbFilterMode"},
837 {{nul}, 0, 0, 0, 0, 0, 0,{nul}},
838 }, // TABLE_sNvTables
839
840 { //INDEX_TABLE_LAST
841 {{nul}, 0, 0, 0, 0, 0, 0,{nul}},
842 }, //INDEX_TABLE_LAST
843}; // END _NV_TEMPLATE_TABLE
844
845int getTableNoOfFields(int tblIdx)
846{
847 return tableNoOfFieldArray[tblIdx];
848}