From d8c6861183220709a123c84ec790c993a426bd74 Mon Sep 17 00:00:00 2001 From: Caleb Palmer Date: Mon, 4 Nov 2019 15:17:09 -0600 Subject: [PATCH] MDIA: Uncomment HWP calls Change-Id: I23f0abb7b6d26c2fa6d197ceaa0cc276ec461594 RTC: 201293 Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/86476 Tested-by: Jenkins Server Tested-by: Jenkins OP Build CI Tested-by: Jenkins OP HW Tested-by: FSP CI Jenkins Reviewed-by: Brian J Stegmiller Reviewed-by: Benjamen G Tyner Reviewed-by: Paul Greenwood Reviewed-by: Zane C Shelley --- src/usr/diag/mdia/makefile | 7 +++- src/usr/diag/mdia/mdia.C | 1 - src/usr/diag/mdia/mdiasm.C | 65 +++++++++++++++++++++++--------------- 3 files changed, 46 insertions(+), 27 deletions(-) diff --git a/src/usr/diag/mdia/makefile b/src/usr/diag/mdia/makefile index fff17dd96c7..c6279ee5c27 100644 --- a/src/usr/diag/mdia/makefile +++ b/src/usr/diag/mdia/makefile @@ -5,7 +5,7 @@ # # OpenPOWER HostBoot Project # -# Contributors Listed Below - COPYRIGHT 2012,2017 +# Contributors Listed Below - COPYRIGHT 2012,2019 # [+] International Business Machines Corp. # # @@ -50,6 +50,11 @@ EXTRAINCDIR += ${ROOTPATH}/src/import/chips/centaur/common/include EXTRAINCDIR += ${ROOTPATH}/src/import/chips/centaur/procedures/hwp/memory EXTRAINCDIR += ${ROOTPATH}/src/import/chips/centaur/procedures/hwp/memory/lib/shared +EXTRAINCDIR += ${ROOTPATH}/src/import/generic/memory/lib/prd/ +EXTRAINCDIR += ${ROOTPATH}/src/import/generic/memory/lib/utils/mcbist/ +EXTRAINCDIR += ${ROOTPATH}/src/import/chips/ocmb/explorer/common/include/ +EXTRAINCDIR += ${ROOTPATH}/src/import/chips/ocmb/explorer/procedures/hwp/memory/ + MODULE = mdia OBJS += mdiamonitor.o diff --git a/src/usr/diag/mdia/mdia.C b/src/usr/diag/mdia/mdia.C index c4b2f499380..f75ca1b60d7 100644 --- a/src/usr/diag/mdia/mdia.C +++ b/src/usr/diag/mdia/mdia.C @@ -125,7 +125,6 @@ errlHndl_t runStep(const TargetHandleList & i_targetList) ATTR_RECONFIGURE_LOOP_type attr = top->getAttr(); if ( 0 == (attr & RECONFIGURE_LOOP_RCD_PARITY_ERROR) ) { - //TODO RTC 201293 - may need to update this for axone as well TargetHandleList trgtList; getAllChiplets( trgtList, TYPE_MCA ); for ( auto & trgt : trgtList ) { diff --git a/src/usr/diag/mdia/mdiasm.C b/src/usr/diag/mdia/mdiasm.C index 8ffa7e4beb9..98c7853b8e7 100644 --- a/src/usr/diag/mdia/mdiasm.C +++ b/src/usr/diag/mdia/mdiasm.C @@ -49,6 +49,7 @@ #include #include #include +#include using namespace TARGETING; using namespace ERRORLOG; @@ -632,16 +633,17 @@ void StateMachine::processCommandTimeout(const MonitorIDs & i_monitorIDs) // target type is MCBIST else if ( TYPE_MCBIST == trgtType ) { + #ifndef CONFIG_AXONE fapi2::Target fapiMcbist(target); - FAPI_INVOKE_HWP( err, mss::memdiags::stop, fapiMcbist ); + FAPI_INVOKE_HWP( err, nim_stop, fapiMcbist ); if ( nullptr != err ) { - MDIA_ERR("sm: mss::memdiags::stop failed"); + MDIA_ERR("sm: nim_stop failed"); errlCommit(err, MDIA_COMP_ID); } - //mss::memdiags::stop will set the command complete attention so + //nim_stop will set the command complete attention so //we need to clear those bitMask = ~bitMask; @@ -654,22 +656,23 @@ void StateMachine::processCommandTimeout(const MonitorIDs & i_monitorIDs) "0x%08X", firAddr, get_huid(target) ); errlCommit(err, MDIA_COMP_ID); } + #endif } // target type is OCMB_CHIP else if ( TYPE_OCMB_CHIP == trgtType ) { - /* TODO RTC 201293 uncomment once we have hwp support + #ifdef CONFIG_AXONE fapi2::Target fapiOcmb(target); - FAPI_INVOKE_HWP( err, mss::memdiags::stop, fapiOcmb ); + FAPI_INVOKE_HWP( err, exp_stop, fapiOcmb ); if ( nullptr != err ) { - MDIA_ERR("sm: mss::memdiags::stop failed"); + MDIA_ERR("sm: exp_stop failed"); errlCommit(err, MDIA_COMP_ID); } - // mss::memdiags::stop will set the command complete + // exp_stop will set the command complete // attention so we need to clear those bitMask = ~bitMask; @@ -682,7 +685,7 @@ void StateMachine::processCommandTimeout(const MonitorIDs & i_monitorIDs) "0x%08X", firAddr, get_huid(target) ); errlCommit(err, MDIA_COMP_ID); } - */ + #endif } // Assert if unsupported type else @@ -782,7 +785,15 @@ void StateMachine::setup(const WorkFlowAssocMap & i_list) p->timeoutCnt = 0; p->data = NULL; - p->chipUnit = it->first->getAttr(); + if ( TYPE_OCMB_CHIP == it->first->getAttr() ) + { + // There is no chip unit attribute for OCMBs, so just use 0 + p->chipUnit = 0; + } + else + { + p->chipUnit = it->first->getAttr(); + } iv_workFlowProperties.push_back(p); } @@ -1242,14 +1253,15 @@ errlHndl_t StateMachine::doMaintCommand(WorkFlowProperties & i_wfp) //target type is MCBIST else if (TYPE_MCBIST == trgtType) { + #ifndef CONFIG_AXONE fapi2::Target fapiMcbist(target); - mss::mcbist::stop_conditions<> stopCond; + mss::mcbist::stop_conditions stopCond; switch(workItem) { case START_RANDOM_PATTERN: - FAPI_INVOKE_HWP( err, mss::memdiags::sf_init, fapiMcbist, + FAPI_INVOKE_HWP( err, nim_sf_init, fapiMcbist, mss::mcbist::PATTERN_RANDOM ); MDIA_FAST("sm: random init %p on: %x", fapiMcbist, get_huid(target)); @@ -1270,7 +1282,7 @@ errlHndl_t StateMachine::doMaintCommand(WorkFlowProperties & i_wfp) stopCond.set_pause_on_nce_hard(mss::ON); } - FAPI_INVOKE_HWP( err, mss::memdiags::sf_read, fapiMcbist, + FAPI_INVOKE_HWP( err, nim_sf_read, fapiMcbist, stopCond ); MDIA_FAST("sm: scrub %p on: %x", fapiMcbist, get_huid(target)); @@ -1285,7 +1297,7 @@ errlHndl_t StateMachine::doMaintCommand(WorkFlowProperties & i_wfp) case START_PATTERN_6: case START_PATTERN_7: - FAPI_INVOKE_HWP( err, mss::memdiags::sf_init, fapiMcbist, + FAPI_INVOKE_HWP( err, nim_sf_init, fapiMcbist, workItem ); MDIA_FAST("sm: init %p on: %x", fapiMcbist, get_huid(target)); @@ -1301,19 +1313,20 @@ errlHndl_t StateMachine::doMaintCommand(WorkFlowProperties & i_wfp) MDIA_FAST("sm: Running Maint Cmd failed"); i_wfp.data = nullptr; } + #endif } // target type is OCMB_CHIP else if ( TYPE_OCMB_CHIP == trgtType ) { - /* TODO RTC 201293 - uncomment with hwp support + #ifdef CONFIG_AXONE fapi2::Target fapiOcmb(target); - mss::mcbist::stop_conditions<> stopCond; + mss::mcbist::stop_conditions stopCond; switch(workItem) { case START_RANDOM_PATTERN: - FAPI_INVOKE_HWP( err, mss::memdiags::sf_init, fapiOcmb, + FAPI_INVOKE_HWP( err, exp_sf_init, fapiOcmb, mss::mcbist::PATTERN_RANDOM ); MDIA_FAST("sm: random init %p on: %x", fapiOcmb, get_huid(target)); @@ -1334,7 +1347,7 @@ errlHndl_t StateMachine::doMaintCommand(WorkFlowProperties & i_wfp) stopCond.set_pause_on_nce_hard(mss::ON); } - FAPI_INVOKE_HWP( err, mss::memdiags::sf_read, fapiOcmb, + FAPI_INVOKE_HWP( err, exp_sf_read, fapiOcmb, stopCond ); MDIA_FAST( "sm: scrub %p on: %x", fapiOcmb, get_huid(target) ); @@ -1349,7 +1362,7 @@ errlHndl_t StateMachine::doMaintCommand(WorkFlowProperties & i_wfp) case START_PATTERN_6: case START_PATTERN_7: - FAPI_INVOKE_HWP( err, mss::memdiags::sf_init, fapiOcmb, + FAPI_INVOKE_HWP( err, exp_sf_init, fapiOcmb, workItem ); MDIA_FAST( "sm: init %p on: %x", fapiOcmb, get_huid(target) ); @@ -1365,7 +1378,7 @@ errlHndl_t StateMachine::doMaintCommand(WorkFlowProperties & i_wfp) MDIA_FAST("sm: Running Maint Cmd failed"); i_wfp.data = nullptr; } - */ + #endif } else { @@ -1571,37 +1584,39 @@ bool StateMachine::processMaintCommandEvent(const MaintCommandEvent & i_event) //target type is MCBIST else if ( TYPE_MCBIST == trgtType ) { + #ifndef CONFIG_AXONE if(flags & STOP_CMD) { MDIA_FAST("sm: stopping command: %p", target); fapi2::Target fapiMcbist(target); - FAPI_INVOKE_HWP( err, mss::memdiags::stop, fapiMcbist ); + FAPI_INVOKE_HWP( err, nim_stop, fapiMcbist ); if(nullptr != err) { - MDIA_ERR("sm: mss::memdiags::stop failed"); + MDIA_ERR("sm: nim_stop failed"); errlCommit(err, MDIA_COMP_ID); } } + #endif } // target type is OCMB_CHIP else if ( TYPE_OCMB_CHIP == trgtType ) { + #ifdef CONFIG_AXONE if(flags & STOP_CMD) { MDIA_FAST("sm: stopping command: %p", target); - /* TODO RTC 201293 - reenable with hwp support fapi2::Target fapiOcmb(target); - FAPI_INVOKE_HWP( err, mss::memdiags::stop, fapiOcmb ); + FAPI_INVOKE_HWP( err, exp_stop, fapiOcmb ); if(nullptr != err) { - MDIA_ERR("sm: mss::memdiags::stop failed"); + MDIA_ERR("sm: exp_stop failed"); errlCommit(err, MDIA_COMP_ID); } - */ } + #endif } else {