diff options
author | Dan Crowell <dcrowell@us.ibm.com> | 2017-06-23 11:26:36 -0500 |
---|---|---|
committer | Daniel M. Crowell <dcrowell@us.ibm.com> | 2017-07-12 09:29:11 -0400 |
commit | fca25b78f035f51789b97770295c4f45eca97a03 (patch) | |
tree | 8c2355389b0b1ca7d7f8bfaad2f66984c08c864e /src | |
parent | da9dcab165f8e60f47ada03badaaf73b3f465baf (diff) | |
download | talos-hostboot-fca25b78f035f51789b97770295c4f45eca97a03.tar.gz talos-hostboot-fca25b78f035f51789b97770295c4f45eca97a03.zip |
Add some more FFDC for SBE
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>
Diffstat (limited to 'src')
-rw-r--r-- | src/include/usr/sbeio/sbe_psudd.H | 4 | ||||
-rw-r--r-- | src/usr/sbeio/sbe_psudd.C | 14 |
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) |