summaryrefslogtreecommitdiffstats
path: root/src/occ_405/main.c
diff options
context:
space:
mode:
authorAndres Lugo-Reyes <aalugore@us.ibm.com>2017-01-10 07:35:12 -0600
committerWilliam A. Bryan <wilbryan@us.ibm.com>2017-02-01 11:19:59 -0500
commit4d6a99902a2a377a12dbef720fea81873fb920cc (patch)
treec6fbf8303c5775bb423b8405cfe37a0566df5a43 /src/occ_405/main.c
parent009f439d2aa9df1944eb08b7f1fc30006abd8137 (diff)
downloadtalos-occ-4d6a99902a2a377a12dbef720fea81873fb920cc.tar.gz
talos-occ-4d6a99902a2a377a12dbef720fea81873fb920cc.zip
WOF: Function to calculate the Active Quad step number
Change-Id: I3acafe872623838fa2ad16e8c85288dddb275fb5 RTC: 130216 Depends-on: I2249777134608d9f79bdc85692a3acbf7907c3f5 Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/34657 Reviewed-by: William A. Bryan <wilbryan@us.ibm.com> Tested-by: William A. Bryan <wilbryan@us.ibm.com>
Diffstat (limited to 'src/occ_405/main.c')
-rwxr-xr-xsrc/occ_405/main.c38
1 files changed, 38 insertions, 0 deletions
diff --git a/src/occ_405/main.c b/src/occ_405/main.c
index e1ffd57..873e65d 100755
--- a/src/occ_405/main.c
+++ b/src/occ_405/main.c
@@ -555,6 +555,44 @@ void read_wof_header(void)
memcpy(&G_wof_header, &(l_temp_bce_buff.data[pad]), sizeof(wof_header_data_t));
+ // Make sure the header is reporting a valid number of quads i.e. 1 or 6
+ if( (G_wof_header.active_quads_size != ACTIVE_QUAD_SZ_MIN) &&
+ (G_wof_header.active_quads_size != ACTIVE_QUAD_SZ_MAX) )
+ {
+ CMDH_TRAC_ERR("read_wof_header: Invalid number of active quads!"
+ " Expected: 1 or 6, Actual %d",
+ G_wof_header.active_quads_size );
+
+ /*
+ * @errortype
+ * @moduleid READ_WOF_HEADER
+ * @reasoncode INVALID_ACTIVE_QUAD_COUNT
+ * @userdata1 Reported active quad count
+ * @devdesc Read an invalid number of active quads
+ */
+ l_reasonCode = INVALID_ACTIVE_QUAD_COUNT;
+ l_extReasonCode = ERC_WOF_QUAD_COUNT_FAILURE;
+ errlHndl_t l_errl = createErrl(READ_WOF_HEADER, //modId
+ INVALID_ACTIVE_QUAD_COUNT, //reasoncode
+ ERC_WOF_QUAD_COUNT_FAILURE, //Extended reason code
+ ERRL_SEV_UNRECOVERABLE, //Severity
+ NULL, //Trace Buf
+ 0, //Trace Size
+ G_wof_header.active_quads_size, //userdata1
+ 0); //userdata2
+
+ // Callout firmware
+ addCalloutToErrl(l_errl,
+ ERRL_CALLOUT_TYPE_COMPONENT_ID,
+ ERRL_COMPONENT_ID_FIRMWARE,
+ ERRL_CALLOUT_PRIORITY_HIGH);
+
+ // Commit error log
+ commitErrl(&l_errl);
+
+ // We were unable to get the active quad count. Do not run wof algo.
+ G_run_wof_main = false;
+ }
}while( 0 );
OpenPOWER on IntegriCloud