diff options
author | Andres Lugo-Reyes <aalugore@us.ibm.com> | 2017-01-10 07:35:12 -0600 |
---|---|---|
committer | William A. Bryan <wilbryan@us.ibm.com> | 2017-02-01 11:19:59 -0500 |
commit | 4d6a99902a2a377a12dbef720fea81873fb920cc (patch) | |
tree | c6fbf8303c5775bb423b8405cfe37a0566df5a43 /src/occ_405/main.c | |
parent | 009f439d2aa9df1944eb08b7f1fc30006abd8137 (diff) | |
download | talos-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-x | src/occ_405/main.c | 38 |
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 ); |