summaryrefslogtreecommitdiffstats
path: root/src/usr/hwpf/hwp
diff options
context:
space:
mode:
authorDoug Gilbert <dgilbert@us.ibm.com>2014-04-07 16:49:18 -0500
committerA. Patrick Williams III <iawillia@us.ibm.com>2014-04-11 12:46:40 -0500
commita903c4f89dd12143ddb187ed8d7602d426fbaec5 (patch)
treed66ca929f02bf9c73d220b1e8830050de9013db8 /src/usr/hwpf/hwp
parentd83e0f05717dc06edc537dcab1deb1758ba7dcf5 (diff)
downloadtalos-hostboot-a903c4f89dd12143ddb187ed8d7602d426fbaec5.tar.gz
talos-hostboot-a903c4f89dd12143ddb187ed8d7602d426fbaec5.zip
Sapphire OCC error handling in HBRT
Change-Id: Ie55785f586da6416c3d2a46767a2f9f17fad282c RTC: 101156 Backport: release-fips810 CQ: SW256035 Reviewed-on: http://gfw160.aus.stglabs.ibm.com:8080/gerrit/10258 Tested-by: Jenkins Server Reviewed-by: Corey V. Swenson <cswenson@us.ibm.com> Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com> Reviewed-by: A. Patrick Williams III <iawillia@us.ibm.com>
Diffstat (limited to 'src/usr/hwpf/hwp')
-rw-r--r--src/usr/hwpf/hwp/occ/runtime/rt_occ.C73
1 files changed, 67 insertions, 6 deletions
diff --git a/src/usr/hwpf/hwp/occ/runtime/rt_occ.C b/src/usr/hwpf/hwp/occ/runtime/rt_occ.C
index 98faec0a2..2701ca48d 100644
--- a/src/usr/hwpf/hwp/occ/runtime/rt_occ.C
+++ b/src/usr/hwpf/hwp/occ/runtime/rt_occ.C
@@ -36,9 +36,10 @@
#include <targeting/common/targetservice.H>
#include <targeting/common/utilFilter.H>
#include <targeting/common/util.H>
-
#include <runtime/rt_targeting.H>
+#include <runtime/interface.h>
+
// fapi support
#include <fapi.H>
#include <fapiPlatHwpInvoker.H>
@@ -223,7 +224,17 @@ namespace RT_OCC
if ( err )
{
+ uint64_t status = err->plid();
errlCommit( err, HWPF_COMP_ID );
+
+ if(g_hostInterfaces &&
+ g_hostInterfaces->report_failure)
+ {
+
+ g_hostInterfaces->report_failure(status,
+ i_proc_chip);
+ }
+
if(rc == 0)
{
rc = -1;
@@ -447,12 +458,29 @@ namespace RT_OCC
err = stop_occ(*itarg, NULL);
}
- // TODO RTC 101156
- // error handling still being designed
- // Need new interface from Sapphire?
if( err )
{
+ uint64_t status = err->plid();
errlCommit( err, HWPF_COMP_ID );
+
+ if(g_hostInterfaces &&
+ g_hostInterfaces->report_failure)
+ {
+ RT_TARG::rtChipId_t proc_chip = 0;
+ errlHndl_t err2 =
+ RT_TARG::getRtTarget(*itarg, proc_chip);
+
+ if(err2) // should never happen
+ {
+ TRACFCOMP
+ (g_fapiTd, ERR_MRK
+ "Error converting target to RT chipID");
+ errlCommit( err2, HWPF_COMP_ID );
+ }
+
+ g_hostInterfaces->report_failure(status,
+ proc_chip);
+ }
err = NULL;
rc = -1;
// keep going
@@ -491,11 +519,44 @@ namespace RT_OCC
err = stop_occ(t0,t1);
}
- // TODO RTC 101156 Error handling still being designed
- // Need new interface from Sapphire?
if( err )
{
+ uint64_t status = err->plid();
errlCommit( err, HWPF_COMP_ID );
+
+ if(g_hostInterfaces &&
+ g_hostInterfaces->report_failure)
+ {
+ RT_TARG::rtChipId_t proc_chip = 0;
+ errlHndl_t err2 =
+ RT_TARG::getRtTarget(t0, proc_chip);
+
+ if(err2) // should never happen
+ {
+ TRACFCOMP
+ (g_fapiTd, ERR_MRK
+ "Error converting target to RT chipID");
+ errlCommit( err2, HWPF_COMP_ID );
+ }
+
+ g_hostInterfaces->report_failure(status,
+ proc_chip);
+
+ if(t1)
+ {
+ err2 = RT_TARG::getRtTarget(t1, proc_chip);
+ if(err2) // should never happen
+ {
+ TRACFCOMP
+ (g_fapiTd, ERR_MRK
+ "Error converting target to RT chipID");
+ errlCommit( err2, HWPF_COMP_ID );
+ }
+
+ g_hostInterfaces->report_failure(status,
+ proc_chip);
+ }
+ }
err = NULL;
rc = -1;
// keep going
OpenPOWER on IntegriCloud