diff options
Diffstat (limited to 'src')
9 files changed, 84 insertions, 231 deletions
diff --git a/src/usr/diag/prdf/common/framework/service/iipServiceDataCollector.h b/src/usr/diag/prdf/common/framework/service/iipServiceDataCollector.h index 0b5e73fbd..89a24abe9 100755 --- a/src/usr/diag/prdf/common/framework/service/iipServiceDataCollector.h +++ b/src/usr/diag/prdf/common/framework/service/iipServiceDataCollector.h @@ -64,12 +64,6 @@ #include <hdctContent.H> -#if( !defined(CONTEXT_x86_nfp) && !defined(_NFP) ) //only for ppc context (@54) -#include <hcdbEntryStates.H> -#include <hcdbCompSubType.H> -#include <fips_comp_id.H> -#endif - #endif #include <list> #include <prdfExtensibleChip.H> @@ -92,28 +86,6 @@ struct SdcCallout { typedef std::vector<SdcCallout> SDC_MRU_LIST; -#ifndef __HOSTBOOT_MODULE - -struct HcdbChangeItem -{ - TARGETING::TargetHandle_t target; - hcdb::comp_subtype_t compSubType; - comp_id_t compType; - - HcdbChangeItem() : - target(NULL), compSubType(hcdb::LBST_ABIST) - {} - - HcdbChangeItem( TARGETING::TargetHandle_t i_target, - hcdb::comp_subtype_t i_compSubType, comp_id_t i_compType ) : - target(i_target), compSubType(i_compSubType), compType(i_compType) - {} -}; - -typedef std::vector<HcdbChangeItem> HCDB_CHANGE_LIST; - -#endif - struct SignatureList { TARGETING::TargetHandle_t target; @@ -779,7 +751,6 @@ private: // functions private: // Data #ifndef __HOSTBOOT_MODULE - HCDB_CHANGE_LIST iv_HcdbChangeList; hwTableContent ivDumpRequestContent; #endif @@ -853,19 +824,6 @@ public: // -------------------------------------- // FSP only functions begin // -------------------------------------- -#ifndef __HOSTBOOT_MODULE - - /** - * @brief Add a change to the Hcdb Change List - */ - void AddChangeForHcdb(TARGETING::TargetHandle_t i_ptargetHandle = NULL,//Need top level target - hcdb::comp_subtype_t i_testType = hcdb::SUBTYPE_NONE, - comp_id_t i_compType = MDIA_COMP_ID); - - HCDB_CHANGE_LIST & GetHcdbList(void); - - void ClearHcdbList(void); -#endif /** SetDump - Specifiy dump of a callout diff --git a/src/usr/diag/prdf/common/framework/service/iipServiceDataCollector.inl b/src/usr/diag/prdf/common/framework/service/iipServiceDataCollector.inl index 282ea1eb4..9fc74b204 100755 --- a/src/usr/diag/prdf/common/framework/service/iipServiceDataCollector.inl +++ b/src/usr/diag/prdf/common/framework/service/iipServiceDataCollector.inl @@ -135,20 +135,5 @@ PRDF_SIGNATURES & ServiceDataCollector::GetSignatureList(void) return iv_SignatureList; } -#ifndef __HOSTBOOT_MODULE - -inline -HCDB_CHANGE_LIST & ServiceDataCollector::GetHcdbList(void) -{ - return iv_HcdbChangeList; -} - -inline -void ServiceDataCollector::ClearHcdbList(void) -{ - iv_HcdbChangeList.erase(iv_HcdbChangeList.begin(),iv_HcdbChangeList.end()); // jl00 -} - -#endif } // end namespace PRDF diff --git a/src/usr/diag/prdf/common/framework/service/prdfRasServices_common.C b/src/usr/diag/prdf/common/framework/service/prdfRasServices_common.C index 4484289ba..ef66198b7 100644 --- a/src/usr/diag/prdf/common/framework/service/prdfRasServices_common.C +++ b/src/usr/diag/prdf/common/framework/service/prdfRasServices_common.C @@ -734,43 +734,6 @@ errlHndl_t ErrDataService::GenerateSrcPfa( ATTENTION_TYPE i_attnType, } } -#ifndef __HOSTBOOT_MODULE - // FIXME: RTC 51618 Need to add HCDB to Hostboot - - //************************************************************** - // setChangeState for HomIds in the HCDB change list - //************************************************************** - HCDB_CHANGE_LIST hcdbList = sdc.GetHcdbList(); - for (HCDB_CHANGE_LIST::iterator i = hcdbList.begin(); i < hcdbList.end(); ++i) - { - //FIXME comp_id_t, l_pchipHandle commented to avoid warning - //TargetHandle_t l_pchipHandle = (*i).iv_phcdbtargetHandle; - // comp_id_t thisCompId = (*i).iv_compType; - hcdb::comp_subtype_t thisCompSubType = i->compSubType; - if (hcdb::SUBTYPE_ANY == thisCompSubType) - { - //PlatServices::setHcdbChangeState(l_pchipHandle);//FIXME functions commneted for now in wrapper - // false means don't set the HOM objects derived from this ohject. - } - else - { - //PlatServices::setHcdbChangeState(l_pchipHandle , thisCompId, thisCompSubType); - //TODO TargetHandle Conversion may shall change for P8 - // false means don't set the HOM objects derived from this ohject. - } - } - - //************************************************************** - // setChangeState for System if needed - //************************************************************** - // If Second Level callout with no hardware called out, setChangeState for System - if ( (HW == false) && (SecondLevel == true)) - { - //PlatServices::setHcdbChangeStateSystem();FIXME functions commneted for now in wrapper - PRDF_INF( PRDF_FUNC"initiating a HCDB setChangeState for System." ); - } -#endif // if not __HOSTBOOT_MODULE - //************************************************************** // Build Dump Flags and PFA5 data //************************************************************** @@ -1193,23 +1156,6 @@ void ErrDataService::initPfaData( ServiceDataCollector & i_sdc, } o_pfa.mruListCount = i; - // FIXME: RTC 51618 Need add HCDB support in Hostboot -#ifdef __HOSTBOOT_MODULE - o_pfa.hcdbListCount = 0; -#else - - // Build the HCDB list into PFA data - HCDB_CHANGE_LIST hcdbList = i_sdc.GetHcdbList(); - for ( i = 0; i < hcdbList.size() && i < HcdbListLIMIT; i++ ) - { - o_pfa.hcdbList[i].hcdbId = getHuid(hcdbList[i].target); - o_pfa.hcdbList[i].compSubType = hcdbList[i].compSubType; - o_pfa.hcdbList[i].compType = hcdbList[i].compType; - } - o_pfa.hcdbListCount = i; - -#endif // __HOSTBOOT_MODULE - // Build the signature list into PFA data PRDF_SIGNATURES sigList = i_sdc.GetSignatureList(); for ( i = 0; i < sigList.size() && i < SigListLIMIT; i++ ) diff --git a/src/usr/diag/prdf/common/framework/service/prdfServiceDataCollector.C b/src/usr/diag/prdf/common/framework/service/prdfServiceDataCollector.C index 3385c7f6e..5868c8a4b 100755 --- a/src/usr/diag/prdf/common/framework/service/prdfServiceDataCollector.C +++ b/src/usr/diag/prdf/common/framework/service/prdfServiceDataCollector.C @@ -212,14 +212,14 @@ uint32_t ServiceDataCollector::Flatten(uint8_t * i_buffer, uint32_t & io_size) c { uint32_t max_size = io_size; uint32_t rc = SUCCESS; - //getting the actual size of prdfHcdbChangeItem and SignatureList that gets saved in memory. since - //instead of handle we save the entity path - uint32_t l_sizeHcdbChange = iv_HcdbChangeList.size() * sizeof(HcdbChangeItem); + //getting the actual size of SignatureList that gets saved in memory. uint32_t l_sizeSignList = iv_SignatureList.size() * sizeof(SignatureList); uint32_t l_sizeMruList = xMruList.size() * sizeof(SdcCallout); - // approximate space needed for essentials. This estimate is slightly higher than actual - const uint32_t MIN_FLAT_SIZE = sizeof(ServiceDataCollector) + sizeof(struct Timer::prdftm_t) - + l_sizeMruList + l_sizeHcdbChange + l_sizeSignList; + // approximate space needed for essentials. + // This estimate is slightly higher than actual + const uint32_t MIN_FLAT_SIZE = sizeof(ServiceDataCollector) + + sizeof(struct Timer::prdftm_t) + + l_sizeMruList + l_sizeSignList; uint8_t * current_ptr = i_buffer; @@ -238,14 +238,7 @@ uint32_t ServiceDataCollector::Flatten(uint8_t * i_buffer, uint32_t & io_size) c buffer_append( current_ptr, i->callout.flatten() ); buffer_append( current_ptr, (uint32_t)i->priority ); } - buffer_append(current_ptr, iv_HcdbChangeList.size()); - for(HCDB_CHANGE_LIST::const_iterator i = iv_HcdbChangeList.begin(); - i != iv_HcdbChangeList.end(); ++i) - { - buffer_append( current_ptr, i->target ); - buffer_append( current_ptr, (uint32_t)i->compSubType ); - buffer_append( current_ptr, (uint32_t)i->compType ); - } + buffer_append(current_ptr, iv_SignatureList.size()); for(PRDF_SIGNATURES::const_iterator i = iv_SignatureList.begin(); i != iv_SignatureList.end(); ++i) @@ -311,22 +304,8 @@ ServiceDataCollector & ServiceDataCollector::operator=( xMruList.push_back( SdcCallout(callout, priority) ); } - ClearHcdbList(); - value = buffer_get32(i_flatdata); // number of HcdbEntries. - for(uint32_t i = 0; i < value; ++i) - { - TARGETING::TargetHandle_t l_pChipHandle = buffer_getTarget(i_flatdata); - hcdb::comp_subtype_t l_compSubType = (hcdb::comp_subtype_t)buffer_get32(i_flatdata); - comp_id_t l_compType = (comp_id_t)buffer_get32(i_flatdata); - if(NULL !=l_pChipHandle) - { - HcdbChangeItem l_item(l_pChipHandle, l_compSubType, l_compType); - iv_HcdbChangeList.push_back(l_item); - - } - } ClearSignatureList(); - value = buffer_get32(i_flatdata); // number of HcdbEntries. + value = buffer_get32(i_flatdata); // number of signatures for(uint32_t i = 0; i < value; ++i) { TARGETING::TargetHandle_t l_pChipHandle = buffer_getTarget(i_flatdata); @@ -366,46 +345,6 @@ ServiceDataCollector & ServiceDataCollector::operator=( return *this; } -//------------------------------------------------------------------------------ - -void ServiceDataCollector::AddChangeForHcdb( TargetHandle_t i_target, - hcdb::comp_subtype_t i_testType, - comp_id_t i_compType ) -{ - #define PRDF_FUNC "[ServiceDataCollector::AddChangeForHcdb] " - - do - { - if ( NULL == i_target ) - { - PRDF_ERR( PRDF_FUNC"Given target is NULL" ); - break; - } - - bool found = false; - for ( HCDB_CHANGE_LIST::iterator i = iv_HcdbChangeList.begin(); - i != iv_HcdbChangeList.end(); i++ ) - { - if ( (i->target == i_target ) && - (i->compSubType == i_testType) && - (i->compType == i_compType) ) - { - found = true; - break; - } - } - - if ( !found ) - { - iv_HcdbChangeList.push_back( HcdbChangeItem(i_target, i_testType, - i_compType) ); - } - - } while (0); - - #undef PRDF_FUNC -} - #endif // #ifndef __HOSTBOOT_MODULE } // end namespace PRDF diff --git a/src/usr/diag/prdf/common/framework/service/prdfTargetServices.C b/src/usr/diag/prdf/common/framework/service/prdfTargetServices.C index c4345cc62..347b5a824 100755 --- a/src/usr/diag/prdf/common/framework/service/prdfTargetServices.C +++ b/src/usr/diag/prdf/common/framework/service/prdfTargetServices.C @@ -301,6 +301,42 @@ uint8_t getChipLevel( TARGETING::TargetHandle_t i_target ) //------------------------------------------------------------------------------ +void setHWStateChanged(TARGETING::TargetHandle_t i_target) +{ + #define PRDF_FUNC "[PlatServices::setHWStateChanged] " + if(NULL != i_target) + { + TYPE type = getTargetType(i_target); + if( (TYPE_DIMM == type) || + (TYPE_MEMBUF == type) || + (TYPE_MCS == type) ) + { + ATTR_HWAS_STATE_CHANGED_FLAG_type hwcf; + hwcf = i_target->getAttr<ATTR_HWAS_STATE_CHANGED_FLAG>(); + + if( !(HWAS_CHANGED_BIT_MEMDIAG & hwcf) ) + { + // FIXME - RTC: 87893 + //Use new set_hwas_changed_bit() when available + hwcf |= HWAS_CHANGED_BIT_MEMDIAG; + i_target->setAttr<ATTR_HWAS_STATE_CHANGED_FLAG>(hwcf); + } + } + else + { + PRDF_ERR(PRDF_FUNC"invalid target type: 0x%08x", type); + } + } + else + { + PRDF_ERR(PRDF_FUNC"i_target is null"); + } + + #undef PRDF_FUNC +} + +//------------------------------------------------------------------------------ + /* TODO: getChipId() may be available in an attribute, but this design has not * been solidified. Instead, we may need to query for 'reason' attributes * to determine the reason we need to do the checks. Since we don't have diff --git a/src/usr/diag/prdf/common/framework/service/prdfTargetServices.H b/src/usr/diag/prdf/common/framework/service/prdfTargetServices.H index 192d17ede..db5d3666a 100755 --- a/src/usr/diag/prdf/common/framework/service/prdfTargetServices.H +++ b/src/usr/diag/prdf/common/framework/service/prdfTargetServices.H @@ -152,6 +152,14 @@ void printTargetInfo( TARGETING::TargetHandle_t i_target ); uint8_t getChipLevel( TARGETING::TargetHandle_t i_target ); /** + * @brief set hw changed state for a target + * + * @param i_target target handle + * + */ +void setHWStateChanged(TARGETING::TargetHandle_t i_target); + +/** * @brief Get the chip ID (P7, P7+, etc.) of this target. * @param i_target Any chip or unit target. * @return The chip ID or 0 function failed. diff --git a/src/usr/diag/prdf/common/plugins/prdfDramRepairUsrData.H b/src/usr/diag/prdf/common/plugins/prdfDramRepairUsrData.H index 741e2cc14..9970041c7 100755 --- a/src/usr/diag/prdf/common/plugins/prdfDramRepairUsrData.H +++ b/src/usr/diag/prdf/common/plugins/prdfDramRepairUsrData.H @@ -35,6 +35,15 @@ namespace PRDF { +#ifdef PRDF_HOSTBOOT_ERRL_PLUGIN +namespace HOSTBOOT +{ +#endif + +#ifdef PRDF_FSP_ERRL_PLUGIN +namespace FSP +{ +#endif /* @brief Represent the header information for DRAM Repair data of a MBA */ @@ -187,6 +196,13 @@ struct DramRepairMbaData } }; +#ifdef PRDF_HOSTBOOT_ERRL_PLUGIN +} // end namespace HOSTBOOT +#endif + +#ifdef PRDF_FSP_ERRL_PLUGIN +} // end namespace FSP +#endif } // end namespace PRDF #endif // end PRDF_DRAM_REPAIR_DATA_H diff --git a/src/usr/diag/prdf/common/plugins/prdfLogParse_common.C b/src/usr/diag/prdf/common/plugins/prdfLogParse_common.C index 78f152789..3a39eb90b 100644 --- a/src/usr/diag/prdf/common/plugins/prdfLogParse_common.C +++ b/src/usr/diag/prdf/common/plugins/prdfLogParse_common.C @@ -502,22 +502,6 @@ bool parsePfaData( void * i_buffer, uint32_t i_buflen, } } - // HCDB info - if ( 0 < pfa.hcdbListCount ) - { - i_parser.PrintNumber( "HCDB List", "%d", pfa.hcdbListCount ); - - for ( uint32_t i = 0; i < pfa.hcdbListCount; ++i ) - { - i_parser.PrintNumber( " HUID", "0x%08x", - pfa.hcdbList[i].hcdbId ); - i_parser.PrintNumber( " Component Type", "0x%04x", - pfa.hcdbList[i].compType ); - i_parser.PrintNumber( " Component Sub Type", "0x%04x", - pfa.hcdbList[i].compSubType ); - } - } - // Multi-signatures if ( 0 < pfa.sigListCount ) { diff --git a/src/usr/diag/prdf/common/plugins/prdfPfa5Data.h b/src/usr/diag/prdf/common/plugins/prdfPfa5Data.h index 5eb4d3045..9fbe6054a 100644 --- a/src/usr/diag/prdf/common/plugins/prdfPfa5Data.h +++ b/src/usr/diag/prdf/common/plugins/prdfPfa5Data.h @@ -34,11 +34,19 @@ namespace PRDF { +#ifdef PRDF_HOSTBOOT_ERRL_PLUGIN +namespace HOSTBOOT +{ +#endif + +#ifdef PRDF_FSP_ERRL_PLUGIN +namespace FSP +{ +#endif const uint32_t PFA5_Format = 0x50464135; const uint32_t MruListLIMIT = 8; -const uint32_t HcdbListLIMIT = 8; const uint32_t SigListLIMIT = 8; // Size of PRD Capture Data @@ -48,7 +56,6 @@ const uint32_t CaptureDataSize = 2048; #else const uint32_t CaptureDataSize = 4096*2; #endif - enum ErrlVersion { ErrlVer1 = 1, @@ -107,27 +114,6 @@ struct PfaMruListStruct }; }; -struct PfaHcdbListStruct -{ - HUID hcdbId; - uint32_t compSubType; - uint32_t compType; - - friend UtilStream& operator<<( UtilStream& i_left, - PfaHcdbListStruct& i_right ) - { - i_left << i_right.hcdbId << i_right.compSubType << i_right.compType; - return i_left; - }; - - friend UtilStream& operator>>( UtilStream& i_left, - PfaHcdbListStruct& i_right ) - { - i_left >> i_right.hcdbId >> i_right.compSubType >> i_right.compType; - return i_left; - }; -}; - struct PfaSigListStruct { HUID chipId; @@ -193,9 +179,6 @@ struct PfaData uint32_t mruListCount; // Total number of MRUs. PfaMruListStruct mruList[MruListLIMIT]; // Full list of MRUs. - uint32_t hcdbListCount; // Total number of MRUs. - PfaHcdbListStruct hcdbList[HcdbListLIMIT]; // Full list of HCDB changes. - uint32_t sigListCount; // Total number of multi-signatures. PfaSigListStruct sigList[SigListLIMIT]; // Full list of multi-signatures. @@ -205,7 +188,6 @@ struct PfaData PfaData() { memset( &mruList[0], 0x00, sizeof(PfaMruListStruct) * MruListLIMIT ); - memset( &hcdbList[0], 0x00, sizeof(PfaHcdbListStruct) * HcdbListLIMIT ); memset( &sigList[0], 0x00, sizeof(PfaSigListStruct) * SigListLIMIT ); } @@ -247,10 +229,6 @@ struct PfaData for ( uint32_t i = 0; i < i_right.mruListCount; i++ ) i_left << i_right.mruList[i]; - i_left << i_right.hcdbListCount; - for ( uint32_t i = 0; i < i_right.hcdbListCount; i++ ) - i_left << i_right.hcdbList[i]; - i_left << i_right.sigListCount; for ( uint32_t i = 0; i < i_right.sigListCount; i++ ) i_left << i_right.sigList[i]; @@ -300,10 +278,6 @@ struct PfaData for ( uint32_t i = 0; i < i_right.mruListCount; i++ ) i_left >> i_right.mruList[i]; - i_left >> i_right.hcdbListCount; - for ( uint32_t i = 0; i < i_right.hcdbListCount; i++ ) - i_left >> i_right.hcdbList[i]; - i_left >> i_right.sigListCount; for ( uint32_t i = 0; i < i_right.sigListCount; i++ ) i_left >> i_right.sigList[i]; @@ -319,6 +293,13 @@ struct CaptureDataClass uint8_t CaptureData[CaptureDataSize]; // MAKMAK Can this be variable size? }; +#ifdef PRDF_HOSTBOOT_ERRL_PLUGIN +} // end namespace HOSTBOOT +#endif + +#ifdef PRDF_FSP_ERRL_PLUGIN +} // end namespace FSP +#endif } // end namespace PRDF #endif // prdfPfa5Data_h |

