diff options
author | Louis Stermole <stermole@us.ibm.com> | 2019-08-13 11:08:32 -0400 |
---|---|---|
committer | Daniel M Crowell <dcrowell@us.ibm.com> | 2019-08-21 15:21:07 -0500 |
commit | 51aebe5630e16bf491b025a32d366b0b366da682 (patch) | |
tree | 7c6ec740592170b9387d7a1cabbf7c36288932a1 /src/import | |
parent | 96be9fd647509af184d5d4ceedeb73020e79b527 (diff) | |
download | talos-hostboot-51aebe5630e16bf491b025a32d366b0b366da682.tar.gz talos-hostboot-51aebe5630e16bf491b025a32d366b0b366da682.zip |
Change p9a_mss_eff_config to use rank-specific RTT values from SPD
Change-Id: Icfab984a55c660ec10bfb5b5b268f6ef2aa9ff32
Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/82153
Reviewed-by: Mark Pizzutillo <mark.pizzutillo@ibm.com>
Reviewed-by: STEPHEN GLANCY <sglancy@us.ibm.com>
Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com>
Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com>
Tested-by: Hostboot CI <hostboot-ci+hostboot@us.ibm.com>
Dev-Ready: Louis Stermole <stermole@us.ibm.com>
Reviewed-by: Jennifer A Stofer <stofer@us.ibm.com>
Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/82193
Tested-by: Jenkins OP Build CI <op-jenkins+hostboot@us.ibm.com>
Tested-by: Jenkins OP HW <op-hw-jenkins+hostboot@us.ibm.com>
Reviewed-by: Daniel M Crowell <dcrowell@us.ibm.com>
Diffstat (limited to 'src/import')
-rw-r--r-- | src/import/generic/memory/lib/data_engine/attr_engine_traits.H | 75 |
1 files changed, 72 insertions, 3 deletions
diff --git a/src/import/generic/memory/lib/data_engine/attr_engine_traits.H b/src/import/generic/memory/lib/data_engine/attr_engine_traits.H index f498dd8a0..077466a3c 100644 --- a/src/import/generic/memory/lib/data_engine/attr_engine_traits.H +++ b/src/import/generic/memory/lib/data_engine/attr_engine_traits.H @@ -1374,7 +1374,30 @@ struct attrEngineTraits<P, attr_si_engine_fields, attr_si_engine_fields::SI_DRAM }; const auto l_ocmb = i_efd_data->get_ocmb_target(); - FAPI_TRY(i_efd_data->dram_rtt_nom(l_rtt_nom)); + switch(i_efd_data->get_rank()) + { + case 0: + FAPI_TRY( i_efd_data->dram_rtt_nom_rank0(l_rtt_nom) ); + break; + + case 1: + FAPI_TRY( i_efd_data->dram_rtt_nom_rank1(l_rtt_nom) ); + break; + + case 2: + FAPI_TRY( i_efd_data->dram_rtt_nom_rank2(l_rtt_nom) ); + break; + + case 3: + FAPI_TRY( i_efd_data->dram_rtt_nom_rank3(l_rtt_nom) ); + break; + + default: + // TODO Add FFDC + fapi2::Assert(false); + break; + }; + // Map SPD value to desired setting FAPI_TRY(lookup_table_check(l_ocmb, RTT_NOM_MAP, mss::SET_SI_DRAM_RTT_NOM, l_rtt_nom, o_setting)); @@ -1442,7 +1465,30 @@ struct attrEngineTraits<P, attr_si_engine_fields, attr_si_engine_fields::SI_DRAM }; const auto l_ocmb = i_efd_data->get_ocmb_target(); - FAPI_TRY(i_efd_data->dram_rtt_wr(l_rtt_wr)); + switch(i_efd_data->get_rank()) + { + case 0: + FAPI_TRY( i_efd_data->dram_rtt_wr_rank0(l_rtt_wr) ); + break; + + case 1: + FAPI_TRY( i_efd_data->dram_rtt_wr_rank1(l_rtt_wr) ); + break; + + case 2: + FAPI_TRY( i_efd_data->dram_rtt_wr_rank2(l_rtt_wr) ); + break; + + case 3: + FAPI_TRY( i_efd_data->dram_rtt_wr_rank3(l_rtt_wr) ); + break; + + default: + // TODO Add FFDC + fapi2::Assert(false); + break; + }; + // Map SPD value to desired setting FAPI_TRY(lookup_table_check(l_ocmb, RTT_WR_MAP, mss::SET_SI_DRAM_RTT_WR, l_rtt_wr, o_setting)); @@ -1515,7 +1561,30 @@ struct attrEngineTraits<P, attr_si_engine_fields, attr_si_engine_fields::SI_DRAM }; const auto l_ocmb = i_efd_data->get_ocmb_target(); - FAPI_TRY(i_efd_data->dram_rtt_park(l_rtt_park)); + switch(i_efd_data->get_rank()) + { + case 0: + FAPI_TRY( i_efd_data->dram_rtt_park_rank0(l_rtt_park) ); + break; + + case 1: + FAPI_TRY( i_efd_data->dram_rtt_park_rank1(l_rtt_park) ); + break; + + case 2: + FAPI_TRY( i_efd_data->dram_rtt_park_rank2(l_rtt_park) ); + break; + + case 3: + FAPI_TRY( i_efd_data->dram_rtt_park_rank3(l_rtt_park) ); + break; + + default: + // TODO Add FFDC + fapi2::Assert(false); + break; + }; + // Map SPD value to desired setting FAPI_TRY(lookup_table_check(l_ocmb, RTT_PARK_MAP, mss::SET_SI_DRAM_RTT_PARK, l_rtt_park, o_setting)); |