summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/include/usr/sbeio/sbe_psudd.H4
-rw-r--r--src/usr/sbeio/sbe_psudd.C14
2 files changed, 12 insertions, 6 deletions
diff --git a/src/include/usr/sbeio/sbe_psudd.H b/src/include/usr/sbeio/sbe_psudd.H
index 13af7ab2f..efedebae4 100644
--- a/src/include/usr/sbeio/sbe_psudd.H
+++ b/src/include/usr/sbeio/sbe_psudd.H
@@ -575,11 +575,13 @@ class SbePsu
*
* @param[in] i_target Master proc to use for scoms
* @param[in] i_timeout Time out for response
+ * @param[in] i_pPsuRequest PSU request (for FFDC)
*
* @return errlHndl_t Error log handle on failure.
*/
errlHndl_t pollForPsuComplete(TARGETING::Target * i_target,
- const uint64_t i_timeout);
+ const uint64_t i_timeout,
+ psuCommand* i_pPsuRequest);
/**
* @brief Read Scom wrapper
*
diff --git a/src/usr/sbeio/sbe_psudd.C b/src/usr/sbeio/sbe_psudd.C
index 1a8343dfb..a9d56be63 100644
--- a/src/usr/sbeio/sbe_psudd.C
+++ b/src/usr/sbeio/sbe_psudd.C
@@ -322,7 +322,7 @@ errlHndl_t SbePsu::readResponse(TARGETING::Target * i_target,
do
{
//wait for request to be completed
- errl = pollForPsuComplete(i_target,i_timeout);
+ errl = pollForPsuComplete(i_target,i_timeout,i_pPsuRequest);
if (errl) break; // return with error
//read the response registers
@@ -455,7 +455,8 @@ errlHndl_t SbePsu::readResponse(TARGETING::Target * i_target,
* @brief poll for PSU to complete command
*/
errlHndl_t SbePsu::pollForPsuComplete(TARGETING::Target * i_target,
- const uint64_t i_timeout)
+ const uint64_t i_timeout,
+ psuCommand* i_pPsuRequest)
{
errlHndl_t errl = NULL;
@@ -488,15 +489,18 @@ errlHndl_t SbePsu::pollForPsuComplete(TARGETING::Target * i_target,
* @errortype
* @moduleid SBEIO_PSU
* @reasoncode SBEIO_PSU_RESPONSE_TIMEOUT
- * @userdata1 Timeout in NS
+ * @userdata1[00:31] Timeout in NS
+ * @userdata1[32:63] Processor Target
+ * @userdata2 Failing Request
* @devdesc Timeout waiting for PSU command to complete
* @custdesc Firmware error communicating with boot device
*/
errl = new ErrlEntry(ERRL_SEV_UNRECOVERABLE,
SBEIO_PSU,
SBEIO_PSU_RESPONSE_TIMEOUT,
- i_timeout,
- 0);
+ TWO_UINT32_TO_UINT64(i_timeout,
+ TARGETING::get_huid(i_target)),
+ i_pPsuRequest->mbxReg0);
void * l_ffdcPkg = findFFDCBufferByTarget(i_target);
if(l_ffdcPkg != NULL)
OpenPOWER on IntegriCloud