sbsv2/raptor/test/smoke_suite/test_resources/tracecompiler/testTC/src/wlanhwinitpermparser.cpp
changeset 3 e1eecf4d390d
equal deleted inserted replaced
1:be27ed110b50 3:e1eecf4d390d
       
     1 /*
       
     2 * Copyright (c) 2002-2006 Nokia Corporation and/or its subsidiary(-ies).
       
     3 * All rights reserved.
       
     4 * This component and the accompanying materials are made available
       
     5 * under the terms of the License "Eclipse Public License v1.0"
       
     6 * which accompanies this distribution, and is available
       
     7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
       
     8 *
       
     9 * Initial Contributors:
       
    10 * Nokia Corporation - initial contribution.
       
    11 *
       
    12 * Contributors:
       
    13 *
       
    14 * Description:  The class for parsing the tuning data stored in PERM server
       
    15 *
       
    16 */
       
    17 
       
    18 
       
    19 #include <stddef.h>
       
    20 #include <es_sock.h>
       
    21 #include "gendebug.h"
       
    22 #include "wlanhwinitpermparser.h"
       
    23 #include "bcmnvmem.h"
       
    24 #include "lmac_firmware.h"
       
    25 #include "plt_firmware.h"
       
    26 #include "OstTraceDefinitions.h"
       
    27 #ifdef OST_TRACE_COMPILER_IN_USE
       
    28 #include "wlanhwinitpermparserTraces.h"
       
    29 #endif
       
    30 
       
    31 
       
    32 // ============================ MEMBER FUNCTIONS ===============================
       
    33 
       
    34 CWlanHwInitPermParser::CWlanHwInitPermParser() :
       
    35     iTuningData(NULL),
       
    36     iNvsData(NULL)
       
    37 {
       
    38 	TraceDump( INFO_LEVEL, ( _L( "CWlanHwInitPermParser:CWlanHwInitPermParser()" ) ) );
       
    39 	OstTrace0( TRACE_NORMAL, CWLANHWINITPERMPARSER_CWLANHWINITPERMPARSER, "CWlanHwInitPermParser:CWlanHwInitPermParser()" );	
       
    40 }
       
    41 
       
    42 
       
    43 void CWlanHwInitPermParser::ConstructL()
       
    44 {
       
    45 	TraceDump( INFO_LEVEL, ( _L( "CWlanHwInitPermParser:ConstructL()" ) ) );
       
    46 	OstTrace0( TRACE_NORMAL, CWLANHWINITPERMPARSER_CONSTRUCTL, "CWlanHwInitPermParser:ConstructL()" );	
       
    47 	iTuningData = HBufC8::NewL( (sizeof(WlanHalApi::SNvMem) - offsetof(WlanHalApi::SNvMem, PL_2G_hdb)) );   
       
    48 	iNvsData = HBufC8::NewL( sizeof(WlanHalApi::SNvMem) );   
       
    49 }
       
    50 
       
    51 
       
    52 CWlanHwInitPermParser* CWlanHwInitPermParser::NewL()
       
    53 {
       
    54 	OstTrace0( TRACE_NORMAL, CWLANHWINITPERMPARSER_NEWL, "CWlanHwInitPermParser::NewL()" );
       
    55 	CWlanHwInitPermParser* self = new( ELeave ) CWlanHwInitPermParser;
       
    56 
       
    57 	CleanupStack::PushL( self );
       
    58 	self->ConstructL();
       
    59 	CleanupStack::Pop( self );
       
    60 
       
    61 	return self;
       
    62 }
       
    63 
       
    64 
       
    65 CWlanHwInitPermParser::~CWlanHwInitPermParser()
       
    66 {
       
    67 	TraceDump( INFO_LEVEL, ( _L( "CWlanHwInitPermParser:~CWlanHwInitPermParser()" ) ) );
       
    68 	OstTrace0( TRACE_NORMAL, DUP1_CWLANHWINITPERMPARSER_CWLANHWINITPERMPARSER, "CWlanHwInitPermParser:~CWlanHwInitPermParser()" );
       
    69 	delete iTuningData;
       
    70 	iTuningData = NULL;
       
    71 	delete iNvsData;
       
    72 	iNvsData = NULL;
       
    73 }
       
    74 
       
    75 void CWlanHwInitPermParser::CompareNvsBuffer()
       
    76 {
       
    77 	TraceDump( INFO_LEVEL, ( _L( "CWlanHwInitPermParser:CompareNvsBuffer()") ) );
       
    78 	OstTrace0( TRACE_NORMAL, CWLANHWINITPERMPARSER_COMPARENVSBUFFER, "CWlanHwInitPermParser:CompareNvsBuffer()" );
       
    79 	TUint8* pNvsBuffer = (TUint8*)iNvsData->Ptr();
       
    80 	TUint8* normalFirmwareNvsBuffer = (TUint8*) (normal_firmware + KNvMemValueOffset32);
       
    81 	TUint8* pltFirmwareNvsBuffer = (TUint8*) (plt_firmware + KNvMemValueOffset32);
       
    82 	
       
    83 	TraceDump( INFO_LEVEL, ( _L( "CWlanHwInitPermParser:CompareNvsBuffer() sizeof(WlanHalApi::SNvMem): %d"), sizeof(WlanHalApi::SNvMem) ) );
       
    84 	OstTrace1( TRACE_NORMAL, DUP1_CWLANHWINITPERMPARSER_COMPARENVSBUFFER, "CWlanHwInitPermParser:CompareNvsBuffer() sizeof(WlanHalApi::SNvMem): %d", sizeof(WlanHalApi::SNvMem));
       
    85 	
       
    86 	/* checking the changes that have been made */
       
    87 	for( TUint32 i = 0 ; i < sizeof(WlanHalApi::SNvMem) ; i++)
       
    88 	{
       
    89 		if(normalFirmwareNvsBuffer[i] != pNvsBuffer[i])
       
    90 		{
       
    91 			TraceDump( INFO_LEVEL, ( _L( "CWlanHwInitPermParser:Normal NVS changed[0x%04X]:orig 0x%02X, new 0x%02X"), i, normalFirmwareNvsBuffer[i], pNvsBuffer[i]) );
       
    92 			OstTraceExt3( TRACE_NORMAL, DUP2_CWLANHWINITPERMPARSER_COMPARENVSBUFFER, "CWlanHwInitPermParser:Normal NVS changed[0x%x]:orig 0x%x, new 0x%x", i, normalFirmwareNvsBuffer[i], pNvsBuffer[i] );
       
    93 		}
       
    94 	}
       
    95 
       
    96 	/* also for plt firmware */
       
    97 	for( TUint32 i = 0 ; i < sizeof(WlanHalApi::SNvMem) ; i++)
       
    98 	{
       
    99 		if(pltFirmwareNvsBuffer[i] != pNvsBuffer[i])
       
   100 		{
       
   101 			TraceDump( INFO_LEVEL, ( _L( "CWlanHwInitPermParser:PLT NVS changed[0x%04X]:orig 0x%02X, new 0x%02X"), i, pltFirmwareNvsBuffer[i], pNvsBuffer[i]) );
       
   102 			OstTraceExt3( TRACE_NORMAL, DUP3_CWLANHWINITPERMPARSER_COMPARENVSBUFFER, "CWlanHwInitPermParser:PLT NVS changed[0x%x]:orig 0x%x, new 0x%x", i, pltFirmwareNvsBuffer[i], pNvsBuffer[i] );		
       
   103 		}
       
   104 	}	
       
   105 }
       
   106 
       
   107 // ---------------------------------------------------------
       
   108 // CWlanHwInitPermParser::GetNvsBuffer
       
   109 // ---------------------------------------------------------
       
   110 //
       
   111 TPtr8 CWlanHwInitPermParser::GetNvsBuffer()
       
   112 {
       
   113 	TraceDump( INFO_LEVEL, ( _L( "CWlanHwInitPermParser:GetNvsBuffer()" ) ) );
       
   114 	OstTrace0( TRACE_NORMAL, CWLANHWINITPERMPARSER_GETNVSBUFFER, "CWlanHwInitPermParser:GetNvsBuffer()" );
       
   115 	return iNvsData->Des();
       
   116 }
       
   117 
       
   118 // ---------------------------------------------------------
       
   119 // CWlanHwInitPermParser::GetTuningBuffer
       
   120 // ---------------------------------------------------------
       
   121 //
       
   122 TPtr8 CWlanHwInitPermParser::GetTuningBuffer()
       
   123 {
       
   124 	TraceDump( INFO_LEVEL, ( _L( "CWlanHwInitPermParser:GetTuningBuffer()" ) ) );
       
   125 	OstTrace0( TRACE_NORMAL, CWLANHWINITPERMPARSER_GETTUNINGBUFFER, "CWlanHwInitPermParser:GetTuningBuffer()" );
       
   126 	return iTuningData->Des();
       
   127 }
       
   128 
       
   129 
       
   130 // ---------------------------------------------------------
       
   131 // CWlanHwInitPermParser::UpdateNvsData
       
   132 // ---------------------------------------------------------
       
   133 //
       
   134 void CWlanHwInitPermParser::UpdateNvsData(nvsUpdateList updateList)
       
   135 {
       
   136 	TraceDump( INFO_LEVEL, ( _L( "CWlanHwInitPermParser:UpdateNvsData()" ) ) );
       
   137 	TraceDump( INFO_LEVEL, ( _L( "CWlanHwInitPermParser:updateList 0x%X"), updateList ) );
       
   138 	OstTrace0( TRACE_NORMAL, CWLANHWINITPERMPARSER_UPDATENVSDATA, "CWlanHwInitPermParser:UpdateNvsData()" );
       
   139 	OstTrace1( TRACE_NORMAL, DUP1_CWLANHWINITPERMPARSER_UPDATENVSDATA, "CWlanHwInitPermParser:updateList 0x%x", updateList );
       
   140 	
       
   141 	WlanHalApi::SNvMem* pNvsStruct = (WlanHalApi::SNvMem*)iNvsData->Ptr();
       
   142 
       
   143 	if( (sizeof(WlanHalApi::SNvMem) - offsetof(WlanHalApi::SNvMem, PL_2G_hdb)) == iTuningData->Length() ) //only use if the tuning data is the same size as the structure...
       
   144 	{
       
   145 		if(updateList == UPDATE_ALL)
       
   146 		{
       
   147 			TraceDump( INFO_LEVEL, ( _L( "CWlanHwInitPermParser:UpdateNvsData:UPDATE_ALL" ) ) );
       
   148 			OstTrace0( TRACE_NORMAL, DUP2_CWLANHWINITPERMPARSER_UPDATENVSDATA, "CWlanHwInitPermParser:UpdateNvsData:UPDATE_ALL" );
       
   149 			//void * memcpy ( void * destination, const void * source, size_t num );
       
   150 			memcpy( (&pNvsStruct->PL_2G_hdb), iTuningData->Ptr(), iTuningData->Length() );		
       
   151 		}
       
   152 	}
       
   153 	else
       
   154 	{
       
   155 			TraceDump( INFO_LEVEL, ( _L( "CWlanHwInitPermParser:size mismatch data-%d, structure-%d"), iTuningData->Length(), sizeof(WlanHalApi::SNvMem)) );
       
   156 			OstTraceExt2( TRACE_NORMAL, DUP3_CWLANHWINITPERMPARSER_UPDATENVSDATA, "CWlanHwInitPermParser:size mismatch data-%d, structure-%d", iTuningData->Length(), sizeof(WlanHalApi::SNvMem) );			
       
   157 	}
       
   158 
       
   159 	if(updateList & UPDATE_MAC_ADDR)
       
   160 	{
       
   161 		//Update Mac address
       
   162 		TraceDump( INFO_LEVEL, ( _L( "CWlanHwInitPermParser:UPDATE_MAC_ADDR" ) ) );
       
   163 		TraceDump( INFO_LEVEL, ( _L( "CWlanHwInitPermParser:Current Mac Addr - %02X:%02X:%02X:%02X:%02X:%02X"),  pNvsStruct->whamac[0], pNvsStruct->whamac[1], pNvsStruct->whamac[2], pNvsStruct->whamac[3], pNvsStruct->whamac[4], pNvsStruct->whamac[5] ) );
       
   164 		TraceDump( INFO_LEVEL, ( _L( "CWlanHwInitPermParser:Mac Addr to use - %02X:%02X:%02X:%02X:%02X:%02X"), iMacAddress.iMacAddress[0], iMacAddress.iMacAddress[1], iMacAddress.iMacAddress[2], iMacAddress.iMacAddress[3], iMacAddress.iMacAddress[4], iMacAddress.iMacAddress[5]) );
       
   165 		OstTrace0( TRACE_NORMAL, DUP4_CWLANHWINITPERMPARSER_UPDATENVSDATA, "CWlanHwInitPermParser:UPDATE_MAC_ADDR" );
       
   166 		TBuf<80> buf;
       
   167 		buf.AppendFormat(_L("CWlanHwInitPermParser:Current Mac Addr - %02X:%02X:%02X:%02X:%02X:%02X"),  pNvsStruct->whamac[0], pNvsStruct->whamac[1], pNvsStruct->whamac[2], pNvsStruct->whamac[3], pNvsStruct->whamac[4], pNvsStruct->whamac[5] );
       
   168 		TPtrC16 currentMacPtr((TUint16*)buf.Ptr(), buf.Size());
       
   169 		OstTraceExt1( TRACE_NORMAL, DUP5_CWLANHWINITPERMPARSER_UPDATENVSDATA, "%S", currentMacPtr );		
       
   170 		buf.Zero();
       
   171 		buf.AppendFormat(_L("CWlanHwInitPermParser:Mac Addr to use - %02X:%02X:%02X:%02X:%02X:%02X"), iMacAddress.iMacAddress[0], iMacAddress.iMacAddress[1], iMacAddress.iMacAddress[2], iMacAddress.iMacAddress[3], iMacAddress.iMacAddress[4], iMacAddress.iMacAddress[5] );
       
   172 		TPtrC16 newMacPtr((TUint16*)buf.Ptr(), buf.Size());
       
   173 		OstTraceExt1( TRACE_NORMAL, DUP6_CWLANHWINITPERMPARSER_UPDATENVSDATA, "%S", newMacPtr );
       
   174 		
       
   175 		/* Copy the MAC address */
       
   176 		for( TUint32 i = 0 ; i < KMacAddrLength ; i++)
       
   177 		{
       
   178 			pNvsStruct->whamac[i] = iMacAddress.iMacAddress[i];
       
   179 		}
       
   180 		TraceDump( INFO_LEVEL, ( _L( "CWlanHwInitPermParser:Final Mac Addr - %02X:%02X:%02X:%02X:%02X:%02X"),  pNvsStruct->whamac[0], pNvsStruct->whamac[1], pNvsStruct->whamac[2], pNvsStruct->whamac[3], pNvsStruct->whamac[4], pNvsStruct->whamac[5] ) );
       
   181 		buf.Zero();
       
   182 		buf.AppendFormat(_L("CWlanHwInitPermParser:Final Mac Addr - %02X:%02X:%02X:%02X:%02X:%02X"), pNvsStruct->whamac[0], pNvsStruct->whamac[1], pNvsStruct->whamac[2], pNvsStruct->whamac[3], pNvsStruct->whamac[4], pNvsStruct->whamac[5] );
       
   183 		TPtrC16 finalMacPtr((TUint16*)buf.Ptr(), buf.Size());
       
   184 		OstTraceExt1( TRACE_NORMAL, DUP7_CWLANHWINITPERMPARSER_UPDATENVSDATA, "%S", finalMacPtr );
       
   185 	}
       
   186 
       
   187 	CompareNvsBuffer();
       
   188 }
       
   189 
       
   190 
       
   191 void CWlanHwInitPermParser::GenerateDefaultTuningData(void)
       
   192 {
       
   193 	TraceDump( INFO_LEVEL, ( _L( "CWlanHwInitPermParser:GenerateDefaultTuningData()" ) ) );    
       
   194 	OstTrace0( TRACE_NORMAL, CWLANHWINITPERMPARSER_GENERATEDEFAULTTUNINGDATA, "CWlanHwInitPermParser:GenerateDefaultTuningData()" );
       
   195 	
       
   196 	//use nvs file to create default tuning data
       
   197 	TPtr8 tuningPtr( GetTuningBuffer() );
       
   198 	WlanHalApi::SNvMem* pNvsStruct = (WlanHalApi::SNvMem*)iNvsData->Ptr();
       
   199 	
       
   200 	tuningPtr.Copy(&pNvsStruct->PL_2G_hdb, (sizeof(WlanHalApi::SNvMem) - offsetof(WlanHalApi::SNvMem, PL_2G_hdb)));	
       
   201 }
       
   202 
       
   203 void CWlanHwInitPermParser::SetMacAddress(const TMacAddr& pMacAddress)
       
   204 {
       
   205 	TraceDump( INFO_LEVEL, ( _L( "CWlanHwInitPermParser:SetMacAddress()" ) ) );
       
   206 	OstTrace0( TRACE_NORMAL, CWLANHWINITPERMPARSER_SETMACADDRESS, "CWlanHwInitPermParser:SetMacAddress()" );
       
   207 	
       
   208 	memcpy(iMacAddress.iMacAddress, pMacAddress.iMacAddress, KMacAddrLength);
       
   209 }
       
   210 
       
   211 // ---------------------------------------------------------
       
   212 // CWlanHwInitPermParser::GetTuningValues
       
   213 // ---------------------------------------------------------
       
   214 //
       
   215 TInt CWlanHwInitPermParser::GetTuningValues(TDes8& aData)
       
   216 {
       
   217 	TraceDump( INFO_LEVEL, ( _L( "CWlanHwInitPermParser:GetTuningValues()" ) ) );    
       
   218 	OstTrace0( TRACE_NORMAL, CWLANHWINITPERMPARSER_GETTUNINGVALUES, "CWlanHwInitPermParser:GetTuningValues()" );
       
   219 	
       
   220 	aData.Copy(GetTuningBuffer());
       
   221 
       
   222 	return KErrNone;
       
   223 }
       
   224 
       
   225 
       
   226 // ---------------------------------------------------------
       
   227 // CWlanHwInitPermParser::SetTuningValues
       
   228 // ---------------------------------------------------------
       
   229 //
       
   230 TInt CWlanHwInitPermParser::SetTuningValues(TDesC8& aData, nvsUpdateList updateList)
       
   231 {
       
   232 	TraceDump( INFO_LEVEL, ( _L( "CWlanHwInitPermParser:SetTuningValues()" ) ) );
       
   233 	TraceDump( INFO_LEVEL, ( _L( "CWlanHwInitPermParser:updateList 0x%X"), updateList ) );
       
   234 	OstTrace0( TRACE_NORMAL, CWLANHWINITPERMPARSER_SETTUNINGVALUES, "CWlanHwInitPermParser:SetTuningValues()" );
       
   235 	OstTrace1( TRACE_NORMAL, DUP1_CWLANHWINITPERMPARSER_SETTUNINGVALUES, "CWlanHwInitPermParser:updateList 0x%x", updateList );
       
   236 	
       
   237 	TPtr8 tuningPtr( GetTuningBuffer() );
       
   238 	TUint8* pStoredTuningData = (TUint8*)tuningPtr.Ptr();
       
   239 		
       
   240 	if(updateList & UPDATE_ALL)
       
   241 	{
       
   242 		TraceDump( INFO_LEVEL, ( _L( "CWlanHwInitPermParser:UPDATE_ALL" ) ) );
       
   243 		OstTrace0( TRACE_NORMAL, DUP2_CWLANHWINITPERMPARSER_SETTUNINGVALUES, "CWlanHwInitPermParser:UPDATE_ALL" );		
       
   244 		//void * memcpy ( void * destination, const void * source, size_t num );						
       
   245 		memcpy( pStoredTuningData, aData.Ptr(), (sizeof(WlanHalApi::SNvMem) - offsetof(WlanHalApi::SNvMem, PL_2G_hdb) ) );		
       
   246 	}
       
   247 
       
   248 	return KErrNone;
       
   249 }