diff options
author | Mark Pizzutillo <Mark.Pizzutillo@ibm.com> | 2019-09-03 12:55:26 -0400 |
---|---|---|
committer | Nicholas E Bofferding <bofferdn@us.ibm.com> | 2019-09-14 08:05:02 -0500 |
commit | 7a27f4603a1b222e2d527d1167e5a3c3653c404b (patch) | |
tree | 357a894034f2958fa13fcbbe38e87c608ca72dbc /src/import/generic | |
parent | 1434b8952e3a2dbd55a0876ec9d89fe3ffd21da6 (diff) | |
download | talos-hostboot-7a27f4603a1b222e2d527d1167e5a3c3653c404b.tar.gz talos-hostboot-7a27f4603a1b222e2d527d1167e5a3c3653c404b.zip |
Add ekb dual drop support for p9a
SPD and VPD will need to be revisited once we architect
how this will work from the Cronus and HB side. In the
meantime, we pass EKB unit tests so we are on the right track.
Change-Id: Ie4516339dcc6e43ee1e6dd7aaaa9589fbfcace89
Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/83218
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>
Reviewed-by: Louis Stermole <stermole@us.ibm.com>
Reviewed-by: STEPHEN GLANCY <sglancy@us.ibm.com>
Dev-Ready: STEPHEN GLANCY <sglancy@us.ibm.com>
Reviewed-by: Jennifer A Stofer <stofer@us.ibm.com>
Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/83436
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: Nicholas E Bofferding <bofferdn@us.ibm.com>
Diffstat (limited to 'src/import/generic')
-rw-r--r-- | src/import/generic/memory/lib/data_engine/data_engine_utils.H | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/src/import/generic/memory/lib/data_engine/data_engine_utils.H b/src/import/generic/memory/lib/data_engine/data_engine_utils.H index 85a5ac48b..d29f31e86 100644 --- a/src/import/generic/memory/lib/data_engine/data_engine_utils.H +++ b/src/import/generic/memory/lib/data_engine/data_engine_utils.H @@ -46,6 +46,7 @@ #include <generic/memory/lib/spd/spd_facade.H> #include <generic/memory/lib/mss_generic_attribute_getters.H> #include <generic/memory/lib/utils/conversions.H> +#include <generic/memory/lib/utils/shared/mss_generic_consts.H> namespace mss { @@ -212,10 +213,9 @@ inline fapi2::ReturnCode update_data(const std::shared_ptr<efd::base_decoder>& i { const auto l_ocmb = i_efd_data->get_ocmb_target(); - // TK, remove hard-code when VPDinfo struct adds an iv_dimm index - // For explorer we can only have 1 DDIMM (index 0), or up to 2 DIMMs - constexpr size_t l_dimm_index = 0; - const auto l_rank = i_efd_data->get_rank(); + // mss::index of rank number will % 4 (RANKS_PER_DIMM) to get us the corresponding dimm + const size_t l_dimm_index = mss::index(i_efd_data->get_rank()); + const auto l_dimm_rank = i_efd_data->get_rank() % mss::MAX_RANK_PER_DIMM; // TK HARDCODE TEST REMOVE ME! FAPI_ASSERT( l_dimm_index < X, fapi2::MSS_OUT_OF_BOUNDS_INDEXING() @@ -228,19 +228,19 @@ inline fapi2::ReturnCode update_data(const std::shared_ptr<efd::base_decoder>& i X, mss::spd::c_str(l_ocmb) ); - FAPI_ASSERT( l_rank < Y, + FAPI_ASSERT( l_dimm_rank < Y, fapi2::MSS_OUT_OF_BOUNDS_INDEXING() - .set_INDEX(l_rank) + .set_INDEX(l_dimm_rank) .set_LIST_SIZE(X) .set_FUNCTION(i_ffdc_code) .set_TARGET(l_ocmb), "Rank index (%d) was larger than max (%d) on %s", - l_rank, + l_dimm_rank, Y, mss::spd::c_str(l_ocmb) ); - FAPI_DBG("Updating data[%d][%d] with %d for %s", l_dimm_index, l_rank, i_setting, spd::c_str(l_ocmb)); - o_data[l_dimm_index][l_rank] = i_setting; + FAPI_DBG("Updating data[%d][%d] with %d for %s", l_dimm_index, l_dimm_rank, i_setting, spd::c_str(l_ocmb)); + o_data[l_dimm_index][l_dimm_rank] = i_setting; return fapi2::FAPI2_RC_SUCCESS; |