summaryrefslogtreecommitdiffstats
path: root/src/usr/targeting
diff options
context:
space:
mode:
authorcrgeddes <crgeddes@us.ibm.com>2016-12-02 10:36:48 -0600
committerDaniel M. Crowell <dcrowell@us.ibm.com>2016-12-13 16:50:08 -0500
commit1ec5f98b4090514358acbeb335167996fca57265 (patch)
tree9c011d7e91a45bb1e2ad32512b08319909af63fa /src/usr/targeting
parent26a18a5dc30e6a55d2ee6d843e0dec895e3cf0df (diff)
downloadtalos-hostboot-1ec5f98b4090514358acbeb335167996fca57265.tar.gz
talos-hostboot-1ec5f98b4090514358acbeb335167996fca57265.zip
Move Copying of R/W and Heap data during ATTRRP init into own func
We were starting to send messages to the message queue listening to the R/W data when we tried to copy the data from mainstore into the pnor backed memory. We need to put this logic in it's own function and move it to be called after the message queue task has started Change-Id: I754ab64bffbd0a54127a59691bdd067ec5a7d9ce RTC:165369 Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/33331 Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com> Reviewed-by: Nicholas E. Bofferding <bofferdn@us.ibm.com> Tested-by: Jenkins OP Build CI <op-jenkins+hostboot@us.ibm.com> Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com> Reviewed-by: Martin Gloff <mgloff@us.ibm.com> Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com>
Diffstat (limited to 'src/usr/targeting')
-rwxr-xr-xsrc/usr/targeting/attrrp.C36
1 files changed, 27 insertions, 9 deletions
diff --git a/src/usr/targeting/attrrp.C b/src/usr/targeting/attrrp.C
index e19463642..ec670ec0c 100755
--- a/src/usr/targeting/attrrp.C
+++ b/src/usr/targeting/attrrp.C
@@ -90,6 +90,13 @@ namespace TARGETING
// Spawn daemon thread.
task_create(&AttrRP::startMsgServiceTask, this);
+ if(iv_isMpipl)
+ {
+ populateAttrsForMpipl();
+ }
+
+
+
} while (false);
// If an error occurred, post to TaskArgs.
@@ -577,7 +584,26 @@ namespace TARGETING
hbSwError);
break;
}
+ } // End iteration through each section
+
+ if(l_errl)
+ {
+ break;
+ }
+
+ } while (false);
+
+ return l_errl;
+ }
+ void AttrRP::populateAttrsForMpipl()
+ {
+ do
+ {
+ // Copy RW, Heap Zero Init sections because we are not
+ // running the isteps that set these attrs during MPIPL
+ for (size_t i = 0; i < iv_sectionCount; ++i)
+ {
// The volatile sections in MPIPL need to be copied because
// on the MPIPL flow we will not run the HWPs that set these attrs
// the RW section of the attribute data must be copied
@@ -593,16 +619,8 @@ namespace TARGETING
(iv_sections[i].size));
}
- } // End iteration through each section
-
- if(l_errl)
- {
- break;
}
-
- } while (false);
-
- return l_errl;
+ }while(0);
}
void* AttrRP::save(uint64_t& io_addr)
OpenPOWER on IntegriCloud