summaryrefslogtreecommitdiffstats
path: root/src/usr/hwpf
diff options
context:
space:
mode:
authorThi Tran <thi@us.ibm.com>2014-04-24 14:17:25 -0500
committerA. Patrick Williams III <iawillia@us.ibm.com>2014-04-25 15:58:50 -0500
commitdb480ac1b9466a898e2f09cfb445bf71bfb7f95d (patch)
treef4847b574f16730bd3b30d2473f262648fa6336b /src/usr/hwpf
parentff98c30e81699b1eddde1c8d996903fbba0feaa6 (diff)
downloadtalos-hostboot-db480ac1b9466a898e2f09cfb445bf71bfb7f95d.tar.gz
talos-hostboot-db480ac1b9466a898e2f09cfb445bf71bfb7f95d.zip
SW258130: OCC Reset needs to handle and recover from HW286451 in non-reset trigg
CQ:SW258130 Change-Id: Ief8fe02d11a547d82848f1283e657bd64d24ef84 Reviewed-on: http://gfw160.aus.stglabs.ibm.com:8080/gerrit/10729 Reviewed-by: Thi N. Tran <thi@us.ibm.com> Tested-by: Thi N. Tran <thi@us.ibm.com> Reviewed-on: http://gfw160.aus.stglabs.ibm.com:8080/gerrit/10747 Tested-by: Jenkins Server Reviewed-by: A. Patrick Williams III <iawillia@us.ibm.com>
Diffstat (limited to 'src/usr/hwpf')
-rw-r--r--src/usr/hwpf/hwp/occ/p8_pmc_force_vsafe.C46
-rw-r--r--src/usr/hwpf/hwp/runtime_errors/p8_force_vsafe_errors.xml37
2 files changed, 26 insertions, 57 deletions
diff --git a/src/usr/hwpf/hwp/occ/p8_pmc_force_vsafe.C b/src/usr/hwpf/hwp/occ/p8_pmc_force_vsafe.C
index da2a9ae94..885a53e78 100644
--- a/src/usr/hwpf/hwp/occ/p8_pmc_force_vsafe.C
+++ b/src/usr/hwpf/hwp/occ/p8_pmc_force_vsafe.C
@@ -20,7 +20,7 @@
/* Origin: 30 */
/* */
/* IBM_PROLOG_END_TAG */
-// $Id: p8_pmc_force_vsafe.C,v 1.16 2014/03/21 01:16:09 stillgs Exp $
+// $Id: p8_pmc_force_vsafe.C,v 1.18 2014/04/24 16:54:18 daviddu Exp $
// $Source: /afs/awd/projects/eclipz/KnowledgeBase/.cvsroot/eclipz/chips/p8/working/procedures/ipl/fapi/p8_pmc_force_vsafe.C,v $
//------------------------------------------------------------------------------
// *! (C) Copyright International Business Machines Corp. 2011
@@ -333,15 +333,24 @@ p8_pmc_force_vsafe( const fapi::Target& i_target,
any_error = (pmc_error || intchp_error);
- // Check for voltage change has any error
+ // log status if voltage change has any error
+ // Due to SW258130
+ // This block only dumps any detected hw error status
+ // without taking out an error log and stop the reset flow.
+ // Since this procedure is only used by p8_pm_prep_for_reset
+ // we will and should be able to recover from such hardware errors
+ // by going through occ reset flow, thus no FAPI error logged.
+ // Also since if hardware error occurs, there is no need to check
+ // for pstate ongoing or pstate equals to pvsafe due to possible
+ // hardware stuck; therefore, this if/else logic remains.
if (any_error)
{
- // An error was detected
+ // dump individual error status
FAPI_INF(" PMC_STATUS_REG upon Error");
if (pmcstatusreg.isBitSet(0))
- FAPI_ERR(" pstate_processing_is_susp active");
+ FAPI_INF(" pstate_processing_is_susp active");
if (pmcstatusreg.isBitSet(1))
- FAPI_ERR(" gpsa_bdcst_error active");
+ FAPI_INF(" gpsa_bdcst_error active");
e_rc = pmcstatusreg.extractToRight( &dummy,2,3);
if (e_rc)
@@ -350,32 +359,27 @@ p8_pmc_force_vsafe( const fapi::Target& i_target,
break;
}
if (dummy)
- FAPI_ERR(" gpsa_bdcst_resp_info is non-zero => %x ", dummy );
+ FAPI_INF(" gpsa_bdcst_resp_info is non-zero => %x ", dummy );
if (pmcstatusreg.isBitSet(5))
- FAPI_ERR(" gpsa_vchg_error active");
+ FAPI_INF(" gpsa_vchg_error active");
if (pmcstatusreg.isBitSet(6))
- FAPI_ERR(" gpsa_timeout_error active");
+ FAPI_INF(" gpsa_timeout_error active");
if (pmcstatusreg.isBitSet(7))
- FAPI_ERR(" gpsa_chg_ongoing active");
+ FAPI_INF(" gpsa_chg_ongoing active");
if (pmcstatusreg.isBitSet(8))
- FAPI_ERR(" volt_chg_ongoing active");
+ FAPI_INF(" volt_chg_ongoing active");
if (pmcstatusreg.isBitSet(9))
- FAPI_ERR(" brd_cst_ongoing active");
+ FAPI_INF(" brd_cst_ongoing active");
if (pmcstatusreg.isBitSet(10))
- FAPI_ERR(" gpsa_table_error active");
+ FAPI_INF(" gpsa_table_error active");
if (pmcstatusreg.isBitSet(11))
- FAPI_ERR(" pstate_interchip_error active");
+ FAPI_INF(" pstate_interchip_error active");
if (pmcstatusreg.isBitSet(12))
- FAPI_ERR(" istate_processing_is_susp active");
+ FAPI_INF(" istate_processing_is_susp active");
- FAPI_ERR("Error detected with PMC on-going deassertion during safe voltage movement ");
- const fapi::Target & THISCHIP = i_target;
- const fapi::Target & DCMCHIP = i_dcm_target;
- FAPI_SET_HWP_ERROR(rc, RC_PROCPM_VLT_ERROR);
- break;
-
- } // end of error if
+ FAPI_INF("Status dumpped with PMC on-going deassertion during safe voltage movement, now continue on reset");
+ } // end of status log if
else if (any_ongoing == 0)
{
// Voltage change done (not on-going) and not errors
diff --git a/src/usr/hwpf/hwp/runtime_errors/p8_force_vsafe_errors.xml b/src/usr/hwpf/hwp/runtime_errors/p8_force_vsafe_errors.xml
index 2a09660a6..a67b9aaa0 100644
--- a/src/usr/hwpf/hwp/runtime_errors/p8_force_vsafe_errors.xml
+++ b/src/usr/hwpf/hwp/runtime_errors/p8_force_vsafe_errors.xml
@@ -20,7 +20,7 @@
<!-- Origin: 30 -->
<!-- -->
<!-- IBM_PROLOG_END_TAG -->
-<!-- $Id: p8_force_vsafe_errors.xml,v 1.6 2014/03/05 21:04:04 stillgs Exp $ -->
+<!-- $Id: p8_force_vsafe_errors.xml,v 1.7 2014/04/24 17:01:15 daviddu Exp $ -->
<!-- Error definitions for proc_pmc_force_vsafe procedure -->
<hwpErrors>
<!-- *********************************************************************** -->
@@ -63,41 +63,6 @@
</hwpError>
<!-- *********************************************************************** -->
<hwpError>
- <rc>RC_PROCPM_VLT_ERROR</rc>
- <description>Voltage change not done because of errors on the status register.</description>
- <collectRegisterFfdc>
- <id>REG_FFDC_PSTATE_REGISTERS</id>
- <id>REG_FFDC_SPIVID_REGISTERS</id>
- <target>THISCHIP</target>
- </collectRegisterFfdc>
- <collectRegisterFfdc>
- <id>REG_FFDC_PSTATE_REGISTERS</id>
- <id>REG_FFDC_SPIVID_REGISTERS</id>
- <target>DCMCHIP</target>
- </collectRegisterFfdc>
- <collectRegisterFfdc>
- <id>REG_FFDC_PCBS_PSSTATE_MONITOR_REGISTERS</id>
- <basedOnPresentChildren>
- <target>THISCHIP</target>
- <childType>TARGET_TYPE_EX_CHIPLET</childType>
- <childPosOffsetMultiplier>0x01000000</childPosOffsetMultiplier>
- </basedOnPresentChildren>
- </collectRegisterFfdc>
- <collectRegisterFfdc>
- <id>REG_FFDC_PCBS_PSSTATE_MONITOR_REGISTERS</id>
- <basedOnPresentChildren>
- <target>DCMCHIP</target>
- <childType>TARGET_TYPE_EX_CHIPLET</childType>
- <childPosOffsetMultiplier>0x01000000</childPosOffsetMultiplier>
- </basedOnPresentChildren>
- </collectRegisterFfdc>
- <callout>
- <target>THISCHIP</target>
- <priority>HIGH</priority>
- </callout>
- </hwpError>
- <!-- *********************************************************************** -->
- <hwpError>
<rc>RC_PROCPM_PSTATE_MONITOR_ERR</rc>
<description>Voltage change done but expected pstate did not match after completion.</description>
<ffdc>THISCHIP</ffdc>
OpenPOWER on IntegriCloud