wlan: extra channel 144 support, FW common
FW common header.
New requirement from customer. CH 144 support.
NV.bin should support CH 144 with NV3 structure.
NV2 CH144 will not be supported and NV2 should support too.
Change-Id: I3fda237114d9beb6903f52f20778526239b7758c
CRs-fixed: 576601
diff --git a/riva/inc/wlan_nv.h b/riva/inc/wlan_nv.h
index e4e9ea7..7f20d33 100755
--- a/riva/inc/wlan_nv.h
+++ b/riva/inc/wlan_nv.h
@@ -111,9 +111,16 @@
#define NV_VERSION_11N_11AC_COUPER_TYPE 0
#define NV_VERSION_11N_11AC_FW_CONFIG 1
#define NV_VERSION_LPDC_FW_CONFIG 2
+#ifdef FEATURE_WLAN_CH144
+#define NV_VERSION_CH144_CONFIG 3
+#endif /* FEATURE_WLAN_CH144 */
#ifdef WCN_PRONTO
+#ifdef FEATURE_WLAN_CH144
+#define WLAN_NV_VERSION NV_VERSION_CH144_CONFIG
+#else
#define WLAN_NV_VERSION NV_VERSION_LPDC_FW_CONFIG
+#endif /* FEATURE_WLAN_CH144 */
#else //WCN_PRONTO
#define WLAN_NV_VERSION NV_VERSION_11N_11AC_FW_CONFIG
#endif //WCN_PRONTO
@@ -227,95 +234,100 @@
{
//2.4GHz Band
RF_CHAN_1 = 0,
- RF_CHAN_2 = 1,
- RF_CHAN_3 = 2,
- RF_CHAN_4 = 3,
- RF_CHAN_5 = 4,
- RF_CHAN_6 = 5,
- RF_CHAN_7 = 6,
- RF_CHAN_8 = 7,
- RF_CHAN_9 = 8,
- RF_CHAN_10 = 9,
- RF_CHAN_11 = 10,
- RF_CHAN_12 = 11,
- RF_CHAN_13 = 12,
- RF_CHAN_14 = 13,
+ RF_CHAN_2,
+ RF_CHAN_3,
+ RF_CHAN_4,
+ RF_CHAN_5,
+ RF_CHAN_6,
+ RF_CHAN_7,
+ RF_CHAN_8,
+ RF_CHAN_9,
+ RF_CHAN_10,
+ RF_CHAN_11,
+ RF_CHAN_12,
+ RF_CHAN_13,
+ RF_CHAN_14,
//4.9GHz Band
- RF_CHAN_240 = 14,
- RF_CHAN_244 = 15,
- RF_CHAN_248 = 16,
- RF_CHAN_252 = 17,
- RF_CHAN_208 = 18,
- RF_CHAN_212 = 19,
- RF_CHAN_216 = 20,
+ RF_CHAN_240,
+ RF_CHAN_244,
+ RF_CHAN_248,
+ RF_CHAN_252,
+ RF_CHAN_208,
+ RF_CHAN_212,
+ RF_CHAN_216,
//5GHz Low & Mid U-NII Band
- RF_CHAN_36 = 21,
- RF_CHAN_40 = 22,
- RF_CHAN_44 = 23,
- RF_CHAN_48 = 24,
- RF_CHAN_52 = 25,
- RF_CHAN_56 = 26,
- RF_CHAN_60 = 27,
- RF_CHAN_64 = 28,
+ RF_CHAN_36,
+ RF_CHAN_40,
+ RF_CHAN_44,
+ RF_CHAN_48,
+ RF_CHAN_52,
+ RF_CHAN_56,
+ RF_CHAN_60,
+ RF_CHAN_64,
//5GHz Mid Band - ETSI & FCC
- RF_CHAN_100 = 29,
- RF_CHAN_104 = 30,
- RF_CHAN_108 = 31,
- RF_CHAN_112 = 32,
- RF_CHAN_116 = 33,
- RF_CHAN_120 = 34,
- RF_CHAN_124 = 35,
- RF_CHAN_128 = 36,
- RF_CHAN_132 = 37,
- RF_CHAN_136 = 38,
- RF_CHAN_140 = 39,
-
+ RF_CHAN_100,
+ RF_CHAN_104,
+ RF_CHAN_108,
+ RF_CHAN_112,
+ RF_CHAN_116,
+ RF_CHAN_120,
+ RF_CHAN_124,
+ RF_CHAN_128,
+ RF_CHAN_132,
+ RF_CHAN_136,
+ RF_CHAN_140,
+#ifdef FEATURE_WLAN_CH144
+ RF_CHAN_144,
+#endif /* FEATURE_WLAN_CH144 */
//5GHz High U-NII Band
- RF_CHAN_149 = 40,
- RF_CHAN_153 = 41,
- RF_CHAN_157 = 42,
- RF_CHAN_161 = 43,
- RF_CHAN_165 = 44,
+ RF_CHAN_149,
+ RF_CHAN_153,
+ RF_CHAN_157,
+ RF_CHAN_161,
+ RF_CHAN_165,
//CHANNEL BONDED CHANNELS
- RF_CHAN_BOND_3 = 45,
- RF_CHAN_BOND_4 = 46,
- RF_CHAN_BOND_5 = 47,
- RF_CHAN_BOND_6 = 48,
- RF_CHAN_BOND_7 = 49,
- RF_CHAN_BOND_8 = 50,
- RF_CHAN_BOND_9 = 51,
- RF_CHAN_BOND_10 = 52,
- RF_CHAN_BOND_11 = 53,
- RF_CHAN_BOND_242 = 54, //4.9GHz Band
- RF_CHAN_BOND_246 = 55,
- RF_CHAN_BOND_250 = 56,
- RF_CHAN_BOND_210 = 57,
- RF_CHAN_BOND_214 = 58,
- RF_CHAN_BOND_38 = 59, //5GHz Low & Mid U-NII Band
- RF_CHAN_BOND_42 = 60,
- RF_CHAN_BOND_46 = 61,
- RF_CHAN_BOND_50 = 62,
- RF_CHAN_BOND_54 = 63,
- RF_CHAN_BOND_58 = 64,
- RF_CHAN_BOND_62 = 65,
- RF_CHAN_BOND_102 = 66, //5GHz Mid Band - ETSI & FCC
- RF_CHAN_BOND_106 = 67,
- RF_CHAN_BOND_110 = 68,
- RF_CHAN_BOND_114 = 69,
- RF_CHAN_BOND_118 = 70,
- RF_CHAN_BOND_122 = 71,
- RF_CHAN_BOND_126 = 72,
- RF_CHAN_BOND_130 = 73,
- RF_CHAN_BOND_134 = 74,
- RF_CHAN_BOND_138 = 75,
- RF_CHAN_BOND_151 = 76, //5GHz High U-NII Band
- RF_CHAN_BOND_155 = 77,
- RF_CHAN_BOND_159 = 78,
- RF_CHAN_BOND_163 = 79,
+ RF_CHAN_BOND_3,
+ RF_CHAN_BOND_4,
+ RF_CHAN_BOND_5,
+ RF_CHAN_BOND_6,
+ RF_CHAN_BOND_7,
+ RF_CHAN_BOND_8,
+ RF_CHAN_BOND_9,
+ RF_CHAN_BOND_10,
+ RF_CHAN_BOND_11,
+ RF_CHAN_BOND_242, //4.9GHz Band
+ RF_CHAN_BOND_246,
+ RF_CHAN_BOND_250,
+ RF_CHAN_BOND_210,
+ RF_CHAN_BOND_214,
+ RF_CHAN_BOND_38, //5GHz Low & Mid U-NII Band
+ RF_CHAN_BOND_42,
+ RF_CHAN_BOND_46,
+ RF_CHAN_BOND_50,
+ RF_CHAN_BOND_54,
+ RF_CHAN_BOND_58,
+ RF_CHAN_BOND_62,
+ RF_CHAN_BOND_102, //5GHz Mid Band - ETSI & FCC
+ RF_CHAN_BOND_106,
+ RF_CHAN_BOND_110,
+ RF_CHAN_BOND_114,
+ RF_CHAN_BOND_118,
+ RF_CHAN_BOND_122,
+ RF_CHAN_BOND_126,
+ RF_CHAN_BOND_130,
+ RF_CHAN_BOND_134,
+ RF_CHAN_BOND_138,
+#ifdef FEATURE_WLAN_CH144
+ RF_CHAN_BOND_142,
+#endif /* FEATURE_WLAN_CH144 */
+ RF_CHAN_BOND_151, //5GHz High U-NII Band
+ RF_CHAN_BOND_155,
+ RF_CHAN_BOND_159,
+ RF_CHAN_BOND_163,
NUM_RF_CHANNELS,
@@ -414,13 +426,14 @@
#define HW_CAL_VALUES_VALID_BMAP_UNUSED 0 //Value
//Bit mask
-#define HW_VAL_VALUES_VALID_BMAP_SLEEP_TIME_OVERHEAD_2G_MASK 0x1
-#define HW_VAL_VALUES_VALID_BMAP_SLEEP_TIME_OVERHEAD_5G_MASK 0x2
-#define HW_VAL_VALUES_VALID_BMAP_SLEEP_TIME_OVERHEAD_xLNA_5G_MASK 0x4
-#define HW_VAL_VALUES_VALID_TXBBF_SEL_9MHZ_MASK 0x8
-#define HW_VAL_VALUES_VALID_CUSTOM_TCXO_REG8_MASK 0x10
-#define HW_VAL_VALUES_VALID_CUSTOM_TCXO_REG9_MASK 0x20
-
+#define HW_CAL_VALUES_VALID_BMAP_SLEEP_TIME_OVERHEAD_2G_MASK 0x1
+#define HW_CAL_VALUES_VALID_BMAP_SLEEP_TIME_OVERHEAD_5G_MASK 0x2
+#define HW_CAL_VALUES_VALID_BMAP_SLEEP_TIME_OVERHEAD_xLNA_5G_MASK 0x4
+#define HW_CAL_VALUES_VALID_TXBBF_SEL_9MHZ_MASK 0x8
+#define HW_CAL_VALUES_VALID_CUSTOM_TCXO_REG8_MASK 0x10
+#define HW_CAL_VALUES_VALID_CUSTOM_TCXO_REG9_MASK 0x20
+#define HW_CAL_VALUES_VALID_ANTENNA_DIVERSITY_ENABLED_MASK 0x40
+#define HW_CAL_VALUES_VALID_CUSTOM_RC_DELAY_MASK 0x80
//From wlanfw/inc/halPhyCalMemory.h
typedef PACKED_PRE struct PACKED_POST
@@ -695,6 +708,16 @@
#define EXT_PA_CTRL_POLARITY_ZERO 0X1
#define EXT_PA_CTRL_POLARITY_ONE 0X2
+#define GF_TX_PWR_ADJUST_2G_MASK 0XF0000
+#define GF_TX_PWR_ADJUST_2G_OFFSET 16
+#define GF_TX_PWR_ADJUST_5G_LOW_MASK 0XF00000
+#define GF_TX_PWR_ADJUST_5G_LOW_OFFSET 20
+#define GF_TX_PWR_ADJUST_5G_MID_MASK 0XF000000
+#define GF_TX_PWR_ADJUST_5G_MID_OFFSET 24
+#define GF_TX_PWR_ADJUST_5G_HIGH_MASK 0XF0000000
+#define GF_TX_PWR_ADJUST_5G_HIGH_OFFSET 28
+
+
typedef PACKED_PRE struct PACKED_POST
{
uint8 skuID;
diff --git a/riva/inc/wlan_nv2.h b/riva/inc/wlan_nv2.h
new file mode 100644
index 0000000..ed16335
--- /dev/null
+++ b/riva/inc/wlan_nv2.h
@@ -0,0 +1,212 @@
+/** ------------------------------------------------------------------------- *
+* Copyright (c) 2012-2013 Qualcomm Atheros, Inc.
+* All Rights Reserved.
+* Qualcomm Atheros Confidential and Proprietary.
+ ------------------------------------------------------------------------- *
+
+
+ \file wlan_nv2.h
+
+ \brief Types for NV implementation
+ Anything that needs to be publicly available should
+ be in this file
+
+ $Id$
+
+ Copyright (C) 2006 Airgo Networks, Incorporated
+
+
+ ========================================================================== */
+
+#if !defined( __WLAN_NV2_H )
+#define __WLAN_NV2_H
+
+#include "halLegacyPalTypes.h"
+#include "halCompiler.h"
+#include "wlan_nv.h"
+
+/* From here, NV2 No CH144 support reduced structure
+ * This structure will be used for NV2 backward compatibility */
+
+typedef enum
+{
+ //2.4GHz Band
+ RF_CHAN_1_V2 = 0,
+ RF_CHAN_2_V2 = 1,
+ RF_CHAN_3_V2 = 2,
+ RF_CHAN_4_V2 = 3,
+ RF_CHAN_5_V2 = 4,
+ RF_CHAN_6_V2 = 5,
+ RF_CHAN_7_V2 = 6,
+ RF_CHAN_8_V2 = 7,
+ RF_CHAN_9_V2 = 8,
+ RF_CHAN_10_V2 = 9,
+ RF_CHAN_11_V2 = 10,
+ RF_CHAN_12_V2 = 11,
+ RF_CHAN_13_V2 = 12,
+ RF_CHAN_14_V2 = 13,
+
+ //4.9GHz Band
+ RF_CHAN_240_V2 = 14,
+ RF_CHAN_244_V2 = 15,
+ RF_CHAN_248_V2 = 16,
+ RF_CHAN_252_V2 = 17,
+ RF_CHAN_208_V2 = 18,
+ RF_CHAN_212_V2 = 19,
+ RF_CHAN_216_V2 = 20,
+
+ //5GHz Low & Mid U-NII Band
+ RF_CHAN_36_V2 = 21,
+ RF_CHAN_40_V2 = 22,
+ RF_CHAN_44_V2 = 23,
+ RF_CHAN_48_V2 = 24,
+ RF_CHAN_52_V2 = 25,
+ RF_CHAN_56_V2 = 26,
+ RF_CHAN_60_V2 = 27,
+ RF_CHAN_64_V2 = 28,
+
+ //5GHz Mid Band - ETSI & FCC
+ RF_CHAN_100_V2 = 29,
+ RF_CHAN_104_V2 = 30,
+ RF_CHAN_108_V2 = 31,
+ RF_CHAN_112_V2 = 32,
+ RF_CHAN_116_V2 = 33,
+ RF_CHAN_120_V2 = 34,
+ RF_CHAN_124_V2 = 35,
+ RF_CHAN_128_V2 = 36,
+ RF_CHAN_132_V2 = 37,
+ RF_CHAN_136_V2 = 38,
+ RF_CHAN_140_V2 = 39,
+
+ //5GHz High U-NII Band
+ RF_CHAN_149_V2 = 40,
+ RF_CHAN_153_V2 = 41,
+ RF_CHAN_157_V2 = 42,
+ RF_CHAN_161_V2 = 43,
+ RF_CHAN_165_V2 = 44,
+
+ //CHANNEL BONDED CHANNELS
+ RF_CHAN_BOND_3_V2 = 45,
+ RF_CHAN_BOND_4_V2 = 46,
+ RF_CHAN_BOND_5_V2 = 47,
+ RF_CHAN_BOND_6_V2 = 48,
+ RF_CHAN_BOND_7_V2 = 49,
+ RF_CHAN_BOND_8_V2 = 50,
+ RF_CHAN_BOND_9_V2 = 51,
+ RF_CHAN_BOND_10_V2 = 52,
+ RF_CHAN_BOND_11_V2 = 53,
+ RF_CHAN_BOND_242_V2 = 54, //4.9GHz Band
+ RF_CHAN_BOND_246_V2 = 55,
+ RF_CHAN_BOND_250_V2 = 56,
+ RF_CHAN_BOND_210_V2 = 57,
+ RF_CHAN_BOND_214_V2 = 58,
+ RF_CHAN_BOND_38_V2 = 59, //5GHz Low & Mid U-NII Band
+ RF_CHAN_BOND_42_V2 = 60,
+ RF_CHAN_BOND_46_V2 = 61,
+ RF_CHAN_BOND_50_V2 = 62,
+ RF_CHAN_BOND_54_V2 = 63,
+ RF_CHAN_BOND_58_V2 = 64,
+ RF_CHAN_BOND_62_V2 = 65,
+ RF_CHAN_BOND_102_V2 = 66, //5GHz Mid Band - ETSI & FCC
+ RF_CHAN_BOND_106_V2 = 67,
+ RF_CHAN_BOND_110_V2 = 68,
+ RF_CHAN_BOND_114_V2 = 69,
+ RF_CHAN_BOND_118_V2 = 70,
+ RF_CHAN_BOND_122_V2 = 71,
+ RF_CHAN_BOND_126_V2 = 72,
+ RF_CHAN_BOND_130_V2 = 73,
+ RF_CHAN_BOND_134_V2 = 74,
+ RF_CHAN_BOND_138_V2 = 75,
+ RF_CHAN_BOND_151_V2 = 76, //5GHz High U-NII Band
+ RF_CHAN_BOND_155_V2 = 77,
+ RF_CHAN_BOND_159_V2 = 78,
+ RF_CHAN_BOND_163_V2 = 79,
+
+ NUM_RF_CHANNELS_V2,
+
+ MIN_2_4GHZ_CHANNEL_V2 = RF_CHAN_1_V2,
+ MAX_2_4GHZ_CHANNEL_V2 = RF_CHAN_14_V2,
+
+ MIN_5GHZ_CHANNEL_V2 = RF_CHAN_240_V2,
+ MAX_5GHZ_CHANNEL_V2 = RF_CHAN_165_V2,
+ NUM_5GHZ_CHANNELS_V2 = (MAX_5GHZ_CHANNEL_V2 - MIN_5GHZ_CHANNEL_V2 + 1),
+
+ MIN_20MHZ_RF_CHANNEL_V2 = RF_CHAN_1_V2,
+ MAX_20MHZ_RF_CHANNEL_V2 = RF_CHAN_165_V2,
+ NUM_20MHZ_RF_CHANNELS_V2 = (MAX_20MHZ_RF_CHANNEL_V2 - MIN_20MHZ_RF_CHANNEL_V2 + 1),
+
+ MIN_40MHZ_RF_CHANNEL_V2 = RF_CHAN_BOND_3_V2,
+ MAX_40MHZ_RF_CHANNEL_V2 = RF_CHAN_BOND_163_V2,
+ NUM_40MHZ_RF_CHANNELS_V2 = (MAX_40MHZ_RF_CHANNEL_V2 - MIN_40MHZ_RF_CHANNEL_V2 + 1),
+
+ MIN_CB_2_4GHZ_CHANNEL_V2 = RF_CHAN_BOND_3_V2,
+ MAX_CB_2_4GHZ_CHANNEL_V2 = RF_CHAN_BOND_11_V2,
+
+ MIN_CB_5GHZ_CHANNEL_V2 = RF_CHAN_BOND_242_V2,
+ MAX_CB_5GHZ_CHANNEL_V2 = RF_CHAN_BOND_163_V2,
+
+ NUM_TPC_2_4GHZ_CHANNELS_V2 = 14,
+ NUM_TPC_5GHZ_CHANNELS_V2 = NUM_5GHZ_CHANNELS_V2,
+
+ INVALID_RF_CHANNEL_V2 = 0xBAD,
+ RF_CHANNEL_INVALID_MAX_FIELD_V2 = 0x7FFFFFFF /* define as 4 bytes data */
+}eRfChannelsV2;
+
+typedef PACKED_PRE struct PACKED_POST
+{
+ sRegulatoryChannel channels[NUM_RF_CHANNELS_V2];
+ uAbsPwrPrecision antennaGain[NUM_RF_SUBBANDS];
+ uAbsPwrPrecision bRatePowerOffset[NUM_2_4GHZ_CHANNELS];
+ uAbsPwrPrecision gnRatePowerOffset[NUM_RF_CHANNELS_V2];
+}ALIGN_4 sRegulatoryDomainsV2;
+
+typedef PACKED_PRE struct PACKED_POST
+{
+ int16 bRssiOffset[NUM_RF_CHANNELS_V2];
+ int16 gnRssiOffset[NUM_RF_CHANNELS_V2];
+}ALIGN_4 sRssiChannelOffsetsV2;
+
+typedef PACKED_PRE union PACKED_POST
+{
+ tRateGroupPwr pwrOptimum[NUM_RF_SUBBANDS]; // NV_TABLE_RATE_POWER_SETTINGS
+ sRegulatoryDomainsV2 regDomains[NUM_REG_DOMAINS]; // NV_TABLE_REGULATORY_DOMAINS
+ sDefaultCountry defaultCountryTable; // NV_TABLE_DEFAULT_COUNTRY
+ tTpcPowerTable plutCharacterized[NUM_RF_CHANNELS_V2]; // NV_TABLE_TPC_POWER_TABLE
+ int16 plutPdadcOffset[NUM_RF_CHANNELS_V2]; // NV_TABLE_TPC_PDADC_OFFSETS
+ tRateGroupPwrVR pwrOptimum_virtualRate[NUM_RF_SUBBANDS]; // NV_TABLE_VIRTUAL_RATE
+ sFwConfig fwConfig; // NV_TABLE_FW_CONFIG
+ sRssiChannelOffsetsV2 rssiChanOffsets[2]; // NV_TABLE_RSSI_CHANNEL_OFFSETS
+ sHwCalValues hwCalValues; // NV_TABLE_HW_CAL_VALUES
+ int16 antennaPathLoss[NUM_RF_CHANNELS_V2]; // NV_TABLE_ANTENNA_PATH_LOSS
+ int16 pktTypePwrLimits[NUM_802_11_MODES][NUM_RF_CHANNELS_V2]; // NV_TABLE_PACKET_TYPE_POWER_LIMITS
+ sOfdmCmdPwrOffset ofdmCmdPwrOffset; // NV_TABLE_OFDM_CMD_PWR_OFFSET
+ sTxBbFilterMode txbbFilterMode; // NV_TABLE_TX_BB_FILTER_MODE
+}ALIGN_4 uNvTablesV2;
+
+typedef PACKED_PRE struct PACKED_POST
+{
+ tRateGroupPwr pwrOptimum[NUM_RF_SUBBANDS]; // NV_TABLE_RATE_POWER_SETTINGS
+ sRegulatoryDomainsV2 regDomains[NUM_REG_DOMAINS]; // NV_TABLE_REGULATORY_DOMAINS
+ sDefaultCountry defaultCountryTable; // NV_TABLE_DEFAULT_COUNTRY
+ tTpcPowerTable plutCharacterized[NUM_RF_CHANNELS_V2]; // NV_TABLE_TPC_POWER_TABLE
+ int16 plutPdadcOffset[NUM_RF_CHANNELS_V2]; // NV_TABLE_TPC_PDADC_OFFSETS
+ tRateGroupPwrVR pwrOptimum_virtualRate[NUM_RF_SUBBANDS]; // NV_TABLE_VIRTUAL_RATE
+ sFwConfig fwConfig; // NV_TABLE_FW_CONFIG
+ sRssiChannelOffsetsV2 rssiChanOffsets[2]; // NV_TABLE_RSSI_CHANNEL_OFFSETS
+ sHwCalValues hwCalValues; // NV_TABLE_HW_CAL_VALUES
+ int16 antennaPathLoss[NUM_RF_CHANNELS_V2]; // NV_TABLE_ANTENNA_PATH_LOSS
+ int16 pktTypePwrLimits[NUM_802_11_MODES][NUM_RF_CHANNELS_V2]; // NV_TABLE_PACKET_TYPE_POWER_LIMITS
+ sOfdmCmdPwrOffset ofdmCmdPwrOffset; // NV_TABLE_OFDM_CMD_PWR_OFFSET
+ sTxBbFilterMode txbbFilterMode; // NV_TABLE_TX_BB_FILTER_MODE
+}ALIGN_4 sNvTablesV2;
+
+typedef PACKED_PRE struct PACKED_POST
+{
+ sNvFields fields;
+ sNvTablesV2 tables;
+}ALIGN_4 sHalNvV2;
+
+extern const sHalNvV2 nvDefaultsV2;
+
+#endif
+