From ec840df7fcaf92bfe8d89bc2b2ece72a53b22f4e Mon Sep 17 00:00:00 2001 From: Stephen Glancy Date: Fri, 10 May 2019 12:17:08 -0400 Subject: Adds explorer CCS specialization Change-Id: I859140b161f6a465d68883021465318b328d4a0d Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/77260 Tested-by: FSP CI Jenkins Tested-by: Jenkins Server Reviewed-by: Louis Stermole Reviewed-by: Mark Pizzutillo Tested-by: PPE CI Tested-by: HWSV CI Tested-by: Hostboot CI Reviewed-by: Thi N. Tran Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/77273 Reviewed-by: Christian R. Geddes Tested-by: Christian R. Geddes --- src/import/generic/memory/lib/ccs/ccs.H | 31 +++++++--------------- .../memory/lib/utils/shared/mss_generic_consts.H | 1 + .../procedures/xml/error_info/generic_error.xml | 14 ++++++++++ 3 files changed, 24 insertions(+), 22 deletions(-) (limited to 'src/import/generic') diff --git a/src/import/generic/memory/lib/ccs/ccs.H b/src/import/generic/memory/lib/ccs/ccs.H index aafb0826e..f97c1f885 100644 --- a/src/import/generic/memory/lib/ccs/ccs.H +++ b/src/import/generic/memory/lib/ccs/ccs.H @@ -160,9 +160,9 @@ class instruction_t // First, check rank - we need to make sure that we have a valid rank FAPI_ASSERT(iv_rank < TT::CCS_MAX_MRANK_PER_PORT, fapi2::MSS_INVALID_RANK() - .set_MCA_TARGET(i_target) + .set_PORT_TARGET(i_target) .set_RANK(iv_rank) - .set_FUNCTION(ffdc_function_codes::CCS_INST_CONFIGURE_RANK), + .set_FUNCTION(generic_ffdc_codes::CCS_INST_CONFIGURE_RANK), "%s rank out of bounds rank%u", mss::c_str(i_target), iv_rank); // Now the fun happens and we can deal with the actual encoding @@ -217,9 +217,9 @@ class instruction_t // So, we pass always if we're DIMM0, or if our DIMM rank is less than the maximum number of DIMM's on rank 1 FAPI_ASSERT(l_dimm_rank < TT::CCS_MAX_RANKS_DIMM1 || l_is_dimm0, fapi2::MSS_INVALID_RANK() - .set_MCA_TARGET(i_target) + .set_PORT_TARGET(i_target) .set_RANK(iv_rank) - .set_FUNCTION(ffdc_function_codes::CCS_INST_CONFIGURE_RANK), + .set_FUNCTION(generic_ffdc_codes::CCS_INST_CONFIGURE_RANK), "%s rank out of bounds rank%u", mss::c_str(i_target), iv_rank); } @@ -255,7 +255,7 @@ inline fapi2::ReturnCode get_rank_config(const fapi2::Target > -inline fapi2::ReturnCode select_ports( const fapi2::Target& i_target, uint64_t i_ports) -{ - fapi2::buffer l_data; - fapi2::buffer l_ports; - - // Not handling multiple ports here, can't do that for CCS. BRS - FAPI_TRY( l_ports.setBit(i_ports) ); - - FAPI_TRY( mss::getScom(i_target, TT::MCB_CNTL_REG, l_data) ); - l_data.insert(l_ports); - FAPI_TRY( mss::putScom(i_target, TT::MCB_CNTL_REG, l_data) ); - -fapi_try_exit: - return fapi2::current_err; -} +template< mss::mc_type MC, fapi2::TargetType T, typename TT = ccsTraits > +fapi2::ReturnCode select_ports( const fapi2::Target& i_target, uint64_t i_ports); /// /// @brief User sets to a '1'b to tell the Hdw to stop CCS whenever failure occurs. When a @@ -1290,7 +1277,7 @@ fapi2::ReturnCode execute( const fapi2::Target& i_target, FAPI_INF("executing CCS array for port %d (%s)", l_port_index, mss::c_str(p)); - FAPI_TRY( select_ports( i_target, l_port_index), "Error in ccs execute" ); + FAPI_TRY( select_ports( i_target, l_port_index), "Error in ccs execute" ); FAPI_TRY( execute_inst_array(i_target, i_program, p), "Error in ccs execute" ); } } diff --git a/src/import/generic/memory/lib/utils/shared/mss_generic_consts.H b/src/import/generic/memory/lib/utils/shared/mss_generic_consts.H index 90c361e94..0599a01c7 100644 --- a/src/import/generic/memory/lib/utils/shared/mss_generic_consts.H +++ b/src/import/generic/memory/lib/utils/shared/mss_generic_consts.H @@ -177,6 +177,7 @@ enum generic_ffdc_codes SET_MRANKS = 0x102A, SET_HOST_TO_DDR_SPEED_RATIO = 0x102B, SET_ATTR_HOST_TO_DDR_SPEED_RATIO = 0x102C, + CCS_INST_CONFIGURE_RANK = 0x102D, SET_DIMM_RANKS_CNFG = 0x1039, DDIMM_RAWCARD_DECODE = 0x103a, INIT_RANK_INFO = 0x103B, diff --git a/src/import/generic/procedures/xml/error_info/generic_error.xml b/src/import/generic/procedures/xml/error_info/generic_error.xml index f09e3de8f..08a7ef84a 100644 --- a/src/import/generic/procedures/xml/error_info/generic_error.xml +++ b/src/import/generic/procedures/xml/error_info/generic_error.xml @@ -239,6 +239,20 @@ + + RC_MSS_INVALID_RANK + + Invalid rank passed into function + + FUNCTION + RANK + PORT_TARGET + + CODE + HIGH + + + RC_MSS_INVALID_TIMING_VALUE Invalid value calculated for timing value based on MTB and FTB from SPD. -- cgit v1.2.1