summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rwxr-xr-xsrc/usr/diag/prdf/common/framework/service/iipServiceDataCollector.h42
-rwxr-xr-xsrc/usr/diag/prdf/common/framework/service/iipServiceDataCollector.inl15
-rw-r--r--src/usr/diag/prdf/common/framework/service/prdfRasServices_common.C54
-rwxr-xr-xsrc/usr/diag/prdf/common/framework/service/prdfServiceDataCollector.C77
-rwxr-xr-xsrc/usr/diag/prdf/common/framework/service/prdfTargetServices.C36
-rwxr-xr-xsrc/usr/diag/prdf/common/framework/service/prdfTargetServices.H8
-rwxr-xr-xsrc/usr/diag/prdf/common/plugins/prdfDramRepairUsrData.H16
-rw-r--r--src/usr/diag/prdf/common/plugins/prdfLogParse_common.C16
-rw-r--r--src/usr/diag/prdf/common/plugins/prdfPfa5Data.h51
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
OpenPOWER on IntegriCloud