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 */ 95typedef 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. */ 111typedef 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. */ 139typedef 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 163typedef struct 164{ 165 uint8 uDbm[NUMBER_OF_SUB_BANDS_E][NUM_OF_POWER_LEVEL]; 166} TpowerLevelTable_t; 167 168/* Channel number */ 169typedef 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 */ 257typedef 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 440typedef 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 459typedef 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 475typedef 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 524typedef 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******************************************************************************/ 561typedef 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 571typedef uint32 RadioRuntimeCalState_e; 572#else 573typedef RadioRuntimeCalState_enum RadioRuntimeCalState_e; 574#endif 575 576/************************************************************************/ 577/* */ 578/* Commands section */ 579/* */ 580/************************************************************************/ 581typedef 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 589typedef struct 590{ 591 uint8 refTxPower; 592 uint8 band; 593 uint8 channel; 594 uint8 padding; 595}RadioPltTxCalibrationRequest_t; 596 597 598/****************************************************************************** 599 600Name: PowerLevelTable_t 601Desc: Retrieve Maximum Dbm per power level and sub-band. 602Type: Configuration 603Access: Read Only 604Length: 20 605 606******************************************************************************/ 607typedef 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 */ 613typedef struct 614{ 615 int8 desiredTone; 616 int8 desiredGain; 617 uint8 mode; 618 uint8 padding; 619} TestToneParams_t; 620 621typedef 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 634typedef 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" */ 673typedef 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 726typedef 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 */ 733typedef 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 */ 740typedef 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 748typedef 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 766typedef uint8 TestCmdID_e; 767#else 768typedef TestCmdID_enum TestCmdID_e; 769#endif 770 771/******************************************************************************/ 772typedef 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 785typedef uint8 FccTestType_e; 786#else 787typedef 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 810typedef 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******************************************************************************/ 833typedef 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 878typedef 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 941typedef struct 942{ 943 uint8 iBand; 944 uint8 iChannel; 945 int16 oRadioStatus; 946} TTestCmdChannel; 947 948typedef struct TTestCmdPdBufferCalStruct 949{ 950 uint8 iGain; 951 uint8 iVBias; 952 int16 oAdcCodeword; 953 int16 oRadioStatus; 954 uint8 Padding[2]; 955} TTestCmdPdBufferCal; 956 957typedef struct 958{ 959 int8 vBIASerror; 960 int8 gainError; 961 uint8 padding[2]; 962}TTestCmdPdBufferErrors; 963 964typedef struct 965{ 966 int32 iReferencePointPower; 967 int32 iReferencePointDetectorValue; 968 uint8 isubBand; 969 uint8 padding[3]; 970}TTestCmdUpdateReferncePoint; 971 972typedef struct 973{ 974 int16 oRadioStatus; 975 uint8 iCalibratonType; 976 uint8 Padding; 977 978} TTestCmdRunCalibration; 979 980typedef enum 981{ 982 eDISABLE_LIMIT_POWER, 983 eENABLE_LIMIT_POWER 984}UseIniFileLimitPower; 985 986typedef struct 987{ 988 int32 iTxGainValue; 989 int16 oRadioStatus; 990 uint8 iUseinifilelimitPower; 991 uint8 padding; 992} TTxGainAdjust; 993 994/* TXPWR_CFG0__VGA_STEP_GAIN_E */ 995typedef 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 1131typedef 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 1146typedef 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 1154typedef 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 1163typedef 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 1209typedef 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 1226typedef 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 1235typedef enum 1236{ 1237 eDISABLE_CLPC, 1238 eENABLE_CLPC, 1239 eRESET_CLPC_TABLES, 1240 eINIDCATE_CLPC_ACTIVATION_TIME 1241}CLPCCommands; 1242 1243typedef 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************************************************************************/ 1260typedef 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 1268typedef 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 1280typedef 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) 1295typedef 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 */ 1306typedef 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 */ 1325typedef 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 1347typedef 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 1361typedef enum 1362{ 1363 FEM_MANUAL_DETECT_MODE_E, 1364 FEM_AUTO_DETECT_MODE_E 1365 1366}FEM_DETECT_MODE_ENM; 1367 1368typedef enum 1369{ 1370 FEM_RFMD_TYPE_E, 1371 FEM_TRIQUINT_TYPE_E, 1372 NUMBER_OF_FEM_TYPES_E 1373 1374}FEM_TYPE_ENM; 1375 1376typedef 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 1385typedef enum 1386{ 1387 REF_CLK_NOT_VALID_E, 1388 REF_CLK_VALID_AND_STABLE_E 1389 1390}CLK_VALID_ON_WAKEUP_ENM; 1391 1392typedef enum 1393{ 1394 BT_SPI_IS_NOT_USED_E, 1395 MUX_DC2DC_TO_BT_FUNC2_E 1396 1397}DC2DC_MODE_ENM; 1398 1399typedef enum 1400{ 1401 SINGLE_BAND_SOLUTION_E, 1402 DUAL_BAND_SOLUTION_E 1403 1404}SINGLE_DUAL_BAND_SOLUTION_ENM; 1405 1406/* General settings byte */ 1407typedef enum 1408{ 1409 TELEC_CHAN_14_OFF_E, 1410 TELEC_CHAN_14_ON_E 1411 1412}TELEC_CHAN_14_ENM; 1413 1414typedef 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 1427typedef 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 1441typedef 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 1468typedef 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 */ 1479typedef 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 1487typedef 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 1502typedef struct 1503{ 1504 THDKModuleVersion hdkVersion; 1505 uint8 FWVersion[FW_VERSION_LENGTH]; 1506 uint32 drpwVersion; 1507 int16 oRadioStatus; 1508 uint8 padding[3]; 1509}TFWVerisons; 1510 1511typedef struct 1512{ 1513 int16 RSSIVal; /* free running RSSI value, 1dB resolution */ 1514 int16 oRadioStatus; 1515}TTestCmdFreeRSSI; 1516 1517typedef 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 1554typedef 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 1567typedef uint32 RadioParamType_e; 1568#endif 1569 1570typedef struct RadioParam_t 1571{ 1572 RadioParamType_e parameterType; 1573 int8 parameter[MAX_RADIO_PARAM_LEN]; 1574} RadioParam_t; 1575 1576typedef 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 1589typedef 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 1603typedef struct RadioTune_t 1604{ 1605 Channel_e channel; 1606 RadioBand_e band; 1607} RadioTune_t; 1608 1609typedef struct RadioRSSIAndSNR_t 1610{ 1611 int16 rssi; 1612 int16 snr; 1613}RadioRSSIAndSNR_t; 1614 1615/* VBIAS values (in mili-volts) */ 1616typedef 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 */ 1636typedef 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; */ 1656typedef 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 */ 1669typedef 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 1685typedef 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