Skip to content

Commit

Permalink
MDIA: Update maint cmds with Centaur Hwp
Browse files Browse the repository at this point in the history
Change-Id: I7b2d34e511392fae0a6f3671aa6ab8dea00205c8
RTC: 155857
Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/46542
Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com>
Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com>
Reviewed-by: Benjamin J. Weisenbeck <bweisenb@us.ibm.com>
Reviewed-by: Brian J. Stegmiller <bjs@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>
Reviewed-by: Zane C. Shelley <zshelle@us.ibm.com>
  • Loading branch information
cnpalmer authored and zane131 committed Sep 29, 2017
1 parent 22edf15 commit c201607
Show file tree
Hide file tree
Showing 4 changed files with 104 additions and 86 deletions.
6 changes: 6 additions & 0 deletions src/usr/diag/mdia/makefile
Expand Up @@ -42,6 +42,12 @@ EXTRAINCDIR += ${ROOTPATH}/src/import/
EXTRAINCDIR += ${ROOTPATH}/src/include/usr/fapi2
EXTRAINCDIR += ${ROOTPATH}/src/include/usr/targeting/common
EXTRAINCDIR += ${ROOTPATH}/src/import/chips/p9/utils/imageProcs
##########################################################
# Following is needed to include p9c_mss_maint_cmds.H
##########################################################
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

MODULE = mdia

Expand Down
1 change: 0 additions & 1 deletion src/usr/diag/mdia/mdiafwd.H
Expand Up @@ -96,7 +96,6 @@ enum
MCBIST_FIR_ACT0 = 0x07012306,
MCBIST_FIR_ACT1 = 0x07012307,

//TODO RTC 155857
// mcs unit regs
MCI_FIR = 0x02011840,
MCI_FIR_MASK = 0x02011843,
Expand Down
8 changes: 8 additions & 0 deletions src/usr/diag/mdia/mdiamba.C
Expand Up @@ -141,6 +141,14 @@ errlHndl_t getDiagnosticMode(
o_mode = FOUR_PATTERNS;
}

// TODO RTC 180118
// For Cumulus PON we will only support init to 0
ConstTargetHandle_t parent = getParentChip( i_trgt );
if ( MODEL_CUMULUS == parent->getAttr<ATTR_MODEL>() )
{
o_mode = ONE_PATTERN;
}

} while(0);

