summaryrefslogtreecommitdiffstats
path: root/src/usr/diag
diff options
context:
space:
mode:
authorZane Shelley <zshelle@us.ibm.com>2016-08-17 15:09:28 -0500
committerDaniel M. Crowell <dcrowell@us.ibm.com>2016-08-24 14:07:59 -0400
commit4c723a55e9ae5f103f55d19c2bcc8621c7537924 (patch)
treeeca728035e2bcc9868e0f0e119df58afeeef9feb /src/usr/diag
parent3e9be48f1eea40557a8573890c67eb95b57be36f (diff)
downloadtalos-hostboot-4c723a55e9ae5f103f55d19c2bcc8621c7537924.tar.gz
talos-hostboot-4c723a55e9ae5f103f55d19c2bcc8621c7537924.zip
MDIA: remove support to restart command in the middle of memory
Starting in P9 PRD will ensure the command reaches the end of memory so MDIA does not need to keep track. Change-Id: I62899d39589b67b58409504997b549b07cb4cf4c RTC: 159568 Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/28425 Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com> Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com> Reviewed-by: Caleb N. Palmer <cnpalmer@us.ibm.com> Reviewed-by: Benjamin J. Weisenbeck <bweisenb@us.ibm.com> Reviewed-by: Brian J. Stegmiller <bjs@us.ibm.com> Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com>
Diffstat (limited to 'src/usr/diag')
-rw-r--r--src/usr/diag/mdia/mdiasm.C85
-rw-r--r--src/usr/diag/mdia/mdiasmimpl.H9
2 files changed, 5 insertions, 89 deletions
diff --git a/src/usr/diag/mdia/mdiasm.C b/src/usr/diag/mdia/mdiasm.C
index c631f0ae8..f04afb622 100644
--- a/src/usr/diag/mdia/mdiasm.C
+++ b/src/usr/diag/mdia/mdiasm.C
@@ -512,7 +512,6 @@ void StateMachine::setup(const WorkFlowAssocMap & i_list)
p->status = IN_PROGRESS;
p->log = 0;
p->timer = 0;
- p->restartCommand = false;
p->memSize = 0;
p->timeoutCnt = 0;
@@ -830,7 +829,6 @@ errlHndl_t StateMachine::doMaintCommand(WorkFlowProperties & i_wfp)
mss_MaintCmd::ENABLE_CMD_COMPLETE_ATTENTION;
uint64_t workItem;
- bool restart;
TargetHandle_t targetMba;
ecmdDataBufferBase startAddr(64), endAddr(64);
mss_MaintCmd * cmd = NULL;
@@ -849,7 +847,6 @@ errlHndl_t StateMachine::doMaintCommand(WorkFlowProperties & i_wfp)
uint64_t monitorId = CommandMonitor::INVALID_MONITOR_ID;
i_wfp.timeoutCnt = 0; // reset for new work item
workItem = *i_wfp.workItem;
- restart = i_wfp.restartCommand;
targetMba = getTarget(i_wfp);
cmd = static_cast<mss_MaintCmd *>(i_wfp.data);
@@ -877,8 +874,8 @@ errlHndl_t StateMachine::doMaintCommand(WorkFlowProperties & i_wfp)
// For MNFG mode, check CE also
stopCondition |= mss_MaintCmd::STOP_ON_HARD_NCE_ETE;
}
- // setup the address range.
- // assume the full range for now
+
+ // Start the next command on the full range of memory behind the target.
fapirc = mss_get_address_range(
fapiMba,
@@ -893,80 +890,6 @@ errlHndl_t StateMachine::doMaintCommand(WorkFlowProperties & i_wfp)
break;
}
- if(restart)
- {
- // bump the starting address if we are restarting
- // a command
-
- mss_IncrementAddress incrementCmd(fapiMba);
-
- MDIA_FAST("sm: increment address on: %x",
- get_huid(targetMba));
-
- fapirc = incrementCmd.setupAndExecuteCmd();
-
- err = fapiRcToErrl(fapirc);
-
- if(err)
- {
- MDIA_FAST("sm: setupAndExecuteCmd failed");
- break;
- }
-
- // read the address out so it can be passed
- // to the command being restarted
-
- uint64_t address;
- size_t size = sizeof(address);
-
- err = deviceRead(
- targetMba,
- &address,
- size,
- DEVICE_SCOM_ADDRESS(MBA01_MBMACAQ));
-
- if(err)
- {
- MDIA_FAST("sm: reading address failed");
-
- break;
- }
-
- startAddr.setDoubleWord(0, address);
- startAddr.insert(static_cast<uint32_t>(0), 40, 24); // addr is 0:39
-
- switch(workItem)
- {
- case START_RANDOM_PATTERN:
- static_cast<mss_SuperFastRandomInit *>(
- cmd)->setStartAddr(startAddr);
- break;
- case START_SCRUB:
- static_cast<mss_SuperFastRead *>(
- cmd)->setStartAddr(startAddr);
- break;
- case START_PATTERN_0:
- case START_PATTERN_1:
- case START_PATTERN_2:
- case START_PATTERN_3:
- case START_PATTERN_4:
- case START_PATTERN_5:
- case START_PATTERN_6:
- case START_PATTERN_7:
- static_cast<mss_SuperFastInit *>(
- cmd)->setStartAddr(startAddr);
- break;
- default:
- MDIA_ERR("sm: unrecognized maint command type %d:",
- workItem);
- break;
- }
- }
-
- else
- {
- // new command...use the full range
-
switch(workItem)
{
case START_RANDOM_PATTERN:
@@ -1025,7 +948,6 @@ errlHndl_t StateMachine::doMaintCommand(WorkFlowProperties & i_wfp)
get_huid(targetMba));
break;
}
- }
mutex_lock(&iv_mutex);
@@ -1185,9 +1107,6 @@ bool StateMachine::processMaintCommandEvent(const MaintCommandEvent & i_event)
case COMMAND_COMPLETE:
// command stopped or complete at end of last rank
-
- wfp.restartCommand = false;
-
// move to the next command
++wfp.workItem;
diff --git a/src/usr/diag/mdia/mdiasmimpl.H b/src/usr/diag/mdia/mdiasmimpl.H
index 570687abd..f0c4cfb80 100644
--- a/src/usr/diag/mdia/mdiasmimpl.H
+++ b/src/usr/diag/mdia/mdiasmimpl.H
@@ -5,7 +5,9 @@
/* */
/* OpenPOWER HostBoot Project */
/* */
-/* COPYRIGHT International Business Machines Corp. 2012,2014 */
+/* Contributors Listed Below - COPYRIGHT 2012,2016 */
+/* [+] International Business Machines Corp. */
+/* */
/* */
/* Licensed under the Apache License, Version 2.0 (the "License"); */
/* you may not use this file except in compliance with the License. */
@@ -68,11 +70,6 @@ struct WorkFlowProperties
uint64_t timer;
/**
- * @brief maint command flag associated with the workFlow
- */
- bool restartCommand;
-
- /**
* @brief memory size associated with the workFlow
*/
uint64_t memSize;
OpenPOWER on IntegriCloud