diff options
author | Shakeeb <shakeebbk@in.ibm.com> | 2016-07-26 21:38:00 -0500 |
---|---|---|
committer | Sachin Gupta <sgupta2m@in.ibm.com> | 2016-08-16 06:41:26 -0400 |
commit | 66b276ff0913c13de63e7c00fc24cd41858f1dbc (patch) | |
tree | fcca6cf7eec5019ff72599fe4555de353ed0f7a1 /sbe | |
parent | 4d54a6653bcc0356f92b965e826f9be48ff62e56 (diff) | |
download | talos-sbe-66b276ff0913c13de63e7c00fc24cd41858f1dbc.tar.gz talos-sbe-66b276ff0913c13de63e7c00fc24cd41858f1dbc.zip |
FFDC generation updates
Change-Id: If166dde92edef9d379a2d02a29576a9443490efc
Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/27484
Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com>
Reviewed-by: RAJA DAS <rajadas2@in.ibm.com>
Reviewed-by: AMIT J. TENDOLKAR <amit.tendolkar@in.ibm.com>
Reviewed-by: Sachin Gupta <sgupta2m@in.ibm.com>
Diffstat (limited to 'sbe')
-rw-r--r-- | sbe/sbefw/sbeFFDC.C | 5 | ||||
-rw-r--r-- | sbe/sbefw/sbecmdcntlinst.C | 31 | ||||
-rw-r--r-- | sbe/sbefw/sbecmdgeneric.C | 17 | ||||
-rw-r--r-- | sbe/sbefw/sbecmdiplcontrol.C | 30 | ||||
-rw-r--r-- | sbe/sbefw/sbecmdsram.C | 24 |
5 files changed, 31 insertions, 76 deletions
diff --git a/sbe/sbefw/sbeFFDC.C b/sbe/sbefw/sbeFFDC.C index f960bd43..c43a7031 100644 --- a/sbe/sbefw/sbeFFDC.C +++ b/sbe/sbefw/sbeFFDC.C @@ -54,6 +54,9 @@ uint32_t SbeFFDCPackage::sendOverFIFO(uint32_t i_primStatus, do { + //reset sent bytes + o_bytesSent = 0; + //check if SBE internal FFDC should be generated if(SbeRegAccess::theSbeRegAccess().isSendInternalFFDCSet() == false) { @@ -63,8 +66,6 @@ uint32_t SbeFFDCPackage::sendOverFIFO(uint32_t i_primStatus, break; } - //reset sent bytes - o_bytesSent = 0; // update the primary and secondary status iv_sbeFFDCDataHeader.primaryStatus = i_primStatus; iv_sbeFFDCDataHeader.secondaryStatus = i_secStatus; diff --git a/sbe/sbefw/sbecmdcntlinst.C b/sbe/sbefw/sbecmdcntlinst.C index a6be068c..e1d0a3bd 100644 --- a/sbe/sbefw/sbecmdcntlinst.C +++ b/sbe/sbefw/sbecmdcntlinst.C @@ -194,36 +194,7 @@ uint32_t sbeCntlInst(uint8_t *i_pArg) break; } - uint32_t l_dist2Hdr = 1; - // Now enqueue the minimum response header - uint32_t l_len = sizeof(l_respHdr) / sizeof(uint32_t); - l_rc = sbeDownFifoEnq_mult(l_len, (uint32_t *)(&l_respHdr) ); - if ( SBE_SEC_OPERATION_SUCCESSFUL != l_rc) - { - break; - } - - l_dist2Hdr += l_len; - - // Enqueue FFDC data if there is one - if( l_ffdc.getRc() ) - { - l_len = sizeof(l_ffdc) / sizeof(uint32_t); - l_rc = sbeDownFifoEnq_mult ( l_len, (uint32_t *)(&l_ffdc) ); - if ( SBE_SEC_OPERATION_SUCCESSFUL != l_rc) - { - break; - } - - l_dist2Hdr += l_len; - } - - l_len = sizeof(l_dist2Hdr) / sizeof(uint32_t); - l_rc = sbeDownFifoEnq_mult ( l_len, &l_dist2Hdr); - if ( l_rc ) - { - break; - } + l_rc = sbeDsSendRespHdr(l_respHdr, l_ffdc); }while(0); SBE_EXIT(SBE_FUNC); diff --git a/sbe/sbefw/sbecmdgeneric.C b/sbe/sbefw/sbecmdgeneric.C index 54cb6d31..54c1553d 100644 --- a/sbe/sbefw/sbecmdgeneric.C +++ b/sbe/sbefw/sbecmdgeneric.C @@ -86,6 +86,7 @@ uint32_t sbeGetCapabilities (uint8_t *i_pArg) sbeRespGenHdr_t respHdr; respHdr.init(); sbeCapabilityRespMsg_t capMsg; + sbeResponseFfdc_t l_ffdc; do { @@ -107,21 +108,7 @@ uint32_t sbeGetCapabilities (uint8_t *i_pArg) break; } - uint32_t distance = 1; //initialise by 1 for entry count itself. - len = sizeof(respHdr)/sizeof(uint32_t); - rc = sbeDownFifoEnq_mult ( len, ( uint32_t *) &respHdr); - if (rc) - { - break; - } - distance += len; - - len = sizeof(distance)/sizeof(uint32_t); - rc = sbeDownFifoEnq_mult ( len, &distance); - if (rc) - { - break; - } + rc = sbeDsSendRespHdr(respHdr, l_ffdc); }while(0); if( rc ) diff --git a/sbe/sbefw/sbecmdiplcontrol.C b/sbe/sbefw/sbecmdiplcontrol.C index ac5f75c2..0b6418b4 100644 --- a/sbe/sbefw/sbecmdiplcontrol.C +++ b/sbe/sbefw/sbecmdiplcontrol.C @@ -322,35 +322,7 @@ uint32_t sbeHandleIstep (uint8_t *i_pArg) break; } - uint32_t distance = 1; //initialise by 1 for entry count itself. - len = sizeof(respHdr)/sizeof(uint32_t); - // sbeDownFifoEnq_mult. - rc = sbeDownFifoEnq_mult ( len, ( uint32_t *) &respHdr); - if (rc) - { - break; - } - distance += len; - - // If no ffdc , exit; - if( ffdc.getRc() ) - { - len = sizeof(ffdc)/sizeof(uint32_t); - rc = sbeDownFifoEnq_mult ( len, ( uint32_t *) &ffdc); - if (rc) - { - break; - } - distance += len; - } - len = sizeof(distance)/sizeof(uint32_t); - //@TODO via RTC 129076. - //Need to add FFDC data as well. - rc = sbeDownFifoEnq_mult ( len, &distance); - if (rc) - { - break; - } + rc = sbeDsSendRespHdr(respHdr, ffdc); }while(0); if( rc ) diff --git a/sbe/sbefw/sbecmdsram.C b/sbe/sbefw/sbecmdsram.C index 09ff5535..d5352d23 100644 --- a/sbe/sbefw/sbecmdsram.C +++ b/sbe/sbefw/sbecmdsram.C @@ -1,3 +1,27 @@ +/* IBM_PROLOG_BEGIN_TAG */ +/* This is an automatically generated prolog. */ +/* */ +/* $Source: sbe/sbefw/sbecmdsram.C $ */ +/* */ +/* OpenPOWER sbe Project */ +/* */ +/* Contributors Listed Below - COPYRIGHT 2016 */ +/* [+] International Business Machines Corp. */ +/* */ +/* */ +/* Licensed under the Apache License, Version 2.0 (the "License"); */ +/* you may not use this file except in compliance with the License. */ +/* You may obtain a copy of the License at */ +/* */ +/* http://www.apache.org/licenses/LICENSE-2.0 */ +/* */ +/* Unless required by applicable law or agreed to in writing, software */ +/* distributed under the License is distributed on an "AS IS" BASIS, */ +/* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or */ +/* implied. See the License for the specific language governing */ +/* permissions and limitations under the License. */ +/* */ +/* IBM_PROLOG_END_TAG */ /* * @file: ppe/sbe/sbefw/sbecmdsram.C * |