summaryrefslogtreecommitdiffstats
path: root/src/usr/hwpf/hwp
diff options
context:
space:
mode:
authorMike Jones <mjjones@us.ibm.com>2014-03-26 17:07:03 -0500
committerA. Patrick Williams III <iawillia@us.ibm.com>2014-04-03 07:22:09 -0500
commit2ecd6efcebf8d021ee2be43c92383d469338131d (patch)
tree429bda014e1930f01b633f9de30b4e7712ac217c /src/usr/hwpf/hwp
parentbe386b0d8ecea151a88eb4f3d21a937302072200 (diff)
downloadtalos-hostboot-2ecd6efcebf8d021ee2be43c92383d469338131d.tar.gz
talos-hostboot-2ecd6efcebf8d021ee2be43c92383d469338131d.zip
Generate HWP error with FFDC for unknown SBE error
Rather than generating a FAPI error, generate a real HWP error that collects useful FFDC Change-Id: I9bdc2dd00f42635b9dc34eb1a4c3f0ea91fe9b5e CQ: SW253652 Reviewed-on: http://gfw160.aus.stglabs.ibm.com:8080/gerrit/9928 Reviewed-by: MATTHEW A. PLOETZ <maploetz@us.ibm.com> Reviewed-by: STEPHEN M. CPREK <smcprek@us.ibm.com> Tested-by: Jenkins Server Reviewed-by: A. Patrick Williams III <iawillia@us.ibm.com>
Diffstat (limited to 'src/usr/hwpf/hwp')
-rw-r--r--src/usr/hwpf/hwp/slave_sbe/proc_check_slave_sbe_seeprom_complete/proc_extract_sbe_rc.C28
-rw-r--r--src/usr/hwpf/hwp/slave_sbe/proc_check_slave_sbe_seeprom_complete/proc_extract_sbe_rc_errors.xml85
2 files changed, 88 insertions, 25 deletions
diff --git a/src/usr/hwpf/hwp/slave_sbe/proc_check_slave_sbe_seeprom_complete/proc_extract_sbe_rc.C b/src/usr/hwpf/hwp/slave_sbe/proc_check_slave_sbe_seeprom_complete/proc_extract_sbe_rc.C
index 86b8ffb0f..9324e8ec3 100644
--- a/src/usr/hwpf/hwp/slave_sbe/proc_check_slave_sbe_seeprom_complete/proc_extract_sbe_rc.C
+++ b/src/usr/hwpf/hwp/slave_sbe/proc_check_slave_sbe_seeprom_complete/proc_extract_sbe_rc.C
@@ -21,7 +21,7 @@
/* */
/* IBM_PROLOG_END_TAG */
// -*- mode: C++; c-file-style: "linux"; -*-
-// $Id: proc_extract_sbe_rc.C,v 1.16 2014/03/18 14:09:27 jmcgill Exp $
+// $Id: proc_extract_sbe_rc.C,v 1.17 2014/03/24 20:34:44 jmcgill Exp $
// $Source: /afs/awd/projects/eclipz/KnowledgeBase/.cvsroot/eclipz/chips/p8/working/procedures/ipl/fapi/proc_extract_sbe_rc.C,v $
//------------------------------------------------------------------------------
// *|
@@ -792,20 +792,30 @@ fapi::ReturnCode proc_extract_sbe_rc(const fapi::Target & i_target,
// return soft error with lowest priority
if ((i_engine == SBE) && (soft_err != eNO_ERROR))
{
- if ((soft_err == eSOFT_ERR_PNOR) || (soft_err == eSOFT_ERR_BOTH))
+ const fapi::Target & CHIP_IN_ERROR = i_target;
+ if (soft_err == eSOFT_ERR_I2CM)
+ {
+ FAPI_ERR("Recoverable ECC Error on I2C Access");
+ const ecmdDataBufferBase & I2C_ECCB_STATUS = i2cm_eccb_status;
+ FAPI_SET_HWP_ERROR(rc, RC_PROC_EXTRACT_SBE_RC_SOFT_ECC_ERROR_I2C_SBE);
+ break;
+ }
+ else if (soft_err == eSOFT_ERR_PNOR)
{
FAPI_ERR("Recoverable ECC Error on PNOR Access");
+ const ecmdDataBufferBase & PNOR_ECCB_STATUS = pnor_eccb_status;
+ FAPI_SET_HWP_ERROR(rc, RC_PROC_EXTRACT_SBE_RC_SOFT_ECC_ERROR_PNOR_SBE);
+ break;
}
- if ((soft_err == eSOFT_ERR_I2CM) || (soft_err == eSOFT_ERR_BOTH))
+ else // (soft_err == eSOFT_ERR_BOTH)
{
+ FAPI_ERR("Recoverable ECC Error on PNOR Access");
FAPI_ERR("Recoverable ECC Error on I2C Access");
+ const ecmdDataBufferBase & PNOR_ECCB_STATUS = pnor_eccb_status;
+ const ecmdDataBufferBase & I2C_ECCB_STATUS = i2cm_eccb_status;
+ FAPI_SET_HWP_ERROR(rc, RC_PROC_EXTRACT_SBE_RC_SOFT_ECC_ERROR_I2C_AND_PNOR_SBE);
+ break;
}
- const fapi::Target & CHIP_IN_ERROR = i_target;
- const soft_error_t & SOFT_ERR_STATUS = soft_err;
- const ecmdDataBufferBase & PNOR_ECCB_STATUS = pnor_eccb_status;
- const ecmdDataBufferBase & I2C_ECCB_STATUS = i2cm_eccb_status;
- FAPI_SET_HWP_ERROR(rc, RC_PROC_EXTRACT_SBE_RC_SOFT_ECC_ERROR_SBE);
- break;
}
} while(0);
diff --git a/src/usr/hwpf/hwp/slave_sbe/proc_check_slave_sbe_seeprom_complete/proc_extract_sbe_rc_errors.xml b/src/usr/hwpf/hwp/slave_sbe/proc_check_slave_sbe_seeprom_complete/proc_extract_sbe_rc_errors.xml
index 1700a2a29..75f9eadc7 100644
--- a/src/usr/hwpf/hwp/slave_sbe/proc_check_slave_sbe_seeprom_complete/proc_extract_sbe_rc_errors.xml
+++ b/src/usr/hwpf/hwp/slave_sbe/proc_check_slave_sbe_seeprom_complete/proc_extract_sbe_rc_errors.xml
@@ -20,7 +20,7 @@
<!-- Origin: 30 -->
<!-- -->
<!-- IBM_PROLOG_END_TAG -->
-<!-- $Id: proc_extract_sbe_rc_errors.xml,v 1.12 2014/03/18 14:11:37 jmcgill Exp $ -->
+<!-- $Id: proc_extract_sbe_rc_errors.xml,v 1.14 2014/03/24 20:34:12 jmcgill Exp $ -->
<!-- Error definitions for proc_extract_sbe_rc procedure -->
<hwpErrors>
<!-- *********************************************************************** -->
@@ -318,12 +318,6 @@
<target>CHIP_IN_ERROR</target>
<priority>HIGH</priority>
</callout>
- <deconfigure>
- <target>CHIP_IN_ERROR</target>
- </deconfigure>
- <gard>
- <target>CHIP_IN_ERROR</target>
- </gard>
</hwpError>
<!-- *********************************************************************** -->
<hwpError>
@@ -347,12 +341,6 @@
<target>CHIP_IN_ERROR</target>
<priority>HIGH</priority>
</callout>
- <deconfigure>
- <target>CHIP_IN_ERROR</target>
- </deconfigure>
- <gard>
- <target>CHIP_IN_ERROR</target>
- </gard>
</hwpError>
<!-- *********************************************************************** -->
<hwpError>
@@ -788,14 +776,55 @@
</hwpError>
<!-- *********************************************************************** -->
<hwpError>
- <rc>RC_PROC_EXTRACT_SBE_RC_SOFT_ECC_ERROR_SBE</rc>
+ <rc>RC_PROC_EXTRACT_SBE_RC_SOFT_ECC_ERROR_I2C_SBE</rc>
+ <description>
+ Procedure: proc_extract_sbe_rc
+ ECCB indicates correctable ECC error threshold from I2C was exceeded during SBE execution
+ Reload/update of SEEPROM required
+ </description>
+ <ffdc>CHIP_IN_ERROR</ffdc>
+ <ffdc>I2C_ECCB_STATUS</ffdc>
+ <collectRegisterFfdc>
+ <id>REG_FFDC_PROC_STATUS_AND_SBE_VITAL_REGISTERS</id>
+ <id>REG_FFDC_PROC_SBE_REGISTERS</id>
+ <id>REG_FFDC_PROC_MBOX_REGISTERS</id>
+ <target>CHIP_IN_ERROR</target>
+ </collectRegisterFfdc>
+ <callout>
+ <target>CHIP_IN_ERROR</target>
+ <priority>LOW</priority>
+ </callout>
+ </hwpError>
+ <!-- *********************************************************************** -->
+ <hwpError>
+ <rc>RC_PROC_EXTRACT_SBE_RC_SOFT_ECC_ERROR_PNOR_SBE</rc>
<description>
Procedure: proc_extract_sbe_rc
- ECCB indicates correctable ECC error threshold from I2C/PNOR was exceeded during SBE execution
+ ECCB indicates correctable ECC error threshold from PNOR was exceeded during SBE execution
+ Reload/update of PNOR required
+ </description>
+ <ffdc>CHIP_IN_ERROR</ffdc>
+ <ffdc>PNOR_ECCB_STATUS</ffdc>
+ <collectRegisterFfdc>
+ <id>REG_FFDC_PROC_STATUS_AND_SBE_VITAL_REGISTERS</id>
+ <id>REG_FFDC_PROC_SBE_REGISTERS</id>
+ <id>REG_FFDC_PROC_MBOX_REGISTERS</id>
+ <target>CHIP_IN_ERROR</target>
+ </collectRegisterFfdc>
+ <callout>
+ <target>CHIP_IN_ERROR</target>
+ <priority>LOW</priority>
+ </callout>
+ </hwpError>
+ <!-- *********************************************************************** -->
+ <hwpError>
+ <rc>RC_PROC_EXTRACT_SBE_RC_SOFT_ECC_ERROR_I2C_AND_PNOR_SBE</rc>
+ <description>
+ Procedure: proc_extract_sbe_rc
+ ECCB indicates correctable ECC error threshold from both I2C and PNOR was exceeded during SBE execution
Reload/update of SEEPROM/PNOR required
</description>
<ffdc>CHIP_IN_ERROR</ffdc>
- <ffdc>SOFT_ERR_STATUS</ffdc>
<ffdc>I2C_ECCB_STATUS</ffdc>
<ffdc>PNOR_ECCB_STATUS</ffdc>
<collectRegisterFfdc>
@@ -833,6 +862,30 @@
</deconfigure>
</hwpError>
<!-- *********************************************************************** -->
+ <hwpError>
+ <rc>RC_SBE_UNKNOWN_ERROR</rc>
+ <description>
+ Procedure: proc_extract_sbe_rc
+ FAPI_SET_SBE_ERROR did not resolve SBE/SLW PC to known RC.
+ May be caused by platform attempting to resolve engine state with mismatched binary image.
+ </description>
+ <ffdc>CHIP_IN_ERROR</ffdc>
+ <collectRegisterFfdc>
+ <id>REG_FFDC_PROC_STATUS_AND_SBE_VITAL_REGISTERS</id>
+ <id>REG_FFDC_PROC_SBE_REGISTERS</id>
+ <id>REG_FFDC_PROC_MBOX_REGISTERS</id>
+ <target>CHIP_IN_ERROR</target>
+ </collectRegisterFfdc>
+ <callout>
+ <target>CHIP_IN_ERROR</target>
+ <priority>LOW</priority>
+ </callout>
+ <callout>
+ <procedure>CODE</procedure>
+ <priority>HIGH</priority>
+ </callout>
+ </hwpError>
+ <!-- *********************************************************************** -->
</hwpErrors>
OpenPOWER on IntegriCloud