TWD/FirmwareApi/public_radio.h
changeset 0 10c42ec6c05f
equal deleted inserted replaced
-1:000000000000 0:10c42ec6c05f
       
     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 */