Prasanna Kumar | f6c94ae | 2013-04-11 20:05:21 -0700 | [diff] [blame] | 1 | /* |
Xun Luo | 7cce87c | 2014-02-18 14:45:23 -0800 | [diff] [blame] | 2 | * Copyright (c) 2013-2014 The Linux Foundation. All rights reserved. |
Kiet Lam | 1ed83fc | 2014-02-19 01:15:45 -0800 | [diff] [blame] | 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. |
Madan Mohan Koyyalamudi | a997c1e | 2013-09-03 12:16:32 -0700 | [diff] [blame] | 20 | */ |
Kiet Lam | 1ed83fc | 2014-02-19 01:15:45 -0800 | [diff] [blame] | 21 | |
| 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 Kumar | f6c94ae | 2013-04-11 20:05:21 -0700 | [diff] [blame] | 28 | /*=========================================================================== |
| 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 | |
| 135 | static int enumNoOfFieldArray[INDEX_ENUM_BUILTIN_MAX] = |
Leo Chang | 80de3c2 | 2013-11-26 10:52:12 -0800 | [diff] [blame] | 136 | {7,1,9,5,40,14,3,55}; |
Prasanna Kumar | f6c94ae | 2013-04-11 20:05:21 -0700 | [diff] [blame] | 137 | |
| 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 Chang | 80de3c2 | 2013-11-26 10:52:12 -0800 | [diff] [blame] | 218 | #ifdef FEATURE_WLAN_CH144 |
| 219 | {"kt",RF_CHAN_144,0,{nul}}, |
| 220 | #endif /* FEATURE_WLAN_CH144 */ |
Prasanna Kumar | f6c94ae | 2013-04-11 20:05:21 -0700 | [diff] [blame] | 221 | {"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 Chang | 80de3c2 | 2013-11-26 10:52:12 -0800 | [diff] [blame] | 257 | #ifdef FEATURE_WLAN_CH144 |
| 258 | {"ku",RF_CHAN_BOND_142,0,{nul}}, |
| 259 | #endif /* FEATURE_WLAN_CH144 */ |
Prasanna Kumar | f6c94ae | 2013-04-11 20:05:21 -0700 | [diff] [blame] | 260 | {"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 | |
| 431 | int getEnumNoOfFields(int enumIdx){ |
Leo Chang | 80de3c2 | 2013-11-26 10:52:12 -0800 | [diff] [blame] | 432 | #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 Kumar | f6c94ae | 2013-04-11 20:05:21 -0700 | [diff] [blame] | 439 | #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 | |
| 455 | static 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 Luo | 7cce87c | 2014-02-18 14:45:23 -0800 | [diff] [blame] | 461 | ((char *)&(nvDefaults.fields) - (char *)&nvDefaults),"fields"}, |
Prasanna Kumar | f6c94ae | 2013-04-11 20:05:21 -0700 | [diff] [blame] | 462 | {"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 Luo | 7cce87c | 2014-02-18 14:45:23 -0800 | [diff] [blame] | 465 | ((char *)&(nvDefaults.tables.pwrOptimum[0]) - (char *)&nvDefaults.tables), |
Prasanna Kumar | f6c94ae | 2013-04-11 20:05:21 -0700 | [diff] [blame] | 466 | "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 Luo | 7cce87c | 2014-02-18 14:45:23 -0800 | [diff] [blame] | 470 | ((char *)&(nvDefaults.tables.regDomains[0].channels[0]) - |
| 471 | (char *)&nvDefaults.tables.regDomains[0]),"channels"}, |
Prasanna Kumar | f6c94ae | 2013-04-11 20:05:21 -0700 | [diff] [blame] | 472 | {"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 Luo | 7cce87c | 2014-02-18 14:45:23 -0800 | [diff] [blame] | 475 | ((char *)&(nvDefaults.tables.regDomains[0]) - (char *)&nvDefaults.tables), |
Prasanna Kumar | f6c94ae | 2013-04-11 20:05:21 -0700 | [diff] [blame] | 476 | "regDomains"}, |
| 477 | {"jo",_TABLE_IDX(TABLE_sDefaultCountry),SINGULAR,0,0,0, |
Xun Luo | 7cce87c | 2014-02-18 14:45:23 -0800 | [diff] [blame] | 478 | ((char *)&(nvDefaults.tables.defaultCountryTable) - |
| 479 | (char *)&nvDefaults.tables),"defaultCountryTable"}, |
Prasanna Kumar | f6c94ae | 2013-04-11 20:05:21 -0700 | [diff] [blame] | 480 | {"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 Luo | 7cce87c | 2014-02-18 14:45:23 -0800 | [diff] [blame] | 483 | ((char *)&(nvDefaults.tables.plutCharacterized[0]) - |
| 484 | (char *)&nvDefaults.tables),"plutCharacterized"}, |
Prasanna Kumar | f6c94ae | 2013-04-11 20:05:21 -0700 | [diff] [blame] | 485 | {"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 Luo | 7cce87c | 2014-02-18 14:45:23 -0800 | [diff] [blame] | 488 | ((char *)&(nvDefaults.tables.pwrOptimum_virtualRate[0]) - |
| 489 | (char *)&nvDefaults.tables),"pwrOptimum_virtualRate"}, |
Prasanna Kumar | f6c94ae | 2013-04-11 20:05:21 -0700 | [diff] [blame] | 490 | {"js",_TABLE_IDX(TABLE_sFwConfig),SINGULAR,0,0,0, |
Xun Luo | 7cce87c | 2014-02-18 14:45:23 -0800 | [diff] [blame] | 491 | ((char *)&(nvDefaults.tables.fwConfig) - (char *)&nvDefaults.tables), |
Prasanna Kumar | f6c94ae | 2013-04-11 20:05:21 -0700 | [diff] [blame] | 492 | "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 Luo | 7cce87c | 2014-02-18 14:45:23 -0800 | [diff] [blame] | 495 | 0,0,((char *)&(nvDefaults.tables.rssiChanOffsets[0]) - |
| 496 | (char *)&nvDefaults.tables),"rssiChanOffsets"}, |
Prasanna Kumar | f6c94ae | 2013-04-11 20:05:21 -0700 | [diff] [blame] | 497 | {"er",_TABLE_IDX(TABLE_sCalData),SINGULAR,0,0,0, |
Xun Luo | 7cce87c | 2014-02-18 14:45:23 -0800 | [diff] [blame] | 498 | ((char *)&(nvDefaults.tables.hwCalValues.calData) - |
| 499 | (char *)&nvDefaults.tables.hwCalValues),"calData"}, |
Prasanna Kumar | f6c94ae | 2013-04-11 20:05:21 -0700 | [diff] [blame] | 500 | {"ju",_TABLE_IDX(TABLE_sHwCalValues),SINGULAR,0,0,0, |
Xun Luo | 7cce87c | 2014-02-18 14:45:23 -0800 | [diff] [blame] | 501 | ((char *)&(nvDefaults.tables.hwCalValues) - (char *)&nvDefaults.tables), |
Prasanna Kumar | f6c94ae | 2013-04-11 20:05:21 -0700 | [diff] [blame] | 502 | "hwCalValues"}, |
| 503 | {"jx",_TABLE_IDX(TABLE_sOfdmCmdPwrOffset),SINGULAR,0,0,0, |
Xun Luo | 7cce87c | 2014-02-18 14:45:23 -0800 | [diff] [blame] | 504 | ((char *)&(nvDefaults.tables.ofdmCmdPwrOffset) - (char *)&nvDefaults.tables), |
Prasanna Kumar | f6c94ae | 2013-04-11 20:05:21 -0700 | [diff] [blame] | 505 | "ofdmCmdPwrOffset"}, |
| 506 | {"jy",_TABLE_IDX(TABLE_sTxBbFilterMode),SINGULAR,0,0,0, |
Xun Luo | 7cce87c | 2014-02-18 14:45:23 -0800 | [diff] [blame] | 507 | ((char *)&(nvDefaults.tables.txbbFilterMode) - (char *)&nvDefaults.tables), |
Prasanna Kumar | f6c94ae | 2013-04-11 20:05:21 -0700 | [diff] [blame] | 508 | "txbbFilterMode"}, |
| 509 | {"j0",_TABLE_IDX(TABLE_sNvTables),SINGULAR,0,0,0, |
Xun Luo | 7cce87c | 2014-02-18 14:45:23 -0800 | [diff] [blame] | 510 | ((char *)&(nvDefaults.tables) - (char *)&nvDefaults),"tables"}, |
Prasanna Kumar | f6c94ae | 2013-04-11 20:05:21 -0700 | [diff] [blame] | 511 | {{nul}, 0, 0, 0, 0, 0, 0,{nul}}, |
| 512 | }, // TABLE_sHalNv |
| 513 | |
| 514 | { // TABLE_sNvFields |
Xun Luo | 7cce87c | 2014-02-18 14:45:23 -0800 | [diff] [blame] | 515 | {"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 Kumar | f6c94ae | 2013-04-11 20:05:21 -0700 | [diff] [blame] | 525 | {"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 Luo | 7cce87c | 2014-02-18 14:45:23 -0800 | [diff] [blame] | 528 | ((char *)&(nvDefaults.fields.macAddr[0]) - (char *)&nvDefaults.fields), |
Prasanna Kumar | f6c94ae | 2013-04-11 20:05:21 -0700 | [diff] [blame] | 529 | "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 Luo | 7cce87c | 2014-02-18 14:45:23 -0800 | [diff] [blame] | 533 | ((char *)&(nvDefaults.fields.macAddr2[0]) - (char *)&nvDefaults.fields), |
Prasanna Kumar | f6c94ae | 2013-04-11 20:05:21 -0700 | [diff] [blame] | 534 | "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 Luo | 7cce87c | 2014-02-18 14:45:23 -0800 | [diff] [blame] | 538 | ((char *)&(nvDefaults.fields.macAddr3[0]) - (char *)&nvDefaults.fields), |
Prasanna Kumar | f6c94ae | 2013-04-11 20:05:21 -0700 | [diff] [blame] | 539 | "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 Luo | 7cce87c | 2014-02-18 14:45:23 -0800 | [diff] [blame] | 543 | ((char *)&(nvDefaults.fields.macAddr4[0]) - (char *)&nvDefaults.fields), |
Prasanna Kumar | f6c94ae | 2013-04-11 20:05:21 -0700 | [diff] [blame] | 544 | "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 Luo | 7cce87c | 2014-02-18 14:45:23 -0800 | [diff] [blame] | 548 | ((char *)&(nvDefaults.fields.mfgSN[0]) - (char *)&nvDefaults.fields),"mfgSN"} |
Prasanna Kumar | f6c94ae | 2013-04-11 20:05:21 -0700 | [diff] [blame] | 549 | , |
Xun Luo | 7cce87c | 2014-02-18 14:45:23 -0800 | [diff] [blame] | 550 | {"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 Kumar | f6c94ae | 2013-04-11 20:05:21 -0700 | [diff] [blame] | 554 | {{nul}, 0, 0, 0, 0, 0, 0,{nul}}, |
| 555 | }, // TABLE_sNvFields |
| 556 | |
| 557 | { // TABLE_sRegulatoryChannel |
| 558 | {"dv",_ID_U8,SINGULAR,0,0,0, |
Xun Luo | 7cce87c | 2014-02-18 14:45:23 -0800 | [diff] [blame] | 559 | ((char *)&(nvDefaults.tables.regDomains[0].channels[0].enabled) - |
| 560 | (char *)&nvDefaults.tables.regDomains[0].channels[0]),"enabled"}, |
Prasanna Kumar | f6c94ae | 2013-04-11 20:05:21 -0700 | [diff] [blame] | 561 | {"dw",_ID_S8,SINGULAR,0,0,0, |
Xun Luo | 7cce87c | 2014-02-18 14:45:23 -0800 | [diff] [blame] | 562 | ((char *)&(nvDefaults.tables.regDomains[0].channels[0].pwrLimit) - |
| 563 | (char *)&nvDefaults.tables.regDomains[0].channels[0]),"pwrLimit"}, |
Prasanna Kumar | f6c94ae | 2013-04-11 20:05:21 -0700 | [diff] [blame] | 564 | {{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 Luo | 7cce87c | 2014-02-18 14:45:23 -0800 | [diff] [blame] | 570 | ((char *)&(nvDefaults.tables.rssiChanOffsets[0].bRssiOffset[0]) - |
| 571 | (char *)&nvDefaults.tables.rssiChanOffsets[0]),"bRssiOffset"}, |
Prasanna Kumar | f6c94ae | 2013-04-11 20:05:21 -0700 | [diff] [blame] | 572 | {"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 Luo | 7cce87c | 2014-02-18 14:45:23 -0800 | [diff] [blame] | 574 | ((char *)&(nvDefaults.tables.rssiChanOffsets[0].gnRssiOffset[0]) - |
| 575 | (char *)&nvDefaults.tables.rssiChanOffsets[0]),"gnRssiOffset"}, |
Prasanna Kumar | f6c94ae | 2013-04-11 20:05:21 -0700 | [diff] [blame] | 576 | {{nul}, 0, 0, 0, 0, 0, 0,{nul}}, |
| 577 | }, // TABLE_sRssiChannelOffsets |
| 578 | |
| 579 | { // TABLE_sCalData |
| 580 | {"ea",_ID_U16,SINGULAR,0,0,0, |
Xun Luo | 7cce87c | 2014-02-18 14:45:23 -0800 | [diff] [blame] | 581 | ((char *)&(nvDefaults.tables.hwCalValues.calData.psSlpTimeOvrHd2G) - |
| 582 | (char *)&nvDefaults.tables.hwCalValues.calData),"psSlpTimeOvrHd2G"}, |
Prasanna Kumar | f6c94ae | 2013-04-11 20:05:21 -0700 | [diff] [blame] | 583 | {"eb",_ID_U16,SINGULAR,0,0,0, |
Xun Luo | 7cce87c | 2014-02-18 14:45:23 -0800 | [diff] [blame] | 584 | ((char *)&(nvDefaults.tables.hwCalValues.calData.psSlpTimeOvrHd5G) - |
| 585 | (char *)&nvDefaults.tables.hwCalValues.calData),"psSlpTimeOvrHd5G"}, |
Prasanna Kumar | f6c94ae | 2013-04-11 20:05:21 -0700 | [diff] [blame] | 586 | {"ec",_ID_U16,SINGULAR,0,0,0, |
Xun Luo | 7cce87c | 2014-02-18 14:45:23 -0800 | [diff] [blame] | 587 | ((char *)&(nvDefaults.tables.hwCalValues.calData.psSlpTimeOvrHdxLNA5G) - |
| 588 | (char *)&nvDefaults.tables.hwCalValues.calData),"psSlpTimeOvrHdxLNA5G"}, |
Prasanna Kumar | f6c94ae | 2013-04-11 20:05:21 -0700 | [diff] [blame] | 589 | {"ed",_ID_U8,SINGULAR,0,0,0, |
Sourav Mohapatra | 9641228 | 2018-04-04 14:12:55 +0530 | [diff] [blame] | 590 | ((char *)&(nvDefaults.tables.hwCalValues.calData.psSlpTimeOvrHdxLNA5G) - |
| 591 | (char *)&nvDefaults.tables.hwCalValues.calData) + sizeof(uint16), |
Prasanna Kumar | f6c94ae | 2013-04-11 20:05:21 -0700 | [diff] [blame] | 592 | "nv_TxBBFSel9MHz"}, |
| 593 | {"ee",_ID_U8,SINGULAR,0,0,0, |
Xun Luo | 7cce87c | 2014-02-18 14:45:23 -0800 | [diff] [blame] | 594 | ((char *)&(nvDefaults.tables.hwCalValues.calData.hwParam2) - |
| 595 | (char *)&nvDefaults.tables.hwCalValues.calData),"hwParam2"}, |
Prasanna Kumar | f6c94ae | 2013-04-11 20:05:21 -0700 | [diff] [blame] | 596 | {"ef",_ID_U16,SINGULAR,0,0,0, |
Xun Luo | 7cce87c | 2014-02-18 14:45:23 -0800 | [diff] [blame] | 597 | ((char *)&(nvDefaults.tables.hwCalValues.calData.custom_tcxo_reg8) - |
| 598 | (char *)&nvDefaults.tables.hwCalValues.calData),"custom_tcxo_reg8"}, |
Prasanna Kumar | f6c94ae | 2013-04-11 20:05:21 -0700 | [diff] [blame] | 599 | {"eg",_ID_U16,SINGULAR,0,0,0, |
Xun Luo | 7cce87c | 2014-02-18 14:45:23 -0800 | [diff] [blame] | 600 | ((char *)&(nvDefaults.tables.hwCalValues.calData.custom_tcxo_reg9) - |
| 601 | (char *)&nvDefaults.tables.hwCalValues.calData),"custom_tcxo_reg9"}, |
Prasanna Kumar | f6c94ae | 2013-04-11 20:05:21 -0700 | [diff] [blame] | 602 | {"eh",_ID_U32,SINGULAR,0,0,0, |
Xun Luo | 7cce87c | 2014-02-18 14:45:23 -0800 | [diff] [blame] | 603 | ((char *)&(nvDefaults.tables.hwCalValues.calData.hwParam3) - |
| 604 | (char *)&nvDefaults.tables.hwCalValues.calData),"hwParam3"}, |
Prasanna Kumar | f6c94ae | 2013-04-11 20:05:21 -0700 | [diff] [blame] | 605 | {"ei",_ID_U32,SINGULAR,0,0,0, |
Xun Luo | 7cce87c | 2014-02-18 14:45:23 -0800 | [diff] [blame] | 606 | ((char *)&(nvDefaults.tables.hwCalValues.calData.hwParam4) - |
| 607 | (char *)&nvDefaults.tables.hwCalValues.calData),"hwParam4"}, |
Prasanna Kumar | f6c94ae | 2013-04-11 20:05:21 -0700 | [diff] [blame] | 608 | {"ej",_ID_U32,SINGULAR,0,0,0, |
Xun Luo | 7cce87c | 2014-02-18 14:45:23 -0800 | [diff] [blame] | 609 | ((char *)&(nvDefaults.tables.hwCalValues.calData.hwParam5) - |
| 610 | (char *)&nvDefaults.tables.hwCalValues.calData),"hwParam5"}, |
Prasanna Kumar | f6c94ae | 2013-04-11 20:05:21 -0700 | [diff] [blame] | 611 | {"ek",_ID_U32,SINGULAR,0,0,0, |
Xun Luo | 7cce87c | 2014-02-18 14:45:23 -0800 | [diff] [blame] | 612 | ((char *)&(nvDefaults.tables.hwCalValues.calData.hwParam6) - |
| 613 | (char *)&nvDefaults.tables.hwCalValues.calData),"hwParam6"}, |
Prasanna Kumar | f6c94ae | 2013-04-11 20:05:21 -0700 | [diff] [blame] | 614 | {"el",_ID_U32,SINGULAR,0,0,0, |
Xun Luo | 7cce87c | 2014-02-18 14:45:23 -0800 | [diff] [blame] | 615 | ((char *)&(nvDefaults.tables.hwCalValues.calData.hwParam7) - |
| 616 | (char *)&nvDefaults.tables.hwCalValues.calData),"hwParam7"}, |
Prasanna Kumar | f6c94ae | 2013-04-11 20:05:21 -0700 | [diff] [blame] | 617 | {"em",_ID_U32,SINGULAR,0,0,0, |
Xun Luo | 7cce87c | 2014-02-18 14:45:23 -0800 | [diff] [blame] | 618 | ((char *)&(nvDefaults.tables.hwCalValues.calData.hwParam8) - |
| 619 | (char *)&nvDefaults.tables.hwCalValues.calData),"hwParam8"}, |
Prasanna Kumar | f6c94ae | 2013-04-11 20:05:21 -0700 | [diff] [blame] | 620 | {"en",_ID_U32,SINGULAR,0,0,0, |
Xun Luo | 7cce87c | 2014-02-18 14:45:23 -0800 | [diff] [blame] | 621 | ((char *)&(nvDefaults.tables.hwCalValues.calData.hwParam9) - |
| 622 | (char *)&nvDefaults.tables.hwCalValues.calData),"hwParam9"}, |
Prasanna Kumar | f6c94ae | 2013-04-11 20:05:21 -0700 | [diff] [blame] | 623 | {"eo",_ID_U32,SINGULAR,0,0,0, |
Xun Luo | 7cce87c | 2014-02-18 14:45:23 -0800 | [diff] [blame] | 624 | ((char *)&(nvDefaults.tables.hwCalValues.calData.hwParam10) - |
| 625 | (char *)&nvDefaults.tables.hwCalValues.calData),"hwParam10"}, |
Prasanna Kumar | f6c94ae | 2013-04-11 20:05:21 -0700 | [diff] [blame] | 626 | {"ep",_ID_U32,SINGULAR,0,0,0, |
Xun Luo | 7cce87c | 2014-02-18 14:45:23 -0800 | [diff] [blame] | 627 | ((char *)&(nvDefaults.tables.hwCalValues.calData.hwParam11) - |
| 628 | (char *)&nvDefaults.tables.hwCalValues.calData),"hwParam11"}, |
Prasanna Kumar | f6c94ae | 2013-04-11 20:05:21 -0700 | [diff] [blame] | 629 | {{nul}, 0, 0, 0, 0, 0, 0,{nul}}, |
| 630 | }, // TABLE_sCalData |
| 631 | |
| 632 | { // TABLE_sTxBbFilterMode |
| 633 | {"es",_ID_U32,SINGULAR,0,0,0, |
Xun Luo | 7cce87c | 2014-02-18 14:45:23 -0800 | [diff] [blame] | 634 | ((char *)&(nvDefaults.tables.txbbFilterMode.txFirFilterMode) - |
| 635 | (char *)&nvDefaults.tables.txbbFilterMode),"txFirFilterMode"}, |
Prasanna Kumar | f6c94ae | 2013-04-11 20:05:21 -0700 | [diff] [blame] | 636 | {{nul}, 0, 0, 0, 0, 0, 0,{nul}}, |
| 637 | }, // TABLE_sTxBbFilterMode |
| 638 | |
| 639 | { // TABLE_sOfdmCmdPwrOffset |
| 640 | {"et",_ID_S16,SINGULAR,0,0,0, |
Xun Luo | 7cce87c | 2014-02-18 14:45:23 -0800 | [diff] [blame] | 641 | ((char *)&(nvDefaults.tables.ofdmCmdPwrOffset.ofdmPwrOffset) - |
| 642 | (char *)&nvDefaults.tables.ofdmCmdPwrOffset),"ofdmPwrOffset"}, |
Prasanna Kumar | f6c94ae | 2013-04-11 20:05:21 -0700 | [diff] [blame] | 643 | {"eu",_ID_S16,SINGULAR,0,0,0, |
Xun Luo | 7cce87c | 2014-02-18 14:45:23 -0800 | [diff] [blame] | 644 | ((char *)&(nvDefaults.tables.ofdmCmdPwrOffset.rsvd) - |
| 645 | (char *)&nvDefaults.tables.ofdmCmdPwrOffset),"rsvd"}, |
Prasanna Kumar | f6c94ae | 2013-04-11 20:05:21 -0700 | [diff] [blame] | 646 | {{nul}, 0, 0, 0, 0, 0, 0,{nul}}, |
| 647 | }, // TABLE_sOfdmCmdPwrOffset |
| 648 | |
| 649 | { // TABLE_sDefaultCountry |
| 650 | {"if",_ID_U8,SINGULAR,0,0,0, |
Xun Luo | 7cce87c | 2014-02-18 14:45:23 -0800 | [diff] [blame] | 651 | ((char *)&(nvDefaults.tables.defaultCountryTable.regDomain) - |
| 652 | (char *)&nvDefaults.tables.defaultCountryTable),"regDomain"}, |
Prasanna Kumar | f6c94ae | 2013-04-11 20:05:21 -0700 | [diff] [blame] | 653 | {"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 Luo | 7cce87c | 2014-02-18 14:45:23 -0800 | [diff] [blame] | 656 | ((char *)&(nvDefaults.tables.defaultCountryTable.countryCode[0]) - |
| 657 | (char *)&nvDefaults.tables.defaultCountryTable),"countryCode"}, |
Prasanna Kumar | f6c94ae | 2013-04-11 20:05:21 -0700 | [diff] [blame] | 658 | {{nul}, 0, 0, 0, 0, 0, 0,{nul}}, |
| 659 | }, // TABLE_sDefaultCountry |
| 660 | |
| 661 | { // TABLE_sFwConfig |
Xun Luo | 7cce87c | 2014-02-18 14:45:23 -0800 | [diff] [blame] | 662 | {"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 Chang | 80de3c2 | 2013-11-26 10:52:12 -0800 | [diff] [blame] | 668 | {"ik",_ID_U8,SINGULAR,0,0,0, |
Xun Luo | 7cce87c | 2014-02-18 14:45:23 -0800 | [diff] [blame] | 669 | ((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 Kumar | f6c94ae | 2013-04-11 20:05:21 -0700 | [diff] [blame] | 675 | {"in",_ID_U8,SINGULAR,0,0,0, |
Xun Luo | 7cce87c | 2014-02-18 14:45:23 -0800 | [diff] [blame] | 676 | ((char *)&(nvDefaults.tables.fwConfig.extPaCtrl0Polarity) - |
| 677 | (char *)&nvDefaults.tables.fwConfig),"extPaCtrl0Polarity"}, |
Prasanna Kumar | f6c94ae | 2013-04-11 20:05:21 -0700 | [diff] [blame] | 678 | {"io",_ID_U8,SINGULAR,0,0,0, |
Xun Luo | 7cce87c | 2014-02-18 14:45:23 -0800 | [diff] [blame] | 679 | ((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 Kumar | f6c94ae | 2013-04-11 20:05:21 -0700 | [diff] [blame] | 693 | {"iv",_ID_U8,SINGULAR,0,0,0, |
Xun Luo | 7cce87c | 2014-02-18 14:45:23 -0800 | [diff] [blame] | 694 | ((char *)&(nvDefaults.tables.fwConfig.enableDPD2G) - |
| 695 | (char *)&nvDefaults.tables.fwConfig),"enableDPD2G"}, |
Prasanna Kumar | f6c94ae | 2013-04-11 20:05:21 -0700 | [diff] [blame] | 696 | {"iw",_ID_U8,SINGULAR,0,0,0, |
Xun Luo | 7cce87c | 2014-02-18 14:45:23 -0800 | [diff] [blame] | 697 | ((char *)&(nvDefaults.tables.fwConfig.enableDPD5G) - |
| 698 | (char *)&nvDefaults.tables.fwConfig),"enableDPD5G"}, |
Prasanna Kumar | f6c94ae | 2013-04-11 20:05:21 -0700 | [diff] [blame] | 699 | {"ix",_ID_U8,SINGULAR,0,0,0, |
Xun Luo | 7cce87c | 2014-02-18 14:45:23 -0800 | [diff] [blame] | 700 | ((char *)&(nvDefaults.tables.fwConfig.pdadcSelect2G) - |
| 701 | (char *)&nvDefaults.tables.fwConfig),"pdadcSelect2G"}, |
Prasanna Kumar | f6c94ae | 2013-04-11 20:05:21 -0700 | [diff] [blame] | 702 | {"iy",_ID_U8,SINGULAR,0,0,0, |
Xun Luo | 7cce87c | 2014-02-18 14:45:23 -0800 | [diff] [blame] | 703 | ((char *)&(nvDefaults.tables.fwConfig.pdadcSelect5GLow) - |
| 704 | (char *)&nvDefaults.tables.fwConfig),"pdadcSelect5GLow"}, |
Prasanna Kumar | f6c94ae | 2013-04-11 20:05:21 -0700 | [diff] [blame] | 705 | {"iz",_ID_U8,SINGULAR,0,0,0, |
Xun Luo | 7cce87c | 2014-02-18 14:45:23 -0800 | [diff] [blame] | 706 | ((char *)&(nvDefaults.tables.fwConfig.pdadcSelect5GMid) - |
| 707 | (char *)&nvDefaults.tables.fwConfig),"pdadcSelect5GMid"}, |
Prasanna Kumar | f6c94ae | 2013-04-11 20:05:21 -0700 | [diff] [blame] | 708 | {"i0",_ID_U8,SINGULAR,0,0,0, |
Xun Luo | 7cce87c | 2014-02-18 14:45:23 -0800 | [diff] [blame] | 709 | ((char *)&(nvDefaults.tables.fwConfig.pdadcSelect5GHigh) - |
| 710 | (char *)&nvDefaults.tables.fwConfig),"pdadcSelect5GHigh"}, |
Leo Chang | 80de3c2 | 2013-11-26 10:52:12 -0800 | [diff] [blame] | 711 | {"i1",_ID_U32,SINGULAR,0,0,0, |
Xun Luo | 7cce87c | 2014-02-18 14:45:23 -0800 | [diff] [blame] | 712 | ((char *)&(nvDefaults.tables.fwConfig.configItem2) - |
| 713 | (char *)&nvDefaults.tables.fwConfig),"configItem2"}, |
Leo Chang | 80de3c2 | 2013-11-26 10:52:12 -0800 | [diff] [blame] | 714 | {"i2",_ID_U32,SINGULAR,0,0,0, |
Xun Luo | 7cce87c | 2014-02-18 14:45:23 -0800 | [diff] [blame] | 715 | ((char *)&(nvDefaults.tables.fwConfig.configItem3) - |
| 716 | (char *)&nvDefaults.tables.fwConfig),"configItem3"}, |
Leo Chang | 80de3c2 | 2013-11-26 10:52:12 -0800 | [diff] [blame] | 717 | {"i3",_ID_U32,SINGULAR,0,0,0, |
Xun Luo | 7cce87c | 2014-02-18 14:45:23 -0800 | [diff] [blame] | 718 | ((char *)&(nvDefaults.tables.fwConfig.configItem4) - |
| 719 | (char *)&nvDefaults.tables.fwConfig),"configItem4"}, |
Prasanna Kumar | f6c94ae | 2013-04-11 20:05:21 -0700 | [diff] [blame] | 720 | {{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 Luo | 7cce87c | 2014-02-18 14:45:23 -0800 | [diff] [blame] | 729 | ((char *)&(nvDefaults.tables.plutCharacterized[0]) - |
| 730 | (char *)&nvDefaults.tables.plutCharacterized[0]),"tTpcPowerTable"}, |
Prasanna Kumar | f6c94ae | 2013-04-11 20:05:21 -0700 | [diff] [blame] | 731 | {{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 Luo | 7cce87c | 2014-02-18 14:45:23 -0800 | [diff] [blame] | 737 | ((char *)&(nvDefaults.tables.pwrOptimum[0]) - |
| 738 | (char *)&nvDefaults.tables.pwrOptimum[0]),"tRateGroupPwr"}, |
Prasanna Kumar | f6c94ae | 2013-04-11 20:05:21 -0700 | [diff] [blame] | 739 | {{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 Luo | 7cce87c | 2014-02-18 14:45:23 -0800 | [diff] [blame] | 746 | ((char *)&(nvDefaults.tables.pwrOptimum_virtualRate[0]) - |
| 747 | (char *)&nvDefaults.tables.pwrOptimum_virtualRate[0]),"tRateGroupPwrVR"}, |
Leo Chang | 80de3c2 | 2013-11-26 10:52:12 -0800 | [diff] [blame] | 748 | |
Prasanna Kumar | f6c94ae | 2013-04-11 20:05:21 -0700 | [diff] [blame] | 749 | {{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 Luo | 7cce87c | 2014-02-18 14:45:23 -0800 | [diff] [blame] | 756 | ((char *)&(nvDefaults.tables.regDomains[0].channels[0]) - |
| 757 | (char *)&nvDefaults.tables.regDomains[0]),"channels"}, |
Prasanna Kumar | f6c94ae | 2013-04-11 20:05:21 -0700 | [diff] [blame] | 758 | {"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 Luo | 7cce87c | 2014-02-18 14:45:23 -0800 | [diff] [blame] | 760 | ((char *)&(nvDefaults.tables.regDomains[0].antennaGain[0]) - |
| 761 | (char *)&nvDefaults.tables.regDomains[0]),"antennaGain"}, |
Prasanna Kumar | f6c94ae | 2013-04-11 20:05:21 -0700 | [diff] [blame] | 762 | {"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 Luo | 7cce87c | 2014-02-18 14:45:23 -0800 | [diff] [blame] | 764 | ((char *)&(nvDefaults.tables.regDomains[0].bRatePowerOffset[0]) - |
| 765 | (char *)&nvDefaults.tables.regDomains[0]),"bRatePowerOffset"}, |
Prasanna Kumar | f6c94ae | 2013-04-11 20:05:21 -0700 | [diff] [blame] | 766 | {"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 Luo | 7cce87c | 2014-02-18 14:45:23 -0800 | [diff] [blame] | 768 | ((char *)&(nvDefaults.tables.regDomains[0].gnRatePowerOffset[0]) - |
| 769 | (char *)&nvDefaults.tables.regDomains[0]),"gnRatePowerOffset"}, |
Prasanna Kumar | f6c94ae | 2013-04-11 20:05:21 -0700 | [diff] [blame] | 770 | {{nul}, 0, 0, 0, 0, 0, 0,{nul}}, |
| 771 | }, // TABLE_sRegulatoryDomains |
| 772 | |
| 773 | { // TABLE_sHwCalValues |
| 774 | {"eq",_ID_U32,SINGULAR,0,0,0, |
Xun Luo | 7cce87c | 2014-02-18 14:45:23 -0800 | [diff] [blame] | 775 | ((char *)&(nvDefaults.tables.hwCalValues.validBmap) - |
| 776 | (char *)&nvDefaults.tables.hwCalValues),"validBmap"}, |
Prasanna Kumar | f6c94ae | 2013-04-11 20:05:21 -0700 | [diff] [blame] | 777 | {"er",_TABLE_IDX(TABLE_sCalData),SINGULAR,0,0,0, |
Xun Luo | 7cce87c | 2014-02-18 14:45:23 -0800 | [diff] [blame] | 778 | ((char *)&(nvDefaults.tables.hwCalValues.calData) - |
| 779 | (char *)&nvDefaults.tables.hwCalValues),"calData"}, |
Prasanna Kumar | f6c94ae | 2013-04-11 20:05:21 -0700 | [diff] [blame] | 780 | {{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 Luo | 7cce87c | 2014-02-18 14:45:23 -0800 | [diff] [blame] | 787 | ((char *)&(nvDefaults.tables.pwrOptimum[0]) - (char *)&nvDefaults.tables), |
Prasanna Kumar | f6c94ae | 2013-04-11 20:05:21 -0700 | [diff] [blame] | 788 | "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 Luo | 7cce87c | 2014-02-18 14:45:23 -0800 | [diff] [blame] | 792 | ((char *)&(nvDefaults.tables.regDomains[0]) - (char *)&nvDefaults.tables), |
Prasanna Kumar | f6c94ae | 2013-04-11 20:05:21 -0700 | [diff] [blame] | 793 | "regDomains"}, |
| 794 | {"jo",_TABLE_IDX(TABLE_sDefaultCountry),SINGULAR,0,0,0, |
Xun Luo | 7cce87c | 2014-02-18 14:45:23 -0800 | [diff] [blame] | 795 | ((char *)&(nvDefaults.tables.defaultCountryTable) - |
| 796 | (char *)&nvDefaults.tables),"defaultCountryTable"}, |
Prasanna Kumar | f6c94ae | 2013-04-11 20:05:21 -0700 | [diff] [blame] | 797 | {"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 Luo | 7cce87c | 2014-02-18 14:45:23 -0800 | [diff] [blame] | 800 | ((char *)&(nvDefaults.tables.plutCharacterized[0]) - |
| 801 | (char *)&nvDefaults.tables),"plutCharacterized"}, |
Prasanna Kumar | f6c94ae | 2013-04-11 20:05:21 -0700 | [diff] [blame] | 802 | {"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 Luo | 7cce87c | 2014-02-18 14:45:23 -0800 | [diff] [blame] | 804 | ((char *)&(nvDefaults.tables.plutPdadcOffset[0]) - |
| 805 | (char *)&nvDefaults.tables),"plutPdadcOffset"}, |
Prasanna Kumar | f6c94ae | 2013-04-11 20:05:21 -0700 | [diff] [blame] | 806 | {"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 Luo | 7cce87c | 2014-02-18 14:45:23 -0800 | [diff] [blame] | 809 | ((char *)&(nvDefaults.tables.pwrOptimum_virtualRate[0]) - |
| 810 | (char *)&nvDefaults.tables),"pwrOptimum_virtualRate"}, |
Prasanna Kumar | f6c94ae | 2013-04-11 20:05:21 -0700 | [diff] [blame] | 811 | {"js",_TABLE_IDX(TABLE_sFwConfig),SINGULAR,0,0,0, |
Xun Luo | 7cce87c | 2014-02-18 14:45:23 -0800 | [diff] [blame] | 812 | ((char *)&(nvDefaults.tables.fwConfig) - (char *)&nvDefaults.tables), |
Prasanna Kumar | f6c94ae | 2013-04-11 20:05:21 -0700 | [diff] [blame] | 813 | "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 Luo | 7cce87c | 2014-02-18 14:45:23 -0800 | [diff] [blame] | 816 | 0,0,((char *)&(nvDefaults.tables.rssiChanOffsets[0]) - |
| 817 | (char *)&nvDefaults.tables),"rssiChanOffsets"}, |
Prasanna Kumar | f6c94ae | 2013-04-11 20:05:21 -0700 | [diff] [blame] | 818 | {"ju",_TABLE_IDX(TABLE_sHwCalValues),SINGULAR,0,0,0, |
Xun Luo | 7cce87c | 2014-02-18 14:45:23 -0800 | [diff] [blame] | 819 | ((char *)&(nvDefaults.tables.hwCalValues) - (char *)&nvDefaults.tables), |
Prasanna Kumar | f6c94ae | 2013-04-11 20:05:21 -0700 | [diff] [blame] | 820 | "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 Luo | 7cce87c | 2014-02-18 14:45:23 -0800 | [diff] [blame] | 823 | ((char *)&(nvDefaults.tables.antennaPathLoss[0]) - |
| 824 | (char *)&nvDefaults.tables),"antennaPathLoss"}, |
Prasanna Kumar | f6c94ae | 2013-04-11 20:05:21 -0700 | [diff] [blame] | 825 | {"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 Luo | 7cce87c | 2014-02-18 14:45:23 -0800 | [diff] [blame] | 829 | ((char *)&(nvDefaults.tables.pktTypePwrLimits[0][0]) - |
| 830 | (char *)&nvDefaults.tables),"pktTypePwrLimits"}, |
Prasanna Kumar | f6c94ae | 2013-04-11 20:05:21 -0700 | [diff] [blame] | 831 | {"jx",_TABLE_IDX(TABLE_sOfdmCmdPwrOffset),SINGULAR,0,0,0, |
Xun Luo | 7cce87c | 2014-02-18 14:45:23 -0800 | [diff] [blame] | 832 | ((char *)&(nvDefaults.tables.ofdmCmdPwrOffset) - (char *)&nvDefaults.tables), |
Prasanna Kumar | f6c94ae | 2013-04-11 20:05:21 -0700 | [diff] [blame] | 833 | "ofdmCmdPwrOffset"}, |
| 834 | {"jy",_TABLE_IDX(TABLE_sTxBbFilterMode),SINGULAR,0,0,0, |
Xun Luo | 7cce87c | 2014-02-18 14:45:23 -0800 | [diff] [blame] | 835 | ((char *)&(nvDefaults.tables.txbbFilterMode) - (char *)&nvDefaults.tables), |
Prasanna Kumar | f6c94ae | 2013-04-11 20:05:21 -0700 | [diff] [blame] | 836 | "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 | |
| 845 | int getTableNoOfFields(int tblIdx) |
| 846 | { |
| 847 | return tableNoOfFieldArray[tblIdx]; |
| 848 | } |