diff options
author | Nick Bofferding <bofferdn@us.ibm.com> | 2014-09-03 22:59:43 -0500 |
---|---|---|
committer | A. Patrick Williams III <iawillia@us.ibm.com> | 2014-09-08 09:47:32 -0500 |
commit | b26546f59175cb2c94c2646ab104a2257b676a34 (patch) | |
tree | 1222543eaa1509e694e8184e83826024a6301aa7 /src/usr/hwpf/hwp/dram_training | |
parent | 863f07b5d3f107bd9637912f9034b32d6a52a1f8 (diff) | |
download | talos-hostboot-b26546f59175cb2c94c2646ab104a2257b676a34.tar.gz talos-hostboot-b26546f59175cb2c94c2646ab104a2257b676a34.zip |
Inhibit programming VDDR + VPP domains if no configured membufs
- Updated mc_init to inhibit calling VDDR + VPP offset HWPs as needed
- Updated vddr enable to discard domains with no voltage from VID list
Change-Id: I38d57c206135741f088cfb1930400f61bbb13455
Backport: release-fips820
CQ: SW276412
Reviewed-on: http://gfw160.aus.stglabs.ibm.com:8080/gerrit/13131
Tested-by: Jenkins Server
Reviewed-by: STEPHEN M. CPREK <smcprek@us.ibm.com>
Reviewed-by: A. Patrick Williams III <iawillia@us.ibm.com>
Diffstat (limited to 'src/usr/hwpf/hwp/dram_training')
-rw-r--r-- | src/usr/hwpf/hwp/dram_training/hbVddrMsg.C | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/src/usr/hwpf/hwp/dram_training/hbVddrMsg.C b/src/usr/hwpf/hwp/dram_training/hbVddrMsg.C index f585de1a2..37fa394f6 100644 --- a/src/usr/hwpf/hwp/dram_training/hbVddrMsg.C +++ b/src/usr/hwpf/hwp/dram_training/hbVddrMsg.C @@ -103,6 +103,16 @@ bool areVidsEqual( == static_cast<uint16_t>(i_rhs.domainId)) ); } +/////////////////////////////////////////////////////////////////////////////// +// isUnusedVoltageDomain +/////////////////////////////////////////////////////////////////////////////// + +bool isUnusedVoltageDomain( + HBVddrMsg::hwsvPowrMemVoltDomainRequest_t i_vid) +{ + return (!i_vid.voltageMillivolts); +} + //****************************************************************************** // addMemoryVoltageDomains (templated) //****************************************************************************** @@ -294,6 +304,17 @@ void HBVddrMsg::createVddrData( io_request.erase(pInvalidEntries,io_request.end()); } + if( (i_requestType == HB_VDDR_ENABLE) + && (!membufTargetList.empty()) ) + { + // Inhibit sending any request to turn on a domain with no voltage. + // When disabling we don't need to do this because the voltage is + // ignored. + io_request.erase( + std::remove_if(io_request.begin(), io_request.end(), + isUnusedVoltageDomain),io_request.end()); + } + } while(0); TRACFCOMP( g_trac_volt, EXIT_MRK "HBVddrMsg::createVddrData" ); |