summaryrefslogtreecommitdiffstats
path: root/sbe
diff options
context:
space:
mode:
authorShakeeb <shakeebbk@in.ibm.com>2016-07-26 21:38:00 -0500
committerSachin Gupta <sgupta2m@in.ibm.com>2016-08-16 06:41:26 -0400
commit66b276ff0913c13de63e7c00fc24cd41858f1dbc (patch)
treefcca6cf7eec5019ff72599fe4555de353ed0f7a1 /sbe
parent4d54a6653bcc0356f92b965e826f9be48ff62e56 (diff)
downloadtalos-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.C5
-rw-r--r--sbe/sbefw/sbecmdcntlinst.C31
-rw-r--r--sbe/sbefw/sbecmdgeneric.C17
-rw-r--r--sbe/sbefw/sbecmdiplcontrol.C30
-rw-r--r--sbe/sbefw/sbecmdsram.C24
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
*
OpenPOWER on IntegriCloud