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