From cec911056342c9dcd72214a0f473f634340c7963 Mon Sep 17 00:00:00 2001 From: Caleb Palmer Date: Thu, 19 Mar 2020 13:31:13 -0500 Subject: [PATCH] MDIA: Add MCC registers to timeout FFDC Change-Id: I9f4cc22f02c2501ad0a6b9e83b82fe4dfa30084a Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/93699 Tested-by: Jenkins Server Tested-by: Jenkins OP Build CI Tested-by: Jenkins OP HW Tested-by: FSP CI Jenkins Reviewed-by: Benjamen G Tyner Reviewed-by: Brian J Stegmiller Reviewed-by: Zane C Shelley --- src/usr/diag/mdia/mdiafwd.H | 10 ++++++++-- src/usr/diag/mdia/mdiasm.C | 21 +++++++++++++++++++-- 2 files changed, 27 insertions(+), 4 deletions(-) diff --git a/src/usr/diag/mdia/mdiafwd.H b/src/usr/diag/mdia/mdiafwd.H index eae06958852..bb365fdbf02 100644 --- a/src/usr/diag/mdia/mdiafwd.H +++ b/src/usr/diag/mdia/mdiafwd.H @@ -5,7 +5,7 @@ /* */ /* OpenPOWER HostBoot Project */ /* */ -/* Contributors Listed Below - COPYRIGHT 2012,2019 */ +/* Contributors Listed Below - COPYRIGHT 2012,2020 */ /* [+] International Business Machines Corp. */ /* */ /* */ @@ -96,6 +96,13 @@ enum MCBIST_FIR_ACT0 = 0x07012306, MCBIST_FIR_ACT1 = 0x07012307, + // mcc dstlfir unit regs + DSTLFIR = 0x07010900, + DSTLFIR_MASK = 0x07010903, + DSTLFIR_ACT0 = 0x07010906, + DSTLFIR_ACT1 = 0x07010907, + DSTLCFG2 = 0x0701090E, + // ocmb mcbist unit regs OCMB_MCBIST_FIR = 0x08011800, OCMB_MCBIST_FIR_AND = 0x08011801, @@ -105,7 +112,6 @@ enum // ocmb omidlfir unit regs OMIDLFIR = 0x07013340, - OMIDLFIR_AND = 0x07013341, OMIDLFIR_MASK = 0x07013343, OMIDLFIR_ACT0 = 0x07013346, OMIDLFIR_ACT1 = 0x07013347, diff --git a/src/usr/diag/mdia/mdiasm.C b/src/usr/diag/mdia/mdiasm.C index a89480b7c49..926553e29b4 100644 --- a/src/usr/diag/mdia/mdiasm.C +++ b/src/usr/diag/mdia/mdiasm.C @@ -131,14 +131,20 @@ void addTimeoutFFDC(TargetHandle_t i_target, errlHndl_t & io_log) MCBIST_FIR_ACT1, }; + const uint64_t mccRegs[] = { + DSTLFIR, + DSTLFIR_MASK, + DSTLFIR_ACT0, + DSTLFIR_ACT1, + DSTLCFG2, + }; + const uint64_t ocmbRegs[] = { OCMB_MCBIST_FIR, - OCMB_MCBIST_FIR_AND, OCMB_MCBIST_FIR_MASK, OCMB_MCBIST_FIR_ACT0, OCMB_MCBIST_FIR_ACT1, OMIDLFIR, - OMIDLFIR_AND, OMIDLFIR_MASK, OMIDLFIR_ACT0, OMIDLFIR_ACT1, @@ -271,6 +277,16 @@ void addTimeoutFFDC(TargetHandle_t i_target, errlHndl_t & io_log) assert( nullptr != proc, "[MDIA] addTimeoutFFDC: Unable to get the " "parent proc from omi: 0x%08x", get_huid(omi) ); + // Get the parent MCC + TargetHandleList mccList; + getParentAffinityTargets( mccList, omi, CLASS_UNIT, TYPE_MCC ); + + assert( mccList.size() == 1, "[MDIA] addTimeoutFFDC: Multiple parent" + " MCCs found for OMI: 0x%08x", get_huid(omi) ); + + TargetHandle_t mcc = mccList[0]; + + const struct Entry { TARGETING::ConstTargetHandle_t target; @@ -279,6 +295,7 @@ void addTimeoutFFDC(TargetHandle_t i_target, errlHndl_t & io_log) } tables[] = { {i_target, ocmbRegs, ocmbRegs + sizeof(ocmbRegs)/sizeof(*ocmbRegs)}, {proc, procRegs, procRegs + sizeof(procRegs)/sizeof(*procRegs)}, + {mcc, mccRegs, mccRegs + sizeof(mccRegs)/sizeof(*mccRegs)}, }; for(const Entry * tableIt = tables;