Skip to content

Commit

Permalink
P9 I/O Read Erepair Level 2
Browse files Browse the repository at this point in the history
Change-Id: I44bf4876db1eb564729957dc137a38146131d722
Reviewed-on: http://gfw160.aus.stglabs.ibm.com:8080/gerrit/22183
Tested-by: Jenkins Server
Reviewed-by: Jennifer A. Stofer <stofer@us.ibm.com>
Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/38892
Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com>
Tested-by: Jenkins OP Build CI <op-jenkins+hostboot@us.ibm.com>
Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com>
  • Loading branch information
steffenchris authored and dcrowell77 committed Apr 6, 2017
1 parent c04eaa1 commit e58549d
Show file tree
Hide file tree
Showing 2 changed files with 48 additions and 12 deletions.
50 changes: 42 additions & 8 deletions src/import/chips/p9/procedures/hwp/io/p9_io_xbus_read_erepair.C
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@
/// *HWP HWP Backup Owner : Gary Peterson <garyp@us.ibm.com>
/// *HWP FW Owner : Jamie Knight <rjknight@us.ibm.com>
/// *HWP Team : IO
/// *HWP Level : 1
/// *HWP Level : 2
/// *HWP Consumed by : FSP:HB
///----------------------------------------------------------------------------
///
Expand All @@ -50,6 +50,8 @@
// Includes
// ----------------------------------------------------------------------------
#include "p9_io_xbus_read_erepair.H"
#include "p9_io_gcr.H"
#include "p9_io_regs.H"

// ----------------------------------------------------------------------------
// Procedure Function
Expand All @@ -58,22 +60,54 @@

/**
* @brief A HWP that runs Read eRepair. This procedure reads the current bad
* lanes and passes by reference the lane numbers in a vector
* @param[in] i_target Reference to Target
* @param[out] o_bad_lanes Vector of bad lanes
* lanes and passes by reference the lane numbers in a vector.
* @param[in] i_target Reference to Target
* @param[in] i_clock_group Clock Group of Target
* @param[out] o_bad_lanes Vector of bad lanes
* @retval ReturnCode
*/
fapi2::ReturnCode
p9_io_xbus_read_erepair(const fapi2::Target < fapi2::TARGET_TYPE_XBUS >& i_target,
const uint8_t& i_clock_group,
std::vector< uint8_t >& o_bad_lanes)
{
FAPI_IMP("Entering...");
fapi2::ReturnCode rc = 0;
#if 0

fapi2::ReturnCode rc = fapi2::FAPI2_RC_SUCCESS;
const uint16_t BAD_LANES_3PLUS = 3;
const uint16_t BAD_LANES_2 = 2;
const uint16_t BAD_LANES_1 = 1;
const uint16_t BAD_LANES_0 = 0;
Register < EDIP_RX_GLBSM_STAT9_E_PG > rx_bad_lanes_reg;

o_bad_lanes.clear();

FAPI_TRY(rx_bad_lanes_reg.read(i_target, i_clock_group), "Reading Bad Lane Code Failed.");
FAPI_DBG( "Bad Lane Code: %d", rx_bad_lanes_reg.get<EDIP_RX_BAD_LANE_CODE>() );

switch( rx_bad_lanes_reg.get<EDIP_RX_BAD_LANE_CODE>() )
{
case BAD_LANES_3PLUS:
FAPI_DBG( "Bad Lane: Three or more bad lanes found." );

case BAD_LANES_2:
FAPI_DBG( "Bad Lane 2: %d", rx_bad_lanes_reg.get<EDIP_RX_BAD_LANE2>() );
o_bad_lanes.push_back( (uint8_t)rx_bad_lanes_reg.get<EDIP_RX_BAD_LANE2>() );

case BAD_LANES_1:
FAPI_DBG( "Bad Lane 1: %d", rx_bad_lanes_reg.get<EDIP_RX_BAD_LANE1>() );
o_bad_lanes.push_back( (uint8_t)rx_bad_lanes_reg.get<EDIP_RX_BAD_LANE1>() );
break;

case BAD_LANES_0:
FAPI_DBG( "No Bad Lanes" );

default:
break;
}

fapi_try_exit:
#endif
FAPI_IMP("Exiting...");
return fapi2::FAPI2_RC_SUCCESS;
return fapi2::current_err;
}

10 changes: 6 additions & 4 deletions src/import/chips/p9/procedures/hwp/io/p9_io_xbus_read_erepair.H
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@
/// *HWP HWP Backup Owner : Gary Peterson <garyp@us.ibm.com>
/// *HWP FW Owner : Jamie Knight <rjknight@us.ibm.com>
/// *HWP Team : IO
/// *HWP Level : 1
/// *HWP Level : 2
/// *HWP Consumed by : FSP:HB
///----------------------------------------------------------------------------

Expand All @@ -41,20 +41,22 @@

// function pointer typedef definition for HWP call support
typedef fapi2::ReturnCode (*p9_io_xbus_read_erepair_FP_t)
(const fapi2::Target < fapi2::TARGET_TYPE_XBUS >&, std::vector< uint8_t >&);
(const fapi2::Target < fapi2::TARGET_TYPE_XBUS >&, const uint8_t&, std::vector< uint8_t >&);


extern "C"
{
/**
* @brief A HWP that runs Read eRepair. This procedure reads the current bad
* lanes and passes by reference the lane numbers in a vector
* @param[in] i_target Reference to Target
* @param[out] o_bad_lanes Vector of bad lanes
* @param[in] i_target Reference to Target
* @param[in] i_clock_group Clock Group of Target
* @param[out] o_bad_lanes Vector of bad lanes
* @retval ReturnCode
*/
fapi2::ReturnCode
p9_io_xbus_read_erepair(const fapi2::Target< fapi2::TARGET_TYPE_XBUS >& i_target,
const uint8_t& i_clock_group,
std::vector< uint8_t >& o_bad_lanes);

} // extern "C"
Expand Down

0 comments on commit e58549d

Please sign in to comment.