|
1 /* |
|
2 * public_radio.h |
|
3 * |
|
4 * Copyright(c) 1998 - 2010 Texas Instruments. All rights reserved. |
|
5 * All rights reserved. |
|
6 * |
|
7 * This program and the accompanying materials are made available under the |
|
8 * terms of the Eclipse Public License v1.0 or BSD License which accompanies |
|
9 * this distribution. The Eclipse Public License is available at |
|
10 * http://www.eclipse.org/legal/epl-v10.html and the BSD License is as below. |
|
11 * |
|
12 * Redistribution and use in source and binary forms, with or without |
|
13 * modification, are permitted provided that the following conditions |
|
14 * are met: |
|
15 * |
|
16 * * Redistributions of source code must retain the above copyright |
|
17 * notice, this list of conditions and the following disclaimer. |
|
18 * * Redistributions in binary form must reproduce the above copyright |
|
19 * notice, this list of conditions and the following disclaimer in |
|
20 * the documentation and/or other materials provided with the |
|
21 * distribution. |
|
22 * * Neither the name Texas Instruments nor the names of its |
|
23 * contributors may be used to endorse or promote products derived |
|
24 * from this software without specific prior written permission. |
|
25 * |
|
26 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS |
|
27 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT |
|
28 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR |
|
29 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT |
|
30 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |
|
31 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT |
|
32 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, |
|
33 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |
|
34 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
|
35 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
|
36 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
|
37 */ |
|
38 |
|
39 /********************************************************************************************************************** |
|
40 FILENAME: public_radio.h |
|
41 |
|
42 DESCRIPTION: Contains information element defines/structures used by the TNETxxxx and host and Radio Module. |
|
43 This is a PUBLIC header, which customers will use. |
|
44 ***********************************************************************************************************************/ |
|
45 /* |
|
46 ======================================================================================================================= |
|
47 R E V I S I O N H I S T O R Y |
|
48 |
|
49 04/29/05 BRK 1. retrieved from ClearCase and added this rev. history |
|
50 2. added two new entries to RadioParamType_e enum |
|
51 3. increased MAX_RADIO_PARAM_POWER_TABLE (from 20 to 56) |
|
52 - this is sort of a kludge, struct RadioParam_t should have used an |
|
53 array pointer instead of an actual data block |
|
54 06/10/05 BRK changed MAX_RADIO_PARAM_POWER_TABLE for 1251 support (sort of a KLUDGE) |
|
55 07/15/05 BRK added RADIO_PABIAS_TABLE entry to RadioParamType_e enum |
|
56 04/12/06 MH Added new run-time calibration state: RFPLL_CALIBRATION_NEEDED |
|
57 |
|
58 Note: This code should only be edited with TAB stops set at 4 |
|
59 ======================================================================================================================= |
|
60 */ |
|
61 #ifndef PUBLIC_RADIO |
|
62 #define PUBLIC_RADIO |
|
63 |
|
64 #include "public_types.h" |
|
65 #define MAC_ADDR_SIZE 6 |
|
66 /* typedef uint8 TMacAddr[MAC_ADDR_SIZE]; */ |
|
67 /************************************************************************/ |
|
68 /* */ |
|
69 /* Definitions section */ |
|
70 /* */ |
|
71 /************************************************************************/ |
|
72 /* radio parameter to set */ |
|
73 #ifdef TNETW1251 |
|
74 #define MAX_RADIO_PARAM_POWER_TABLE (4*48) /* cPowLmtTbl[] max size for ABG radios */ |
|
75 #else |
|
76 #define MAX_RADIO_PARAM_POWER_TABLE (56) /* cPowLmtTbl[] max size for BG radios*/ |
|
77 #endif |
|
78 #define MAX_RADIO_PARAM_LEN (MAX_RADIO_PARAM_POWER_TABLE) |
|
79 |
|
80 #define RADIO_PARAM_POWER_TABLE_ENABLE (0x01) /* mask for RADIO_PARAM_POWER_ENABLES usage*/ |
|
81 #define RADIO_PARAM_POWER_LIMIT_TABLE_ENABLE (0x02) /* mask for RADIO_PARAM_POWER_ENABLES usage*/ |
|
82 #define RADIO_PARAM_POWER_ADJ_TABLE_ENABLE (0x04) /* mask for RADIO_PARAM_POWER_ENABLES usage*/ |
|
83 |
|
84 #define NUM_OF_POWER_LEVEL (4) |
|
85 |
|
86 |
|
87 #define TX_TEMPLATE_MAX_BUF_LEN (512) |
|
88 |
|
89 #define RX_PLT_LNA_STEPS_BUF_LEN (4) |
|
90 #define RX_PLT_TA_STEPS_BUF_LEN (4) |
|
91 |
|
92 #define RX_STAT_PACKETS_PER_MESSAGE (20) |
|
93 |
|
94 #define MULTIPLE_PACKET_SIZE 1024 |
|
95 #define MAX_TX_PACKET_SIZE_11_B (2 * MULTIPLE_PACKET_SIZE) |
|
96 #define MAX_TX_PACKET_SIZE_11_G (4 * MULTIPLE_PACKET_SIZE) |
|
97 #define MAX_TX_PACKET_SIZE_11_N (8 * MULTIPLE_PACKET_SIZE) /* must be PDU */ |
|
98 |
|
99 /* Radio Band */ |
|
100 typedef enum |
|
101 { |
|
102 eELEVEN_A_B, |
|
103 eELEVEN_A_G, |
|
104 eELEVEN_N, |
|
105 |
|
106 MAX_MODULATION |
|
107 }Modulation; |
|
108 |
|
109 /************************************************************************/ |
|
110 /* */ |
|
111 /* Enumerations section */ |
|
112 /* */ |
|
113 /************************************************************************/ |
|
114 |
|
115 /* Radio band types. */ |
|
116 typedef enum RADIO_BAND_TYPE_ENMT |
|
117 { |
|
118 FIRST_BAND_TYPE_E, |
|
119 /*______________________________________*/ |
|
120 |
|
121 _2_4_G_BAND_TYPE_E = FIRST_BAND_TYPE_E, |
|
122 _5_G_BAND_TYPE_E, |
|
123 /*_______________________________________________*/ |
|
124 UNUSED_BAND_TYPE_E, |
|
125 NUMBER_OF_BANDS_E = UNUSED_BAND_TYPE_E, |
|
126 LAST_BAND_TYPE_E = (NUMBER_OF_BANDS_E - 1) |
|
127 |
|
128 }RADIO_BAND_TYPE_ENM; |
|
129 |
|
130 |
|
131 #define RADIO_BAND_2_4GHZ_BASE_FREQUENCY 2407 |
|
132 #define RADIO_BAND_JAPAN_4_9_GHZ_BASE_FREQUENCY 5000 |
|
133 #define RADIO_BAND_5GHZ_BASE_FREQUENCY 5000 |
|
134 |
|
135 #define RADIO_BAND_2_4GHZ_MULTIPLE_BASE_FREQUENCY 5 |
|
136 #define RADIO_BAND_JAPAN_4_9_GHZ_MULTIPLE_BASE_FREQUENCY (-5) |
|
137 #define RADIO_BAND_5GHZ_MULTIPLE_BASE_FREQUENCY 5 |
|
138 |
|
139 #define GIGA_HZ_TO_MEGA_HZ 1000 |
|
140 |
|
141 |
|
142 |
|
143 /* Radio sub-band types. */ |
|
144 typedef enum RADIO_SUB_BAND_TYPE_ENMT |
|
145 { |
|
146 FIRST_SUB_BAND_TYPE_E, |
|
147 /*______________________________________*/ |
|
148 |
|
149 _2_4_G_SUB_BAND_TYPE_E = FIRST_SUB_BAND_TYPE_E, /* band b/g */ |
|
150 FIRST_SUB_BANDS_IN_5G_BAND_E, |
|
151 LOW_JAPAN_4_9_G_SUB_BAND_TYPE_E = FIRST_SUB_BANDS_IN_5G_BAND_E, /* band 4.9Ghz (Japan) low sub-band (J1-J4) */ |
|
152 MID_JAPAN_4_9_G_SUB_BAND_TYPE_E, /* band 4.9Ghz (Japan) mid sub-band(J8,J12,J16) */ |
|
153 HIGH_JAPAN_4_9_G_SUB_BAND_TYPE_E, /* band 4.9Ghz (Japan) high sub-band(J34,36,J38,40, J42, 44, J46,48) */ |
|
154 _5_G_FIRST_SUB_BAND_TYPE_E, /* band 5GHz 1st sub-band(52->64 in steps of 4) */ |
|
155 _5_G_SECOND_SUB_BAND_TYPE_E, /* band 5GHz 2nd sub-band(100->116 in steps of 4) */ |
|
156 _5_G_THIRD_SUB_BAND_TYPE_E, /* band 5GHz 3rd sub-band(120->140 in steps of 4) */ |
|
157 _5_G_FOURTH_SUB_BAND_TYPE_E, /* band 5GHz 4th sub-band(149->165 in steps of 4) */ |
|
158 LAST_SUB_BANDS_IN_5G_BAND_E = _5_G_FOURTH_SUB_BAND_TYPE_E, |
|
159 /*_______________________________________________*/ |
|
160 UNUSED_SUB_BAND_TYPE_E, |
|
161 NUMBER_OF_SUB_BANDS_E = UNUSED_SUB_BAND_TYPE_E, |
|
162 LAST_SUB_BAND_TYPE_E = (NUMBER_OF_SUB_BANDS_E - 1) |
|
163 |
|
164 }RADIO_SUB_BAND_TYPE_ENM; |
|
165 |
|
166 #define NUMBER_OF_SUB_BANDS_IN_5G_BAND_E (LAST_SUB_BANDS_IN_5G_BAND_E - FIRST_SUB_BANDS_IN_5G_BAND_E + 1) |
|
167 |
|
168 typedef struct |
|
169 { |
|
170 uint8 uDbm[NUMBER_OF_SUB_BANDS_E][NUM_OF_POWER_LEVEL]; |
|
171 } TpowerLevelTable_t; |
|
172 |
|
173 /* Channel number */ |
|
174 typedef enum RADIO_CHANNEL_NUMBER_ENMT |
|
175 { |
|
176 /*---------------------------------*/ |
|
177 /* _2_4_G_SUB_BAND_TYPE_E */ |
|
178 /*---------------------------------*/ |
|
179 |
|
180 /* index 0 */ RADIO_CHANNEL_INDEX_0_NUMBER_1_E = 1, |
|
181 /* index 1 */ RADIO_CHANNEL_INDEX_1_NUMBER_2_E = 2, |
|
182 /* index 2 */ RADIO_CHANNEL_INDEX_2_NUMBER_3_E = 3, |
|
183 /* index 3 */ RADIO_CHANNEL_INDEX_3_NUMBER_4_E = 4, |
|
184 /* index 4 */ RADIO_CHANNEL_INDEX_4_NUMBER_5_E = 5, |
|
185 /* index 5 */ RADIO_CHANNEL_INDEX_5_NUMBER_6_E = 6, |
|
186 /* index 6 */ RADIO_CHANNEL_INDEX_6_NUMBER_7_E = 7, |
|
187 /* index 7 */ RADIO_CHANNEL_INDEX_7_NUMBER_8_E = 8, |
|
188 /* index 8 */ RADIO_CHANNEL_INDEX_8_NUMBER_9_E = 9, |
|
189 /* index 9 */ RADIO_CHANNEL_INDEX_9_NUMBER_10_E = 10, |
|
190 /* index 10 */ RADIO_CHANNEL_INDEX_10_NUMBER_11_E = 11, |
|
191 /* index 11 */ RADIO_CHANNEL_INDEX_11_NUMBER_12_E = 12, |
|
192 /* index 12 */ RADIO_CHANNEL_INDEX_12_NUMBER_13_E = 13, |
|
193 /* index 13 */ RADIO_CHANNEL_INDEX_13_NUMBER_14_E = 14, |
|
194 |
|
195 /*---------------------------------*/ |
|
196 /* LOW_JAPAN_4_9_G_SUB_BAND_TYPE_E */ |
|
197 /*---------------------------------*/ |
|
198 /* index 14 */ RADIO_CHANNEL_INDEX_14_NUMBER_J1_E = 16, |
|
199 /* index 15 */ RADIO_CHANNEL_INDEX_15_NUMBER_J2_E = 12, |
|
200 /* index 16 */ RADIO_CHANNEL_INDEX_16_NUMBER_J3_E = 8, |
|
201 /* index 17 */ RADIO_CHANNEL_INDEX_17_NUMBER_J4_E = 4, |
|
202 |
|
203 /*---------------------------------*/ |
|
204 /* MID_JAPAN_4_9_G_SUB_BAND_TYPE_E */ |
|
205 /*---------------------------------*/ |
|
206 /* index 18 */ RADIO_CHANNEL_INDEX_18_NUMBER_J8_E = 8, |
|
207 /* index 19 */ RADIO_CHANNEL_INDEX_19_NUMBER_J12_E = 12, |
|
208 /* index 20 */ RADIO_CHANNEL_INDEX_20_NUMBER_J16_E = 16, |
|
209 |
|
210 /*----------------------------------*/ |
|
211 /* HIGH_JAPAN_4_9_G_SUB_BAND_TYPE_E */ |
|
212 /*----------------------------------*/ |
|
213 /* index 21 */ RADIO_CHANNEL_INDEX_21_NUMBER_J34_E = 34, |
|
214 /* index 22 */ RADIO_CHANNEL_INDEX_22_NUMBER_36_E = 36, |
|
215 /* index 23 */ RADIO_CHANNEL_INDEX_23_NUMBER_J38_E = 38, |
|
216 /* index 24 */ RADIO_CHANNEL_INDEX_24_NUMBER_40_E = 40, |
|
217 /* index 25 */ RADIO_CHANNEL_INDEX_25_NUMBER_J42_E = 42, |
|
218 /* index 26 */ RADIO_CHANNEL_INDEX_26_NUMBER_44_E = 44, |
|
219 /* index 27 */ RADIO_CHANNEL_INDEX_27_NUMBER_J46_E = 46, |
|
220 /* index 28 */ RADIO_CHANNEL_INDEX_28_NUMBER_48_E = 48, |
|
221 |
|
222 /*---------------------------------*/ |
|
223 /* _5_G_FIRST_SUB_BAND_TYPE_E */ |
|
224 /*---------------------------------*/ |
|
225 /* index 29 */ RADIO_CHANNEL_INDEX_29_NUMBER_52_E = 52, |
|
226 /* index 30 */ RADIO_CHANNEL_INDEX_30_NUMBER_56_E = 56, |
|
227 /* index 31 */ RADIO_CHANNEL_INDEX_31_ENUMBER_60_E = 60, |
|
228 /* index 32 */ RADIO_CHANNEL_INDEX_32_ENUMBER_64_E = 64, |
|
229 |
|
230 /*---------------------------------*/ |
|
231 /* _5_G_SECOND_SUB_BAND_TYPE_E */ |
|
232 /*---------------------------------*/ |
|
233 /* index 33 */ RADIO_CHANNEL_INDEX_33_NUMBER_100_E = 100, |
|
234 /* index 34 */ RADIO_CHANNEL_INDEX_34_NUMBER_104_E = 104, |
|
235 /* index 35 */ RADIO_CHANNEL_INDEX_35_NUMBER_108_E = 108, |
|
236 /* index 36 */ RADIO_CHANNEL_INDEX_36_NUMBER_112_E = 112, |
|
237 /* index 37 */ RADIO_CHANNEL_INDEX_37_NUMBER_116_E = 116, |
|
238 |
|
239 /*---------------------------------*/ |
|
240 /* _5_G_THIRD_SUB_BAND_TYPE_E */ |
|
241 /*---------------------------------*/ |
|
242 /* index 38 */ RADIO_CHANNEL_INDEX_38_NUMBER_120_E = 120, |
|
243 /* index 39 */ RADIO_CHANNEL_INDEX_39_NUMBER_124_E = 124, |
|
244 /* index 40 */ RADIO_CHANNEL_INDEX_40_NUMBER_128_E = 128, |
|
245 /* index 41 */ RADIO_CHANNEL_INDEX_41_NUMBER_132_E = 132, |
|
246 /* index 42 */ RADIO_CHANNEL_INDEX_42_NUMBER_136_E = 136, |
|
247 /* index 43 */ RADIO_CHANNEL_INDEX_43_NUMBER_140_E = 140, |
|
248 |
|
249 |
|
250 /*---------------------------------*/ |
|
251 /* _5_G_FOURTH_SUB_BAND_TYPE_E */ |
|
252 /*---------------------------------*/ |
|
253 /* index 44 */ RADIO_CHANNEL_INDEX_44_NUMBER_149_E = 149, |
|
254 /* index 45 */ RADIO_CHANNEL_INDEX_45_NUMBER_153_E = 153, |
|
255 /* index 46 */ RADIO_CHANNEL_INDEX_46_NUMBER_157_E = 157, |
|
256 /* index 47 */ RADIO_CHANNEL_INDEX_47_NUMBER_161_E = 161, |
|
257 /* index 48 */ RADIO_CHANNEL_INDEX_48_NUMBER_165_E = 165 |
|
258 |
|
259 }RADIO_CHANNEL_NUMBER_ENM; |
|
260 |
|
261 /* Radio channels */ |
|
262 typedef enum RADIO_CHANNEL_INDEX_ENMT |
|
263 { |
|
264 FIRST_RADIO_CHANNEL_INDEX_E, |
|
265 /*______________________________________*/ |
|
266 |
|
267 /*---------------------------------*/ |
|
268 /* _2_4_G_SUB_BAND_TYPE_E */ |
|
269 /*---------------------------------*/ |
|
270 FIRST_2_4_G_BAND_RADIO_CHANNEL_INDEX_E = FIRST_RADIO_CHANNEL_INDEX_E, /* 0 */ |
|
271 FIRST_2_4_G_SUB_BAND_RADIO_CHANNEL_INDEX_E = FIRST_2_4_G_BAND_RADIO_CHANNEL_INDEX_E, /* 0 */ |
|
272 |
|
273 /* Channels 0-13 indexes in the FW are 1-14 channels number in the RS */ |
|
274 RADIO_CHANNEL_INDEX_0_E = FIRST_2_4_G_SUB_BAND_RADIO_CHANNEL_INDEX_E,/* 0 */ |
|
275 RADIO_CHANNEL_INDEX_1_E, /* 1 */ |
|
276 RADIO_CHANNEL_INDEX_2_E, /* 2 */ |
|
277 RADIO_CHANNEL_INDEX_3_E, /* 3 */ |
|
278 RADIO_CHANNEL_INDEX_4_E, /* 4 */ |
|
279 RADIO_CHANNEL_INDEX_5_E, /* 5 */ |
|
280 RADIO_CHANNEL_INDEX_6_E, /* 6 */ |
|
281 RADIO_CHANNEL_INDEX_7_E, /* 7 */ |
|
282 RADIO_CHANNEL_INDEX_8_E, /* 8 */ |
|
283 RADIO_CHANNEL_INDEX_9_E, /* 9 */ |
|
284 RADIO_CHANNEL_INDEX_10_E, /* 10 */ |
|
285 RADIO_CHANNEL_INDEX_11_E, /* 11 */ |
|
286 RADIO_CHANNEL_INDEX_12_E, /* 12 */ |
|
287 RADIO_CHANNEL_INDEX_13_E, /* 13 */ |
|
288 LAST_2_4_G_SUB_BAND_RADIO_CHANNEL_INDEX_E = RADIO_CHANNEL_INDEX_13_E, /* 13 */ |
|
289 LAST_2_4_G_BAND_RADIO_CHANNEL_INDEX_E = LAST_2_4_G_SUB_BAND_RADIO_CHANNEL_INDEX_E, /* 13 */ |
|
290 NUMBER_OF_2_4_G_CHANNEL_INDICES_E = LAST_2_4_G_BAND_RADIO_CHANNEL_INDEX_E, /* 13 */ |
|
291 |
|
292 /*---------------------------------*/ |
|
293 /* LOW_JAPAN_4_9_G_SUB_BAND_TYPE_E */ |
|
294 /*---------------------------------*/ |
|
295 FIRST_5_G_BAND_RADIO_CHANNEL_INDEX_E, /* 14 */ |
|
296 FIRST_LOW_JAPAN_4_9_G_SUB_BAND_RADIO_CHANNEL_INDEX_E = FIRST_5_G_BAND_RADIO_CHANNEL_INDEX_E, /* 14 */ |
|
297 |
|
298 /* Channels 14-17 indexes in the FW are J1-J4 channels number in the RS */ |
|
299 RADIO_CHANNEL_INDEX_14_E = FIRST_LOW_JAPAN_4_9_G_SUB_BAND_RADIO_CHANNEL_INDEX_E, /* 14 */ |
|
300 RADIO_CHANNEL_INDEX_15_E, /* 15 */ |
|
301 RADIO_CHANNEL_INDEX_16_E, /* 16 */ |
|
302 RADIO_CHANNEL_INDEX_17_E, /* 17 */ |
|
303 LAST_LOW_JAPAN_4_9_G_SUB_BAND_RADIO_CHANNEL_INDEX_E = RADIO_CHANNEL_INDEX_17_E, /* 17 */ |
|
304 |
|
305 /*---------------------------------*/ |
|
306 /* MID_JAPAN_4_9_G_SUB_BAND_TYPE_E */ |
|
307 /*---------------------------------*/ |
|
308 FIRST_MID_JAPAN_4_9_G_SUB_BAND_RADIO_CHANNEL_INDEX_E, /* 18 */ |
|
309 |
|
310 /* Channel 18 index in the FW is channel number J8 in the RS */ |
|
311 RADIO_CHANNEL_INDEX_18_E = FIRST_MID_JAPAN_4_9_G_SUB_BAND_RADIO_CHANNEL_INDEX_E, /* 18 */ |
|
312 |
|
313 /* Channel 19 index in the FW is channel number J12 in the RS */ |
|
314 RADIO_CHANNEL_INDEX_19_E, /* 19 */ |
|
315 |
|
316 /* Channel 20 index in the FW is channel number J16 in the RS */ |
|
317 RADIO_CHANNEL_INDEX_20_E, /* 20 */ |
|
318 LAST_MID_JAPAN_4_9_G_SUB_BAND_RADIO_CHANNEL_INDEX_E = RADIO_CHANNEL_INDEX_20_E, /* 20 */ |
|
319 |
|
320 /*----------------------------------*/ |
|
321 /* HIGH_JAPAN_4_9_G_SUB_BAND_TYPE_E */ |
|
322 /*----------------------------------*/ |
|
323 FIRST_HIGH_JAPAN_4_9_G_SUB_BAND_RADIO_CHANNEL_INDEX_E, /* 21 */ |
|
324 |
|
325 /* Channel 21 index in the FW is channel number J34 in the RS */ |
|
326 RADIO_CHANNEL_INDEX_21_E = FIRST_HIGH_JAPAN_4_9_G_SUB_BAND_RADIO_CHANNEL_INDEX_E, /* 21 */ |
|
327 |
|
328 /* Channel 22 index in the FW is channel number 36 in the RS */ |
|
329 RADIO_CHANNEL_INDEX_22_E, /* 22 */ |
|
330 |
|
331 /* Channel 23 index in the FW is channel number J38 in the RS */ |
|
332 RADIO_CHANNEL_INDEX_23_E, /* 23 */ |
|
333 |
|
334 /* Channel 24 index in the FW is channel number 40 in the RS */ |
|
335 RADIO_CHANNEL_INDEX_24_E, /* 24 */ |
|
336 |
|
337 /* Channel 25 index in the FW is channel number J42 in the RS */ |
|
338 RADIO_CHANNEL_INDEX_25_E, /* 25 */ |
|
339 |
|
340 /* Channel 26 index in the FW is channel number 44 in the RS */ |
|
341 RADIO_CHANNEL_INDEX_26_E, /* 26 */ |
|
342 |
|
343 /* Channel 27 index in the FW is channel number J46 in the RS */ |
|
344 RADIO_CHANNEL_INDEX_27_E, /* 27 */ |
|
345 |
|
346 /* Channel 28 index in the FW is channel number 48 in the RS */ |
|
347 RADIO_CHANNEL_INDEX_28_E, /* 28 */ |
|
348 LAST_HIGH_JAPAN_4_9_G_SUB_BAND_RADIO_CHANNEL_INDEX_E = RADIO_CHANNEL_INDEX_28_E, /* 28 */ |
|
349 LAST_JAPAN_4_9_G_SUB_BAND_RADIO_CHANNEL_INDEX_E = LAST_HIGH_JAPAN_4_9_G_SUB_BAND_RADIO_CHANNEL_INDEX_E, /* 28 */ |
|
350 /*---------------------------------*/ |
|
351 /* _5_G_FIRST_SUB_BAND_TYPE_E */ |
|
352 /*---------------------------------*/ |
|
353 FIRST_5_G_FIRST_SUB_BAND_RADIO_CHANNEL_INDEX_E, /* 29 */ |
|
354 |
|
355 /* Channel 29 index in the FW is channel number 52 in the RS */ |
|
356 RADIO_CHANNEL_INDEX_29_E = FIRST_5_G_FIRST_SUB_BAND_RADIO_CHANNEL_INDEX_E, /* 29 */ |
|
357 |
|
358 /* Channel 30 index in the FW is channel number 56 in the RS */ |
|
359 RADIO_CHANNEL_INDEX_30_E, /* 30 */ |
|
360 |
|
361 /* Channel 31 index in the FW is channel number 60 in the RS */ |
|
362 RADIO_CHANNEL_INDEX_31_E, /* 31 */ |
|
363 |
|
364 /* Channel 32 index in the FW is channel number 64 in the RS */ |
|
365 RADIO_CHANNEL_INDEX_32_E, /* 32 */ |
|
366 LAST_5_G_FIRST_SUB_BAND_RADIO_CHANNEL_INDEX_E = RADIO_CHANNEL_INDEX_32_E, /* 32 */ |
|
367 |
|
368 /*---------------------------------*/ |
|
369 /* _5_G_SECOND_SUB_BAND_TYPE_E */ |
|
370 /*---------------------------------*/ |
|
371 FIRST_5_G_SECOND_SUB_BAND_RADIO_CHANNEL_INDEX_E, /* 33 */ |
|
372 |
|
373 /* Channel 33 index in the FW is channel number 100 in the RS */ |
|
374 RADIO_CHANNEL_INDEX_33_E = FIRST_5_G_SECOND_SUB_BAND_RADIO_CHANNEL_INDEX_E, /* 33 */ |
|
375 |
|
376 /* Channel 34 index in the FW is channel number 104 in the RS */ |
|
377 RADIO_CHANNEL_INDEX_34_E, /* 34 */ |
|
378 |
|
379 /* Channel 35 index in the FW is channel number 108 in the RS */ |
|
380 RADIO_CHANNEL_INDEX_35_E, /* 35 */ |
|
381 |
|
382 /* Channel 36 index in the FW is channel number 112 in the RS */ |
|
383 RADIO_CHANNEL_INDEX_36_E, /* 36 */ |
|
384 |
|
385 /* Channel 37 index in the FW is channel number 116 in the RS */ |
|
386 RADIO_CHANNEL_INDEX_37_E, /* 37 */ |
|
387 LAST_5_G_SECOND_SUB_BAND_RADIO_CHANNEL_INDEX_E = RADIO_CHANNEL_INDEX_37_E, /* 37 */ |
|
388 |
|
389 /*---------------------------------*/ |
|
390 /* _5_G_THIRD_SUB_BAND_TYPE_E */ |
|
391 /*---------------------------------*/ |
|
392 FIRST_5_G_THIRD_SUB_BAND_RADIO_CHANNEL_INDEX_E, /* 38 */ |
|
393 |
|
394 /* Channel 38 index in the FW is channel number 120 in the RS */ |
|
395 RADIO_CHANNEL_INDEX_38_E = FIRST_5_G_THIRD_SUB_BAND_RADIO_CHANNEL_INDEX_E, /* 38 */ |
|
396 |
|
397 /* Channel 39 index in the FW is channel number 124 in the RS */ |
|
398 RADIO_CHANNEL_INDEX_39_E, /* 39 */ |
|
399 |
|
400 /* Channel 40 index in the FW in the FW is channel number 128 in the RS */ |
|
401 RADIO_CHANNEL_INDEX_40_E, /* 40 */ |
|
402 |
|
403 /* Channel 41 index in the FW is channel number 132 in the RS */ |
|
404 RADIO_CHANNEL_INDEX_41_E, /* 41 */ |
|
405 |
|
406 /* Channel 42 index in the FW is channel number 136 in the RS */ |
|
407 RADIO_CHANNEL_INDEX_42_E, /* 42 */ |
|
408 |
|
409 /* Channel 43 index in the FW is channel number 140 in the RS */ |
|
410 RADIO_CHANNEL_INDEX_43_E, /* 43 */ |
|
411 LAST_5_G_THIRD_SUB_BAND_RADIO_CHANNEL_INDEX_E = RADIO_CHANNEL_INDEX_43_E, /* 43 */ |
|
412 |
|
413 /*---------------------------------*/ |
|
414 /* _5_G_FOURTH_SUB_BAND_TYPE_E */ |
|
415 /*---------------------------------*/ |
|
416 FIRST_5_G_FOURTH_SUB_BAND_RADIO_CHANNEL_INDEX_E, /* 44 */ |
|
417 |
|
418 /* Channel 44 index in the FW is channel number 149 in the RS */ |
|
419 RADIO_CHANNEL_INDEX_44_E = FIRST_5_G_FOURTH_SUB_BAND_RADIO_CHANNEL_INDEX_E, /* 44 */ |
|
420 |
|
421 /* Channel 45 index in the FW is channel number 153 in the RS */ |
|
422 RADIO_CHANNEL_INDEX_45_E, /* 45 */ |
|
423 |
|
424 /* Channel 46 index in the FW is channel number 157 in the RS */ |
|
425 RADIO_CHANNEL_INDEX_46_E, /* 46 */ |
|
426 |
|
427 /* Channel 47 index in the FW is channel number 161 in the RS */ |
|
428 RADIO_CHANNEL_INDEX_47_E, /* 47 */ |
|
429 |
|
430 /* Channel 48 index in the FW is channel number 165 in the RS */ |
|
431 RADIO_CHANNEL_INDEX_48_E, /* 48 */ |
|
432 LAST_5_G_FOURTH_SUB_BAND_RADIO_CHANNEL_INDEX_E = RADIO_CHANNEL_INDEX_48_E, /* 48 */ |
|
433 LAST_5_G_BAND_RADIO_CHANNEL_INDEX_E = LAST_5_G_FOURTH_SUB_BAND_RADIO_CHANNEL_INDEX_E, /* 48 */ |
|
434 /*_______________________________________________*/ |
|
435 |
|
436 UNUSED_RADIO_CHANNEL_INDEX_E, /* 49 */ |
|
437 NUMBER_OF_RADIO_CHANNEL_INDEXS_E = UNUSED_RADIO_CHANNEL_INDEX_E, /* 49 */ |
|
438 LAST_RADIO_CHANNEL_INDEX_E = (NUMBER_OF_RADIO_CHANNEL_INDEXS_E - 1) /* 48 */ |
|
439 |
|
440 }RADIO_CHANNEL_INDEX_ENM; |
|
441 |
|
442 #define NUMBER_OF_2_4_G_CHANNELS (NUMBER_OF_2_4_G_CHANNEL_INDICES_E + 1) |
|
443 #define NUMBER_OF_5G_CHANNELS (NUMBER_OF_RADIO_CHANNEL_INDEXS_E - NUMBER_OF_2_4_G_CHANNELS) |
|
444 |
|
445 typedef enum RADIO_RATE_GROUPS_ENMT |
|
446 { |
|
447 FIRST_RATE_GROUP_E, |
|
448 /*______________________________________*/ |
|
449 |
|
450 MCS7_RATE_GROUP_E = FIRST_RATE_GROUP_E, |
|
451 _54_48_RATE_GROUP_E, /* band 4.9Ghz (Japan) low sub-band (J1-J4) */ |
|
452 _36_24_RATE_GROUP_E, /* band 4.9Ghz (Japan) mid sub-band(J8,J12,J16) */ |
|
453 _18_12_RATE_GROUP_E, /* band 4.9Ghz (Japan) high sub-band(J34,36,J38,40, J42, 44, J46,48) */ |
|
454 _9_6_RATE_GROUP_E, /* band 5GHz 1st sub-band(52->64 in steps of 4) */ |
|
455 _11b_RATE_GROUP_E, /* band 5GHz 2nd sub-band(100->116 in steps of 4) */ |
|
456 /*_______________________________________________*/ |
|
457 UNUSED_RATE_GROUPS_E, |
|
458 NUMBER_OF_RATE_GROUPS_E = UNUSED_RATE_GROUPS_E, |
|
459 LAST_RATE_GROUP_E = (NUMBER_OF_RATE_GROUPS_E - 1) |
|
460 |
|
461 }RADIO_RATE_GROUPS_ENM; |
|
462 |
|
463 |
|
464 typedef enum |
|
465 { |
|
466 RADIO_BAND_2_4_GHZ = 0, |
|
467 RADIO_BAND_5_0_GHZ = 1, |
|
468 RADIO_BAND_DUAL = 2, |
|
469 RADIO_BAND_NUM_OF_BANDS = 2 |
|
470 |
|
471 } ERadioBand; |
|
472 |
|
473 |
|
474 /****************************************************************************** |
|
475 TTestCmdRunCalibration - Calibration manager message |
|
476 |
|
477 Note: |
|
478 ******************************************************************************/ |
|
479 |
|
480 typedef enum CALIBRATION_COMMANDS_ENMT |
|
481 { |
|
482 /* RX */ |
|
483 CM_space1_e, |
|
484 CM_RX_IQ_MM_calibration_e, |
|
485 CM_RX_IQ_MM_correction_upon_channel_change_e, |
|
486 CM_RX_IQ_MM_correction_upon_temperature_change_e, |
|
487 CM_RX_IQ_MM_duplicate_VGA_e, |
|
488 CM_space2_e, |
|
489 |
|
490 CM_RX_analog_DC_Correction_calibration_e, |
|
491 CM_RX_DC_AUX_cal_mode_e, |
|
492 CM_RX_DC_AUX_normal_mode_e, |
|
493 CM_space3_e, |
|
494 |
|
495 CM_RX_BIP_enter_mode_e, |
|
496 CM_RX_BIP_perform_e, |
|
497 CM_RX_BIP_exit_mode_e, |
|
498 CM_space4_e, |
|
499 |
|
500 /* TX */ |
|
501 CM_TX_power_detector_calibration_e, |
|
502 CM_TX_power_detector_buffer_calibration_e, |
|
503 CM_space5_e, |
|
504 |
|
505 CM_TX_LO_Leakage_calibration_e, |
|
506 CM_TX_PPA_Steps_calibration_e, |
|
507 CM_TX_CLPC_calibration_e, |
|
508 CM_TX_IQ_MM_calibration_e, |
|
509 CM_TX_BIP_calibration_e, |
|
510 /* DRPw */ |
|
511 CM_RX_TANK_TUNE_calibration_e, |
|
512 /* CM_PD_BUFF_TUNE_calibration_e,*/ |
|
513 CM_RX_DAC_TUNE_calibration_e, |
|
514 CM_RX_IQMM_TUNE_calibration_e, |
|
515 CM_RX_LPF_TUNE_calibration_e, |
|
516 CM_TX_LPF_TUNE_calibration_e, |
|
517 CM_TA_TUNE_calibration_e, |
|
518 CM_TX_MIXERFREQ_calibration_e, |
|
519 CM_RX_IF2GAIN_calibration_e, |
|
520 CM_RTRIM_calibration_e, |
|
521 CM_RX_LNAGAIN_calibration_e, |
|
522 |
|
523 CM_SMART_REFLEX_calibration_e, |
|
524 CM_CHANNEL_RESPONSE_calibration_e |
|
525 |
|
526 }CALIBRATION_COMMANDS_ENM; |
|
527 |
|
528 |
|
529 typedef enum CALIBRATIONS_ENMT |
|
530 { |
|
531 FIRST_CALIBRATION_TYPE_E, |
|
532 /*----------------------------------------------------------*/ |
|
533 /**** GENERAL ****/ |
|
534 DRPW_RFCALIBFXN_RXTXLPF_TYPE_E = FIRST_CALIBRATION_TYPE_E, |
|
535 DRPW_TUNE_TYPE_E, /* TUNE will perform DCO_freq, AB/TB, KDCO, TDC_inverter */ |
|
536 DRPW_RFCALIBFXN_RTRIM_TYPE_E, |
|
537 /**** TX ****/ |
|
538 CM_TX_LO_LEAKAGE_CALIBRATION_TYPE_E, |
|
539 DRPW_RFCALIBFXN_TXMIXERFREQ_TYPE_E, |
|
540 CM_TX_IQ_MM_CALIBRATION_TYPE_E, |
|
541 /**** RX ****/ |
|
542 DRPW_RFCALIBFXN_TA_TYPE_E, |
|
543 DRPW_RFCALIBFXN_RXLNAGAIN_TYPE_E, |
|
544 DRPW_RFCALIBFXN_RXIF2GAIN_TYPE_E, |
|
545 DRPW_RFCALIBFXN_RXDAC_TYPE_E, |
|
546 DRPW_RFCALIBFXN_LNATANK_TYPE_E, |
|
547 RX_ANALOG_DC_CORRECTION_CALIBRATION_TYPE_E, |
|
548 CM_RX_IQ_MM_CORRECTION_CALIBRATION_TYPE_E, |
|
549 SMART_REFLEX_CALIBRATION_TYPE_E, |
|
550 /* ... */ |
|
551 /*----------------------------------------------------------*/ |
|
552 NUMBER_OF_CALIBRATIONS_E, |
|
553 LAST_CALIBRATION_TYPE_E = (NUMBER_OF_CALIBRATIONS_E - 1) |
|
554 } CALIBRATIONS_ENMT; |
|
555 |
|
556 /****************************************************************************** |
|
557 |
|
558 Name: ACX_CAL_ASSESSMENT |
|
559 Type: Configuration |
|
560 Access: Write Only |
|
561 Length: 4 |
|
562 Note: OBSOLETE !!! (DO_CALIBRATION_IN_DRIVER is not defined) |
|
563 |
|
564 ******************************************************************************/ |
|
565 typedef enum |
|
566 { |
|
567 RUNTIME_CALIBRATION_NOT_NEEDED = 1, |
|
568 RUNTIME_CALIBRATION_NEEDED = 2, |
|
569 RFPLL_CALIBRATION_NEEDED = 3, |
|
570 MAX_RUNTIME_CALIBRATION_OPTIONS = 0x7FFFFFFF /* force this enum to be uint32 */ |
|
571 } RadioRuntimeCalState_enum; |
|
572 |
|
573 |
|
574 #ifdef HOST_COMPILE |
|
575 typedef uint32 RadioRuntimeCalState_e; |
|
576 #else |
|
577 typedef RadioRuntimeCalState_enum RadioRuntimeCalState_e; |
|
578 #endif |
|
579 |
|
580 /************************************************************************/ |
|
581 /* */ |
|
582 /* Commands section */ |
|
583 /* */ |
|
584 /************************************************************************/ |
|
585 typedef struct PltGainGet_t |
|
586 { |
|
587 uint8 TxGain; /*Total TX chain gain according to the current setting*/ |
|
588 uint8 TxUpperBound; /*the max gain setting allowed*/ |
|
589 uint8 TxLowerBound; /*the min gain setting allowed*/ |
|
590 uint8 padding; /* padding to 32 bit */ |
|
591 }PltGainGet_t; |
|
592 |
|
593 typedef struct |
|
594 { |
|
595 uint8 refTxPower; |
|
596 uint8 band; |
|
597 uint8 channel; |
|
598 uint8 padding; |
|
599 }RadioPltTxCalibrationRequest_t; |
|
600 |
|
601 |
|
602 /****************************************************************************** |
|
603 |
|
604 Name: PowerLevelTable_t |
|
605 Desc: Retrieve Maximum Dbm per power level and sub-band. |
|
606 Type: Configuration |
|
607 Access: Read Only |
|
608 Length: 20 |
|
609 |
|
610 ******************************************************************************/ |
|
611 typedef struct |
|
612 { |
|
613 uint8 txPowerTable[NUMBER_OF_SUB_BANDS_E][NUM_OF_POWER_LEVEL]; /* Maximun Dbm in Dbm/10 units */ |
|
614 } PowerLevelTable_t; |
|
615 |
|
616 /* DORONS [4/27/2008] testing the 2nd auxiliary function */ |
|
617 typedef struct |
|
618 { |
|
619 int8 desiredTone; |
|
620 int8 desiredGain; |
|
621 uint8 mode; |
|
622 uint8 padding; |
|
623 } TestToneParams_t; |
|
624 |
|
625 typedef enum |
|
626 { |
|
627 ePM_AWAKE, |
|
628 ePM_LISTEN_ENTER, |
|
629 ePM_LISTEN_EXIT, |
|
630 ePM_POWER_DOWN_ENTER, |
|
631 ePM_POWER_DOWN_EXIT, |
|
632 ePM_ELP_ENTER, |
|
633 ePM_ELP_EXIT, |
|
634 ePM_CORTEX_GATE_ENTER, |
|
635 ePM_CORTEX_GATE_EXIT |
|
636 }PowerMode; |
|
637 |
|
638 typedef struct |
|
639 |
|
640 { |
|
641 uint8 iPowerMode; /* Awake - 0 */ |
|
642 /* Enter Listen Mode - 1 */ |
|
643 /* Exit Listen Mode - 2 */ |
|
644 /* Enter Power Down Mode - 3 */ |
|
645 /* Exit Power Down Mode - 4 */ |
|
646 /* ELP Mode - 5 */ |
|
647 /* Enter Cortex Gate Mode - 6 */ |
|
648 /* Exit Cortex Gate Mode - 7 */ |
|
649 uint8 padding[3]; |
|
650 }TTestCmdPowerMode; |
|
651 |
|
652 /************************************************************************ |
|
653 PLT DBS |
|
654 To modify these DBs Latter - according to Architecture Document, |
|
655 and move it to public_commands.h |
|
656 ************************************************************************/ |
|
657 |
|
658 /****************************************************************************** |
|
659 |
|
660 ID: CMD_TEST |
|
661 Desc: The TEST command can be issued immediately after the firmware has |
|
662 been downloaded, with no further configuration of the WiLink required. |
|
663 Full initialization of the WiLink is not required to invoke the TEST |
|
664 command and perform the radio test function. |
|
665 After testing, the system must be reset. |
|
666 Test parameters can be modified while a test is executing. |
|
667 For instance, the host program can change the channel without resetting |
|
668 the system. |
|
669 |
|
670 Params: TestCmdID_enum - see below. |
|
671 The returned values are copied to the cmd/sts MB replacing the command |
|
672 (similar to the interrogate mechanism). |
|
673 |
|
674 ******************************************************************************/ |
|
675 /* Efil - when adding parameter here fill the switch case sentence in function |
|
676 "cmdBld_CmdIeTest" in module "TWD\Ctrl\CmdBldCmdIE.c" */ |
|
677 typedef enum |
|
678 { |
|
679 /* 0x01 */ TEST_CMD_PD_BUFFER_CAL = 0x1, /* TX PLT */ |
|
680 /* 0x02 */ TEST_CMD_P2G_CAL, /* TX BiP */ |
|
681 /* 0x03 */ TEST_CMD_RX_PLT_ENTER, |
|
682 /* 0x04 */ TEST_CMD_RX_PLT_CAL, /* RSSI Cal */ |
|
683 /* 0x05 */ TEST_CMD_RX_PLT_EXIT, |
|
684 /* 0x06 */ TEST_CMD_RX_PLT_GET, |
|
685 /* 0x07 */ TEST_CMD_FCC, /* Continuous TX */ |
|
686 /* 0x08 */ TEST_CMD_TELEC, /* Carrier wave in a specific channel and band */ |
|
687 /* 0x09 */ TEST_CMD_STOP_TX, /* Stop FCC or TELEC */ |
|
688 /* 0x0A */ TEST_CMD_PLT_TEMPLATE, /* define Template for TX */ |
|
689 /* 0x0B */ TEST_CMD_PLT_GAIN_ADJUST, |
|
690 /* 0x0C */ TEST_CMD_PLT_GAIN_GET, |
|
691 /* 0x0D */ TEST_CMD_CHANNEL_TUNE, |
|
692 /* 0x0E */ TEST_CMD_FREE_RUN_RSSI, /* Free running RSSI measurement */ |
|
693 /* 0x0F */ TEST_CMD_DEBUG, /* test command for debug using the struct: */ |
|
694 /* 0x10 */ TEST_CMD_CLPC_COMMANDS, |
|
695 /* 0x11 */ RESERVED_4, |
|
696 /* 0x12 */ TEST_CMD_RX_STAT_STOP, |
|
697 /* 0x13 */ TEST_CMD_RX_STAT_START, |
|
698 /* 0x14 */ TEST_CMD_RX_STAT_RESET, |
|
699 /* 0x15 */ TEST_CMD_RX_STAT_GET, |
|
700 /* 0x16 */ TEST_CMD_LOOPBACK_START, /* for FW Test Debug */ |
|
701 /* 0x17 */ TEST_CMD_LOOPBACK_STOP, /* for FW Test Debug */ |
|
702 /* 0x18 */ TEST_CMD_GET_FW_VERSIONS, |
|
703 /* 0x19 */ TEST_CMD_INI_FILE_RADIO_PARAM, |
|
704 /* 0x1A */ TEST_CMD_RUN_CALIBRATION_TYPE, |
|
705 /* 0x1B */ TEST_CMD_TX_GAIN_ADJUST, |
|
706 /* 0x1C */ TEST_CMD_UPDATE_PD_BUFFER_ERRORS, |
|
707 /* 0x1D */ TEST_CMD_UPDATE_PD_REFERENCE_POINT, |
|
708 /* 0x1E */ TEST_CMD_INI_FILE_GENERAL_PARAM, |
|
709 /* 0x1F */ TEST_CMD_SET_EFUSE, |
|
710 /* 0x20 */ TEST_CMD_GET_EFUSE, |
|
711 /* DORONS [4/27/2008] testing the 2nd auxiliary function */ |
|
712 /*0x21 */ TEST_CMD_TEST_TONE, |
|
713 /* 0x22 */ TEST_CMD_POWER_MODE, |
|
714 /* 0x23 */ TEST_CMD_SMART_REFLEX, |
|
715 /* 0x24 */ TEST_CMD_CHANNEL_RESPONSE, |
|
716 /* 0x25 */ TEST_CMD_DCO_ITRIM_FEATURE, |
|
717 |
|
718 MAX_TEST_CMD_ID = 0xFF /* Dummy - must be last!!! (make sure that Enum variables are type of int) */ |
|
719 |
|
720 } TestCmdID_enum; |
|
721 |
|
722 /************************************************************************/ |
|
723 /* radio test result information struct */ |
|
724 /************************************************************************/ |
|
725 #define DEFAULT_MULTIPLE_ACTIVATION_TIME 5 |
|
726 |
|
727 #define MULTIPLE_ACTIVATION_TIME 1000000 |
|
728 |
|
729 #define DEFAULT_RSMODE_CALIBRATION_INTERVAL (DEFAULT_MULTIPLE_ACTIVATION_TIME * MULTIPLE_ACTIVATION_TIME) /* RadioScope calibration interval - 5 sec */ |
|
730 |
|
731 typedef enum |
|
732 { |
|
733 eCMD_GET_CALIBRAIONS_INFO, |
|
734 eCMD_GET_CLPC_VBAT_TEMPERATURE_INFO |
|
735 }TTestCmdDeubug_enum; |
|
736 |
|
737 /* struct of calibration status, indication if RM performed calibration */ |
|
738 typedef struct |
|
739 { |
|
740 uint8 operateCalibration; /* RM performed calibration */ |
|
741 int8 calibrationsResult[NUMBER_OF_CALIBRATIONS_E]; /* Calibrations status */ |
|
742 }CalibrationInfo; |
|
743 |
|
744 /* struct of CLPC output, temperature, battery voltage */ |
|
745 typedef struct |
|
746 { |
|
747 int ClpcOffset[NUMBER_OF_RATE_GROUPS_E]; /* CLPC */ |
|
748 int8 CurrentTemperature; /* current temperature in Celsius */ |
|
749 uint16 CurrentVbat; /* VBat */ |
|
750 uint8 enableCalibration; /* enableCalibration */ |
|
751 |
|
752 }CLPCTempratureVbatStruct; |
|
753 |
|
754 typedef struct |
|
755 { |
|
756 int16 oRadioStatus; |
|
757 uint8 iCommand; /* command to check */ |
|
758 |
|
759 CalibrationInfo oCalibInfo; /* for eCMD_GET_CALIBRAIONS_INFO */ |
|
760 CLPCTempratureVbatStruct oCLPCTempVbatInfo; /* for eCMD_GET_CLPC_VBAT_TEMPERATURE_INFO */ |
|
761 |
|
762 uint8 padding[3]; |
|
763 |
|
764 }TTestCmdDebug; |
|
765 |
|
766 /************************************************************************/ |
|
767 /* end radio test result information struct */ |
|
768 /************************************************************************/ |
|
769 |
|
770 |
|
771 #ifdef HOST_COMPILE |
|
772 typedef uint8 TestCmdID_e; |
|
773 #else |
|
774 typedef TestCmdID_enum TestCmdID_e; |
|
775 #endif |
|
776 |
|
777 /******************************************************************************/ |
|
778 typedef enum |
|
779 { |
|
780 TEST_MODE_HOST_ORIGINATED_DATA = 0x00, |
|
781 TEST_MODE_FIXED_SEQ_NUMBER = 0x00, |
|
782 TEST_MODE_FW_ORIGINATED_DATA = 0x01, |
|
783 TEST_MODE_RANDOM_DATA = 0x05, |
|
784 TEST_MODE_ZOZO_DATA = 0x09, |
|
785 TEST_MODE_FILLING_PATERN_MASK = 0x0F, |
|
786 TEST_MODE_DELAY_REQUIRED = 0x10, |
|
787 TEST_MODE_DISABLE_SRCRAMBLING_FLAG = 0x20 |
|
788 }TestModeCtrlTypes_e; |
|
789 |
|
790 #ifdef HOST_COMPILE |
|
791 typedef uint8 FccTestType_e; |
|
792 #else |
|
793 typedef TestModeCtrlTypes_e FccTestType_e; |
|
794 #endif |
|
795 |
|
796 /******************************************************************************/ |
|
797 #define TEST_SEQ_NUM_MODE_FIXED (0) |
|
798 #define TEST_SEQ_NUM_MODE_INCREMENTED (1) |
|
799 |
|
800 /******************************************************************************/ |
|
801 /* DORONS [4/23/2008] RX Tone activation for DRPw cals */ |
|
802 #define ACTIVE_TONE_CAL_MODE (0) |
|
803 #define ACTIVE_TONE_NORM_MODE (1) |
|
804 /****************************************************************************** |
|
805 |
|
806 TestCmdId : TEST_CMD_FCC - Tx continuous test |
|
807 |
|
808 Description: Continuous transmit series of numbers with a valid MAC header |
|
809 as was received from driver. |
|
810 However there is no 802.11 air access compliance. |
|
811 |
|
812 Params: PERTxCfg_t fcc - see below. |
|
813 |
|
814 ******************************************************************************/ |
|
815 #define NUM_OF_MAC_ADDR_ELEMENTS 6 |
|
816 typedef struct PERTxCfg_t |
|
817 { |
|
818 /*input parameters*/ |
|
819 uint32 numFrames; /* number of frams to transmit, 0 = endless*/ |
|
820 uint32 interFrameGap; /* time gap in uSec */ |
|
821 uint32 seqNumMode; /* Fixed / Incremented */ |
|
822 uint32 frameBodySize; /* length of Mac Payload */ |
|
823 uint8 channel; /*channel number*/ |
|
824 uint8 dataRate; /* MBps 1,2,11,22,... 54 */ |
|
825 uint8 modPreamble; /* CTL_PREAMBLE 0x01 */ |
|
826 uint8 band; /* {BAND_SELECT_24GHZ 0x00 | BAND_SELECT_5GHZ 0x01} */ |
|
827 uint8 modulation; /* {PBCC_MODULATION_MASK |OFDM_MODULATION_MASK }*/ |
|
828 FccTestType_e testModeCtrl; |
|
829 uint8 dest[NUM_OF_MAC_ADDR_ELEMENTS]; /* set to hard codded default {0,0,0xde,0xad,0xbe,0xef}; */ |
|
830 } PERTxCfg_t; |
|
831 |
|
832 /****************************************************************************** |
|
833 |
|
834 TestCmdId : TEST_CMD_SET_EFUSE, TEST_CMD_GET_EFUSE |
|
835 |
|
836 Description: Get and set the eFuse parameters |
|
837 |
|
838 ******************************************************************************/ |
|
839 typedef enum EFUSE_PARAMETER_TYPE_ENMT |
|
840 { |
|
841 EFUSE_FIRST_PARAMETER_E, |
|
842 /*_______________________________________________*/ |
|
843 |
|
844 /* RX PARAMETERS */ |
|
845 EFUSE_FIRST_RX_PARAMETER_E = EFUSE_FIRST_PARAMETER_E, |
|
846 RX_BIP_MAX_GAIN_ERROR_BAND_B_E = EFUSE_FIRST_RX_PARAMETER_E, /* MaxGainErrBandB */ |
|
847 |
|
848 RX_BIP_MAX_GAIN_ERROR_J_LOW_MID_E, /* MaxGainErrJLowMid */ |
|
849 RX_BIP_MAX_GAIN_ERROR_J_HIGH_E, /* MaxGainErrJHigh */ |
|
850 |
|
851 RX_BIP_MAX_GAIN_ERROR_5G_1ST_E, /* MaxGainErr5G1st */ |
|
852 RX_BIP_MAX_GAIN_ERROR_5G_2ND_E, /* MaxGainErr5G2nd */ |
|
853 RX_BIP_MAX_GAIN_ERROR_5G_3RD_E, /* MaxGainErr5G3rd */ |
|
854 RX_BIP_MAX_GAIN_ERROR_5G_4TH_E, /* MaxGainErr5G4th */ |
|
855 |
|
856 RX_BIP_LNA_STEP_CORR_BAND_B_4TO3_E, /* LnaStepCorrBandB (Step 4To3) */ |
|
857 RX_BIP_LNA_STEP_CORR_BAND_B_3TO2_E, /* LnaStepCorrBandB (Step 3To2) */ |
|
858 RX_BIP_LNA_STEP_CORR_BAND_B_2TO1_E, /* LnaStepCorrBandB (Step 2To1) */ |
|
859 RX_BIP_LNA_STEP_CORR_BAND_B_1TO0_E, /* LnaStepCorrBandB (Step 1To0) */ |
|
860 |
|
861 RX_BIP_LNA_STEP_CORR_BAND_A_4TO3_E, /* LnaStepCorrBandA (Step 4To3) */ |
|
862 RX_BIP_LNA_STEP_CORR_BAND_A_3TO2_E, /* LnaStepCorrBandA (Step 3To2) */ |
|
863 RX_BIP_LNA_STEP_CORR_BAND_A_2TO1_E, /* LnaStepCorrBandA (Step 2To1) */ |
|
864 RX_BIP_LNA_STEP_CORR_BAND_A_1TO0_E, /* LnaStepCorrBandA (Step 1To0) */ |
|
865 |
|
866 RX_BIP_TA_STEP_CORR_BAND_B_2TO1_E, /* TaStepCorrBandB (Step 2To1) */ |
|
867 RX_BIP_TA_STEP_CORR_BAND_B_1TO0_E, /* TaStepCorrBandB (Step 1To0) */ |
|
868 |
|
869 RX_BIP_TA_STEP_CORR_BAND_A_2TO1_E, /* TaStepCorrBandA (Step 2To1) */ |
|
870 RX_BIP_TA_STEP_CORR_BAND_A_1TO0_E, /* TaStepCorrBandA (Step 1To0) */ |
|
871 |
|
872 NUMBER_OF_RX_BIP_EFUSE_PARAMETERS_E, /* Number of RX parameters */ |
|
873 |
|
874 /* TX PARAMETERS */ |
|
875 TX_BIP_PD_BUFFER_GAIN_ERROR_E = NUMBER_OF_RX_BIP_EFUSE_PARAMETERS_E,/* PD_Buffer_Gain_error */ |
|
876 TX_BIP_PD_BUFFER_VBIAS_ERROR_E, /* PD_Buffer_Vbias_error */ |
|
877 |
|
878 /*_______________________________________________*/ |
|
879 EFUSE_NUMBER_OF_PARAMETERS_E, |
|
880 EFUSE_LAST_PARAMETER_E = (EFUSE_NUMBER_OF_PARAMETERS_E - 1) |
|
881 |
|
882 }EFUSE_PARAMETER_TYPE_ENM; |
|
883 |
|
884 typedef struct |
|
885 { |
|
886 int8 EfuseParameters[EFUSE_NUMBER_OF_PARAMETERS_E]; |
|
887 |
|
888 int16 oRadioStatus; |
|
889 int8 padding[3]; /* Align to 32bit */ |
|
890 |
|
891 } EfuseParameters_t; |
|
892 |
|
893 /******************************************************************************/ |
|
894 |
|
895 /****************************************************************************** |
|
896 |
|
897 TestCmdId : TEST_CMD_PLT_GAIN_GET |
|
898 |
|
899 Description: Retrieves the TX chain gain settings. |
|
900 |
|
901 Params: PltGainGet_t gainGet - see public_radio.h |
|
902 |
|
903 |
|
904 ******************************************************************************/ |
|
905 |
|
906 /****************************************************************************** |
|
907 |
|
908 TestCmdId: TEST_CMD_PLT_GET_NVS_UPDATE_BUFFER |
|
909 |
|
910 Description: This PLT function provides the all information required by |
|
911 the upper driver in order to update the NVS image. |
|
912 It received a parameter defining the type of update |
|
913 information required and provides an array of elements |
|
914 defining the data bytes to be written to the NVS image |
|
915 and the byte offset in which they should be written. |
|
916 Params: PltNvsResultsBuffer_t nvsUpdateBuffer - see public_radio.h |
|
917 |
|
918 |
|
919 *****************************************************************************/ |
|
920 |
|
921 |
|
922 /****************************************************************************** |
|
923 |
|
924 TestCmdId : TEST_CMD_PLT_GAIN_ADJUST |
|
925 |
|
926 Description: retrieves the TX chain gain settings. |
|
927 |
|
928 Params: int32 txGainAdjust |
|
929 |
|
930 *****************************************************************************/ |
|
931 |
|
932 /****************************************************************************** |
|
933 |
|
934 TestCmdId : TEST_CMD_PLT_RX_CALIBRATION |
|
935 |
|
936 Description: Used as part of the RX calibration procedure, call this |
|
937 function for every calibration channel. |
|
938 The response for that function indicates only that command had been received by th FW, |
|
939 and not that the calibration procedure had been finished. |
|
940 The upper layer need to wait amount of ((numOfSamples*intervalBetweenSamplesUsec). |
|
941 To make sure that the RX calibration completed. before calling to the next command. |
|
942 |
|
943 Params: PltRxCalibrationRequest_t rxCalibration |
|
944 |
|
945 ******************************************************************************/ |
|
946 |
|
947 typedef struct |
|
948 { |
|
949 uint8 iBand; |
|
950 uint8 iChannel; |
|
951 int16 oRadioStatus; |
|
952 } TTestCmdChannel; |
|
953 |
|
954 typedef struct TTestCmdPdBufferCalStruct |
|
955 { |
|
956 uint8 iGain; |
|
957 uint8 iVBias; |
|
958 int16 oAdcCodeword; |
|
959 int16 oRadioStatus; |
|
960 uint8 Padding[2]; |
|
961 } TTestCmdPdBufferCal; |
|
962 |
|
963 typedef struct |
|
964 { |
|
965 int8 vBIASerror; |
|
966 int8 gainError; |
|
967 uint8 padding[2]; |
|
968 }TTestCmdPdBufferErrors; |
|
969 |
|
970 typedef struct |
|
971 { |
|
972 int32 iReferencePointPower; |
|
973 int32 iReferencePointDetectorValue; |
|
974 uint8 isubBand; |
|
975 uint8 padding[3]; |
|
976 }TTestCmdUpdateReferncePoint; |
|
977 |
|
978 typedef struct |
|
979 { |
|
980 int16 oRadioStatus; |
|
981 uint8 iCalibratonType; |
|
982 uint8 Padding; |
|
983 |
|
984 } TTestCmdRunCalibration; |
|
985 |
|
986 typedef struct |
|
987 { |
|
988 uint8 DCOItrimONOff; |
|
989 uint8 padding[3]; |
|
990 }TTestCmdDCOItrimOnOff; |
|
991 |
|
992 typedef enum |
|
993 { |
|
994 eDISABLE_LIMIT_POWER, |
|
995 eENABLE_LIMIT_POWER |
|
996 }UseIniFileLimitPower; |
|
997 |
|
998 typedef struct |
|
999 { |
|
1000 int32 iTxGainValue; |
|
1001 int16 oRadioStatus; |
|
1002 uint8 iUseinifilelimitPower; |
|
1003 uint8 padding; |
|
1004 } TTxGainAdjust; |
|
1005 |
|
1006 /* TXPWR_CFG0__VGA_STEP_GAIN_E */ |
|
1007 typedef enum TXPWR_CFG0__VGA_STEP_ENMT |
|
1008 { |
|
1009 TXPWR_CFG0__VGA_STEP__FIRST_E, |
|
1010 /*_______________________________________________*/ |
|
1011 TXPWR_CFG0__VGA_STEP__MINIMUM_E = TXPWR_CFG0__VGA_STEP__FIRST_E, |
|
1012 TXPWR_CFG0__VGA_STEP__0_E = TXPWR_CFG0__VGA_STEP__MINIMUM_E, |
|
1013 TXPWR_CFG0__VGA_STEP__1_E, |
|
1014 TXPWR_CFG0__VGA_STEP__2_E, |
|
1015 TXPWR_CFG0__VGA_STEP__3_E, |
|
1016 TXPWR_CFG0__VGA_STEP__4_E, |
|
1017 TXPWR_CFG0__VGA_STEP__MAXIMUM_E = TXPWR_CFG0__VGA_STEP__4_E, |
|
1018 /*_______________________________________________*/ |
|
1019 TXPWR_CFG0__VGA_STEP__NUMBER_OF_STEPS_E, |
|
1020 TXPWR_CFG0__VGA_STEP__LAST_E = (TXPWR_CFG0__VGA_STEP__NUMBER_OF_STEPS_E - 1) |
|
1021 |
|
1022 } TXPWR_CFG0__VGA_STEP_ENM; |
|
1023 |
|
1024 /****************************************************************************** |
|
1025 |
|
1026 Name: ACX_PLT_NVS_BUFFER_UPDATE |
|
1027 TestCmdId: TEST_CMD_PLT_GET_NVS_UPDATE_BUFFER |
|
1028 Description: This PLT function provides the all information required by |
|
1029 the upper driver in order to update the NVS image. |
|
1030 It received a parameter defining the type of update |
|
1031 information required and provides an array of elements defining |
|
1032 the data bytes to be written to the NVS image and the byte |
|
1033 offset in which they should be written. |
|
1034 Type: PLT |
|
1035 Access: Read Only |
|
1036 Length: 420 |
|
1037 |
|
1038 ******************************************************************************/ |
|
1039 |
|
1040 /* default efuse value */ |
|
1041 #define DEFAULT_EFUSE_VALUE 0 |
|
1042 |
|
1043 /* Default hard-coded power to gain offsets (these values will be overridden by NVS) */ |
|
1044 #define DB_FACTOR 1000 /* factor because we can't use float */ |
|
1045 |
|
1046 /* TX BIP default parameters */ |
|
1047 #define CALIBRATION_STEP_SIZE 1000 |
|
1048 #define CALIBRATION_POWER_HIGHER_RANGE 22000 |
|
1049 #define CALIBRATION_POWER_LOWER_RANGE (-3000) |
|
1050 |
|
1051 #define FIRST_PD_CURVE_TO_SET_2_OCTET (10 * CALIBRATION_STEP_SIZE)/* dBm */ |
|
1052 |
|
1053 #define SIZE_OF_POWER_DETECTOR_TABLE ((((CALIBRATION_POWER_HIGHER_RANGE) - (CALIBRATION_POWER_LOWER_RANGE))\ |
|
1054 / (CALIBRATION_STEP_SIZE)) + 1) |
|
1055 |
|
1056 /* default PPA steps value */ |
|
1057 #define DEFAULT_PPA_STEP_VALUE (-6000) |
|
1058 |
|
1059 #define P2G_TABLE_TO_NVS (-1) * 8 / DB_FACTOR |
|
1060 |
|
1061 #define DEF_2_4_G_SUB_BAND_P2G_OFFSET (-25000) |
|
1062 #define DEF_LOW_JAPAN_4_9_G_SUB_BAND_P2G_OFFSET (-25*DB_FACTOR) |
|
1063 #define DEF_MID_JAPAN_4_9_G_SUB_BAND_OFFSET (-25*DB_FACTOR) |
|
1064 #define DEF_HIGH_JAPAN_4_9_G_SUB_BAND_OFFSET (-25*DB_FACTOR) |
|
1065 #define DEF_5_G_FIRST_SUB_BAND_P2G_OFFSET (-25*DB_FACTOR) |
|
1066 #define DEF_5_G_SECOND_SUB_BAND_P2G_OFFSET (-25*DB_FACTOR) |
|
1067 #define DEF_5_G_THIRD_SUB_BAND_P2G_OFFSET (-25*DB_FACTOR) |
|
1068 #define DEF_5_G_FOURTH_SUB_BAND_P2G_OFFSET (-25*DB_FACTOR) |
|
1069 |
|
1070 #define START_TYPE_INDEX_IN_TLV 0 |
|
1071 #define TLV_TYPE_LENGTH 1 |
|
1072 #define START_LENGTH_INDEX (START_TYPE_INDEX_IN_TLV + TLV_TYPE_LENGTH) /* 1 */ |
|
1073 #define TLV_LENGTH_LENGTH 2 |
|
1074 #define START_PARAM_INDEX (START_LENGTH_INDEX + TLV_LENGTH_LENGTH) /* 3 */ |
|
1075 |
|
1076 #define NVS_VERSION_1 1 |
|
1077 #define NVS_VERSION_2 2 |
|
1078 |
|
1079 #define NVS_MAC_FIRST_LENGTH_INDEX 0 |
|
1080 #define NVS_MAC_FIRST_LENGHT_VALUE 1 |
|
1081 |
|
1082 #define NVS_MAC_L_ADDRESS_INDEX ((NVS_MAC_FIRST_LENGTH_INDEX) + 1) /* 1*/ |
|
1083 #define NVS_MAC_L_ADDRESS_LENGTH 2 |
|
1084 |
|
1085 #define NVS_MAC_L_VALUE_INDEX ((NVS_MAC_L_ADDRESS_INDEX) + (NVS_MAC_L_ADDRESS_LENGTH)) /* 3 */ |
|
1086 #define NVS_MAC_L_VALUE_LENGTH 4 |
|
1087 |
|
1088 #define NVS_MAC_SECONDE_LENGTH_INDEX ((NVS_MAC_L_VALUE_INDEX) + 4) /* 7 */ |
|
1089 #define NVS_MAC_SECONDE_LENGHT_VALUE 1 |
|
1090 |
|
1091 #define NVS_MAC_H_ADDRESS_INDEX ((NVS_MAC_SECONDE_LENGTH_INDEX) + 1) /* 8*/ |
|
1092 #define NVS_MAC_H_ADDRESS_LENGTH 2 |
|
1093 |
|
1094 #define NVS_MAC_H_VALUE_INDEX ((NVS_MAC_H_ADDRESS_INDEX) + (NVS_MAC_H_ADDRESS_LENGTH)) /* 10 */ |
|
1095 #define NVS_MAC_H_VALUE_LENGTH 4 |
|
1096 |
|
1097 #define NVS_END_BURST_TRANSACTION_INDEX ((NVS_MAC_H_VALUE_INDEX) + (NVS_MAC_H_VALUE_LENGTH)) /* 14 */ |
|
1098 #define NVS_END_BURST_TRANSACTION_VALUE 0 |
|
1099 #define NVS_END_BURST_TRANSACTION_LENGTH 7 |
|
1100 |
|
1101 #define NVS_ALING_TLV_START_ADDRESS_INDEX ((NVS_END_BURST_TRANSACTION_INDEX) + (NVS_END_BURST_TRANSACTION_LENGTH)) /* 21 */ |
|
1102 #define NVS_ALING_TLV_START_ADDRESS_VALUE 0 |
|
1103 #define NVS_ALING_TLV_START_ADDRESS_LENGTH 3 |
|
1104 |
|
1105 |
|
1106 /* NVS pre TLV length */ |
|
1107 #define NVS_PRE_PARAMETERS_LENGTH ((NVS_ALING_TLV_START_ADDRESS_INDEX) + (NVS_ALING_TLV_START_ADDRESS_LENGTH)) /* 24 */ |
|
1108 |
|
1109 /* NVS P2G table */ |
|
1110 #define NVS_TX_P2G_TABLE_LENGTH ((NUMBER_OF_SUB_BANDS_E) * 1 /* byte */) /* 8 */ |
|
1111 |
|
1112 /* NVS PPA table */ |
|
1113 #define NVS_TX_PPA_STEPS_TABLE_LENGTH ((NUMBER_OF_SUB_BANDS_E) * \ |
|
1114 ((TXPWR_CFG0__VGA_STEP__NUMBER_OF_STEPS_E) \ |
|
1115 - 1) * 1 /* byte */) /* 32 */ |
|
1116 |
|
1117 /* NVS version 1 TX PD curve table length */ |
|
1118 #define NVS_TX_PD_TABLE_LENGTH_NVS_V1 (1 /* byte to set size of table */ + \ |
|
1119 ((NUMBER_OF_SUB_BANDS_E) * (2 /* 1 byte offset, 1 byte low range */ + \ |
|
1120 2 /* first index in table */ + (((SIZE_OF_POWER_DETECTOR_TABLE) - 1) * 1 /* 1 byte */)))) /* 233 */ |
|
1121 |
|
1122 /* NVS version 2 TX PD curve table length */ |
|
1123 #define NVS_TX_PD_TABLE_LENGTH_NVS_V2 ((NUMBER_OF_SUB_BANDS_E) * (12 /* 12index of one byte -2 dBm - 9dBm */ +\ |
|
1124 28 /* 14 indexes of 2 byte -3dBm, 10dBm - 22 dBm */)) /* 320 */ |
|
1125 |
|
1126 /* NVS version 1 TX parameters Length */ |
|
1127 #define NVS_TX_PARAM_LENGTH_NVS_V1 ((NVS_TX_P2G_TABLE_LENGTH) + (NVS_TX_PPA_STEPS_TABLE_LENGTH) +\ |
|
1128 (NVS_TX_PD_TABLE_LENGTH_NVS_V1)) /* 273 */ |
|
1129 |
|
1130 /* NVS version 2 TX parameters Length */ |
|
1131 #define NVS_TX_PARAM_LENGTH_NVS_V2 ((NVS_TX_P2G_TABLE_LENGTH) + (NVS_TX_PPA_STEPS_TABLE_LENGTH) +\ |
|
1132 (NVS_TX_PD_TABLE_LENGTH_NVS_V2) +\ |
|
1133 (NUMBER_OF_RADIO_CHANNEL_INDEXS_E /* for Per Channel power Gain Offset table */)) /* 409 */ |
|
1134 |
|
1135 /* NVS TX version */ |
|
1136 #define NVS_TX_PARAM_LENGTH NVS_TX_PARAM_LENGTH_NVS_V2 |
|
1137 |
|
1138 /* NVS RX version */ |
|
1139 #define NVS_RX_PARAM_LENGTH NUMBER_OF_RX_BIP_EFUSE_PARAMETERS_E /* 19 */ |
|
1140 |
|
1141 /* NVS version parameter length */ |
|
1142 #define NVS_VERSION_PARAMETER_LENGTH 3 |
|
1143 |
|
1144 /* NVS max length */ |
|
1145 #define NVS_TOTAL_LENGTH 500 /* original ((NVS_TOTAL_LENGTH) + 4 - ((NVS_TOTAL_LENGTH) % 4)) */ |
|
1146 |
|
1147 /* TLV max length */ |
|
1148 #define MAX_TLV_LENGTH NVS_TOTAL_LENGTH |
|
1149 |
|
1150 #define MAX_NVS_VERSION_LENGTH 12 |
|
1151 |
|
1152 /* type to set in the NVS for each mode of work */ |
|
1153 typedef enum |
|
1154 { |
|
1155 eNVS_VERSION = 0xaa, |
|
1156 eNVS_RADIO_TX_PARAMETERS = 1, |
|
1157 eNVS_RADIO_RX_PARAMETERS = 2, |
|
1158 |
|
1159 eNVS_RADIO_INI = 16, |
|
1160 |
|
1161 |
|
1162 eNVS_NON_FILE = 0xFE, |
|
1163 |
|
1164 /* last TLV type */ |
|
1165 eTLV_LAST = 0xFF |
|
1166 }NVSType; |
|
1167 |
|
1168 /* type to set parameter type buffers for each mode of work */ |
|
1169 typedef enum |
|
1170 { |
|
1171 eFIRST_RADIO_TYPE_PARAMETERS_INFO, /* 0 */ |
|
1172 eNVS_RADIO_TX_TYPE_PARAMETERS_INFO = eFIRST_RADIO_TYPE_PARAMETERS_INFO, /* 0 */ |
|
1173 eNVS_RADIO_RX_TYPE_PARAMETERS_INFO, /* 1 */ |
|
1174 eLAST_RADIO_TYPE_PARAMETERS_INFO = eNVS_RADIO_RX_TYPE_PARAMETERS_INFO, /* 1 */ |
|
1175 UNUSED_RADIO_TYPE_PARAMETERS_INFO, /* 2 */ |
|
1176 eNUMBER_RADIO_TYPE_PARAMETERS_INFO = UNUSED_RADIO_TYPE_PARAMETERS_INFO, /* 2 */ |
|
1177 LAST_RADIO_TYPE_PARAMETERS_INFO = (eNUMBER_RADIO_TYPE_PARAMETERS_INFO - 1) /* 1 */ |
|
1178 }NVSTypeInfo; |
|
1179 |
|
1180 |
|
1181 typedef enum |
|
1182 { |
|
1183 eCURRENT_SUB_BAND, |
|
1184 eALL_SUB_BANDS |
|
1185 }TxBipCurrentAllSubBand; |
|
1186 |
|
1187 typedef struct |
|
1188 { |
|
1189 uint16 Length; /* TLV length in bytes */ |
|
1190 uint8 Buffer[MAX_TLV_LENGTH]; /* TLV buffer content to be burned */ |
|
1191 uint8 Type; /* TLV Type Index */ |
|
1192 uint8 padding; |
|
1193 }TNvsStruct; |
|
1194 |
|
1195 typedef struct |
|
1196 { |
|
1197 uint32 oNVSVersion; |
|
1198 TNvsStruct oNvsStruct; /* output (P2G array) */ |
|
1199 int16 oRadioStatus; |
|
1200 uint8 iSubBandMask; /* 7 sub-band bit mask (asserted bit - calibration required) */ |
|
1201 uint8 Padding; |
|
1202 } TTestCmdP2GCal; |
|
1203 |
|
1204 typedef struct |
|
1205 { |
|
1206 int16 oRadioStatus; |
|
1207 uint16 Pad; |
|
1208 uint32 iDelay; /* between packets (usec) */ |
|
1209 uint32 iRate; /* 1MBPS = 0x00000001, |
|
1210 2MBPS = 0x00000002, |
|
1211 5.5MBPS = 0x00000004, |
|
1212 6MBPS = 0x00000008, |
|
1213 9MBPS = 0x00000010, |
|
1214 11MBPS = 0x00000020, |
|
1215 12MBPS = 0x00000040, |
|
1216 18MBPS = 0x00000080, |
|
1217 24MBPS = 0x00000200, |
|
1218 36MBPS = 0x00000400, |
|
1219 48MBPS = 0x00000800, |
|
1220 54MBPS = 0x00001000, |
|
1221 MCS_0 = 0x00002000, |
|
1222 MCS_1 = 0x00004000, |
|
1223 MCS_2 = 0x00008000, |
|
1224 MCS_3 = 0x00010000, |
|
1225 MCS_4 = 0x00020000, |
|
1226 MCS_5 = 0x00040000, |
|
1227 MCS_6 = 0x00080000, |
|
1228 MCS_7 = 0x00100000 */ |
|
1229 uint16 iSize; /* size of packet (bytes) */ |
|
1230 uint16 iAmount; /* in case of multiple (# of packets) */ |
|
1231 int32 iPower; /* upper power limit (dBm) */ |
|
1232 uint16 iSeed; |
|
1233 uint8 iPacketMode; /* single, multiple, InfiniteLength, Continuous, FCC */ |
|
1234 uint8 iDcfOnOff; /* use DCF access (1) */ |
|
1235 uint8 iGI; /* Guard Interval: long:800ns (0), short:400ns (1) */ |
|
1236 uint8 iPreamble; /* long (0), short (1), OFDM (4), GF (7), Mixed (6) */ |
|
1237 uint8 iType; /* Data (0), Ack (1), Probe-request(2), Random (3), User-defined (4), PER (5) */ |
|
1238 uint8 iScrambler; /* Off (0), On (1) */ |
|
1239 uint8 iEnableCLPC; /* range 0-100. 0 - disable calibration / |
|
1240 range 1-99 - enable Cal asses periodic time, every step is 200msecond |
|
1241 periodic of cal assess for example: 1.2 second put the value 6. |
|
1242 if the value is out of range it will be change to 25 represent |
|
1243 5 second of cal assess periodical */ |
|
1244 uint8 iSeqNumMode; /* Fixed sequence number (0), incremental (1) - used for PER test only */ |
|
1245 TMacAddr iSrcMacAddr; /* Source address (BSSID) - used for PER test only */ |
|
1246 TMacAddr iDstMacAddr; /* Destination address - used for PER test only */ |
|
1247 |
|
1248 } TPacketParam; |
|
1249 |
|
1250 typedef struct |
|
1251 { |
|
1252 int16 oRadioStatus; |
|
1253 uint16 Pad; |
|
1254 int32 iPower; |
|
1255 uint8 iToneType; |
|
1256 uint8 iPpaStep; |
|
1257 uint8 iToneNumberSingleTones; |
|
1258 uint8 iToneNumberTwoTones; |
|
1259 uint8 iUseDigitalDC; |
|
1260 uint8 iInvert; |
|
1261 uint8 iElevenNSpan; |
|
1262 uint8 iDigitalDC; |
|
1263 uint8 iAnalogDCFine; |
|
1264 uint8 iAnalogDCCoarse; |
|
1265 } TToneParam; |
|
1266 |
|
1267 typedef struct |
|
1268 { |
|
1269 uint16 bufferOffset; |
|
1270 uint16 bufferLength; |
|
1271 int16 oRadioStatus; |
|
1272 int8 buffer[TX_TEMPLATE_MAX_BUF_LEN]; |
|
1273 uint8 padding[2]; |
|
1274 } TTxTemplate; |
|
1275 |
|
1276 typedef enum |
|
1277 { |
|
1278 eDISABLE_CLPC, |
|
1279 eENABLE_CLPC, |
|
1280 eRESET_CLPC_TABLES, |
|
1281 eINIDCATE_CLPC_ACTIVATION_TIME, |
|
1282 eENABLE_CALIBRATIAONS, |
|
1283 eDISABLE_CALIBRATIAONS |
|
1284 }CLPCCommands; |
|
1285 |
|
1286 typedef struct |
|
1287 { |
|
1288 int16 oStatus; |
|
1289 uint8 iCLPCActivationTime; /* range 0-100. 0 - disable calibration / |
|
1290 range 1-99 - enable Cal asses periodic time, every step is 200msecond |
|
1291 periodic of cal assess for example: 1.2 second put the value 6. |
|
1292 if the value is out of range it will be change to 25 represent |
|
1293 5 second of cal assess periodical */ |
|
1294 uint8 iCLPCCommands; |
|
1295 }TTestCmdCLPCCommands; |
|
1296 |
|
1297 |
|
1298 /************************************************************************ |
|
1299 PLT DBS |
|
1300 Theses DBs were moved from the TWDExternalIf.h because of |
|
1301 redundency. |
|
1302 ************************************************************************/ |
|
1303 typedef struct |
|
1304 { |
|
1305 uint8 oAbsoluteGain; /* Per Sub-Band (output) */ |
|
1306 uint8 oLNASteps[RX_PLT_LNA_STEPS_BUF_LEN]; /* 4 steps per Band (output) */ |
|
1307 uint8 oTASteps[RX_PLT_TA_STEPS_BUF_LEN]; /* 2 steps per Band (output) */ |
|
1308 uint8 Padding; |
|
1309 } TTestCmdRxPlt; |
|
1310 |
|
1311 typedef struct |
|
1312 { |
|
1313 uint32 ReceivedValidPacketsNumber; |
|
1314 uint32 ReceivedFcsErrorPacketsNumber; |
|
1315 uint32 ReceivedPlcpErrorPacketsNumber; |
|
1316 uint32 SeqNumMissCount; /* For PER calculation */ |
|
1317 int16 AverageSnr; |
|
1318 int16 AverageRssi; |
|
1319 int16 AverageEvm; |
|
1320 uint8 Padding[2]; |
|
1321 } RxPathStatistics_t; |
|
1322 |
|
1323 typedef struct |
|
1324 { |
|
1325 uint16 Length; |
|
1326 uint16 EVM; |
|
1327 uint16 RSSI; |
|
1328 uint16 FrequencyDelta; |
|
1329 uint16 Flags; |
|
1330 int8 Type; |
|
1331 uint8 Rate; |
|
1332 uint8 Noise; |
|
1333 uint8 AgcGain; |
|
1334 uint8 Padding[2]; |
|
1335 } RxPacketStatistics_t; |
|
1336 |
|
1337 #define RX_STAT_PACKETS_PER_MESSAGE (20) |
|
1338 typedef struct |
|
1339 { |
|
1340 RxPathStatistics_t oRxPathStatistics; |
|
1341 uint32 oBasePacketId; |
|
1342 uint32 ioNumberOfPackets; /* input/output: number of following packets */ |
|
1343 uint32 oNumberOfMissedPackets; /* number of following packet statistic entries that were dropped */ |
|
1344 /*RxPacketStatistics_t RxPacketStatistics[RX_STAT_PACKETS_PER_MESSAGE];*/ |
|
1345 int16 oRadioStatus; |
|
1346 } RadioRxStatistics; |
|
1347 |
|
1348 /* RX RF gain values */ |
|
1349 typedef enum PHY_RADIO_RX_GAIN_VALUES_ENMT |
|
1350 { |
|
1351 FIRST_RX_GAIN_VALUE_E, |
|
1352 /*_______________________________________________*/ |
|
1353 RX_GAIN_VALUE_0_E = FIRST_RX_GAIN_VALUE_E, |
|
1354 RX_GAIN_VALUE_1_E, |
|
1355 RX_GAIN_VALUE_2_E, |
|
1356 RX_GAIN_VALUE_3_E, |
|
1357 RX_GAIN_VALUE_4_E, |
|
1358 RX_GAIN_VALUE_5_E, |
|
1359 RX_GAIN_VALUE_6_E, |
|
1360 RX_GAIN_VALUE_7_E, |
|
1361 /*_______________________________________________*/ |
|
1362 NUMBER_OF_RX_GAIN_VALUES_E, |
|
1363 LAST_RX_GAIN_VALUE_E = (NUMBER_OF_RX_GAIN_VALUES_E - 1) |
|
1364 |
|
1365 }PHY_RADIO_RX_GAIN_VALUES_ENM; |
|
1366 |
|
1367 /* RX BIP */ |
|
1368 typedef struct |
|
1369 { |
|
1370 uint32 oNVSVersion; |
|
1371 int32 iExternalSignalPowerLevel; |
|
1372 int32 oLnaTaCompensationValues[NUMBER_OF_RX_GAIN_VALUES_E-1]; |
|
1373 TNvsStruct oNvsStruct; |
|
1374 int16 oRadioStatus; |
|
1375 int8 padding[2]; |
|
1376 }RadioRxPltCal; |
|
1377 |
|
1378 |
|
1379 typedef enum |
|
1380 { |
|
1381 eSINGLE_BAND_INI_FILE, |
|
1382 eDUAL_BAND_INI_FILE |
|
1383 }IniFileSingleDualBand; |
|
1384 |
|
1385 #define SMART_REFLEX_LENGTH_INDEX 0 |
|
1386 #define SMART_REFLEX_UPPER_LIMIT_INDEX 1 |
|
1387 #define SMART_REFLEX_START_ERROR_VALUE_INDEX 2 |
|
1388 |
|
1389 #define MAX_SMART_REFLEX_FUB_VALUES 14 |
|
1390 /* 1. first index is the number of param */ |
|
1391 /* 2. second is the higher value */ |
|
1392 /* 3. 14 parameter of the correction */ |
|
1393 #define MAX_SMART_REFLEX_PARAM (MAX_SMART_REFLEX_FUB_VALUES + SMART_REFLEX_START_ERROR_VALUE_INDEX) |
|
1394 |
|
1395 |
|
1396 |
|
1397 typedef struct |
|
1398 { |
|
1399 uint8 RefClk; |
|
1400 uint8 SettlingTime; |
|
1401 uint8 ClockValidOnWakeup; |
|
1402 uint8 DC2DCMode; |
|
1403 uint8 Single_Dual_Band_Solution; |
|
1404 uint8 TXBiPFEMAutoDetect; |
|
1405 uint8 TXBiPFEMManufacturer; |
|
1406 /* GeneralSettingsByte Settings; */ |
|
1407 uint8 GeneralSettings; |
|
1408 /* smart reflex state*/ |
|
1409 uint8 SRState; |
|
1410 /* FUB parameters */ |
|
1411 int8 SRF1[MAX_SMART_REFLEX_PARAM]; |
|
1412 int8 SRF2[MAX_SMART_REFLEX_PARAM]; |
|
1413 int8 SRF3[MAX_SMART_REFLEX_PARAM]; |
|
1414 /* FUB debug parameters */ |
|
1415 int8 SR_Debug_Table[MAX_SMART_REFLEX_PARAM]; |
|
1416 uint8 SR_SEN_N_P; |
|
1417 uint8 SR_SEN_N_P_Gain; |
|
1418 uint8 SR_SEN_NRN; |
|
1419 uint8 SR_SEN_PRN; |
|
1420 |
|
1421 uint8 padding[3]; |
|
1422 }IniFileGeneralParam; |
|
1423 |
|
1424 typedef enum |
|
1425 { |
|
1426 FEM_MANUAL_DETECT_MODE_E, |
|
1427 FEM_AUTO_DETECT_MODE_E |
|
1428 |
|
1429 }FEM_DETECT_MODE_ENM; |
|
1430 |
|
1431 typedef enum |
|
1432 { |
|
1433 FEM_RFMD_TYPE_E, |
|
1434 FEM_TRIQUINT_TYPE_E, |
|
1435 NUMBER_OF_FEM_TYPES_E |
|
1436 |
|
1437 }FEM_TYPE_ENM; |
|
1438 |
|
1439 typedef enum |
|
1440 { |
|
1441 eREF_CLK_19_2_E, |
|
1442 eREF_CLK_26_E, |
|
1443 eREF_CLK_38_4_E, |
|
1444 eREF_CLK_52_E, |
|
1445 eREF_CLK_XTAL |
|
1446 |
|
1447 |
|
1448 }REF_CLK_ENM; |
|
1449 |
|
1450 typedef enum |
|
1451 { |
|
1452 REF_CLK_NOT_VALID_E, |
|
1453 REF_CLK_VALID_AND_STABLE_E |
|
1454 |
|
1455 }CLK_VALID_ON_WAKEUP_ENM; |
|
1456 |
|
1457 typedef enum |
|
1458 { |
|
1459 BT_SPI_IS_NOT_USED_E, |
|
1460 MUX_DC2DC_TO_BT_FUNC2_E |
|
1461 |
|
1462 }DC2DC_MODE_ENM; |
|
1463 |
|
1464 typedef enum |
|
1465 { |
|
1466 SINGLE_BAND_SOLUTION_E, |
|
1467 DUAL_BAND_SOLUTION_E |
|
1468 |
|
1469 }SINGLE_DUAL_BAND_SOLUTION_ENM; |
|
1470 |
|
1471 /* General settings byte */ |
|
1472 typedef enum |
|
1473 { |
|
1474 TELEC_CHAN_14_OFF_E, |
|
1475 TELEC_CHAN_14_ON_E |
|
1476 |
|
1477 }TELEC_CHAN_14_ENM; |
|
1478 |
|
1479 typedef enum |
|
1480 { |
|
1481 NBI_OFF_E, |
|
1482 NBI_ON_E |
|
1483 |
|
1484 }NBI_ENM; |
|
1485 |
|
1486 #define RSSI_AND_PROCESS_COMPENSATION_TABLE_SIZE (15) |
|
1487 |
|
1488 typedef struct |
|
1489 { |
|
1490 /* SECTION 1: 2.4G parameters */ |
|
1491 uint8 RxTraceInsertionLoss_2_4G; |
|
1492 uint8 TXTraceLoss_2_4G; |
|
1493 int8 RxRssiAndProcessCompensation_2_4G[RSSI_AND_PROCESS_COMPENSATION_TABLE_SIZE]; |
|
1494 |
|
1495 /* SECTION 2: 5G parameters */ |
|
1496 uint8 RxTraceInsertionLoss_5G[NUMBER_OF_SUB_BANDS_IN_5G_BAND_E]; |
|
1497 uint8 TXTraceLoss_5G[NUMBER_OF_SUB_BANDS_IN_5G_BAND_E]; |
|
1498 int8 RxRssiAndProcessCompensation_5G[RSSI_AND_PROCESS_COMPENSATION_TABLE_SIZE]; |
|
1499 |
|
1500 }TStatRadioParams; |
|
1501 |
|
1502 typedef struct |
|
1503 { |
|
1504 /* SECTION 1: 2.4G parameters */ |
|
1505 uint16 TXBiPReferencePDvoltage_2_4G; |
|
1506 uint8 TxBiPReferencePower_2_4G; |
|
1507 int8 TxBiPOffsetdB_2_4G; |
|
1508 int8 TxPerRatePowerLimits_2_4G_Normal[NUMBER_OF_RATE_GROUPS_E]; |
|
1509 int8 TxPerRatePowerLimits_2_4G_Degraded[NUMBER_OF_RATE_GROUPS_E]; |
|
1510 int8 TxPerRatePowerLimits_2_4G_Extreme[NUMBER_OF_RATE_GROUPS_E]; |
|
1511 int8 TxPerChannelPowerLimits_2_4G_11b[NUMBER_OF_2_4_G_CHANNELS]; |
|
1512 int8 TxPerChannelPowerLimits_2_4G_OFDM[NUMBER_OF_2_4_G_CHANNELS]; |
|
1513 int8 TxPDVsRateOffsets_2_4G[NUMBER_OF_RATE_GROUPS_E]; |
|
1514 uint8 TxIbiasTable_2_4G[NUMBER_OF_RATE_GROUPS_E]; |
|
1515 uint8 RxFemInsertionLoss_2_4G; |
|
1516 uint8 DegradedLowToNormalThr_2_4G; |
|
1517 uint8 NormalToDegradedHighThr_2_4G; |
|
1518 |
|
1519 /* SECTION 2: 5G parameters */ |
|
1520 uint16 TXBiPReferencePDvoltage_5G[NUMBER_OF_SUB_BANDS_IN_5G_BAND_E]; |
|
1521 uint8 TxBiPReferencePower_5G[NUMBER_OF_SUB_BANDS_IN_5G_BAND_E]; |
|
1522 int8 TxBiPOffsetdB_5G[NUMBER_OF_SUB_BANDS_IN_5G_BAND_E]; |
|
1523 int8 TxPerRatePowerLimits_5G_Normal[NUMBER_OF_RATE_GROUPS_E]; |
|
1524 int8 TxPerRatePowerLimits_5G_Degraded[NUMBER_OF_RATE_GROUPS_E]; |
|
1525 int8 TxPerRatePowerLimits_5G_Extreme[NUMBER_OF_RATE_GROUPS_E]; |
|
1526 int8 TxPerChannelPowerLimits_5G_OFDM[NUMBER_OF_5G_CHANNELS]; |
|
1527 int8 TxPDVsRateOffsets_5G[NUMBER_OF_RATE_GROUPS_E]; |
|
1528 int8 TxIbiasTable_5G[NUMBER_OF_RATE_GROUPS_E]; |
|
1529 uint8 RxFemInsertionLoss_5G[NUMBER_OF_SUB_BANDS_IN_5G_BAND_E]; |
|
1530 uint8 DegradedLowToNormalThr_5G; |
|
1531 uint8 NormalToDegradedHighThr_5G; |
|
1532 |
|
1533 }TDynRadioParams; |
|
1534 |
|
1535 typedef struct |
|
1536 { |
|
1537 TStatRadioParams tStatRadioParams; |
|
1538 TDynRadioParams tDynRadioParams; |
|
1539 uint8 Padding[2]; |
|
1540 |
|
1541 }IniFileRadioParam; |
|
1542 |
|
1543 /*\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\*/ |
|
1544 |
|
1545 /* Describes a reference design supported by the HDK Module */ |
|
1546 typedef struct HDKReferenceDesign_t |
|
1547 { |
|
1548 uint16 referenceDesignId; /* Reference design Id supported */ |
|
1549 uint8 nvsMajorVersion; /* First EEPROM version supported */ |
|
1550 uint8 nvsMinorVersion; |
|
1551 uint8 nvsMinorMinorVersion; |
|
1552 } THDKReferenceDesign; |
|
1553 |
|
1554 typedef struct HDKModuleVersion_t |
|
1555 { |
|
1556 uint8 ProductName; /* '6' for WiLink6, '4' for WiLink4 */ |
|
1557 uint8 PgNumber; /* Hardware tag */ |
|
1558 uint8 SoftwareVersionLevel; /* SW level number (Major SW change) */ |
|
1559 uint8 SoftwareVersionDelivery; /* Delivery number inside any (Inside any level) */ |
|
1560 |
|
1561 uint8 radioModuleType; /* The radio that is currently supported by the HDK module */ |
|
1562 uint8 numberOfReferenceDesignsSupported; /* The number of reference designs supported by the HDK module */ |
|
1563 THDKReferenceDesign* referenceDesignsSupported; /* Array of reference_design supported */ |
|
1564 |
|
1565 } THDKModuleVersion; |
|
1566 |
|
1567 #define FW_VERSION_LENGTH 5 |
|
1568 |
|
1569 typedef struct |
|
1570 { |
|
1571 THDKModuleVersion hdkVersion; |
|
1572 uint8 FWVersion[FW_VERSION_LENGTH]; |
|
1573 uint32 drpwVersion; |
|
1574 int16 oRadioStatus; |
|
1575 uint8 padding[3]; |
|
1576 }TFWVerisons; |
|
1577 |
|
1578 typedef struct |
|
1579 { |
|
1580 int16 RSSIVal; /* free running RSSI value, 1dB resolution */ |
|
1581 int16 oRadioStatus; |
|
1582 }TTestCmdFreeRSSI; |
|
1583 |
|
1584 typedef struct |
|
1585 { |
|
1586 TestCmdID_e testCmdId; |
|
1587 int8 padding[3]; |
|
1588 |
|
1589 /* Efil - when adding parameter here fill the switch case sentence in function |
|
1590 "cmdBld_CmdIeTest" in module "TWD\Ctrl\CmdBldCmdIE.c" */ |
|
1591 union |
|
1592 { |
|
1593 TTestCmdChannel Channel; |
|
1594 RadioRxPltCal RxPlt; |
|
1595 TTestCmdPdBufferCal PdBufferCal; |
|
1596 TTestCmdP2GCal P2GCal; |
|
1597 TTestCmdPdBufferErrors PdBufferErrors; |
|
1598 TTestCmdUpdateReferncePoint PdBufferCalReferencePoint; |
|
1599 TPacketParam TxPacketParams; |
|
1600 TToneParam TxToneParams; |
|
1601 TTxTemplate TxTemplateParams; |
|
1602 /*uint32 txGainAdjust; */ |
|
1603 TTxGainAdjust txGainAdjust; |
|
1604 RadioRxStatistics Statistics; |
|
1605 TFWVerisons fwVersions; |
|
1606 TTestCmdRunCalibration RunCalibration; |
|
1607 IniFileRadioParam IniFileRadioParams; |
|
1608 IniFileGeneralParam IniFileGeneralParams; |
|
1609 EfuseParameters_t EfuseParams; |
|
1610 TestToneParams_t TestToneParams; |
|
1611 TTestCmdPowerMode powerMode; |
|
1612 TTestCmdFreeRSSI freeRSSI; |
|
1613 TTestCmdCLPCCommands clpcCommands; |
|
1614 TTestCmdDCOItrimOnOff DCOitrimFeatureOnOff; |
|
1615 |
|
1616 TTestCmdDebug testDebug; |
|
1617 }testCmd_u; |
|
1618 }TTestCmd; |
|
1619 |
|
1620 |
|
1621 #ifndef HOST_IF_ENUMS_DISABLED |
|
1622 typedef enum RadioParamType_e |
|
1623 { |
|
1624 RADIO_PARAM_POWER_TABLE = 1, |
|
1625 RADIO_PARAM_POWER_LIMIT_TABLE, |
|
1626 RADIO_PARAM_POWER_ADJ_TABLE, |
|
1627 RADIO_PARAM_POWER_ENABLES, |
|
1628 RADIO_PABIAS_TABLE, |
|
1629 RADIO_PARAM_POWER_LEVELS, |
|
1630 |
|
1631 MAX_RADIO_PARAM_TYPE = 0x7FFFFFFF /* force this enum to be uint32 */ |
|
1632 |
|
1633 } RadioParamType_e; |
|
1634 #else |
|
1635 typedef uint32 RadioParamType_e; |
|
1636 #endif |
|
1637 |
|
1638 typedef struct RadioParam_t |
|
1639 { |
|
1640 RadioParamType_e parameterType; |
|
1641 int8 parameter[MAX_RADIO_PARAM_LEN]; |
|
1642 } RadioParam_t; |
|
1643 |
|
1644 typedef enum RadioState_e |
|
1645 { |
|
1646 RADIO_STATE_INIT = 1, /* Completed radio initialization */ |
|
1647 RADIO_STATE_TUNE = 2, /* Completed channel tuning */ |
|
1648 RADIO_STATE_DC_CAL = 3, /* Completed radio DC calibration */ |
|
1649 RADIO_STATE_AFE_DC_CAL =4, /* Completed AFE DC calibration */ |
|
1650 RADIO_STATE_TX_MM = 5, /* Completed transmit IQ mismatch calibration */ |
|
1651 RADIO_STATE_TX_EQUAL = 6, /* Completed transmit equalization calibration */ |
|
1652 RADIO_STATE_CARR_SUPP = 7, /* Completed carrier suppression calibration */ |
|
1653 RADIO_STATE_TX_PWR_CTRL = 8 /* Completed transmit power control calibration (only for bg and abg radios) */ |
|
1654 |
|
1655 } RadioState_e; |
|
1656 |
|
1657 typedef enum |
|
1658 { |
|
1659 PS_MODE_ENTER_ELP = 0x0, |
|
1660 PS_MODE_ENTER_PD = 0x1, |
|
1661 PS_MODE_EXIT_FROM_ELP = 0x2, |
|
1662 PS_MODE_EXIT_FROM_PD = 0x4, |
|
1663 PS_MODE_ENTER_ELP_SG_EN = 0x10, |
|
1664 PS_MODE_ENTER_PD_SG_EN = 0x11, |
|
1665 PS_MODE_EXIT_FROM_ELP_SG_EN = 0x12, |
|
1666 PS_MODE_EXIT_FROM_PD_SG_EN = 0x14, |
|
1667 PS_MODE_INVALID = 0xFF |
|
1668 |
|
1669 }PowerSaveMode_e; |
|
1670 |
|
1671 typedef struct RadioTune_t |
|
1672 { |
|
1673 Channel_e channel; |
|
1674 RadioBand_e band; |
|
1675 } RadioTune_t; |
|
1676 |
|
1677 typedef struct RadioRSSIAndSNR_t |
|
1678 { |
|
1679 int16 rssi; |
|
1680 int16 snr; |
|
1681 }RadioRSSIAndSNR_t; |
|
1682 |
|
1683 /* VBIAS values (in mili-volts) */ |
|
1684 typedef enum PHY_RADIO_VBIAS_MV_ENMT |
|
1685 { |
|
1686 FIRST_VBIAS_VALUE_E = -1, |
|
1687 |
|
1688 VBIAS_0MV_E = FIRST_VBIAS_VALUE_E, |
|
1689 VBIAS_100MV_E = 0, |
|
1690 VBIAS_200MV_E = 1, |
|
1691 VBIAS_300MV_E = 2, |
|
1692 VBIAS_400MV_E = 3, |
|
1693 VBIAS_500MV_E = 4, |
|
1694 VBIAS_600MV_E = 5, |
|
1695 VBIAS_700MV_E = 6, |
|
1696 VBIAS_800MV_E = 7, |
|
1697 |
|
1698 NUMBER_OF_VBIAS_VALUES_E = 9, |
|
1699 LAST_VBIAS_VALUE_E = (NUMBER_OF_VBIAS_VALUES_E - 1) |
|
1700 |
|
1701 }PHY_RADIO_VBIAS_MV_ENM; |
|
1702 |
|
1703 /* Gain monitor values */ |
|
1704 typedef enum PHY_RADIO_GAIN_MONITOR_TYPES_ENMT |
|
1705 { |
|
1706 FIRST_GAIN_MONITOR_TYPE_E, |
|
1707 GAIN_MONITOR_DISABLE = 0, |
|
1708 GAIN_MONITOR_RESERVED = 1, |
|
1709 /*_______________________________________________*/ |
|
1710 GAIN_MONITOR_X0_5_E = 2, |
|
1711 GAIN_MONITOR_X1_E = 3, |
|
1712 GAIN_MONITOR_X2_E = 4, |
|
1713 GAIN_MONITOR_X4_E = 5, |
|
1714 GAIN_MONITOR_X8_E = 6, |
|
1715 GAIN_MONITOR_X16_E = 7, |
|
1716 /*_______________________________________________*/ |
|
1717 NUMBER_OF_GAIN_MONITOR_TYPES_E = GAIN_MONITOR_X16_E, |
|
1718 LAST_GAIN_MONITOR_TYPE_E = (NUMBER_OF_GAIN_MONITOR_TYPES_E - 1) |
|
1719 |
|
1720 }PHY_RADIO_GAIN_MONITOR_TYPES_ENM; |
|
1721 |
|
1722 |
|
1723 /* TX Packet Mode; */ |
|
1724 typedef enum |
|
1725 { |
|
1726 eTX_MODE_SINGLE_PACKET, /* 0 */ |
|
1727 eTX_MODE_MULTIPLE_PACKET, /* 1 */ |
|
1728 eTX_MODE_INFINITE_LENGTH_PACKET, /* 2 */ |
|
1729 eTX_MODE_CONTINUES_PACKET, /* 3 */ |
|
1730 eTX_MODE_FCC_PACKET, /* 4 */ |
|
1731 eTX_MODE_SENARIO_PACKET, /* 5 */ |
|
1732 |
|
1733 eMAX_PACKET_MODE_PACKET |
|
1734 }PacketTypeMode; |
|
1735 |
|
1736 /* TX tone mode */ |
|
1737 typedef enum |
|
1738 { |
|
1739 eSILENCE_TONE_MODE, |
|
1740 eCARRIER_FEED_THROUGH_MODE, |
|
1741 eSINGLE_TONE_MODE, |
|
1742 eTWO_TONE_MODE, |
|
1743 eMULTI_TONE_MODE, |
|
1744 |
|
1745 eMax_TONE_MODE |
|
1746 }ToneTypeMode; |
|
1747 |
|
1748 |
|
1749 /**********************************************************************/ |
|
1750 /* For RSSI Calculation - Save Parameters */ |
|
1751 /**********************************************************************/ |
|
1752 |
|
1753 typedef struct |
|
1754 { |
|
1755 uint16 linerEvmVal; |
|
1756 uint16 ccaEcalcMonReg; |
|
1757 uint16 ccaEcalcRssi; |
|
1758 uint16 linerEvmPilVal; |
|
1759 uint8 lanTableIndex; |
|
1760 uint8 taTableIndex; |
|
1761 uint8 lnaTableIndex; |
|
1762 RADIO_SUB_BAND_TYPE_ENM currSubBand; |
|
1763 RADIO_BAND_TYPE_ENM currBand; |
|
1764 }rssiParamSave_t; |
|
1765 |
|
1766 |
|
1767 |
|
1768 #endif /* #ifndef PUBLIC_RADIO */ |