diff options
author | Prachi Gupta <pragupta@us.ibm.com> | 2015-04-29 10:00:31 -0500 |
---|---|---|
committer | A. Patrick Williams III <iawillia@us.ibm.com> | 2015-05-20 16:12:01 -0500 |
commit | 9d569ad57af953b43d6b28c4dc43c986ef3a0708 (patch) | |
tree | aa210745facf890a579b15d8d87851bc1b085479 /src/usr/hwpf/hwp/mc_config | |
parent | c071adca40f880f8dd6993edd4122ce0228cb718 (diff) | |
download | talos-hostboot-9d569ad57af953b43d6b28c4dc43c986ef3a0708.tar.gz talos-hostboot-9d569ad57af953b43d6b28c4dc43c986ef3a0708.zip |
Invoke mss_volt_dimm_count HWP from mss_volt istep
Change-Id: I9d59bcb2e387b806b0fea3c937d275c86920f93a
CQ:SW295280
CMVC-Coreq:958158
Backport: release-fips820
Reviewed-on: http://gfw160.aus.stglabs.ibm.com:8080/gerrit/17884
Tested-by: Jenkins Server
Reviewed-by: A. Patrick Williams III <iawillia@us.ibm.com>
Diffstat (limited to 'src/usr/hwpf/hwp/mc_config')
-rw-r--r-- | src/usr/hwpf/hwp/mc_config/makefile | 3 | ||||
-rw-r--r-- | src/usr/hwpf/hwp/mc_config/mc_config.C | 124 |
2 files changed, 69 insertions, 58 deletions
diff --git a/src/usr/hwpf/hwp/mc_config/makefile b/src/usr/hwpf/hwp/mc_config/makefile index 8531c68be..2ed7e8398 100644 --- a/src/usr/hwpf/hwp/mc_config/makefile +++ b/src/usr/hwpf/hwp/mc_config/makefile @@ -5,7 +5,7 @@ # # OpenPOWER HostBoot Project # -# Contributors Listed Below - COPYRIGHT 2012,2014 +# Contributors Listed Below - COPYRIGHT 2012,2015 # [+] International Business Machines Corp. # # @@ -53,6 +53,7 @@ EXTRAINCDIR += ${ROOTPATH}/src/usr/hwpf/hwp/mc_config/mss_eff_mb_interleave OBJS += mc_config.o OBJS += mss_volt.o +OBJS += mss_volt_dimm_count.o OBJS += mss_freq.o OBJS += mss_eff_config.o OBJS += mss_eff_grouping.o diff --git a/src/usr/hwpf/hwp/mc_config/mc_config.C b/src/usr/hwpf/hwp/mc_config/mc_config.C index 6a725221d..1d1ea9780 100644 --- a/src/usr/hwpf/hwp/mc_config/mc_config.C +++ b/src/usr/hwpf/hwp/mc_config/mc_config.C @@ -76,6 +76,7 @@ #include "mss_volt/mss_volt_vdd_offset.H" #include "mss_volt/mss_volt_vddr_offset.H" #include "mss_volt/mss_volt_vpp_offset.H" +#include "mss_volt/mss_volt_dimm_count.H" #include <config.h> @@ -454,6 +455,68 @@ errlHndl_t setMemoryVoltageDomainOffsetVoltage() return pError; } +// helper function to call multiple mss_volt_hwps +void call_mss_volt_hwp (std::vector<TARGETING::ATTR_VMEM_ID_type>& i_VmemList, + TARGETING::TargetHandleList& i_membufTargetList, + IStepError& io_StepError, + fapi::ReturnCode(*mss_volt_hwp)(std::vector<fapi::Target>&)) +{ + errlHndl_t l_err; + //for each unique VmemId filter it out of the list of membuf targets + //to create a subsetlist of membufs with just that vmemid + std::vector<TARGETING::ATTR_VMEM_ID_type>::iterator l_vmem_iter; + for (l_vmem_iter = i_VmemList.begin(); + l_vmem_iter != i_VmemList.end(); + ++l_vmem_iter) + { + // declare a vector of fapi targets to pass to mss_volt procedures + std::vector<fapi::Target> l_membufFapiTargets; + + for (TargetHandleList::const_iterator + l_membuf_iter = i_membufTargetList.begin(); + l_membuf_iter != i_membufTargetList.end(); + ++l_membuf_iter) + { + // make a local copy of the target for ease of use + const TARGETING::Target* l_membuf_target = *l_membuf_iter; + if (l_membuf_target->getAttr<ATTR_VMEM_ID>()==*l_vmem_iter) + { + TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace, + "===== add to fapi::Target vector vmem_id=0x%08X " + "target HUID %.8X", + l_membuf_target->getAttr<ATTR_VMEM_ID>(), + TARGETING::get_huid(l_membuf_target)); + + fapi::Target l_membuf_fapi_target(fapi::TARGET_TYPE_MEMBUF_CHIP, + (const_cast<TARGETING::Target*>(l_membuf_target)) ); + + l_membufFapiTargets.push_back( l_membuf_fapi_target ); + } + } + FAPI_INVOKE_HWP(l_err, mss_volt_hwp, l_membufFapiTargets); + + // process return code. + if ( l_err ) + { + TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace, + "ERROR 0x%.8X: mss_volt_dimm_count HWP( ) ", + l_err->reasonCode()); + + // Create IStep error log and cross reference to error that occurred + io_StepError.addErrorDetails( l_err ); + + // Commit Error + errlCommit( l_err, HWPF_COMP_ID ); + + } + else + { + TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace, + "SUCCESS : mss_volt_dimm_count HWP( )" ); + } + } +} + // // Wrapper function to call mss_volt // @@ -506,64 +569,11 @@ void* call_mss_volt( void *io_pArgs ) objItr=std::unique(l_VmemList.begin(), l_VmemList.end()); l_VmemList.erase(objItr,l_VmemList.end()); - //for each unique VmemId filter it out of the list of membuf targets - //to create a subsetlist of membufs with just that vmemid - std::vector<TARGETING::ATTR_VMEM_ID_type>::iterator l_vmem_iter; - for (l_vmem_iter = l_VmemList.begin(); - l_vmem_iter != l_VmemList.end(); - ++l_vmem_iter) - { - // declare a vector of fapi targets to pass to mss_volt - std::vector<fapi::Target> l_membufFapiTargets; - - for (TargetHandleList::const_iterator - l_membuf_iter = l_membufTargetList.begin(); - l_membuf_iter != l_membufTargetList.end(); - ++l_membuf_iter) - { - // make a local copy of the target for ease of use - const TARGETING::Target* l_membuf_target = *l_membuf_iter; - if (l_membuf_target->getAttr<ATTR_VMEM_ID>()==*l_vmem_iter) - { - TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace, - "===== add to fapi::Target vector vmem_id=0x%08X " - "target HUID %.8X", - l_membuf_target->getAttr<ATTR_VMEM_ID>(), - TARGETING::get_huid(l_membuf_target)); - - fapi::Target l_membuf_fapi_target(fapi::TARGET_TYPE_MEMBUF_CHIP, - (const_cast<TARGETING::Target*>(l_membuf_target)) ); + //call mss_volt hwps + call_mss_volt_hwp (l_VmemList, l_membufTargetList,l_StepError, mss_volt); + call_mss_volt_hwp (l_VmemList, l_membufTargetList,l_StepError, + mss_volt_dimm_count); - l_membufFapiTargets.push_back( l_membuf_fapi_target ); - } - } - - //now have the a list of fapi membufs with just the one VmemId - //call the HWP on the list of fapi targets - TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace, - "===== mss_volt HWP( vector )" ); - FAPI_INVOKE_HWP(l_err, mss_volt, l_membufFapiTargets); - - // process return code. - if ( l_err ) - { - TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace, - "ERROR 0x%.8X: mss_volt HWP( ) ", l_err->reasonCode()); - - // Create IStep error log and cross reference to error that occurred - l_StepError.addErrorDetails( l_err ); - - // Commit Error - errlCommit( l_err, HWPF_COMP_ID ); - - } - else - { - TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace, - "SUCCESS : mss_volt HWP( )" ); - } - - } // endfor l_err = setMemoryVoltageDomainOffsetVoltage< TARGETING::ATTR_MSS_CENT_VDD_OFFSET_DISABLE, |