summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorShakeeb <shakeebbk@in.ibm.com>2016-08-23 06:39:02 -0500
committerAMIT J. TENDOLKAR <amit.tendolkar@in.ibm.com>2016-09-02 08:04:34 -0400
commitb48dbe83b92c4ad376750e196420b6e8b5e3dcc8 (patch)
treeed01f2dada3fada31012919af03d0b6616f5bb0b /src
parent014fec673e29ba29e04df70cbed4e79c3ecc1135 (diff)
downloadtalos-sbe-b48dbe83b92c4ad376750e196420b6e8b5e3dcc8.tar.gz
talos-sbe-b48dbe83b92c4ad376750e196420b6e8b5e3dcc8.zip
Modify signature of FIFO response utility
Change-Id: I6ac79e1a13d978a91463e02f992d9bb164aa672a Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/28662 Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com> Reviewed-by: Sachin Gupta <sgupta2m@in.ibm.com> Reviewed-by: AMIT J. TENDOLKAR <amit.tendolkar@in.ibm.com>
Diffstat (limited to 'src')
-rw-r--r--src/sbefw/sbeFifoMsgUtils.C10
-rw-r--r--src/sbefw/sbeFifoMsgUtils.H11
-rw-r--r--src/sbefw/sbecmdcntlinst.C2
-rw-r--r--src/sbefw/sbecmdgeneric.C3
-rw-r--r--src/sbefw/sbecmdiplcontrol.C11
-rw-r--r--src/sbefw/sbecmdmemaccess.C4
-rw-r--r--src/sbefw/sbecmdregaccess.C4
-rw-r--r--src/sbefw/sbecmdringaccess.C2
8 files changed, 23 insertions, 24 deletions
diff --git a/src/sbefw/sbeFifoMsgUtils.C b/src/sbefw/sbeFifoMsgUtils.C
index 07463336..d8e433a2 100644
--- a/src/sbefw/sbeFifoMsgUtils.C
+++ b/src/sbefw/sbeFifoMsgUtils.C
@@ -320,7 +320,7 @@ uint32_t sbeDownFifoSignalEot (void)
uint32_t sbeDsSendRespHdr(const sbeRespGenHdr_t &i_hdr,
- sbeResponseFfdc_t &io_ffdc )
+ sbeResponseFfdc_t *i_ffdc )
{
uint32_t rc = SBE_SEC_OPERATION_SUCCESSFUL;
do
@@ -336,16 +336,16 @@ uint32_t sbeDsSendRespHdr(const sbeRespGenHdr_t &i_hdr,
distance += len;
// If no ffdc , exit;
- if( io_ffdc.getRc() )
+ if( (i_ffdc != NULL) && i_ffdc->getRc() )
{
// making sure ffdc length is multiples of uint32_t
assert((g_FfdcData.ffdcLength % sizeof(uint32_t)) == 0);
uint32_t ffdcDataLenInWords = g_FfdcData.ffdcLength
/ sizeof(uint32_t);
// Add HWP specific ffdc data length
- io_ffdc.lenInWords += ffdcDataLenInWords;
- len = sizeof(io_ffdc)/sizeof(uint32_t);
- rc = sbeDownFifoEnq_mult ( len, ( uint32_t *) &io_ffdc);
+ i_ffdc->lenInWords += ffdcDataLenInWords;
+ len = sizeof(sbeResponseFfdc_t)/sizeof(uint32_t);
+ rc = sbeDownFifoEnq_mult ( len, ( uint32_t *) i_ffdc);
if (rc)
{
break;
diff --git a/src/sbefw/sbeFifoMsgUtils.H b/src/sbefw/sbeFifoMsgUtils.H
index c3a5c856..609c0271 100644
--- a/src/sbefw/sbeFifoMsgUtils.H
+++ b/src/sbefw/sbeFifoMsgUtils.H
@@ -182,11 +182,12 @@ uint32_t sbeDownFifoSignalEot (void);
* @brief sbeDsSendRespHdr : Send response header to DS FIFO
* - This also sends the FFDC if exist.
*
- * @param[in] i_hdr Response Header
- * @param[in] io_ffdc FFDC object
- *
- * @return Rc from the underlying scom utility
+ * @param[in] i_hdr Response Header
+ * @param[in] i_ffdc Pointer to FFDC object, if NULL FFDC package
+ * is not sent in the chip op response
+ *
+ * @return Rc from the underlying scom utility
*/
uint32_t sbeDsSendRespHdr(const sbeRespGenHdr_t &i_hdr,
- sbeResponseFfdc_t &io_ffdc );
+ sbeResponseFfdc_t *i_ffdc=NULL );
#endif // __SBEFW_SBEFIFOMSGUTILS_H
diff --git a/src/sbefw/sbecmdcntlinst.C b/src/sbefw/sbecmdcntlinst.C
index faed1e5b..8cb29927 100644
--- a/src/sbefw/sbecmdcntlinst.C
+++ b/src/sbefw/sbecmdcntlinst.C
@@ -193,7 +193,7 @@ uint32_t sbeCntlInst(uint8_t *i_pArg)
break;
}
- l_rc = sbeDsSendRespHdr(l_respHdr, l_ffdc);
+ l_rc = sbeDsSendRespHdr(l_respHdr, &l_ffdc);
}while(0);
SBE_EXIT(SBE_FUNC);
diff --git a/src/sbefw/sbecmdgeneric.C b/src/sbefw/sbecmdgeneric.C
index e883993a..88e79d01 100644
--- a/src/sbefw/sbecmdgeneric.C
+++ b/src/sbefw/sbecmdgeneric.C
@@ -84,7 +84,6 @@ uint32_t sbeGetCapabilities (uint8_t *i_pArg)
sbeRespGenHdr_t respHdr;
respHdr.init();
sbeCapabilityRespMsg_t capMsg;
- sbeResponseFfdc_t l_ffdc;
do
{
@@ -106,7 +105,7 @@ uint32_t sbeGetCapabilities (uint8_t *i_pArg)
break;
}
- rc = sbeDsSendRespHdr(respHdr, l_ffdc);
+ rc = sbeDsSendRespHdr(respHdr);
}while(0);
if( rc )
diff --git a/src/sbefw/sbecmdiplcontrol.C b/src/sbefw/sbecmdiplcontrol.C
index 0819a864..a7b771d8 100644
--- a/src/sbefw/sbecmdiplcontrol.C
+++ b/src/sbefw/sbecmdiplcontrol.C
@@ -318,7 +318,7 @@ uint32_t sbeHandleIstep (uint8_t *i_pArg)
break;
}
- rc = sbeDsSendRespHdr(respHdr, ffdc);
+ rc = sbeDsSendRespHdr(respHdr, &ffdc);
}while(0);
if( rc )
@@ -780,14 +780,14 @@ uint32_t sbeEnterMpipl(uint8_t *i_pArg)
break;
}
- sbeResponseFfdc_t l_ffdc;
- l_rc = sbeDsSendRespHdr( l_respHdr, l_ffdc);
+ // TODO via RTC:123696 MPIPL Related procedure/steps
+ // Can send FFDC if MPIPL procedure fails
+ l_rc = sbeDsSendRespHdr( l_respHdr );
// set state to MPIPL Wait
(void)SbeRegAccess::theSbeRegAccess().
stateTransition(SBE_ENTER_MPIPL_EVENT);
- //TODO RTC-123696 MPIPL Related procedure/steps
}while(0);
return l_rc;
#undef SBE_FUNC
@@ -813,8 +813,7 @@ uint32_t sbeContinueMpipl(uint8_t *i_pArg)
break;
}
- sbeResponseFfdc_t l_ffdc;
- l_rc = sbeDsSendRespHdr( l_respHdr, l_ffdc);
+ l_rc = sbeDsSendRespHdr( l_respHdr);
//TODO RTC-134278 Continue MPIPL Related procedure/steps
diff --git a/src/sbefw/sbecmdmemaccess.C b/src/sbefw/sbecmdmemaccess.C
index 942bb72d..80bbe9a3 100644
--- a/src/sbefw/sbecmdmemaccess.C
+++ b/src/sbefw/sbecmdmemaccess.C
@@ -434,7 +434,7 @@ uint32_t processPbaRequest(const sbeMemAccessReqMsgHdr_t &i_hdr,
l_rc = sbeDownFifoEnq_mult ( l_len, &l_respLen );
CHECK_SBE_RC_AND_BREAK_IF_NOT_SUCCESS(l_rc);
- l_rc = sbeDsSendRespHdr( l_respHdr, l_ffdc);
+ l_rc = sbeDsSendRespHdr( l_respHdr, &l_ffdc);
} while(false);
SBE_EXIT(SBE_FUNC);
@@ -698,7 +698,7 @@ uint32_t processAduRequest(const sbeMemAccessReqMsgHdr_t &i_hdr,
l_rc = sbeDownFifoEnq_mult ( l_len, &l_respLen );
CHECK_SBE_RC_AND_BREAK_IF_NOT_SUCCESS(l_rc);
- l_rc = sbeDsSendRespHdr( l_respHdr, l_ffdc);
+ l_rc = sbeDsSendRespHdr( l_respHdr, &l_ffdc);
} while(false);
SBE_EXIT(SBE_FUNC);
diff --git a/src/sbefw/sbecmdregaccess.C b/src/sbefw/sbecmdregaccess.C
index d4023f73..59c6d93a 100644
--- a/src/sbefw/sbecmdregaccess.C
+++ b/src/sbefw/sbecmdregaccess.C
@@ -158,7 +158,7 @@ uint32_t sbeGetReg(uint8_t *i_pArg)
if ( SBE_SEC_OPERATION_SUCCESSFUL == rc )
{
- rc = sbeDsSendRespHdr( respHdr, ffdc);
+ rc = sbeDsSendRespHdr( respHdr, &ffdc);
}
SBE_EXIT(SBE_FUNC);
@@ -264,7 +264,7 @@ uint32_t sbePutReg(uint8_t *i_pArg)
if ( SBE_SEC_OPERATION_SUCCESSFUL == rc )
{
- rc = sbeDsSendRespHdr( respHdr, ffdc);
+ rc = sbeDsSendRespHdr( respHdr, &ffdc);
}
SBE_EXIT(SBE_FUNC);
diff --git a/src/sbefw/sbecmdringaccess.C b/src/sbefw/sbecmdringaccess.C
index 3fdc8f7e..6ce16f35 100644
--- a/src/sbefw/sbecmdringaccess.C
+++ b/src/sbefw/sbecmdringaccess.C
@@ -295,7 +295,7 @@ uint32_t sbeGetRing(uint8_t *i_pArg)
l_rc = sbeDownFifoEnq_mult (l_len, &(l_bitSentCnt));
if(SBE_SEC_OPERATION_SUCCESSFUL == l_rc)
{
- l_rc = sbeDsSendRespHdr( respHdr, l_ffdc);
+ l_rc = sbeDsSendRespHdr( respHdr, &l_ffdc);
}
}
SBE_EXIT(SBE_FUNC);
OpenPOWER on IntegriCloud