diff options
Diffstat (limited to 'src/usr/hwpf/hwp/mc_config/mss_volt/mss_volt_vddr_offset.C')
-rw-r--r-- | src/usr/hwpf/hwp/mc_config/mss_volt/mss_volt_vddr_offset.C | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/src/usr/hwpf/hwp/mc_config/mss_volt/mss_volt_vddr_offset.C b/src/usr/hwpf/hwp/mc_config/mss_volt/mss_volt_vddr_offset.C index c07b4b9f3..5468f3953 100644 --- a/src/usr/hwpf/hwp/mc_config/mss_volt/mss_volt_vddr_offset.C +++ b/src/usr/hwpf/hwp/mc_config/mss_volt/mss_volt_vddr_offset.C @@ -22,7 +22,7 @@ /* permissions and limitations under the License. */ /* */ /* IBM_PROLOG_END_TAG */ -// $Id: mss_volt_vddr_offset.C,v 1.19 2014/09/12 15:38:08 sglancy Exp $ +// $Id: mss_volt_vddr_offset.C,v 1.20 2014/10/06 15:56:56 sglancy Exp $ /* File mss_volt_vddr_offset.C created by Stephen Glancy on Tue 20 May 2014. */ //------------------------------------------------------------------------------ @@ -45,6 +45,7 @@ //------------------------------------------------------------------------------ // Version:| Author: | Date: | Comment: //---------|----------|----------|----------------------------------------------- +// 1.20 | sglancy | 10/06/14 | Added in checks for going over voltage limits // 1.19 | sglancy | 09/12/14 | Removed references to EFF attributes // 1.18 | sglancy | 09/11/14 | Fixed bugs and fixed typos // 1.17 | sglancy | 09/10/14 | Added additional checks for bad master power values @@ -100,6 +101,7 @@ fapi::ReturnCode mss_volt_vddr_offset(std::vector<fapi::Target> & i_targets) uint8_t enable, is_functional; uint8_t num_non_functional = 0; uint8_t percent_uplift,percent_uplift_idle; + uint32_t vddr_max_limit_mv; std::vector<fapi::Target> l_mbaChiplets; std::vector<fapi::Target> l_dimm_targets; @@ -208,6 +210,8 @@ fapi::ReturnCode mss_volt_vddr_offset(std::vector<fapi::Target> & i_targets) if(l_rc) return l_rc; l_rc = FAPI_ATTR_GET(ATTR_MSS_DDR3_VDDR_INTERCEPT,NULL,volt_intercept); if(l_rc) return l_rc; + l_rc = FAPI_ATTR_GET(ATTR_MRW_DDR3_VDDR_MAX_LIMIT,NULL,vddr_max_limit_mv); + if(l_rc) return l_rc; } //ddr4 else { @@ -215,6 +219,8 @@ fapi::ReturnCode mss_volt_vddr_offset(std::vector<fapi::Target> & i_targets) if(l_rc) return l_rc; l_rc = FAPI_ATTR_GET(ATTR_MSS_DDR4_VDDR_INTERCEPT,NULL,volt_intercept); if(l_rc) return l_rc; + l_rc = FAPI_ATTR_GET(ATTR_MRW_DDR4_VDDR_MAX_LIMIT,NULL,vddr_max_limit_mv); + if(l_rc) return l_rc; } //computes the active an inactive attribute values @@ -338,6 +344,12 @@ fapi::ReturnCode mss_volt_vddr_offset(std::vector<fapi::Target> & i_targets) //computes and converts the voltage offset into mV uint32_t param_vddr_voltage_mv = (500 + var_power_on_vddr*volt_slope/100) / 1000 + volt_intercept; FAPI_INF("param_vddr_voltage_mv: %d mV",param_vddr_voltage_mv); + //found that the VDDR voltage is over the maximum limit + if(param_vddr_voltage_mv > vddr_max_limit_mv) { + FAPI_INF("param_vddr_voltage_mv, %d mV, is over vddr_max_limit_mv of %d mV.",param_vddr_voltage_mv,vddr_max_limit_mv); + FAPI_INF("Setting param_vddr_voltage_mv to vddr_max_limit_mv"); + param_vddr_voltage_mv = vddr_max_limit_mv; + } //prints a debug statement FAPI_INF("ATTR_MSS_VDDR_OFFSET: %d mV",param_vddr_voltage_mv); |