summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorChris Phan <cphan@us.ibm.com>2013-02-08 11:00:08 -0600
committerA. Patrick Williams III <iawillia@us.ibm.com>2013-03-14 09:15:45 -0500
commit6d0643b59374dac9c98a0ebbf2a1f92cdb1b84f4 (patch)
tree00f95c835e09fad828069997159b5d09c2f297b8 /src
parente7aa9a69d27307c5a01df5e2806e8e85a8cb0df9 (diff)
downloadtalos-hostboot-6d0643b59374dac9c98a0ebbf2a1f92cdb1b84f4.tar.gz
talos-hostboot-6d0643b59374dac9c98a0ebbf2a1f92cdb1b84f4.zip
Add PRDF::refresh()
- Remove non-functional chips from PRD system model - Will be called externally from TransitionFile/IStep - Add new function call to host_prd_hwreconfig Change-Id: I6268f382e2b6ed00caa1a5a8ae7fce8c89c3000f RTC: 60419 Reviewed-on: http://gfw160.austin.ibm.com:8080/gerrit/3132 Tested-by: Jenkins Server Reviewed-by: Zane Shelley <zshelle@us.ibm.com> Reviewed-by: Christopher T. Phan <cphan@us.ibm.com> Reviewed-by: A. Patrick Williams III <iawillia@us.ibm.com> Reviewed-on: http://gfw160.austin.ibm.com:8080/gerrit/3535
Diffstat (limited to 'src')
-rwxr-xr-xsrc/include/usr/diag/prdf/common/prdfMain_common.H7
-rwxr-xr-xsrc/usr/diag/prdf/common/framework/config/iipSystem.C2
-rwxr-xr-xsrc/usr/diag/prdf/common/prdfMain_common.C27
-rwxr-xr-xsrc/usr/diag/prdf/prdfMain.C1
-rw-r--r--src/usr/hwas/hostbootIstep.C11
5 files changed, 46 insertions, 2 deletions
diff --git a/src/include/usr/diag/prdf/common/prdfMain_common.H b/src/include/usr/diag/prdf/common/prdfMain_common.H
index 4bbc4d8c3..76108356f 100755
--- a/src/include/usr/diag/prdf/common/prdfMain_common.H
+++ b/src/include/usr/diag/prdf/common/prdfMain_common.H
@@ -163,6 +163,13 @@ extern errlHndl_t main(ATTENTION_VALUE_TYPE i_attnType, const AttnList & i_attnL
*/
extern void iplCleanup();
+/**
+ * @brief Remove non-functional chips from PRD config model
+ *
+ * @return Error log if error occurs
+ */
+extern errlHndl_t refresh();
+
} // End namespace PRDF
#endif // __prdfMain_common_H
diff --git a/src/usr/diag/prdf/common/framework/config/iipSystem.C b/src/usr/diag/prdf/common/framework/config/iipSystem.C
index 032def1db..e95fefc02 100755
--- a/src/usr/diag/prdf/common/framework/config/iipSystem.C
+++ b/src/usr/diag/prdf/common/framework/config/iipSystem.C
@@ -179,6 +179,8 @@ void System::AddDomains(DomainContainerIterator begin,
void System::RemoveStoppedChips(TARGETING::TargetHandle_t i_pchipHandle)
{
+ PRDF_TRAC("System::RemoveStoppedChips chip: 0x%08x",
+ PlatServices::getHuid(i_pchipHandle));
for(DomainContainerType::iterator domainIterator = prioritizedDomains.begin();
domainIterator != prioritizedDomains.end(); domainIterator++)
{
diff --git a/src/usr/diag/prdf/common/prdfMain_common.C b/src/usr/diag/prdf/common/prdfMain_common.C
index 2b66fb457..1fef649fd 100755
--- a/src/usr/diag/prdf/common/prdfMain_common.C
+++ b/src/usr/diag/prdf/common/prdfMain_common.C
@@ -329,5 +329,32 @@ void iplCleanup()
return;
}
+//------------------------------------------------------------------------------
+
+errlHndl_t refresh()
+{
+ PRDF_ENTER("PRDF::refresh()");
+
+ errlHndl_t l_errl = NULL;
+
+ if((false == g_initialized) || (NULL == systemPtr))
+ {
+ l_errl = initialize();
+ }
+ else
+ {
+ // System was built so just check and
+ // remove any non-functional chips
+ systemPtr->RemoveNonFunctionalChips();
+ }
+
+ PRDF_EXIT("PRDF::refresh()");
+
+ return l_errl;
+}
+
+//------------------------------------------------------------------------------
+
+
} // end namespace PRDF
diff --git a/src/usr/diag/prdf/prdfMain.C b/src/usr/diag/prdf/prdfMain.C
index 801c19d7a..ae9c803ae 100755
--- a/src/usr/diag/prdf/prdfMain.C
+++ b/src/usr/diag/prdf/prdfMain.C
@@ -35,4 +35,3 @@ namespace PRDF
{
} // end namespace PRDF
-
diff --git a/src/usr/hwas/hostbootIstep.C b/src/usr/hwas/hostbootIstep.C
index 5738e88e9..4e5b900de 100644
--- a/src/usr/hwas/hostbootIstep.C
+++ b/src/usr/hwas/hostbootIstep.C
@@ -38,6 +38,7 @@
#include <initservice/isteps_trace.H>
#include <targeting/attrsync.H>
+#include <diag/prdf/prdfMain.H>
namespace HWAS
{
@@ -176,7 +177,15 @@ void* host_prd_hwreconfig( void *io_pArgs )
errlHndl_t errl = NULL;
- // stub -- nothing here currently
+ // Call PRDF to remove non-function chips from its system model
+ errl = PRDF::refresh();
+
+ if (errl)
+ {
+ TRACFCOMP(ISTEPS_TRACE::g_trac_isteps_trace,
+ "host_prd_hwreconfig ERROR 0x%.8X returned from"
+ " call to PRDF::refresh", errl->reasonCode());
+ }
TRACDCOMP( ISTEPS_TRACE::g_trac_isteps_trace,
"host_prd_hwreconfig exit" );
OpenPOWER on IntegriCloud