| /* |
| * public_radio.h |
| * |
| * Copyright(c) 1998 - 2009 Texas Instruments. All rights reserved. |
| * All rights reserved. |
| * |
| * Redistribution and use in source and binary forms, with or without |
| * modification, are permitted provided that the following conditions |
| * are met: |
| * |
| * * Redistributions of source code must retain the above copyright |
| * notice, this list of conditions and the following disclaimer. |
| * * Redistributions in binary form must reproduce the above copyright |
| * notice, this list of conditions and the following disclaimer in |
| * the documentation and/or other materials provided with the |
| * distribution. |
| * * Neither the name Texas Instruments nor the names of its |
| * contributors may be used to endorse or promote products derived |
| * from this software without specific prior written permission. |
| * |
| * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS |
| * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT |
| * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR |
| * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT |
| * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |
| * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT |
| * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, |
| * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |
| * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
| * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
| * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
| */ |
| |
| /********************************************************************************************************************** |
| FILENAME: public_radio.h |
| |
| DESCRIPTION: Contains information element defines/structures used by the TNETxxxx and host and Radio Module. |
| This is a PUBLIC header, which customers will use. |
| ***********************************************************************************************************************/ |
| /* |
| ======================================================================================================================= |
| R E V I S I O N H I S T O R Y |
| |
| 04/29/05 BRK 1. retrieved from ClearCase and added this rev. history |
| 2. added two new entries to RadioParamType_e enum |
| 3. increased MAX_RADIO_PARAM_POWER_TABLE (from 20 to 56) |
| - this is sort of a kludge, struct RadioParam_t should have used an |
| array pointer instead of an actual data block |
| 06/10/05 BRK changed MAX_RADIO_PARAM_POWER_TABLE for 1251 support (sort of a KLUDGE) |
| 07/15/05 BRK added RADIO_PABIAS_TABLE entry to RadioParamType_e enum |
| 04/12/06 MH Added new run-time calibration state: RFPLL_CALIBRATION_NEEDED |
| |
| Note: This code should only be edited with TAB stops set at 4 |
| ======================================================================================================================= |
| */ |
| #ifndef PUBLIC_RADIO |
| #define PUBLIC_RADIO |
| |
| #include "public_types.h" |
| #define MAC_ADDR_SIZE 6 |
| /* typedef uint8 TMacAddr[MAC_ADDR_SIZE]; */ |
| /************************************************************************/ |
| /* */ |
| /* Definitions section */ |
| /* */ |
| /************************************************************************/ |
| /* radio parameter to set */ |
| #ifdef TNETW1251 |
| #define MAX_RADIO_PARAM_POWER_TABLE (4*48) /* cPowLmtTbl[] max size for ABG radios */ |
| #else |
| #define MAX_RADIO_PARAM_POWER_TABLE (56) /* cPowLmtTbl[] max size for BG radios*/ |
| #endif |
| #define MAX_RADIO_PARAM_LEN (MAX_RADIO_PARAM_POWER_TABLE) |
| |
| #define RADIO_PARAM_POWER_TABLE_ENABLE (0x01) /* mask for RADIO_PARAM_POWER_ENABLES usage*/ |
| #define RADIO_PARAM_POWER_LIMIT_TABLE_ENABLE (0x02) /* mask for RADIO_PARAM_POWER_ENABLES usage*/ |
| #define RADIO_PARAM_POWER_ADJ_TABLE_ENABLE (0x04) /* mask for RADIO_PARAM_POWER_ENABLES usage*/ |
| |
| #define NUM_OF_POWER_LEVEL (4) |
| |
| |
| #define TX_TEMPLATE_MAX_BUF_LEN (512) |
| |
| #define RX_PLT_LNA_STEPS_BUF_LEN (4) |
| #define RX_PLT_TA_STEPS_BUF_LEN (4) |
| |
| #define RX_STAT_PACKETS_PER_MESSAGE (20) |
| |
| #define MULTIPLE_PACKET_SIZE 1024 |
| #define MAX_TX_PACKET_SIZE_11_B (2 * MULTIPLE_PACKET_SIZE) |
| #define MAX_TX_PACKET_SIZE_11_G (4 * MULTIPLE_PACKET_SIZE) |
| #define MAX_TX_PACKET_SIZE_11_N (8 * MULTIPLE_PACKET_SIZE) /* must be PDU */ |
| |
| /* Radio Band */ |
| typedef enum |
| { |
| eELEVEN_A_B, |
| eELEVEN_A_G, |
| eELEVEN_N, |
| |
| MAX_MODULATION |
| }Modulation; |
| |
| /************************************************************************/ |
| /* */ |
| /* Enumerations section */ |
| /* */ |
| /************************************************************************/ |
| |
| /* Radio band types. */ |
| typedef enum RADIO_BAND_TYPE_ENMT |
| { |
| FIRST_BAND_TYPE_E, |
| /*______________________________________*/ |
| |
| _2_4_G_BAND_TYPE_E = FIRST_BAND_TYPE_E, |
| _5_G_BAND_TYPE_E, |
| /*_______________________________________________*/ |
| UNUSED_BAND_TYPE_E, |
| NUMBER_OF_BANDS_E = UNUSED_BAND_TYPE_E, |
| LAST_BAND_TYPE_E = (NUMBER_OF_BANDS_E - 1) |
| |
| }RADIO_BAND_TYPE_ENM; |
| |
| |
| #define RADIO_BAND_2_4GHZ_BASE_FREQUENCY 2407 |
| #define RADIO_BAND_JAPAN_4_9_GHZ_BASE_FREQUENCY 5000 |
| #define RADIO_BAND_5GHZ_BASE_FREQUENCY 5000 |
| |
| #define RADIO_BAND_2_4GHZ_MULTIPLE_BASE_FREQUENCY 5 |
| #define RADIO_BAND_JAPAN_4_9_GHZ_MULTIPLE_BASE_FREQUENCY (-5) |
| #define RADIO_BAND_5GHZ_MULTIPLE_BASE_FREQUENCY 5 |
| |
| #define GIGA_HZ_TO_MEGA_HZ 1000 |
| |
| |
| |
| /* Radio sub-band types. */ |
| typedef enum RADIO_SUB_BAND_TYPE_ENMT |
| { |
| FIRST_SUB_BAND_TYPE_E, |
| /*______________________________________*/ |
| |
| _2_4_G_SUB_BAND_TYPE_E = FIRST_SUB_BAND_TYPE_E, /* band b/g */ |
| FIRST_SUB_BANDS_IN_5G_BAND_E, |
| 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) */ |
| MID_JAPAN_4_9_G_SUB_BAND_TYPE_E, /* band 4.9Ghz (Japan) mid sub-band(J8,J12,J16) */ |
| HIGH_JAPAN_4_9_G_SUB_BAND_TYPE_E, /* band 4.9Ghz (Japan) high sub-band(J34,36,J38,40, J42, 44, J46,48) */ |
| _5_G_FIRST_SUB_BAND_TYPE_E, /* band 5GHz 1st sub-band(52->64 in steps of 4) */ |
| _5_G_SECOND_SUB_BAND_TYPE_E, /* band 5GHz 2nd sub-band(100->116 in steps of 4) */ |
| _5_G_THIRD_SUB_BAND_TYPE_E, /* band 5GHz 3rd sub-band(120->140 in steps of 4) */ |
| _5_G_FOURTH_SUB_BAND_TYPE_E, /* band 5GHz 4th sub-band(149->165 in steps of 4) */ |
| LAST_SUB_BANDS_IN_5G_BAND_E = _5_G_FOURTH_SUB_BAND_TYPE_E, |
| /*_______________________________________________*/ |
| UNUSED_SUB_BAND_TYPE_E, |
| NUMBER_OF_SUB_BANDS_E = UNUSED_SUB_BAND_TYPE_E, |
| LAST_SUB_BAND_TYPE_E = (NUMBER_OF_SUB_BANDS_E - 1) |
| |
| }RADIO_SUB_BAND_TYPE_ENM; |
| |
| #define NUMBER_OF_SUB_BANDS_IN_5G_BAND_E (LAST_SUB_BANDS_IN_5G_BAND_E - FIRST_SUB_BANDS_IN_5G_BAND_E + 1) |
| |
| typedef struct |
| { |
| uint8 uDbm[NUMBER_OF_SUB_BANDS_E][NUM_OF_POWER_LEVEL]; |
| } TpowerLevelTable_t; |
| |
| /* Channel number */ |
| typedef enum RADIO_CHANNEL_NUMBER_ENMT |
| { |
| /*---------------------------------*/ |
| /* _2_4_G_SUB_BAND_TYPE_E */ |
| /*---------------------------------*/ |
| |
| /* index 0 */ RADIO_CHANNEL_INDEX_0_NUMBER_1_E = 1, |
| /* index 1 */ RADIO_CHANNEL_INDEX_1_NUMBER_2_E = 2, |
| /* index 2 */ RADIO_CHANNEL_INDEX_2_NUMBER_3_E = 3, |
| /* index 3 */ RADIO_CHANNEL_INDEX_3_NUMBER_4_E = 4, |
| /* index 4 */ RADIO_CHANNEL_INDEX_4_NUMBER_5_E = 5, |
| /* index 5 */ RADIO_CHANNEL_INDEX_5_NUMBER_6_E = 6, |
| /* index 6 */ RADIO_CHANNEL_INDEX_6_NUMBER_7_E = 7, |
| /* index 7 */ RADIO_CHANNEL_INDEX_7_NUMBER_8_E = 8, |
| /* index 8 */ RADIO_CHANNEL_INDEX_8_NUMBER_9_E = 9, |
| /* index 9 */ RADIO_CHANNEL_INDEX_9_NUMBER_10_E = 10, |
| /* index 10 */ RADIO_CHANNEL_INDEX_10_NUMBER_11_E = 11, |
| /* index 11 */ RADIO_CHANNEL_INDEX_11_NUMBER_12_E = 12, |
| /* index 12 */ RADIO_CHANNEL_INDEX_12_NUMBER_13_E = 13, |
| /* index 13 */ RADIO_CHANNEL_INDEX_13_NUMBER_14_E = 14, |
| |
| /*---------------------------------*/ |
| /* LOW_JAPAN_4_9_G_SUB_BAND_TYPE_E */ |
| /*---------------------------------*/ |
| /* index 14 */ RADIO_CHANNEL_INDEX_14_NUMBER_J1_E = 16, |
| /* index 15 */ RADIO_CHANNEL_INDEX_15_NUMBER_J2_E = 12, |
| /* index 16 */ RADIO_CHANNEL_INDEX_16_NUMBER_J3_E = 8, |
| /* index 17 */ RADIO_CHANNEL_INDEX_17_NUMBER_J4_E = 4, |
| |
| /*---------------------------------*/ |
| /* MID_JAPAN_4_9_G_SUB_BAND_TYPE_E */ |
| /*---------------------------------*/ |
| /* index 18 */ RADIO_CHANNEL_INDEX_18_NUMBER_J8_E = 8, |
| /* index 19 */ RADIO_CHANNEL_INDEX_19_NUMBER_J12_E = 12, |
| /* index 20 */ RADIO_CHANNEL_INDEX_20_NUMBER_J16_E = 16, |
| |
| /*----------------------------------*/ |
| /* HIGH_JAPAN_4_9_G_SUB_BAND_TYPE_E */ |
| /*----------------------------------*/ |
| /* index 21 */ RADIO_CHANNEL_INDEX_21_NUMBER_J34_E = 34, |
| /* index 22 */ RADIO_CHANNEL_INDEX_22_NUMBER_36_E = 36, |
| /* index 23 */ RADIO_CHANNEL_INDEX_23_NUMBER_J38_E = 38, |
| /* index 24 */ RADIO_CHANNEL_INDEX_24_NUMBER_40_E = 40, |
| /* index 25 */ RADIO_CHANNEL_INDEX_25_NUMBER_J42_E = 42, |
| /* index 26 */ RADIO_CHANNEL_INDEX_26_NUMBER_44_E = 44, |
| /* index 27 */ RADIO_CHANNEL_INDEX_27_NUMBER_J46_E = 46, |
| /* index 28 */ RADIO_CHANNEL_INDEX_28_NUMBER_48_E = 48, |
| |
| /*---------------------------------*/ |
| /* _5_G_FIRST_SUB_BAND_TYPE_E */ |
| /*---------------------------------*/ |
| /* index 29 */ RADIO_CHANNEL_INDEX_29_NUMBER_52_E = 52, |
| /* index 30 */ RADIO_CHANNEL_INDEX_30_NUMBER_56_E = 56, |
| /* index 31 */ RADIO_CHANNEL_INDEX_31_ENUMBER_60_E = 60, |
| /* index 32 */ RADIO_CHANNEL_INDEX_32_ENUMBER_64_E = 64, |
| |
| /*---------------------------------*/ |
| /* _5_G_SECOND_SUB_BAND_TYPE_E */ |
| /*---------------------------------*/ |
| /* index 33 */ RADIO_CHANNEL_INDEX_33_NUMBER_100_E = 100, |
| /* index 34 */ RADIO_CHANNEL_INDEX_34_NUMBER_104_E = 104, |
| /* index 35 */ RADIO_CHANNEL_INDEX_35_NUMBER_108_E = 108, |
| /* index 36 */ RADIO_CHANNEL_INDEX_36_NUMBER_112_E = 112, |
| /* index 37 */ RADIO_CHANNEL_INDEX_37_NUMBER_116_E = 116, |
| |
| /*---------------------------------*/ |
| /* _5_G_THIRD_SUB_BAND_TYPE_E */ |
| /*---------------------------------*/ |
| /* index 38 */ RADIO_CHANNEL_INDEX_38_NUMBER_120_E = 120, |
| /* index 39 */ RADIO_CHANNEL_INDEX_39_NUMBER_124_E = 124, |
| /* index 40 */ RADIO_CHANNEL_INDEX_40_NUMBER_128_E = 128, |
| /* index 41 */ RADIO_CHANNEL_INDEX_41_NUMBER_132_E = 132, |
| /* index 42 */ RADIO_CHANNEL_INDEX_42_NUMBER_136_E = 136, |
| /* index 43 */ RADIO_CHANNEL_INDEX_43_NUMBER_140_E = 140, |
| |
| |
| /*---------------------------------*/ |
| /* _5_G_FOURTH_SUB_BAND_TYPE_E */ |
| /*---------------------------------*/ |
| /* index 44 */ RADIO_CHANNEL_INDEX_44_NUMBER_149_E = 149, |
| /* index 45 */ RADIO_CHANNEL_INDEX_45_NUMBER_153_E = 153, |
| /* index 46 */ RADIO_CHANNEL_INDEX_46_NUMBER_157_E = 157, |
| /* index 47 */ RADIO_CHANNEL_INDEX_47_NUMBER_161_E = 161, |
| /* index 48 */ RADIO_CHANNEL_INDEX_48_NUMBER_165_E = 165 |
| |
| }RADIO_CHANNEL_NUMBER_ENM; |
| |
| /* Radio channels */ |
| typedef enum RADIO_CHANNEL_INDEX_ENMT |
| { |
| FIRST_RADIO_CHANNEL_INDEX_E, |
| /*______________________________________*/ |
| |
| /*---------------------------------*/ |
| /* _2_4_G_SUB_BAND_TYPE_E */ |
| /*---------------------------------*/ |
| FIRST_2_4_G_BAND_RADIO_CHANNEL_INDEX_E = FIRST_RADIO_CHANNEL_INDEX_E, /* 0 */ |
| FIRST_2_4_G_SUB_BAND_RADIO_CHANNEL_INDEX_E = FIRST_2_4_G_BAND_RADIO_CHANNEL_INDEX_E, /* 0 */ |
| |
| /* Channels 0-13 indexes in the FW are 1-14 channels number in the RS */ |
| RADIO_CHANNEL_INDEX_0_E = FIRST_2_4_G_SUB_BAND_RADIO_CHANNEL_INDEX_E,/* 0 */ |
| RADIO_CHANNEL_INDEX_1_E, /* 1 */ |
| RADIO_CHANNEL_INDEX_2_E, /* 2 */ |
| RADIO_CHANNEL_INDEX_3_E, /* 3 */ |
| RADIO_CHANNEL_INDEX_4_E, /* 4 */ |
| RADIO_CHANNEL_INDEX_5_E, /* 5 */ |
| RADIO_CHANNEL_INDEX_6_E, /* 6 */ |
| RADIO_CHANNEL_INDEX_7_E, /* 7 */ |
| RADIO_CHANNEL_INDEX_8_E, /* 8 */ |
| RADIO_CHANNEL_INDEX_9_E, /* 9 */ |
| RADIO_CHANNEL_INDEX_10_E, /* 10 */ |
| RADIO_CHANNEL_INDEX_11_E, /* 11 */ |
| RADIO_CHANNEL_INDEX_12_E, /* 12 */ |
| RADIO_CHANNEL_INDEX_13_E, /* 13 */ |
| LAST_2_4_G_SUB_BAND_RADIO_CHANNEL_INDEX_E = RADIO_CHANNEL_INDEX_13_E, /* 13 */ |
| LAST_2_4_G_BAND_RADIO_CHANNEL_INDEX_E = LAST_2_4_G_SUB_BAND_RADIO_CHANNEL_INDEX_E, /* 13 */ |
| NUMBER_OF_2_4_G_CHANNEL_INDICES_E = LAST_2_4_G_BAND_RADIO_CHANNEL_INDEX_E, /* 13 */ |
| |
| /*---------------------------------*/ |
| /* LOW_JAPAN_4_9_G_SUB_BAND_TYPE_E */ |
| /*---------------------------------*/ |
| FIRST_5_G_BAND_RADIO_CHANNEL_INDEX_E, /* 14 */ |
| FIRST_LOW_JAPAN_4_9_G_SUB_BAND_RADIO_CHANNEL_INDEX_E = FIRST_5_G_BAND_RADIO_CHANNEL_INDEX_E, /* 14 */ |
| |
| /* Channels 14-17 indexes in the FW are J1-J4 channels number in the RS */ |
| RADIO_CHANNEL_INDEX_14_E = FIRST_LOW_JAPAN_4_9_G_SUB_BAND_RADIO_CHANNEL_INDEX_E, /* 14 */ |
| RADIO_CHANNEL_INDEX_15_E, /* 15 */ |
| RADIO_CHANNEL_INDEX_16_E, /* 16 */ |
| RADIO_CHANNEL_INDEX_17_E, /* 17 */ |
| LAST_LOW_JAPAN_4_9_G_SUB_BAND_RADIO_CHANNEL_INDEX_E = RADIO_CHANNEL_INDEX_17_E, /* 17 */ |
| |
| /*---------------------------------*/ |
| /* MID_JAPAN_4_9_G_SUB_BAND_TYPE_E */ |
| /*---------------------------------*/ |
| FIRST_MID_JAPAN_4_9_G_SUB_BAND_RADIO_CHANNEL_INDEX_E, /* 18 */ |
| |
| /* Channel 18 index in the FW is channel number J8 in the RS */ |
| RADIO_CHANNEL_INDEX_18_E = FIRST_MID_JAPAN_4_9_G_SUB_BAND_RADIO_CHANNEL_INDEX_E, /* 18 */ |
| |
| /* Channel 19 index in the FW is channel number J12 in the RS */ |
| RADIO_CHANNEL_INDEX_19_E, /* 19 */ |
| |
| /* Channel 20 index in the FW is channel number J16 in the RS */ |
| RADIO_CHANNEL_INDEX_20_E, /* 20 */ |
| LAST_MID_JAPAN_4_9_G_SUB_BAND_RADIO_CHANNEL_INDEX_E = RADIO_CHANNEL_INDEX_20_E, /* 20 */ |
| |
| /*----------------------------------*/ |
| /* HIGH_JAPAN_4_9_G_SUB_BAND_TYPE_E */ |
| /*----------------------------------*/ |
| FIRST_HIGH_JAPAN_4_9_G_SUB_BAND_RADIO_CHANNEL_INDEX_E, /* 21 */ |
| |
| /* Channel 21 index in the FW is channel number J34 in the RS */ |
| RADIO_CHANNEL_INDEX_21_E = FIRST_HIGH_JAPAN_4_9_G_SUB_BAND_RADIO_CHANNEL_INDEX_E, /* 21 */ |
| |
| /* Channel 22 index in the FW is channel number 36 in the RS */ |
| RADIO_CHANNEL_INDEX_22_E, /* 22 */ |
| |
| /* Channel 23 index in the FW is channel number J38 in the RS */ |
| RADIO_CHANNEL_INDEX_23_E, /* 23 */ |
| |
| /* Channel 24 index in the FW is channel number 40 in the RS */ |
| RADIO_CHANNEL_INDEX_24_E, /* 24 */ |
| |
| /* Channel 25 index in the FW is channel number J42 in the RS */ |
| RADIO_CHANNEL_INDEX_25_E, /* 25 */ |
| |
| /* Channel 26 index in the FW is channel number 44 in the RS */ |
| RADIO_CHANNEL_INDEX_26_E, /* 26 */ |
| |
| /* Channel 27 index in the FW is channel number J46 in the RS */ |
| RADIO_CHANNEL_INDEX_27_E, /* 27 */ |
| |
| /* Channel 28 index in the FW is channel number 48 in the RS */ |
| RADIO_CHANNEL_INDEX_28_E, /* 28 */ |
| LAST_HIGH_JAPAN_4_9_G_SUB_BAND_RADIO_CHANNEL_INDEX_E = RADIO_CHANNEL_INDEX_28_E, /* 28 */ |
| LAST_JAPAN_4_9_G_SUB_BAND_RADIO_CHANNEL_INDEX_E = LAST_HIGH_JAPAN_4_9_G_SUB_BAND_RADIO_CHANNEL_INDEX_E, /* 28 */ |
| /*---------------------------------*/ |
| /* _5_G_FIRST_SUB_BAND_TYPE_E */ |
| /*---------------------------------*/ |
| FIRST_5_G_FIRST_SUB_BAND_RADIO_CHANNEL_INDEX_E, /* 29 */ |
| |
| /* Channel 29 index in the FW is channel number 52 in the RS */ |
| RADIO_CHANNEL_INDEX_29_E = FIRST_5_G_FIRST_SUB_BAND_RADIO_CHANNEL_INDEX_E, /* 29 */ |
| |
| /* Channel 30 index in the FW is channel number 56 in the RS */ |
| RADIO_CHANNEL_INDEX_30_E, /* 30 */ |
| |
| /* Channel 31 index in the FW is channel number 60 in the RS */ |
| RADIO_CHANNEL_INDEX_31_E, /* 31 */ |
| |
| /* Channel 32 index in the FW is channel number 64 in the RS */ |
| RADIO_CHANNEL_INDEX_32_E, /* 32 */ |
| LAST_5_G_FIRST_SUB_BAND_RADIO_CHANNEL_INDEX_E = RADIO_CHANNEL_INDEX_32_E, /* 32 */ |
| |
| /*---------------------------------*/ |
| /* _5_G_SECOND_SUB_BAND_TYPE_E */ |
| /*---------------------------------*/ |
| FIRST_5_G_SECOND_SUB_BAND_RADIO_CHANNEL_INDEX_E, /* 33 */ |
| |
| /* Channel 33 index in the FW is channel number 100 in the RS */ |
| RADIO_CHANNEL_INDEX_33_E = FIRST_5_G_SECOND_SUB_BAND_RADIO_CHANNEL_INDEX_E, /* 33 */ |
| |
| /* Channel 34 index in the FW is channel number 104 in the RS */ |
| RADIO_CHANNEL_INDEX_34_E, /* 34 */ |
| |
| /* Channel 35 index in the FW is channel number 108 in the RS */ |
| RADIO_CHANNEL_INDEX_35_E, /* 35 */ |
| |
| /* Channel 36 index in the FW is channel number 112 in the RS */ |
| RADIO_CHANNEL_INDEX_36_E, /* 36 */ |
| |
| /* Channel 37 index in the FW is channel number 116 in the RS */ |
| RADIO_CHANNEL_INDEX_37_E, /* 37 */ |
| LAST_5_G_SECOND_SUB_BAND_RADIO_CHANNEL_INDEX_E = RADIO_CHANNEL_INDEX_37_E, /* 37 */ |
| |
| /*---------------------------------*/ |
| /* _5_G_THIRD_SUB_BAND_TYPE_E */ |
| /*---------------------------------*/ |
| FIRST_5_G_THIRD_SUB_BAND_RADIO_CHANNEL_INDEX_E, /* 38 */ |
| |
| /* Channel 38 index in the FW is channel number 120 in the RS */ |
| RADIO_CHANNEL_INDEX_38_E = FIRST_5_G_THIRD_SUB_BAND_RADIO_CHANNEL_INDEX_E, /* 38 */ |
| |
| /* Channel 39 index in the FW is channel number 124 in the RS */ |
| RADIO_CHANNEL_INDEX_39_E, /* 39 */ |
| |
| /* Channel 40 index in the FW in the FW is channel number 128 in the RS */ |
| RADIO_CHANNEL_INDEX_40_E, /* 40 */ |
| |
| /* Channel 41 index in the FW is channel number 132 in the RS */ |
| RADIO_CHANNEL_INDEX_41_E, /* 41 */ |
| |
| /* Channel 42 index in the FW is channel number 136 in the RS */ |
| RADIO_CHANNEL_INDEX_42_E, /* 42 */ |
| |
| /* Channel 43 index in the FW is channel number 140 in the RS */ |
| RADIO_CHANNEL_INDEX_43_E, /* 43 */ |
| LAST_5_G_THIRD_SUB_BAND_RADIO_CHANNEL_INDEX_E = RADIO_CHANNEL_INDEX_43_E, /* 43 */ |
| |
| /*---------------------------------*/ |
| /* _5_G_FOURTH_SUB_BAND_TYPE_E */ |
| /*---------------------------------*/ |
| FIRST_5_G_FOURTH_SUB_BAND_RADIO_CHANNEL_INDEX_E, /* 44 */ |
| |
| /* Channel 44 index in the FW is channel number 149 in the RS */ |
| RADIO_CHANNEL_INDEX_44_E = FIRST_5_G_FOURTH_SUB_BAND_RADIO_CHANNEL_INDEX_E, /* 44 */ |
| |
| /* Channel 45 index in the FW is channel number 153 in the RS */ |
| RADIO_CHANNEL_INDEX_45_E, /* 45 */ |
| |
| /* Channel 46 index in the FW is channel number 157 in the RS */ |
| RADIO_CHANNEL_INDEX_46_E, /* 46 */ |
| |
| /* Channel 47 index in the FW is channel number 161 in the RS */ |
| RADIO_CHANNEL_INDEX_47_E, /* 47 */ |
| |
| /* Channel 48 index in the FW is channel number 165 in the RS */ |
| RADIO_CHANNEL_INDEX_48_E, /* 48 */ |
| LAST_5_G_FOURTH_SUB_BAND_RADIO_CHANNEL_INDEX_E = RADIO_CHANNEL_INDEX_48_E, /* 48 */ |
| LAST_5_G_BAND_RADIO_CHANNEL_INDEX_E = LAST_5_G_FOURTH_SUB_BAND_RADIO_CHANNEL_INDEX_E, /* 48 */ |
| /*_______________________________________________*/ |
| |
| UNUSED_RADIO_CHANNEL_INDEX_E, /* 49 */ |
| NUMBER_OF_RADIO_CHANNEL_INDEXS_E = UNUSED_RADIO_CHANNEL_INDEX_E, /* 49 */ |
| LAST_RADIO_CHANNEL_INDEX_E = (NUMBER_OF_RADIO_CHANNEL_INDEXS_E - 1) /* 48 */ |
| |
| }RADIO_CHANNEL_INDEX_ENM; |
| |
| #define NUMBER_OF_2_4_G_CHANNELS (NUMBER_OF_2_4_G_CHANNEL_INDICES_E + 1) |
| #define NUMBER_OF_5G_CHANNELS (NUMBER_OF_RADIO_CHANNEL_INDEXS_E - NUMBER_OF_2_4_G_CHANNELS) |
| |
| typedef enum RADIO_RATE_GROUPS_ENMT |
| { |
| FIRST_RATE_GROUP_E, |
| /*______________________________________*/ |
| |
| MCS7_RATE_GROUP_E = FIRST_RATE_GROUP_E, |
| _54_48_RATE_GROUP_E, /* band 4.9Ghz (Japan) low sub-band (J1-J4) */ |
| _36_24_RATE_GROUP_E, /* band 4.9Ghz (Japan) mid sub-band(J8,J12,J16) */ |
| _18_12_RATE_GROUP_E, /* band 4.9Ghz (Japan) high sub-band(J34,36,J38,40, J42, 44, J46,48) */ |
| _9_6_RATE_GROUP_E, /* band 5GHz 1st sub-band(52->64 in steps of 4) */ |
| _11b_RATE_GROUP_E, /* band 5GHz 2nd sub-band(100->116 in steps of 4) */ |
| /*_______________________________________________*/ |
| UNUSED_RATE_GROUPS_E, |
| NUMBER_OF_RATE_GROUPS_E = UNUSED_RATE_GROUPS_E, |
| LAST_RATE_GROUP_E = (NUMBER_OF_RATE_GROUPS_E - 1) |
| |
| }RADIO_RATE_GROUPS_ENM; |
| |
| |
| typedef enum |
| { |
| RADIO_BAND_2_4_GHZ = 0, |
| RADIO_BAND_5_0_GHZ = 1, |
| RADIO_BAND_DUAL = 2, |
| RADIO_BAND_NUM_OF_BANDS = 2 |
| |
| } ERadioBand; |
| |
| |
| /****************************************************************************** |
| TTestCmdRunCalibration - Calibration manager message |
| |
| Note: |
| ******************************************************************************/ |
| |
| typedef enum CALIBRATION_COMMANDS_ENMT |
| { |
| /* RX */ |
| CM_space1_e, |
| CM_RX_IQ_MM_calibration_e, |
| CM_RX_IQ_MM_correction_upon_channel_change_e, |
| CM_RX_IQ_MM_correction_upon_temperature_change_e, |
| CM_RX_IQ_MM_duplicate_VGA_e, |
| CM_space2_e, |
| |
| CM_RX_analog_DC_Correction_calibration_e, |
| CM_RX_DC_AUX_cal_mode_e, |
| CM_RX_DC_AUX_normal_mode_e, |
| CM_space3_e, |
| |
| CM_RX_BIP_enter_mode_e, |
| CM_RX_BIP_perform_e, |
| CM_RX_BIP_exit_mode_e, |
| CM_space4_e, |
| |
| /* TX */ |
| CM_TX_power_detector_calibration_e, |
| CM_TX_power_detector_buffer_calibration_e, |
| CM_space5_e, |
| |
| CM_TX_LO_Leakage_calibration_e, |
| CM_TX_PPA_Steps_calibration_e, |
| CM_TX_CLPC_calibration_e, |
| CM_TX_IQ_MM_calibration_e, |
| CM_TX_BIP_calibration_e, |
| /* DRPw */ |
| CM_RX_TANK_TUNE_calibration_e, |
| /* CM_PD_BUFF_TUNE_calibration_e,*/ |
| CM_RX_DAC_TUNE_calibration_e, |
| CM_RX_IQMM_TUNE_calibration_e, |
| CM_RX_LPF_TUNE_calibration_e, |
| CM_TX_LPF_TUNE_calibration_e, |
| CM_TA_TUNE_calibration_e, |
| CM_TX_MIXERFREQ_calibration_e, |
| CM_RX_IF2GAIN_calibration_e, |
| CM_RTRIM_calibration_e, |
| CM_RX_LNAGAIN_calibration_e, |
| |
| CM_SMART_REFLEX_calibration_e, |
| CM_CHANNEL_RESPONSE_calibration_e |
| |
| }CALIBRATION_COMMANDS_ENM; |
| |
| |
| typedef enum CALIBRATIONS_ENMT |
| { |
| FIRST_CALIBRATION_TYPE_E, |
| /*----------------------------------------------------------*/ |
| /**** GENERAL ****/ |
| DRPW_RFCALIBFXN_RXTXLPF_TYPE_E = FIRST_CALIBRATION_TYPE_E, |
| DRPW_TUNE_TYPE_E, /* TUNE will perform DCO_freq, AB/TB, KDCO, TDC_inverter */ |
| DRPW_RFCALIBFXN_RTRIM_TYPE_E, |
| /**** TX ****/ |
| CM_TX_LO_LEAKAGE_CALIBRATION_TYPE_E, |
| CM_TX_IQ_MM_CALIBRATION_TYPE_E, |
| DRPW_RFCALIBFXN_TXMIXERFREQ_TYPE_E, |
| /**** RX ****/ |
| DRPW_RFCALIBFXN_TA_TYPE_E, |
| DRPW_RFCALIBFXN_RXLNAGAIN_TYPE_E, |
| DRPW_RFCALIBFXN_RXIF2GAIN_TYPE_E, |
| DRPW_RFCALIBFXN_RXDAC_TYPE_E, |
| DRPW_RFCALIBFXN_LNATANK_TYPE_E, |
| RX_ANALOG_DC_CORRECTION_CALIBRATION_TYPE_E, |
| CM_RX_IQ_MM_CORRECTION_CALIBRATION_TYPE_E, |
| SMART_REFLEX_CALIBRATION_TYPE_E, |
| CHANNEL_RESPONSE_CALIBRATION_TYPE_E, |
| /* ... */ |
| /*----------------------------------------------------------*/ |
| NUMBER_OF_CALIBRATIONS_E, |
| LAST_CALIBRATION_TYPE_E = (NUMBER_OF_CALIBRATIONS_E - 1) |
| } CALIBRATIONS_ENMT; |
| |
| /****************************************************************************** |
| |
| Name: ACX_CAL_ASSESSMENT |
| Type: Configuration |
| Access: Write Only |
| Length: 4 |
| Note: OBSOLETE !!! (DO_CALIBRATION_IN_DRIVER is not defined) |
| |
| ******************************************************************************/ |
| typedef enum |
| { |
| RUNTIME_CALIBRATION_NOT_NEEDED = 1, |
| RUNTIME_CALIBRATION_NEEDED = 2, |
| RFPLL_CALIBRATION_NEEDED = 3, |
| MAX_RUNTIME_CALIBRATION_OPTIONS = 0x7FFFFFFF /* force this enum to be uint32 */ |
| } RadioRuntimeCalState_enum; |
| |
| |
| #ifdef HOST_COMPILE |
| typedef uint32 RadioRuntimeCalState_e; |
| #else |
| typedef RadioRuntimeCalState_enum RadioRuntimeCalState_e; |
| #endif |
| |
| /************************************************************************/ |
| /* */ |
| /* Commands section */ |
| /* */ |
| /************************************************************************/ |
| typedef struct PltGainGet_t |
| { |
| uint8 TxGain; /*Total TX chain gain according to the current setting*/ |
| uint8 TxUpperBound; /*the max gain setting allowed*/ |
| uint8 TxLowerBound; /*the min gain setting allowed*/ |
| uint8 padding; /* padding to 32 bit */ |
| }PltGainGet_t; |
| |
| typedef struct |
| { |
| uint8 refTxPower; |
| uint8 band; |
| uint8 channel; |
| uint8 padding; |
| }RadioPltTxCalibrationRequest_t; |
| |
| |
| /****************************************************************************** |
| |
| Name: PowerLevelTable_t |
| Desc: Retrieve Maximum Dbm per power level and sub-band. |
| Type: Configuration |
| Access: Read Only |
| Length: 20 |
| |
| ******************************************************************************/ |
| typedef struct |
| { |
| uint8 txPowerTable[NUMBER_OF_SUB_BANDS_E][NUM_OF_POWER_LEVEL]; /* Maximun Dbm in Dbm/10 units */ |
| } PowerLevelTable_t; |
| |
| /* DORONS [4/27/2008] testing the 2nd auxiliary function */ |
| typedef struct |
| { |
| int8 desiredTone; |
| int8 desiredGain; |
| uint8 mode; |
| uint8 padding; |
| } TestToneParams_t; |
| |
| typedef enum |
| { |
| ePM_AWAKE, |
| ePM_LISTEN_ENTER, |
| ePM_LISTEN_EXIT, |
| ePM_POWER_DOWN_ENTER, |
| ePM_POWER_DOWN_EXIT, |
| ePM_ELP_ENTER, |
| ePM_ELP_EXIT, |
| ePM_CORTEX_GATE_ENTER, |
| ePM_CORTEX_GATE_EXIT |
| }PowerMode; |
| |
| typedef struct |
| |
| { |
| uint8 iPowerMode; /* Awake - 0 */ |
| /* Enter Listen Mode - 1 */ |
| /* Exit Listen Mode - 2 */ |
| /* Enter Power Down Mode - 3 */ |
| /* Exit Power Down Mode - 4 */ |
| /* ELP Mode - 5 */ |
| /* Enter Cortex Gate Mode - 6 */ |
| /* Exit Cortex Gate Mode - 7 */ |
| uint8 padding[3]; |
| }TTestCmdPowerMode; |
| |
| /************************************************************************ |
| PLT DBS |
| To modify these DBs Latter - according to Architecture Document, |
| and move it to public_commands.h |
| ************************************************************************/ |
| |
| /****************************************************************************** |
| |
| ID: CMD_TEST |
| Desc: The TEST command can be issued immediately after the firmware has |
| been downloaded, with no further configuration of the WiLink required. |
| Full initialization of the WiLink is not required to invoke the TEST |
| command and perform the radio test function. |
| After testing, the system must be reset. |
| Test parameters can be modified while a test is executing. |
| For instance, the host program can change the channel without resetting |
| the system. |
| |
| Params: TestCmdID_enum - see below. |
| The returned values are copied to the cmd/sts MB replacing the command |
| (similar to the interrogate mechanism). |
| |
| ******************************************************************************/ |
| /* Efil - when adding parameter here fill the switch case sentence in function |
| "cmdBld_CmdIeTest" in module "TWD\Ctrl\CmdBldCmdIE.c" */ |
| typedef enum |
| { |
| /* 0x01 */ TEST_CMD_PD_BUFFER_CAL = 0x1, /* TX PLT */ |
| /* 0x02 */ TEST_CMD_P2G_CAL, /* TX BiP */ |
| /* 0x03 */ TEST_CMD_RX_PLT_ENTER, |
| /* 0x04 */ TEST_CMD_RX_PLT_CAL, /* RSSI Cal */ |
| /* 0x05 */ TEST_CMD_RX_PLT_EXIT, |
| /* 0x06 */ TEST_CMD_RX_PLT_GET, |
| /* 0x07 */ TEST_CMD_FCC, /* Continuous TX */ |
| /* 0x08 */ TEST_CMD_TELEC, /* Carrier wave in a specific channel and band */ |
| /* 0x09 */ TEST_CMD_STOP_TX, /* Stop FCC or TELEC */ |
| /* 0x0A */ TEST_CMD_PLT_TEMPLATE, /* define Template for TX */ |
| /* 0x0B */ TEST_CMD_PLT_GAIN_ADJUST, |
| /* 0x0C */ TEST_CMD_PLT_GAIN_GET, |
| /* 0x0D */ TEST_CMD_CHANNEL_TUNE, |
| /* 0x0E */ TEST_CMD_FREE_RUN_RSSI, /* Free running RSSI measurement */ |
| /* 0x0F */ TEST_CMD_DEBUG, /* test command for debug using the struct: */ |
| /* 0x10 */ TEST_CMD_CLPC_COMMANDS, |
| /* 0x11 */ RESERVED_4, |
| /* 0x12 */ TEST_CMD_RX_STAT_STOP, |
| /* 0x13 */ TEST_CMD_RX_STAT_START, |
| /* 0x14 */ TEST_CMD_RX_STAT_RESET, |
| /* 0x15 */ TEST_CMD_RX_STAT_GET, |
| /* 0x16 */ TEST_CMD_LOOPBACK_START, /* for FW Test Debug */ |
| /* 0x17 */ TEST_CMD_LOOPBACK_STOP, /* for FW Test Debug */ |
| /* 0x18 */ TEST_CMD_GET_FW_VERSIONS, |
| /* 0x19 */ TEST_CMD_INI_FILE_RADIO_PARAM, |
| /* 0x1A */ TEST_CMD_RUN_CALIBRATION_TYPE, |
| /* 0x1B */ TEST_CMD_TX_GAIN_ADJUST, |
| /* 0x1C */ TEST_CMD_UPDATE_PD_BUFFER_ERRORS, |
| /* 0x1D */ TEST_CMD_UPDATE_PD_REFERENCE_POINT, |
| /* 0x1E */ TEST_CMD_INI_FILE_GENERAL_PARAM, |
| /* 0x1F */ TEST_CMD_SET_EFUSE, |
| /* 0x20 */ TEST_CMD_GET_EFUSE, |
| /* DORONS [4/27/2008] testing the 2nd auxiliary function */ |
| /*0x21 */ TEST_CMD_TEST_TONE, |
| /* 0x22 */ TEST_CMD_POWER_MODE, |
| /* 0x23 */ TEST_CMD_SMART_REFLEX, |
| /* 0x24 */ TEST_CMD_CHANNEL_RESPONSE, |
| |
| MAX_TEST_CMD_ID = 0xFF /* Dummy - must be last!!! (make sure that Enum variables are type of int) */ |
| |
| } TestCmdID_enum; |
| |
| /************************************************************************/ |
| /* radio test result information struct */ |
| /************************************************************************/ |
| #define DEFAULT_MULTIPLE_ACTIVATION_TIME 5 |
| |
| #define MULTIPLE_ACTIVATION_TIME 1000000 |
| |
| #define DEFAULT_RSMODE_CALIBRATION_INTERVAL (DEFAULT_MULTIPLE_ACTIVATION_TIME * MULTIPLE_ACTIVATION_TIME) /* RadioScope calibration interval - 5 sec */ |
| |
| typedef enum |
| { |
| eCMD_GET_CALIBRAIONS_INFO, |
| eCMD_GET_CLPC_VBAT_TEMPERATURE_INFO |
| }TTestCmdDeubug_enum; |
| |
| /* struct of calibration status, indication if RM performed calibration */ |
| typedef struct |
| { |
| uint8 operateCalibration; /* RM performed calibration */ |
| int8 calibrationsResult[NUMBER_OF_CALIBRATIONS_E]; /* Calibrations status */ |
| }CalibrationInfo; |
| |
| /* struct of CLPC output, temperature, battery voltage */ |
| typedef struct |
| { |
| int ClpcOffset[NUMBER_OF_RATE_GROUPS_E]; /* CLPC */ |
| int8 CurrentTemperature; /* current temperature in Celsius */ |
| uint16 CurrentVbat; /* VBat */ |
| |
| }CLPCTempratureVbatStruct; |
| |
| typedef struct |
| { |
| int16 oRadioStatus; |
| uint8 iCommand; /* command to check */ |
| |
| CalibrationInfo calibInfo; /* for eCMD_GET_CALIBRAIONS_INFO */ |
| CLPCTempratureVbatStruct CLPCTempVbatInfo; /* for eCMD_GET_CLPC_VBAT_TEMPERATURE_INFO */ |
| |
| uint8 padding[3]; |
| |
| }TTestCmdDebug; |
| |
| /************************************************************************/ |
| /* end radio test result information struct */ |
| /************************************************************************/ |
| |
| |
| #ifdef HOST_COMPILE |
| typedef uint8 TestCmdID_e; |
| #else |
| typedef TestCmdID_enum TestCmdID_e; |
| #endif |
| |
| /******************************************************************************/ |
| typedef enum |
| { |
| TEST_MODE_HOST_ORIGINATED_DATA = 0x00, |
| TEST_MODE_FIXED_SEQ_NUMBER = 0x00, |
| TEST_MODE_FW_ORIGINATED_DATA = 0x01, |
| TEST_MODE_RANDOM_DATA = 0x05, |
| TEST_MODE_ZOZO_DATA = 0x09, |
| TEST_MODE_FILLING_PATERN_MASK = 0x0F, |
| TEST_MODE_DELAY_REQUIRED = 0x10, |
| TEST_MODE_DISABLE_SRCRAMBLING_FLAG = 0x20 |
| }TestModeCtrlTypes_e; |
| |
| #ifdef HOST_COMPILE |
| typedef uint8 FccTestType_e; |
| #else |
| typedef TestModeCtrlTypes_e FccTestType_e; |
| #endif |
| |
| /******************************************************************************/ |
| #define TEST_SEQ_NUM_MODE_FIXED (0) |
| #define TEST_SEQ_NUM_MODE_INCREMENTED (1) |
| |
| /******************************************************************************/ |
| /* DORONS [4/23/2008] RX Tone activation for DRPw cals */ |
| #define ACTIVE_TONE_CAL_MODE (0) |
| #define ACTIVE_TONE_NORM_MODE (1) |
| /****************************************************************************** |
| |
| TestCmdId : TEST_CMD_FCC - Tx continuous test |
| |
| Description: Continuous transmit series of numbers with a valid MAC header |
| as was received from driver. |
| However there is no 802.11 air access compliance. |
| |
| Params: PERTxCfg_t fcc - see below. |
| |
| ******************************************************************************/ |
| #define NUM_OF_MAC_ADDR_ELEMENTS 6 |
| typedef struct PERTxCfg_t |
| { |
| /*input parameters*/ |
| uint32 numFrames; /* number of frams to transmit, 0 = endless*/ |
| uint32 interFrameGap; /* time gap in uSec */ |
| uint32 seqNumMode; /* Fixed / Incremented */ |
| uint32 frameBodySize; /* length of Mac Payload */ |
| uint8 channel; /*channel number*/ |
| uint8 dataRate; /* MBps 1,2,11,22,... 54 */ |
| uint8 modPreamble; /* CTL_PREAMBLE 0x01 */ |
| uint8 band; /* {BAND_SELECT_24GHZ 0x00 | BAND_SELECT_5GHZ 0x01} */ |
| uint8 modulation; /* {PBCC_MODULATION_MASK |OFDM_MODULATION_MASK }*/ |
| FccTestType_e testModeCtrl; |
| uint8 dest[NUM_OF_MAC_ADDR_ELEMENTS]; /* set to hard codded default {0,0,0xde,0xad,0xbe,0xef}; */ |
| } PERTxCfg_t; |
| |
| /****************************************************************************** |
| |
| TestCmdId : TEST_CMD_SET_EFUSE, TEST_CMD_GET_EFUSE |
| |
| Description: Get and set the eFuse parameters |
| |
| ******************************************************************************/ |
| typedef enum EFUSE_PARAMETER_TYPE_ENMT |
| { |
| EFUSE_FIRST_PARAMETER_E, |
| /*_______________________________________________*/ |
| |
| /* RX PARAMETERS */ |
| EFUSE_FIRST_RX_PARAMETER_E = EFUSE_FIRST_PARAMETER_E, |
| RX_BIP_MAX_GAIN_ERROR_BAND_B_E = EFUSE_FIRST_RX_PARAMETER_E, /* MaxGainErrBandB */ |
| |
| RX_BIP_MAX_GAIN_ERROR_J_LOW_MID_E, /* MaxGainErrJLowMid */ |
| RX_BIP_MAX_GAIN_ERROR_J_HIGH_E, /* MaxGainErrJHigh */ |
| |
| RX_BIP_MAX_GAIN_ERROR_5G_1ST_E, /* MaxGainErr5G1st */ |
| RX_BIP_MAX_GAIN_ERROR_5G_2ND_E, /* MaxGainErr5G2nd */ |
| RX_BIP_MAX_GAIN_ERROR_5G_3RD_E, /* MaxGainErr5G3rd */ |
| RX_BIP_MAX_GAIN_ERROR_5G_4TH_E, /* MaxGainErr5G4th */ |
| |
| RX_BIP_LNA_STEP_CORR_BAND_B_4TO3_E, /* LnaStepCorrBandB (Step 4To3) */ |
| RX_BIP_LNA_STEP_CORR_BAND_B_3TO2_E, /* LnaStepCorrBandB (Step 3To2) */ |
| RX_BIP_LNA_STEP_CORR_BAND_B_2TO1_E, /* LnaStepCorrBandB (Step 2To1) */ |
| RX_BIP_LNA_STEP_CORR_BAND_B_1TO0_E, /* LnaStepCorrBandB (Step 1To0) */ |
| |
| RX_BIP_LNA_STEP_CORR_BAND_A_4TO3_E, /* LnaStepCorrBandA (Step 4To3) */ |
| RX_BIP_LNA_STEP_CORR_BAND_A_3TO2_E, /* LnaStepCorrBandA (Step 3To2) */ |
| RX_BIP_LNA_STEP_CORR_BAND_A_2TO1_E, /* LnaStepCorrBandA (Step 2To1) */ |
| RX_BIP_LNA_STEP_CORR_BAND_A_1TO0_E, /* LnaStepCorrBandA (Step 1To0) */ |
| |
| RX_BIP_TA_STEP_CORR_BAND_B_2TO1_E, /* TaStepCorrBandB (Step 2To1) */ |
| RX_BIP_TA_STEP_CORR_BAND_B_1TO0_E, /* TaStepCorrBandB (Step 1To0) */ |
| |
| RX_BIP_TA_STEP_CORR_BAND_A_2TO1_E, /* TaStepCorrBandA (Step 2To1) */ |
| RX_BIP_TA_STEP_CORR_BAND_A_1TO0_E, /* TaStepCorrBandA (Step 1To0) */ |
| |
| NUMBER_OF_RX_BIP_EFUSE_PARAMETERS_E, /* Number of RX parameters */ |
| |
| /* TX PARAMETERS */ |
| TX_BIP_PD_BUFFER_GAIN_ERROR_E = NUMBER_OF_RX_BIP_EFUSE_PARAMETERS_E,/* PD_Buffer_Gain_error */ |
| TX_BIP_PD_BUFFER_VBIAS_ERROR_E, /* PD_Buffer_Vbias_error */ |
| |
| /*_______________________________________________*/ |
| EFUSE_NUMBER_OF_PARAMETERS_E, |
| EFUSE_LAST_PARAMETER_E = (EFUSE_NUMBER_OF_PARAMETERS_E - 1) |
| |
| }EFUSE_PARAMETER_TYPE_ENM; |
| |
| typedef struct |
| { |
| int8 EfuseParameters[EFUSE_NUMBER_OF_PARAMETERS_E]; |
| |
| int16 oRadioStatus; |
| int8 padding[3]; /* Align to 32bit */ |
| |
| } EfuseParameters_t; |
| |
| /******************************************************************************/ |
| |
| /****************************************************************************** |
| |
| TestCmdId : TEST_CMD_PLT_GAIN_GET |
| |
| Description: Retrieves the TX chain gain settings. |
| |
| Params: PltGainGet_t gainGet - see public_radio.h |
| |
| |
| ******************************************************************************/ |
| |
| /****************************************************************************** |
| |
| TestCmdId: TEST_CMD_PLT_GET_NVS_UPDATE_BUFFER |
| |
| Description: This PLT function provides the all information required by |
| the upper driver in order to update the NVS image. |
| It received a parameter defining the type of update |
| information required and provides an array of elements |
| defining the data bytes to be written to the NVS image |
| and the byte offset in which they should be written. |
| Params: PltNvsResultsBuffer_t nvsUpdateBuffer - see public_radio.h |
| |
| |
| *****************************************************************************/ |
| |
| |
| /****************************************************************************** |
| |
| TestCmdId : TEST_CMD_PLT_GAIN_ADJUST |
| |
| Description: retrieves the TX chain gain settings. |
| |
| Params: int32 txGainAdjust |
| |
| *****************************************************************************/ |
| |
| /****************************************************************************** |
| |
| TestCmdId : TEST_CMD_PLT_RX_CALIBRATION |
| |
| Description: Used as part of the RX calibration procedure, call this |
| function for every calibration channel. |
| The response for that function indicates only that command had been received by th FW, |
| and not that the calibration procedure had been finished. |
| The upper layer need to wait amount of ((numOfSamples*intervalBetweenSamplesUsec). |
| To make sure that the RX calibration completed. before calling to the next command. |
| |
| Params: PltRxCalibrationRequest_t rxCalibration |
| |
| ******************************************************************************/ |
| |
| typedef struct |
| { |
| uint8 iBand; |
| uint8 iChannel; |
| int16 oRadioStatus; |
| } TTestCmdChannel; |
| |
| typedef struct TTestCmdPdBufferCalStruct |
| { |
| uint8 iGain; |
| uint8 iVBias; |
| int16 oAdcCodeword; |
| int16 oRadioStatus; |
| uint8 Padding[2]; |
| } TTestCmdPdBufferCal; |
| |
| typedef struct |
| { |
| int8 vBIASerror; |
| int8 gainError; |
| uint8 padding[2]; |
| }TTestCmdPdBufferErrors; |
| |
| typedef struct |
| { |
| int32 iReferencePointPower; |
| int32 iReferencePointDetectorValue; |
| uint8 isubBand; |
| uint8 padding[3]; |
| }TTestCmdUpdateReferncePoint; |
| |
| typedef struct |
| { |
| int16 oRadioStatus; |
| uint8 iCalibratonType; |
| uint8 Padding; |
| |
| } TTestCmdRunCalibration; |
| |
| typedef enum |
| { |
| eDISABLE_LIMIT_POWER, |
| eENABLE_LIMIT_POWER |
| }UseIniFileLimitPower; |
| |
| typedef struct |
| { |
| int32 iTxGainValue; |
| int16 oRadioStatus; |
| uint8 iUseinifilelimitPower; |
| uint8 padding; |
| } TTxGainAdjust; |
| |
| /* TXPWR_CFG0__VGA_STEP_GAIN_E */ |
| typedef enum TXPWR_CFG0__VGA_STEP_ENMT |
| { |
| TXPWR_CFG0__VGA_STEP__FIRST_E, |
| /*_______________________________________________*/ |
| TXPWR_CFG0__VGA_STEP__MINIMUM_E = TXPWR_CFG0__VGA_STEP__FIRST_E, |
| TXPWR_CFG0__VGA_STEP__0_E = TXPWR_CFG0__VGA_STEP__MINIMUM_E, |
| TXPWR_CFG0__VGA_STEP__1_E, |
| TXPWR_CFG0__VGA_STEP__2_E, |
| TXPWR_CFG0__VGA_STEP__3_E, |
| TXPWR_CFG0__VGA_STEP__4_E, |
| TXPWR_CFG0__VGA_STEP__MAXIMUM_E = TXPWR_CFG0__VGA_STEP__4_E, |
| /*_______________________________________________*/ |
| TXPWR_CFG0__VGA_STEP__NUMBER_OF_STEPS_E, |
| TXPWR_CFG0__VGA_STEP__LAST_E = (TXPWR_CFG0__VGA_STEP__NUMBER_OF_STEPS_E - 1) |
| |
| } TXPWR_CFG0__VGA_STEP_ENM; |
| |
| |
| /****************************************************************************** |
| |
| Name: ACX_PLT_NVS_BUFFER_UPDATE |
| TestCmdId: TEST_CMD_PLT_GET_NVS_UPDATE_BUFFER |
| Description: This PLT function provides the all information required by |
| the upper driver in order to update the NVS image. |
| It received a parameter defining the type of update |
| information required and provides an array of elements defining |
| the data bytes to be written to the NVS image and the byte |
| offset in which they should be written. |
| Type: PLT |
| Access: Read Only |
| Length: 420 |
| |
| ******************************************************************************/ |
| /* default efuse value */ |
| #define DEFAULT_EFUSE_VALUE 0 |
| |
| /* Default hard-coded power to gain offsets (these values will be overridden by NVS) */ |
| #define DB_FACTOR 1000 /* factor because we can't use float */ |
| |
| /* TX BIP default parameters */ |
| #define CALIBRATION_STEP_SIZE 1000 |
| #define CALIBRATION_POWER_HIGHER_RANGE 22000 |
| #define CALIBRATION_POWER_LOWER_RANGE (-3000) |
| |
| #define SIZE_OF_POWER_DETECTOR_TABLE ((((CALIBRATION_POWER_HIGHER_RANGE) - (CALIBRATION_POWER_LOWER_RANGE))\ |
| / (CALIBRATION_STEP_SIZE)) + 1) |
| /* default PPA steps value */ |
| #define DEFAULT_PPA_STEP_VALUE (-6000) |
| |
| #define P2G_TABLE_TO_NVS (-1) * 8 / DB_FACTOR |
| |
| #define DEF_2_4_G_SUB_BAND_P2G_OFFSET (-25000) |
| #define DEF_LOW_JAPAN_4_9_G_SUB_BAND_P2G_OFFSET (-25*DB_FACTOR) |
| #define DEF_MID_JAPAN_4_9_G_SUB_BAND_OFFSET (-25*DB_FACTOR) |
| #define DEF_HIGH_JAPAN_4_9_G_SUB_BAND_OFFSET (-25*DB_FACTOR) |
| #define DEF_5_G_FIRST_SUB_BAND_P2G_OFFSET (-25*DB_FACTOR) |
| #define DEF_5_G_SECOND_SUB_BAND_P2G_OFFSET (-25*DB_FACTOR) |
| #define DEF_5_G_THIRD_SUB_BAND_P2G_OFFSET (-25*DB_FACTOR) |
| #define DEF_5_G_FOURTH_SUB_BAND_P2G_OFFSET (-25*DB_FACTOR) |
| |
| |
| #define NVS_MAC_FIRST_LENGTH_INDEX 0 |
| #define NVS_MAC_FIRST_LENGHT_VALUE 1 |
| |
| #define NVS_MAC_L_ADDRESS_INDEX ((NVS_MAC_FIRST_LENGTH_INDEX) + 1) /* 1*/ |
| #define NVS_MAC_L_ADDRESS_LENGTH 2 |
| |
| #define NVS_MAC_L_VALUE_INDEX ((NVS_MAC_L_ADDRESS_INDEX) + (NVS_MAC_L_ADDRESS_LENGTH)) /* 3 */ |
| #define NVS_MAC_L_VALUE_LENGTH 4 |
| |
| #define NVS_MAC_SECONDE_LENGTH_INDEX ((NVS_MAC_L_VALUE_INDEX) + 4) /* 7 */ |
| #define NVS_MAC_SECONDE_LENGHT_VALUE 1 |
| |
| #define NVS_MAC_H_ADDRESS_INDEX ((NVS_MAC_SECONDE_LENGTH_INDEX) + 1) /* 8*/ |
| #define NVS_MAC_H_ADDRESS_LENGTH 2 |
| |
| #define NVS_MAC_H_VALUE_INDEX ((NVS_MAC_H_ADDRESS_INDEX) + (NVS_MAC_H_ADDRESS_LENGTH)) /* 10 */ |
| #define NVS_MAC_H_VALUE_LENGTH 4 |
| |
| #define NVS_END_BURST_TRANSACTION_INDEX ((NVS_MAC_H_VALUE_INDEX) + (NVS_MAC_H_VALUE_LENGTH)) /* 14 */ |
| #define NVS_END_BURST_TRANSACTION_VALUE 0 |
| #define NVS_END_BURST_TRANSACTION_LENGTH 7 |
| |
| #define NVS_ALING_TLV_START_ADDRESS_INDEX ((NVS_END_BURST_TRANSACTION_INDEX) + (NVS_END_BURST_TRANSACTION_LENGTH)) /* 21 */ |
| #define NVS_ALING_TLV_START_ADDRESS_VALUE 0 |
| #define NVS_ALING_TLV_START_ADDRESS_LENGTH 3 |
| |
| |
| |
| #define NVS_PRE_PARAMETERS_LENGTH ((NVS_ALING_TLV_START_ADDRESS_INDEX) + (NVS_ALING_TLV_START_ADDRESS_LENGTH)) /* 24 */ |
| |
| |
| #define NVS_TX_TYPE_INDEX 0 /* 0 (25) */ |
| #define NVS_TX_LENGTH_INDEX ((NVS_TX_TYPE_INDEX) + 1) /* 1 (26) */ |
| #define NVS_TX_PARAM_INDEX ((NVS_TX_LENGTH_INDEX) + 2) /* 3 (28) */ |
| |
| |
| #define NVS_TX_P2G_TABLE_INDEX NVS_TX_PARAM_INDEX /* 3 (28) */ |
| #define NVS_TX_P2G_TABLE_LENGTH ((NUMBER_OF_SUB_BANDS_E) * 1 /* byte */) /* 8 */ |
| #define NVS_TX_PPA_STEPS_TABLE_INDEX ((NVS_TX_P2G_TABLE_INDEX) + (NVS_TX_P2G_TABLE_LENGTH)) /* 11 (36) */ |
| #define NVS_TX_PPA_STEPS_TABLE_LENGTH ((NUMBER_OF_SUB_BANDS_E) * \ |
| ((TXPWR_CFG0__VGA_STEP__NUMBER_OF_STEPS_E) \ |
| - 1) * 1 /* byte */) /* 32 */ |
| |
| #define NVS_TX_PD_TABLE_INDEX ((NVS_TX_PPA_STEPS_TABLE_INDEX) + (NVS_TX_PPA_STEPS_TABLE_LENGTH)) /* 43 (68) */ |
| #define NVS_TX_PD_TABLE_LENGTH (1 /* byte to set size of table */ + \ |
| ((NUMBER_OF_SUB_BANDS_E) * (2 /* 1 byte offset, 1 byte low range */ + \ |
| 2 /* first index in table */ + (((SIZE_OF_POWER_DETECTOR_TABLE) - 1) * 1 /* 1 byte */)))) /* 233 */ |
| |
| #define NVS_TX_PARAM_LENGTH ((NVS_TX_P2G_TABLE_LENGTH) + (NVS_TX_PPA_STEPS_TABLE_LENGTH) + (NVS_TX_PD_TABLE_LENGTH)) /* 273 */ |
| |
| #define NVS_RX_TYPE_INDEX ((NVS_TX_PARAM_INDEX) + (NVS_TX_PARAM_LENGTH)) /* 316 (341) */ |
| #define NVS_RX_LENGTH_INDEX ((NVS_RX_TYPE_INDEX) + 1) /* 317 (342) */ |
| #define NVS_RX_PARAM_INDEX ((NVS_RX_LENGTH_INDEX) + 2) /* 319 (344) */ |
| #define NVS_RX_PARAM_LENGTH NUMBER_OF_RX_BIP_EFUSE_PARAMETERS_E /* 19 */ |
| |
| #define NVS_VERSION_TYPE_INDEX ((NVS_RX_PARAM_INDEX) + (NVS_RX_PARAM_LENGTH)) /* 338 (363) */ |
| #define NVS_VERSION_LENGTH_INDEX ((NVS_VERSION_TYPE_INDEX) + 1) /* 339 (364) */ |
| #define NVS_VERSION_PARAMETER_INDEX ((NVS_VERSION_LENGTH_INDEX) + 2) /* 340 (365) */ |
| #define NVS_VERSION_PARAMETER_LENGTH 3 |
| |
| #define NVS_END_TYPE_INDEX ((NVS_VERSION_PARAMETER_INDEX) + (NVS_VERSION_PARAMETER_LENGTH)) /* 343 (368) */ |
| #define NVS_END_LENGTH_INDEX ((NVS_END_TYPE_INDEX) + 1) /* 344 (369) */ |
| #define NVS_END_PARAMETER_INDEX ((NVS_END_LENGTH_INDEX) + 2) /* 346 (371) */ |
| #define NVS_END_PARAMETER_LENGTH 4 |
| #define NVS_END_PARAMETER_VALUE 0x0000ff |
| |
| #define NVS_TOTAL_LENGTH ((NVS_PRE_PARAMETERS_LENGTH) + (NVS_END_PARAMETER_INDEX) + (NVS_END_PARAMETER_LENGTH)) |
| |
| #define NVS_TOTAL_LENGTH_ALIGN_4 ((NVS_TOTAL_LENGTH) + 4 - ((NVS_TOTAL_LENGTH) % 4)) |
| |
| |
| #define NVS_RESULTS_MAX_NUM_OF_TABLES 4 |
| #define MAX_TLV_LENGTH 400 |
| #define MAX_NVS_VERSION_LENGTH 12 |
| |
| typedef enum |
| { |
| eNVS_VERSION = 0xaa, |
| eNVS_RADIO_TX_PARAMETERS = 1, |
| eNVS_RADIO_RX_PARAMETERS = 2, |
| |
| eNVS_RADIO_INI = 16, |
| |
| |
| eNVS_NON_FILE = 0xFE, |
| |
| /* last TLV type */ |
| eTLV_LAST = 0xFF |
| }NVSType; |
| |
| typedef struct |
| { |
| uint16 Length; /* TLV length in bytes */ |
| uint8 Buffer[MAX_TLV_LENGTH]; /* TLV buffer content to be burned */ |
| uint8 Type; /* TLV Type Index */ |
| uint8 padding; |
| }TNvsStruct; |
| |
| typedef struct |
| { |
| TNvsStruct oNvsStruct; /* output (P2G array) */ |
| int16 oRadioStatus; |
| char oNvsVersion[MAX_NVS_VERSION_LENGTH]; |
| uint8 iSubBandMask; /* 7 sub-band bit mask (asserted bit - calibration required) */ |
| uint8 Padding; |
| } TTestCmdP2GCal; |
| |
| typedef struct |
| { |
| int16 oRadioStatus; |
| uint16 Pad; |
| uint32 iDelay; /* between packets (usec) */ |
| uint32 iRate; /* 1MBPS = 0x00000001, |
| 2MBPS = 0x00000002, |
| 5.5MBPS = 0x00000004, |
| 6MBPS = 0x00000008, |
| 9MBPS = 0x00000010, |
| 11MBPS = 0x00000020, |
| 12MBPS = 0x00000040, |
| 18MBPS = 0x00000080, |
| 24MBPS = 0x00000200, |
| 36MBPS = 0x00000400, |
| 48MBPS = 0x00000800, |
| 54MBPS = 0x00001000, |
| MCS_0 = 0x00002000, |
| MCS_1 = 0x00004000, |
| MCS_2 = 0x00008000, |
| MCS_3 = 0x00010000, |
| MCS_4 = 0x00020000, |
| MCS_5 = 0x00040000, |
| MCS_6 = 0x00080000, |
| MCS_7 = 0x00100000 */ |
| uint16 iSize; /* size of packet (bytes) */ |
| uint16 iAmount; /* in case of multiple (# of packets) */ |
| int32 iPower; /* upper power limit (dBm) */ |
| uint16 iSeed; |
| uint8 iPacketMode; /* single, multiple, InfiniteLength, Continuous, FCC */ |
| uint8 iDcfOnOff; /* use DCF access (1) */ |
| uint8 iGI; /* Guard Interval: long:800ns (0), short:400ns (1) */ |
| uint8 iPreamble; /* long (0), short (1), OFDM (4), GF (7), Mixed (6) */ |
| uint8 iType; /* Data (0), Ack (1), Probe-request(2), Random (3), User-defined (4), PER (5) */ |
| uint8 iScrambler; /* Off (0), On (1) */ |
| uint8 iEnableCLPC; /* range 0-100. 0 - disable calibration / |
| range 1-99 - enable Cal asses periodic time, every step is 200msecond |
| periodic of cal assess for example: 1.2 second put the value 6. |
| if the value is out of range it will be change to 25 represent |
| 5 second of cal assess periodical */ |
| uint8 iSeqNumMode; /* Fixed sequence number (0), incremental (1) - used for PER test only */ |
| TMacAddr iSrcMacAddr; /* Source address (BSSID) - used for PER test only */ |
| TMacAddr iDstMacAddr; /* Destination address - used for PER test only */ |
| |
| } TPacketParam; |
| |
| typedef struct |
| { |
| int16 oRadioStatus; |
| uint16 Pad; |
| int32 iPower; |
| uint8 iToneType; |
| uint8 iPpaStep; |
| uint8 iToneNumberSingleTones; |
| uint8 iToneNumberTwoTones; |
| uint8 iUseDigitalDC; |
| uint8 iInvert; |
| uint8 iElevenNSpan; |
| uint8 iDigitalDC; |
| uint8 iAnalogDCFine; |
| uint8 iAnalogDCCoarse; |
| } TToneParam; |
| |
| typedef struct |
| { |
| uint16 bufferOffset; |
| uint16 bufferLength; |
| int16 oRadioStatus; |
| int8 buffer[TX_TEMPLATE_MAX_BUF_LEN]; |
| uint8 padding[2]; |
| } TTxTemplate; |
| |
| typedef enum |
| { |
| eDISABLE_CLPC, |
| eENABLE_CLPC, |
| eRESET_CLPC_TABLES, |
| eINIDCATE_CLPC_ACTIVATION_TIME |
| }CLPCCommands; |
| |
| typedef struct |
| { |
| int16 oStatus; |
| uint8 iCLPCActivationTime; /* range 0-100. 0 - disable calibration / |
| range 1-99 - enable Cal asses periodic time, every step is 200msecond |
| periodic of cal assess for example: 1.2 second put the value 6. |
| if the value is out of range it will be change to 25 represent |
| 5 second of cal assess periodical */ |
| uint8 iCLPCCommands; |
| }TTestCmdCLPCCommands; |
| |
| |
| /************************************************************************ |
| PLT DBS |
| Theses DBs were moved from the TWDExternalIf.h because of |
| redundency. |
| ************************************************************************/ |
| typedef struct |
| { |
| uint8 oAbsoluteGain; /* Per Sub-Band (output) */ |
| uint8 oLNASteps[RX_PLT_LNA_STEPS_BUF_LEN]; /* 4 steps per Band (output) */ |
| uint8 oTASteps[RX_PLT_TA_STEPS_BUF_LEN]; /* 2 steps per Band (output) */ |
| uint8 Padding; |
| } TTestCmdRxPlt; |
| |
| typedef struct |
| { |
| uint32 ReceivedValidPacketsNumber; |
| uint32 ReceivedFcsErrorPacketsNumber; |
| uint32 ReceivedPlcpErrorPacketsNumber; |
| uint32 SeqNumMissCount; /* For PER calculation */ |
| int16 AverageSnr; |
| int16 AverageRssi; |
| int16 AverageEvm; |
| uint8 Padding[2]; |
| } RxPathStatistics_t; |
| |
| typedef struct |
| { |
| uint16 Length; |
| uint16 EVM; |
| uint16 RSSI; |
| uint16 FrequencyDelta; |
| uint16 Flags; |
| int8 Type; |
| uint8 Rate; |
| uint8 Noise; |
| uint8 AgcGain; |
| uint8 Padding[2]; |
| } RxPacketStatistics_t; |
| |
| #define RX_STAT_PACKETS_PER_MESSAGE (20) |
| typedef struct |
| { |
| RxPathStatistics_t oRxPathStatistics; |
| uint32 oBasePacketId; |
| uint32 ioNumberOfPackets; /* input/output: number of following packets */ |
| uint32 oNumberOfMissedPackets; /* number of following packet statistic entries that were dropped */ |
| /*RxPacketStatistics_t RxPacketStatistics[RX_STAT_PACKETS_PER_MESSAGE];*/ |
| int16 oRadioStatus; |
| } RadioRxStatistics; |
| |
| /* RX RF gain values */ |
| typedef enum PHY_RADIO_RX_GAIN_VALUES_ENMT |
| { |
| FIRST_RX_GAIN_VALUE_E, |
| /*_______________________________________________*/ |
| RX_GAIN_VALUE_0_E = FIRST_RX_GAIN_VALUE_E, |
| RX_GAIN_VALUE_1_E, |
| RX_GAIN_VALUE_2_E, |
| RX_GAIN_VALUE_3_E, |
| RX_GAIN_VALUE_4_E, |
| RX_GAIN_VALUE_5_E, |
| RX_GAIN_VALUE_6_E, |
| RX_GAIN_VALUE_7_E, |
| /*_______________________________________________*/ |
| NUMBER_OF_RX_GAIN_VALUES_E, |
| LAST_RX_GAIN_VALUE_E = (NUMBER_OF_RX_GAIN_VALUES_E - 1) |
| |
| }PHY_RADIO_RX_GAIN_VALUES_ENM; |
| |
| /* RX BIP */ |
| typedef struct |
| { |
| int32 iExternalSignalPowerLevel; |
| int32 oLnaTaCompensationValues[NUMBER_OF_RX_GAIN_VALUES_E-1]; |
| TNvsStruct oNvsStruct; |
| int16 oRadioStatus; |
| char oNvsVersion[MAX_NVS_VERSION_LENGTH]; |
| int8 padding[2]; |
| }RadioRxPltCal; |
| |
| /* Database: IniFileGeneralParam |
| Command: TEST_CMD_INI_FILE_GENERAL_PARAM */ |
| |
| |
| /*typedef struct |
| { |
| unsigned int NBI: 1; |
| unsigned int TelecChannel14: 1; |
| unsigned int reserved: 6; |
| |
| }GeneralSettingsByte;*/ |
| |
| typedef struct |
| { |
| uint8 RefClk; |
| uint8 SettlingTime; |
| uint8 ClockValidOnWakeup; |
| uint8 DC2DCMode; |
| uint8 Single_Dual_Band_Solution; |
| uint8 TXBiPFEMAutoDetect; |
| uint8 TXBiPFEMManufacturer; |
| /* GeneralSettingsByte Settings; */ |
| uint8 GeneralSettings; |
| |
| }IniFileGeneralParam; |
| |
| typedef enum |
| { |
| FEM_MANUAL_DETECT_MODE_E, |
| FEM_AUTO_DETECT_MODE_E |
| |
| }FEM_DETECT_MODE_ENM; |
| |
| typedef enum |
| { |
| FEM_RFMD_TYPE_E, |
| FEM_TRIQUINT_TYPE_E, |
| NUMBER_OF_FEM_TYPES_E |
| |
| }FEM_TYPE_ENM; |
| |
| typedef enum |
| { |
| REF_CLK_19_2_E, |
| REF_CLK_26_E, |
| REF_CLK_38_4_E, |
| REF_CLK_52_E |
| |
| }REF_CLK_ENM; |
| |
| typedef enum |
| { |
| REF_CLK_NOT_VALID_E, |
| REF_CLK_VALID_AND_STABLE_E |
| |
| }CLK_VALID_ON_WAKEUP_ENM; |
| |
| typedef enum |
| { |
| BT_SPI_IS_NOT_USED_E, |
| MUX_DC2DC_TO_BT_FUNC2_E |
| |
| }DC2DC_MODE_ENM; |
| |
| typedef enum |
| { |
| SINGLE_BAND_SOLUTION_E, |
| DUAL_BAND_SOLUTION_E |
| |
| }SINGLE_DUAL_BAND_SOLUTION_ENM; |
| |
| /* General settings byte */ |
| typedef enum |
| { |
| TELEC_CHAN_14_OFF_E, |
| TELEC_CHAN_14_ON_E |
| |
| }TELEC_CHAN_14_ENM; |
| |
| typedef enum |
| { |
| NBI_OFF_E, |
| NBI_ON_E |
| |
| }NBI_ENM; |
| |
| |
| /* Database: IniFileRadioParam |
| Command: TEST_CMD_INI_FILE_RADIO_PARAM */ |
| |
| #define RSSI_AND_PROCESS_COMPENSATION_TABLE_SIZE (15) |
| |
| typedef struct |
| { |
| /* SECTION 1: 2.4G parameters */ |
| uint8 RxTraceInsertionLoss_2_4G; |
| uint8 TXTraceLoss_2_4G; |
| int8 RxRssiAndProcessCompensation_2_4G[RSSI_AND_PROCESS_COMPENSATION_TABLE_SIZE]; |
| |
| /* SECTION 2: 5G parameters */ |
| uint8 RxTraceInsertionLoss_5G[NUMBER_OF_SUB_BANDS_IN_5G_BAND_E]; |
| uint8 TXTraceLoss_5G[NUMBER_OF_SUB_BANDS_IN_5G_BAND_E]; |
| int8 RxRssiAndProcessCompensation_5G[RSSI_AND_PROCESS_COMPENSATION_TABLE_SIZE]; |
| |
| }TStatRadioParams; |
| |
| typedef struct |
| { |
| /* SECTION 1: 2.4G parameters */ |
| int16 TXBiPReferencePDvoltage_2_4G; |
| int8 TxBiPReferencePower_2_4G; |
| int8 TxBiPOffsetdB_2_4G; |
| int8 TxPerRatePowerLimits_2_4G_Normal[NUMBER_OF_RATE_GROUPS_E]; |
| int8 TxPerRatePowerLimits_2_4G_Degraded[NUMBER_OF_RATE_GROUPS_E]; |
| int8 TxPerChannelPowerLimits_2_4G_11b[NUMBER_OF_2_4_G_CHANNELS]; |
| int8 TxPerChannelPowerLimits_2_4G_OFDM[NUMBER_OF_2_4_G_CHANNELS]; |
| int8 TxPDVsRateOffsets_2_4G[NUMBER_OF_RATE_GROUPS_E]; |
| uint8 TxIbiasTable_2_4G[NUMBER_OF_RATE_GROUPS_E]; |
| uint8 RxFemInsertionLoss_2_4G; |
| |
| /* SECTION 2: 5G parameters */ |
| int16 TXBiPReferencePDvoltage_5G[NUMBER_OF_SUB_BANDS_IN_5G_BAND_E]; |
| int8 TxBiPReferencePower_5G[NUMBER_OF_SUB_BANDS_IN_5G_BAND_E]; |
| int8 TxBiPOffsetdB_5G[NUMBER_OF_SUB_BANDS_IN_5G_BAND_E]; |
| int8 TxPerRatePowerLimits_5G_Normal[NUMBER_OF_RATE_GROUPS_E]; |
| int8 TxPerRatePowerLimits_5G_Degraded[NUMBER_OF_RATE_GROUPS_E]; |
| int8 TxPerChannelPowerLimits_5G_OFDM[NUMBER_OF_5G_CHANNELS]; |
| int8 TxPDVsRateOffsets_5G[NUMBER_OF_RATE_GROUPS_E]; |
| int8 TxIbiasTable_5G[NUMBER_OF_RATE_GROUPS_E]; |
| int8 RxFemInsertionLoss_5G[NUMBER_OF_SUB_BANDS_IN_5G_BAND_E]; |
| |
| }TDynRadioParams; |
| |
| typedef struct |
| { |
| TStatRadioParams tStatRadioParams; |
| TDynRadioParams tDynRadioParams; |
| uint8 Padding[1]; |
| |
| }IniFileRadioParam; |
| |
| /*\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\*/ |
| |
| /* Describes a reference design supported by the HDK Module */ |
| typedef struct HDKReferenceDesign_t |
| { |
| uint16 referenceDesignId; /* Reference design Id supported */ |
| uint8 nvsMajorVersion; /* First EEPROM version supported */ |
| uint8 nvsMinorVersion; |
| uint8 nvsMinorMinorVersion; |
| } THDKReferenceDesign; |
| |
| typedef struct HDKModuleVersion_t |
| { |
| uint8 ProductName; /* '6' for WiLink6, '4' for WiLink4 */ |
| uint8 PgNumber; /* Hardware tag */ |
| uint8 SoftwareVersionLevel; /* SW level number (Major SW change) */ |
| uint8 SoftwareVersionDelivery; /* Delivery number inside any (Inside any level) */ |
| |
| uint8 radioModuleType; /* The radio that is currently supported by the HDK module */ |
| uint8 numberOfReferenceDesignsSupported; /* The number of reference designs supported by the HDK module */ |
| THDKReferenceDesign* referenceDesignsSupported; /* Array of reference_design supported */ |
| |
| } THDKModuleVersion; |
| |
| #define FW_VERSION_LENGTH 5 |
| |
| typedef struct |
| { |
| THDKModuleVersion hdkVersion; |
| uint8 FWVersion[FW_VERSION_LENGTH]; |
| uint32 drpwVersion; |
| int16 oRadioStatus; |
| uint8 padding[3]; |
| }TFWVerisons; |
| |
| typedef struct |
| { |
| int16 RSSIVal; /* free running RSSI value, 1dB resolution */ |
| int16 oRadioStatus; |
| }TTestCmdFreeRSSI; |
| |
| typedef struct |
| { |
| TestCmdID_e testCmdId; |
| int8 padding[3]; |
| |
| /* Efil - when adding parameter here fill the switch case sentence in function |
| "cmdBld_CmdIeTest" in module "TWD\Ctrl\CmdBldCmdIE.c" */ |
| union |
| { |
| TTestCmdChannel Channel; |
| RadioRxPltCal RxPlt; |
| TTestCmdPdBufferCal PdBufferCal; |
| TTestCmdP2GCal P2GCal; |
| TTestCmdPdBufferErrors PdBufferErrors; |
| TTestCmdUpdateReferncePoint PdBufferCalReferencePoint; |
| TPacketParam TxPacketParams; |
| TToneParam TxToneParams; |
| TTxTemplate TxTemplateParams; |
| /*uint32 txGainAdjust; */ |
| TTxGainAdjust txGainAdjust; |
| RadioRxStatistics Statistics; |
| TFWVerisons fwVersions; |
| TTestCmdRunCalibration RunCalibration; |
| IniFileRadioParam IniFileRadioParams; |
| IniFileGeneralParam IniFileGeneralParams; |
| EfuseParameters_t EfuseParams; |
| TestToneParams_t TestToneParams; |
| TTestCmdPowerMode powerMode; |
| TTestCmdFreeRSSI freeRSSI; |
| TTestCmdCLPCCommands clpcCommands; |
| |
| TTestCmdDebug testDebug; |
| }testCmd_u; |
| }TTestCmd; |
| |
| |
| #ifndef HOST_IF_ENUMS_DISABLED |
| typedef enum RadioParamType_e |
| { |
| RADIO_PARAM_POWER_TABLE = 1, |
| RADIO_PARAM_POWER_LIMIT_TABLE, |
| RADIO_PARAM_POWER_ADJ_TABLE, |
| RADIO_PARAM_POWER_ENABLES, |
| RADIO_PABIAS_TABLE, |
| RADIO_PARAM_POWER_LEVELS, |
| |
| MAX_RADIO_PARAM_TYPE = 0x7FFFFFFF /* force this enum to be uint32 */ |
| |
| } RadioParamType_e; |
| #else |
| typedef uint32 RadioParamType_e; |
| #endif |
| |
| typedef struct RadioParam_t |
| { |
| RadioParamType_e parameterType; |
| int8 parameter[MAX_RADIO_PARAM_LEN]; |
| } RadioParam_t; |
| |
| typedef enum RadioState_e |
| { |
| RADIO_STATE_INIT = 1, /* Completed radio initialization */ |
| RADIO_STATE_TUNE = 2, /* Completed channel tuning */ |
| RADIO_STATE_DC_CAL = 3, /* Completed radio DC calibration */ |
| RADIO_STATE_AFE_DC_CAL =4, /* Completed AFE DC calibration */ |
| RADIO_STATE_TX_MM = 5, /* Completed transmit IQ mismatch calibration */ |
| RADIO_STATE_TX_EQUAL = 6, /* Completed transmit equalization calibration */ |
| RADIO_STATE_CARR_SUPP = 7, /* Completed carrier suppression calibration */ |
| RADIO_STATE_TX_PWR_CTRL = 8 /* Completed transmit power control calibration (only for bg and abg radios) */ |
| |
| } RadioState_e; |
| |
| typedef enum |
| { |
| PS_MODE_ENTER_ELP = 0x0, |
| PS_MODE_ENTER_PD = 0x1, |
| PS_MODE_EXIT_FROM_ELP = 0x2, |
| PS_MODE_EXIT_FROM_PD = 0x4, |
| PS_MODE_ENTER_ELP_SG_EN = 0x10, |
| PS_MODE_ENTER_PD_SG_EN = 0x11, |
| PS_MODE_EXIT_FROM_ELP_SG_EN = 0x12, |
| PS_MODE_EXIT_FROM_PD_SG_EN = 0x14, |
| PS_MODE_INVALID = 0xFF |
| |
| }PowerSaveMode_e; |
| |
| typedef struct RadioTune_t |
| { |
| Channel_e channel; |
| RadioBand_e band; |
| } RadioTune_t; |
| |
| typedef struct RadioRSSIAndSNR_t |
| { |
| int16 rssi; |
| int16 snr; |
| }RadioRSSIAndSNR_t; |
| |
| /* VBIAS values (in mili-volts) */ |
| typedef enum PHY_RADIO_VBIAS_MV_ENMT |
| { |
| FIRST_VBIAS_VALUE_E = -1, |
| |
| VBIAS_0MV_E = FIRST_VBIAS_VALUE_E, |
| VBIAS_100MV_E = 0, |
| VBIAS_200MV_E = 1, |
| VBIAS_300MV_E = 2, |
| VBIAS_400MV_E = 3, |
| VBIAS_500MV_E = 4, |
| VBIAS_600MV_E = 5, |
| VBIAS_700MV_E = 6, |
| VBIAS_800MV_E = 7, |
| |
| NUMBER_OF_VBIAS_VALUES_E = 9, |
| LAST_VBIAS_VALUE_E = (NUMBER_OF_VBIAS_VALUES_E - 1) |
| |
| }PHY_RADIO_VBIAS_MV_ENM; |
| |
| /* Gain monitor values */ |
| typedef enum PHY_RADIO_GAIN_MONITOR_TYPES_ENMT |
| { |
| FIRST_GAIN_MONITOR_TYPE_E, |
| GAIN_MONITOR_DISABLE = 0, |
| GAIN_MONITOR_RESERVED = 1, |
| /*_______________________________________________*/ |
| GAIN_MONITOR_X0_5_E = 2, |
| GAIN_MONITOR_X1_E = 3, |
| GAIN_MONITOR_X2_E = 4, |
| GAIN_MONITOR_X4_E = 5, |
| GAIN_MONITOR_X8_E = 6, |
| GAIN_MONITOR_X16_E = 7, |
| /*_______________________________________________*/ |
| NUMBER_OF_GAIN_MONITOR_TYPES_E = GAIN_MONITOR_X16_E, |
| LAST_GAIN_MONITOR_TYPE_E = (NUMBER_OF_GAIN_MONITOR_TYPES_E - 1) |
| |
| }PHY_RADIO_GAIN_MONITOR_TYPES_ENM; |
| |
| |
| /* TX Packet Mode; */ |
| typedef enum |
| { |
| eTX_MODE_SINGLE_PACKET, /* 0 */ |
| eTX_MODE_MULTIPLE_PACKET, /* 1 */ |
| eTX_MODE_INFINITE_LENGTH_PACKET, /* 2 */ |
| eTX_MODE_CONTINUES_PACKET, /* 3 */ |
| eTX_MODE_FCC_PACKET, /* 4 */ |
| eTX_MODE_SENARIO_PACKET, /* 5 */ |
| |
| eMAX_PACKET_MODE_PACKET |
| }PacketTypeMode; |
| |
| /* TX tone mode */ |
| typedef enum |
| { |
| eSILENCE_TONE_MODE, |
| eCARRIER_FEED_THROUGH_MODE, |
| eSINGLE_TONE_MODE, |
| eTWO_TONE_MODE, |
| eMULTI_TONE_MODE, |
| |
| eMax_TONE_MODE |
| }ToneTypeMode; |
| |
| |
| /**********************************************************************/ |
| /* For RSSI Calculation - Save Parameters */ |
| /**********************************************************************/ |
| |
| typedef struct |
| { |
| uint16 linerEvmVal; |
| uint16 ccaEcalcMonReg; |
| uint16 ccaEcalcRssi; |
| uint16 linerEvmPilVal; |
| uint8 lanTableIndex; |
| uint8 taTableIndex; |
| uint8 lnaTableIndex; |
| RADIO_SUB_BAND_TYPE_ENM currSubBand; |
| RADIO_BAND_TYPE_ENM currBand; |
| }rssiParamSave_t; |
| |
| |
| |
| #endif /* #ifndef PUBLIC_RADIO */ |