summaryrefslogtreecommitdiffstats
path: root/src/import/chips/p9/procedures/hwp/memory/lib/dimm/eff_dimm.C
diff options
context:
space:
mode:
authorAndre Marin <aamarin@us.ibm.com>2017-06-09 18:34:28 -0500
committerDaniel M. Crowell <dcrowell@us.ibm.com>2017-06-15 17:06:53 -0400
commit24e1a2686614205b727072d20aaa81d24aa5f4ca (patch)
treedcab033c6fc7461440b2acf1542d1d4b1cb3f338 /src/import/chips/p9/procedures/hwp/memory/lib/dimm/eff_dimm.C
parent9431f17c592f3664a2bb6e4a9b0a10b14d72bb42 (diff)
downloadtalos-hostboot-24e1a2686614205b727072d20aaa81d24aa5f4ca.tar.gz
talos-hostboot-24e1a2686614205b727072d20aaa81d24aa5f4ca.zip
Modify DRAM_LPASR to be set based on MRW REFRESH_RATE_REQUEST attr
Change-Id: I2cb0b816fe492380e779386ca8c36f3e7a90f88f Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/41726 Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com> Tested-by: Hostboot CI <hostboot-ci+hostboot@us.ibm.com> Reviewed-by: JACOB L. HARVEY <jlharvey@us.ibm.com> Reviewed-by: Louis Stermole <stermole@us.ibm.com> Reviewed-by: Michael D. Pardeik <pardeik@us.ibm.com> Reviewed-by: STEPHEN GLANCY <sglancy@us.ibm.com> Reviewed-by: Jennifer A. Stofer <stofer@us.ibm.com> Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/41769 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: Daniel M. Crowell <dcrowell@us.ibm.com>
Diffstat (limited to 'src/import/chips/p9/procedures/hwp/memory/lib/dimm/eff_dimm.C')
-rw-r--r--src/import/chips/p9/procedures/hwp/memory/lib/dimm/eff_dimm.C25
1 files changed, 22 insertions, 3 deletions
diff --git a/src/import/chips/p9/procedures/hwp/memory/lib/dimm/eff_dimm.C b/src/import/chips/p9/procedures/hwp/memory/lib/dimm/eff_dimm.C
index 1c7055e4b..26c3a950e 100644
--- a/src/import/chips/p9/procedures/hwp/memory/lib/dimm/eff_dimm.C
+++ b/src/import/chips/p9/procedures/hwp/memory/lib/dimm/eff_dimm.C
@@ -2003,16 +2003,35 @@ fapi_try_exit:
///
fapi2::ReturnCode eff_dimm::dram_lpasr()
{
+ // Retreive attribute
std::vector<uint8_t> l_attrs_lpasr(PORTS_PER_MCS, 0);
-
FAPI_TRY( eff_dram_lpasr(iv_mcs, l_attrs_lpasr.data()) );
- l_attrs_lpasr[iv_port_index] = fapi2::ENUM_ATTR_EFF_DRAM_LPASR_MANUAL_EXTENDED;
+ switch(iv_refresh_rate_request)
+ {
+ case fapi2::ENUM_ATTR_MSS_MRW_REFRESH_RATE_REQUEST_DOUBLE:
+ case fapi2::ENUM_ATTR_MSS_MRW_REFRESH_RATE_REQUEST_DOUBLE_10_PERCENT_FASTER:
+ l_attrs_lpasr[iv_port_index] = fapi2::ENUM_ATTR_EFF_DRAM_LPASR_MANUAL_EXTENDED;
+ break;
+
+ case fapi2::ENUM_ATTR_MSS_MRW_REFRESH_RATE_REQUEST_SINGLE:
+ case fapi2::ENUM_ATTR_MSS_MRW_REFRESH_RATE_REQUEST_SINGLE_10_PERCENT_FASTER:
+ l_attrs_lpasr[iv_port_index] = fapi2::ENUM_ATTR_EFF_DRAM_LPASR_MANUAL_NORMAL;
+ break;
+
+ default:
+ // Will catch incorrect MRW value set
+ FAPI_ASSERT(false,
+ fapi2::MSS_INVALID_REFRESH_RATE_REQUEST().set_REFRESH_RATE_REQUEST(iv_refresh_rate_request),
+ "Incorrect refresh request rate received: %d for %s",
+ iv_refresh_rate_request, mss::c_str(iv_mcs));
+ break;
+ }
FAPI_TRY( FAPI_ATTR_SET(fapi2::ATTR_EFF_DRAM_LPASR,
iv_mcs,
UINT8_VECTOR_TO_1D_ARRAY(l_attrs_lpasr, PORTS_PER_MCS)),
- "Failed setting attribute for LPASR");
+ "Failed setting attribute for LPASR on %s", mss::c_str(iv_mcs));
fapi_try_exit:
return fapi2::current_err;
OpenPOWER on IntegriCloud