Skip to content

Commit

Permalink
PRD: NVDIMM Additional FFDC for error analysis
Browse files Browse the repository at this point in the history
Change-Id: I5e2a11132ee0b1a0092557061f0b4ed70e3c4928
CQ: SW473592
Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/82762
Reviewed-by: Benjamen G Tyner <ben.tyner@ibm.com>
Reviewed-by: Zane C Shelley <zshelle@us.ibm.com>
Reviewed-by: Brian J Stegmiller <bjs@us.ibm.com>
Reviewed-by: Paul Greenwood <paul.greenwood@ibm.com>
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
cnpalmer authored and dcrowell77 committed Sep 12, 2019
1 parent d329c59 commit f5de75d
Show file tree
Hide file tree
Showing 3 changed files with 28 additions and 1 deletion.
10 changes: 10 additions & 0 deletions src/usr/diag/prdf/plat/mem/prdfP9Mca.C
Expand Up @@ -1202,6 +1202,16 @@ int32_t AnalyzeNvdimmHealthStatRegs( ExtensibleChip * i_chip,
// Skip any non-NVDIMMs
if ( !isNVDIMM(dimm) ) continue;

// Add SMART-specific, page 4 registers to FFDC
errlHndl_t mainErrl = nullptr;
mainErrl = ServiceGeneratorClass::ThisServiceGenerator().getErrl();
if ( nullptr == mainErrl )
{
PRDF_ERR( PRDF_FUNC "Failed to get the global error log." );
continue;
}
PlatServices::nvdimmAddPage4Ffdc( dimm, mainErrl );

// De-assert the EVENT_N pin by setting bit 2 in NVDIMM_MGT_CMD1
l_rc = __deassertEventN( dimm );
if ( SUCCESS != l_rc ) continue;
Expand Down
7 changes: 7 additions & 0 deletions src/usr/diag/prdf/plat/prdfPlatServices.C
Expand Up @@ -763,6 +763,13 @@ uint32_t nvdimmNotifyProtChange( TARGETING::TargetHandle_t i_target,
#undef PRDF_FUNC

}

void nvdimmAddPage4Ffdc( TARGETING::TargetHandle_t i_nvdimm,
errlHndl_t & io_errl )
{
NVDIMM::nvdimmAddPage4Regs( i_nvdimm, io_errl );
}

#endif

//##############################################################################
Expand Down
12 changes: 11 additions & 1 deletion src/usr/diag/prdf/plat/prdfPlatServices.H
Expand Up @@ -180,8 +180,18 @@ bool isRowRepairEnabled( ExtensibleChip * i_chip, const MemRank & i_rank );
* @param i_target Processor with NVDIMM
* @param i_state Protection state of NVDIMM
*/
uint32_t nvdimmNotifyProtChange( TARGETING::Target * i_target,
uint32_t nvdimmNotifyProtChange( TARGETING::TargetHandle_t i_target,
const NVDIMM::nvdimm_protection_t i_state );

/**
* @brief Add SMART-specific, page 4 NVDIMM registers to the FFDC
*
* @param i_nvdimm An nvdimm target
* @param io_errl Error log to add the FFDC to
*/
void nvdimmAddPage4Ffdc( TARGETING::TargetHandle_t i_nvdimm,
errlHndl_t & io_errl );

#endif

//##############################################################################
Expand Down

0 comments on commit f5de75d

Please sign in to comment.