MDIA_FAST("getDiagnosticMode: trgt: %x, o_mode: 0x%x, "
Expand Down
175 changes: 90 additions & 85 deletions src/usr/diag/mdia/mdiasm.C
Expand Up @@ -46,6 +46,7 @@
#include <config.h>
#include <initservice/initserviceif.H>
#include <sys/time.h>
#include <p9c_mss_maint_cmds.H>

using namespace TARGETING;
using namespace ERRORLOG;
Expand Down Expand Up @@ -565,29 +566,25 @@ void StateMachine::processCommandTimeout(const MonitorIDs & i_monitorIDs)
//target type is MBA
if ( TYPE_MBA == trgtType )
{
//TODO RTC 155857
//no longer have the mss_MaintCmd class at the moment
//will need to update once we have Cumulus support

//fapi2::ReturnCode fapirc =
// static_cast<mss_MaintCmd *>((*wit)->data)->stopCmd();
//err = fapi2::rcToErrl(fapirc);

//if( nullptr != err )
//{
// MDIA_ERR("sm: mss_MaintCmd::stopCmd failed");
// errlCommit(err, MDIA_COMP_ID);
//}

//fapirc =
// static_cast<mss_MaintCmd *>((*wit)->data)->cleanupCmd();
//err = fapi2::rcToErrl(fapirc);

//if( nullptr != err )
//{
// MDIA_ERR("sm: mss_MaintCmd::cleanupCmd failed");
// errlCommit(err, MDIA_COMP_ID);
//}
fapi2::ReturnCode fapirc =
static_cast<mss_MaintCmd *>((*wit)->data)->stopCmd();
err = fapi2::rcToErrl(fapirc);

if( nullptr != err )
{
MDIA_ERR("sm: mss_MaintCmd::stopCmd failed");
errlCommit(err, MDIA_COMP_ID);
}

fapirc =
static_cast<mss_MaintCmd *>((*wit)->data)->cleanupCmd();
err = fapi2::rcToErrl(fapirc);

if( nullptr != err )
{
MDIA_ERR("sm: mss_MaintCmd::cleanupCmd failed");
errlCommit(err, MDIA_COMP_ID);
}
}
//target type is MCBIST
else
Expand Down Expand Up @@ -1018,9 +1015,7 @@ errlHndl_t StateMachine::doMaintCommand(WorkFlowProperties & i_wfp)
//target type is MBA
if (TYPE_MBA == trgtType)
{
/*TODO RTC 155857
uint64_t stopCondition =
uint32_t stopCondition =
mss_MaintCmd::STOP_END_OF_RANK |
mss_MaintCmd::STOP_ON_MPE |
mss_MaintCmd::STOP_ON_UE |
Expand All @@ -1034,8 +1029,8 @@ errlHndl_t StateMachine::doMaintCommand(WorkFlowProperties & i_wfp)
stopCondition |= mss_MaintCmd::STOP_ON_HARD_NCE_ETE;
}

ecmdDataBufferBase startAddr(64), endAddr(64);
mss_MaintCmd * cmd = NULL;
fapi2::buffer<uint64_t> startAddr, endAddr;
mss_MaintCmd * cmd = nullptr;
cmd = static_cast<mss_MaintCmd *>(i_wfp.data);
fapi2::Target<fapi2::TARGET_TYPE_MBA> fapiMba(target);

Expand All @@ -1049,46 +1044,58 @@ errlHndl_t StateMachine::doMaintCommand(WorkFlowProperties & i_wfp)
break;
}

fapirc = mss_get_address_range(
fapi2::ReturnCode fapirc = mss_get_address_range(
fapiMba,
MSS_ALL_RANKS,
startAddr,
endAddr);
err = fapiRcToErrl(fapirc);
err = fapi2::rcToErrl(fapirc);

if(err)
{
MDIA_FAST("sm: get_address_range failed");
break;
}

ConstTargetHandle_t parent = getParentChip(target);

// new command...use the full range

switch(workItem)
{
case START_RANDOM_PATTERN:
cmd = new mss_SuperFastRandomInit(
fapiMba,
startAddr,
endAddr,
mss_MaintCmd::PATTERN_RANDOM,
stopCondition,
false);
MDIA_FAST("sm: random init %p on: %x", cmd,
get_huid(target));
// TODO RTC 180118
// For Cumulus PON we will only support init to 0
if ( MODEL_CUMULUS != parent->getAttr<ATTR_MODEL>() )
{
cmd = new mss_SuperFastRandomInit(
fapiMba,
startAddr,
endAddr,
mss_MaintCmd::PATTERN_RANDOM,
stopCondition,
false);

MDIA_FAST("sm: random init %p on: %x", cmd,
get_huid(target));
}
break;

case START_SCRUB:
cmd = new mss_SuperFastRead(
fapiMba,
startAddr,
endAddr,
stopCondition,
false);
MDIA_FAST("sm: scrub %p on: %x", cmd,
get_huid(target));
// TODO RTC 180118
// For Cumulus PON we will only support init to 0
if ( MODEL_CUMULUS != parent->getAttr<ATTR_MODEL>() )
{
cmd = new mss_SuperFastRead(
fapiMba,
startAddr,
endAddr,
stopCondition,
false);

MDIA_FAST("sm: scrub %p on: %x", cmd,
get_huid(target));
}
break;
case START_PATTERN_0:
case START_PATTERN_1:
Expand Down Expand Up @@ -1144,7 +1151,6 @@ errlHndl_t StateMachine::doMaintCommand(WorkFlowProperties & i_wfp)
}
}

*/
}
//target type is MCBIST
else
Expand Down Expand Up @@ -1376,41 +1382,40 @@ bool StateMachine::processMaintCommandEvent(const MaintCommandEvent & i_event)
//target type is MBA
if(TYPE_MBA == trgtType)
{
//TODO RTC 155857
//mss_MaintCmd * cmd = static_cast<mss_MaintCmd *>(wfp.data);
//
//if(cmd && (flags & STOP_CMD))
//{
// MDIA_FAST("sm: stopping command: %p", target);

// fapi2::ReturnCode fapirc = cmd->stopCmd();
// err = fapi2::rcToErrl(fapirc);

// if (nullptr != err)
// {
// MDIA_ERR("sm: mss_MaintCmd::stopCmd failed");
// errlCommit(err, MDIA_COMP_ID);
// }
//}

//if(cmd && (flags & CLEANUP_CMD))
//{
// // restore any init settings that
// // may have been changed by the command

// fapi2::ReturnCode fapirc = cmd->cleanupCmd();
// err = fapi2::rcToErrl(fapirc);
// if(nullptr != err)
// {
// MDIA_ERR("sm: mss_MaintCmd::cleanupCmd failed");
// errlCommit(err, MDIA_COMP_ID);
// }
//}

//if(cmd && (flags & DELETE_CMD))
//{
// delete cmd;
//}
mss_MaintCmd * cmd = static_cast<mss_MaintCmd *>(wfp.data);

if(cmd && (flags & STOP_CMD))
{
MDIA_FAST("sm: stopping command: %p", target);

fapi2::ReturnCode fapirc = cmd->stopCmd();
err = fapi2::rcToErrl(fapirc);

if (nullptr != err)
{
MDIA_ERR("sm: mss_MaintCmd::stopCmd failed");
errlCommit(err, MDIA_COMP_ID);
}
}

if(cmd && (flags & CLEANUP_CMD))
{
// restore any init settings that
// may have been changed by the command

fapi2::ReturnCode fapirc = cmd->cleanupCmd();
err = fapi2::rcToErrl(fapirc);
if(nullptr != err)
{
MDIA_ERR("sm: mss_MaintCmd::cleanupCmd failed");
errlCommit(err, MDIA_COMP_ID);
}
}

if(cmd && (flags & DELETE_CMD))
{
delete cmd;
}
}
//target type is MCBIST
else
Expand Down

0 comments on commit c201607

Please sign in to comment.