diff options
author | crgeddes <crgeddes@us.ibm.com> | 2016-12-02 10:36:48 -0600 |
---|---|---|
committer | Daniel M. Crowell <dcrowell@us.ibm.com> | 2016-12-13 16:50:08 -0500 |
commit | 1ec5f98b4090514358acbeb335167996fca57265 (patch) | |
tree | 9c011d7e91a45bb1e2ad32512b08319909af63fa /src/usr/targeting | |
parent | 26a18a5dc30e6a55d2ee6d843e0dec895e3cf0df (diff) | |
download | talos-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-x | src/usr/targeting/attrrp.C | 36 |
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) |