Skip to content

Commit

Permalink
Add some more FFDC for SBE
Browse files Browse the repository at this point in the history
Add the response and the target processor to the SRC for
PSU timeouts.

Change-Id: I4c739a66ab5bee8e35a514f6851e4c55e09d18e8
Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/42369
Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com>
Tested-by: Jenkins OP Build CI <op-jenkins+hostboot@us.ibm.com>
Tested-by: Jenkins OP HW <op-hw-jenkins+hostboot@us.ibm.com>
Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com>
Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com>
  • Loading branch information
dcrowell77 committed Jul 12, 2017
1 parent da9dcab commit fca25b7
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 6 deletions.
4 changes: 3 additions & 1 deletion src/include/usr/sbeio/sbe_psudd.H
Original file line number Diff line number Diff line change
Expand Up @@ -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
*
Expand Down
14 changes: 9 additions & 5 deletions src/usr/sbeio/sbe_psudd.C
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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;

Expand Down Expand Up @@ -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)
Expand Down

0 comments on commit fca25b7

Please sign in to comment.