diff options
author | Dan Crowell <dcrowell@us.ibm.com> | 2017-01-19 13:47:22 -0600 |
---|---|---|
committer | Daniel M. Crowell <dcrowell@us.ibm.com> | 2017-02-07 12:00:00 -0500 |
commit | 606659144d3bf5d397bc24a54c6a5538e34cc5c5 (patch) | |
tree | 14fbcc4bbac9e81c2cadd1be584981c36c0fb42a /src/usr/sbeio | |
parent | 55eff82ca0316b7ae4272b188df8bc538aebc404 (diff) | |
download | talos-hostboot-606659144d3bf5d397bc24a54c6a5538e34cc5c5.tar.gz talos-hostboot-606659144d3bf5d397bc24a54c6a5538e34cc5c5.zip |
Debug improvements for interrupt and sbe psu fails
Change-Id: Id71da5d29d24d1386be684f4e7594c9e38e0aa84
Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/35172
Reviewed-by: Martin Gloff <mgloff@us.ibm.com>
Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com>
Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com>
Tested-by: Jenkins OP Build CI <op-jenkins+hostboot@us.ibm.com>
Reviewed-by: Christian R. Geddes <crgeddes@us.ibm.com>
Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com>
Diffstat (limited to 'src/usr/sbeio')
-rw-r--r-- | src/usr/sbeio/sbe_psudd.C | 21 |
1 files changed, 12 insertions, 9 deletions
diff --git a/src/usr/sbeio/sbe_psudd.C b/src/usr/sbeio/sbe_psudd.C index 09f290940..7f1bdd7be 100644 --- a/src/usr/sbeio/sbe_psudd.C +++ b/src/usr/sbeio/sbe_psudd.C @@ -51,6 +51,9 @@ TRAC_INIT(&g_trac_sbeio, SBEIO_COMP_NAME, 6*KILOBYTE, TRACE::BUFFER_SLOW); TRACFCOMP(g_trac_sbeio,"psudd: " printf_string,##args) #define SBE_TRACD(printf_string,args...) \ TRACDCOMP(g_trac_sbeio,"psudd: " printf_string,##args) +#define SBE_TRACFBIN(printf_string,args...) \ + TRACFBIN(g_trac_sbeio,"psudd: " printf_string,##args) + using namespace ERRORLOG; @@ -217,6 +220,7 @@ errlHndl_t SbePsu::writeRequest(TARGETING::Target * i_target, { // assign sequence ID and save to check that response matches i_pPsuRequest->seqID = ++l_seqID; + SBE_TRACF("Sending Req = %.16X", i_pPsuRequest->mbxReg0); // Read SBE doorbell to confirm ready to accept command. // Since the device driver single threads the requests, we should @@ -330,12 +334,8 @@ errlHndl_t SbePsu::readResponse(TARGETING::Target * i_target, uint64_t l_addr = PSU_HOST_SBE_MBOX4_REG; for (uint8_t i=0;i<4;i++) { - if (0x01 & i_rspMsgs) // read register if non-reserved - { - errl = readScom(i_target,l_addr,l_pMessage); - break; - } - i_rspMsgs>>=1; + errl = readScom(i_target,l_addr,l_pMessage); + if (errl) break; l_addr++; l_pMessage++; } @@ -353,13 +353,16 @@ errlHndl_t SbePsu::readResponse(TARGETING::Target * i_target, { SBE_TRACF(ERR_MRK "sbe_psudd.C :: readResponse: failing response status " - " cmd=0x%08x prim=0x%08x secondary=0x%08x", + " cmd=0x%02x%02x prim=0x%08x secondary=0x%08x" " expected seqID=%d actual seqID=%d", - i_pPsuRequest[1], + i_pPsuRequest->commandClass, + i_pPsuRequest->command, o_pPsuResponse->primaryStatus, o_pPsuResponse->secondaryStatus, i_pPsuRequest->seqID, o_pPsuResponse->seqID); + SBE_TRACFBIN( "Full response:", o_pPsuResponse, sizeof(psuResponse) ); + /*@ * @errortype * @moduleid SBEIO_PSU @@ -545,7 +548,7 @@ errlHndl_t SbePsu::writeScom(TARGETING::Target * i_target, errlHndl_t errl = NULL; SBE_TRACD(" writeScom addr=0x%08lx data=0x%016lx", - i_addr,*i_pData); + i_addr,*i_pData); size_t l_64bitSize = sizeof(uint64_t); errl = deviceOp(DeviceFW::WRITE, i_target, |