diff options
author | Dan Crowell <dcrowell@us.ibm.com> | 2013-11-25 23:38:56 -0600 |
---|---|---|
committer | A. Patrick Williams III <iawillia@us.ibm.com> | 2013-12-09 12:08:54 -0600 |
commit | 9ff9e978ad4124c8fcd94339aa40f3a9d3a4f40a (patch) | |
tree | 613f16c906429a77b09081840ed34100c16235a2 /src/usr/hwpf/hwp/mc_config/mc_config.C | |
parent | 5ec9d6332a0b9c91b133690ab356dc4052a5e291 (diff) | |
download | talos-hostboot-9ff9e978ad4124c8fcd94339aa40f3a9d3a4f40a.tar.gz talos-hostboot-9ff9e978ad4124c8fcd94339aa40f3a9d3a4f40a.zip |
Increment base memory address by node
Change-Id: I524a9814cfc9a2b0d831ab31f9ed63e008ffa304
CQ: SW236248
Reviewed-on: http://gfw160.aus.stglabs.ibm.com:8080/gerrit/7429
Tested-by: Jenkins Server
Reviewed-by: Douglas R. Gilbert <dgilbert@us.ibm.com>
Reviewed-by: A. Patrick Williams III <iawillia@us.ibm.com>
Diffstat (limited to 'src/usr/hwpf/hwp/mc_config/mc_config.C')
-rw-r--r-- | src/usr/hwpf/hwp/mc_config/mc_config.C | 35 |
1 files changed, 14 insertions, 21 deletions
diff --git a/src/usr/hwpf/hwp/mc_config/mc_config.C b/src/usr/hwpf/hwp/mc_config/mc_config.C index 9d05c062e..dad3fa964 100644 --- a/src/usr/hwpf/hwp/mc_config/mc_config.C +++ b/src/usr/hwpf/hwp/mc_config/mc_config.C @@ -324,7 +324,7 @@ errlHndl_t call_mss_eff_grouping() return l_err; } -errlHndl_t call_opt_memmap() +errlHndl_t call_opt_memmap( bool i_initBase ) { errlHndl_t l_err = NULL; @@ -348,8 +348,7 @@ errlHndl_t call_opt_memmap() l_fapi_procs.push_back(l_fapi_target); } - bool l_initProcMemBaseAttr = false; - FAPI_INVOKE_HWP(l_err, opt_memmap, l_fapi_procs, l_initProcMemBaseAttr); + FAPI_INVOKE_HWP(l_err, opt_memmap, l_fapi_procs, i_initBase); if ( l_err ) { @@ -436,30 +435,24 @@ void* call_mss_eff_config( void *io_pArgs ) if (l_StepError.isNull()) { - TARGETING::TargetHandleList l_procs; - getAllChips(l_procs, TYPE_PROC); - - for (TARGETING::TargetHandleList::const_iterator - l_iter = l_procs.begin(); l_iter != l_procs.end(); ++l_iter) - { - TARGETING::Target* l_target = *l_iter; - - uint64_t l_base = 0; - l_target->setAttr<ATTR_MEM_BASE>( l_base ); - - l_base = 0x0002000000000000UL; // 512TB - l_target->setAttr<ATTR_MIRROR_BASE>( l_base ); - } - - l_err = call_mss_eff_grouping(); + // Flush out BASE attributes to starting values + l_err = call_opt_memmap(true); if (!l_err) { - l_err = call_opt_memmap(); + // Stack the memory on each chip + l_err = call_mss_eff_grouping(); if (!l_err) { - l_err = call_mss_eff_grouping(); + // Move the BASES around to the real final values + l_err = call_opt_memmap(false); + + if (!l_err) + { + // Stack the memory again based on system-wide positions + l_err = call_mss_eff_grouping(); + } } } |