summaryrefslogtreecommitdiffstats
path: root/src/usr/hwpf/hwp/bus_training/io_read_erepair.C
diff options
context:
space:
mode:
authorMatt Ploetz <maploetz@us.ibm.com>2013-12-06 11:23:30 -0600
committerA. Patrick Williams III <iawillia@us.ibm.com>2013-12-13 09:49:42 -0600
commitb080f2201c10e8c9ea7ed9813453ae4936fc3987 (patch)
tree9484d482303da1db1cf2c901441cd2794b7d6090 /src/usr/hwpf/hwp/bus_training/io_read_erepair.C
parentccba0c32f48745b88d91f50d87a5dff290abb11a (diff)
downloadtalos-hostboot-b080f2201c10e8c9ea7ed9813453ae4936fc3987.tar.gz
talos-hostboot-b080f2201c10e8c9ea7ed9813453ae4936fc3987.zip
INITPROC: Hostboot - SW234333 HWP io_read_erepair
Change-Id: I314667b3d5778d1b1c33267794336649ba047f7b CQ: SW234333 Reviewed-on: http://gfw160.aus.stglabs.ibm.com:8080/gerrit/7573 Reviewed-by: MIKE J. JONES <mjjones@us.ibm.com> Reviewed-by: Brian H. Horton <brianh@linux.ibm.com> Tested-by: Jenkins Server Reviewed-by: A. Patrick Williams III <iawillia@us.ibm.com>
Diffstat (limited to 'src/usr/hwpf/hwp/bus_training/io_read_erepair.C')
-rw-r--r--src/usr/hwpf/hwp/bus_training/io_read_erepair.C30
1 files changed, 17 insertions, 13 deletions
diff --git a/src/usr/hwpf/hwp/bus_training/io_read_erepair.C b/src/usr/hwpf/hwp/bus_training/io_read_erepair.C
index 08218cfff..2e5ad8c39 100644
--- a/src/usr/hwpf/hwp/bus_training/io_read_erepair.C
+++ b/src/usr/hwpf/hwp/bus_training/io_read_erepair.C
@@ -20,7 +20,7 @@
/* Origin: 30 */
/* */
/* IBM_PROLOG_END_TAG */
-// $Id: io_read_erepair.C,v 1.6 2013/07/14 15:50:02 varkeykv Exp $
+// $Id: io_read_erepair.C,v 1.7 2013/10/22 11:46:38 varkeykv Exp $
// *!***************************************************************************
// *! (C) Copyright International Business Machines Corp. 1997, 1998
// *! All Rights Reserved -- Property of IBM
@@ -61,7 +61,6 @@ ReturnCode io_read_erepair(const Target& target,std::vector<uint8_t> &rx_lanes)
{
ReturnCode rc;
ecmdDataBufferBase data_one(16);
- ecmdDataBufferBase data_two(16);
ecmdDataBufferBase mask(16);
uint8_t lane=0;
@@ -125,7 +124,6 @@ ReturnCode io_read_erepair(const Target& target,std::vector<uint8_t> &rx_lanes)
//Collect the RX bad lanes
rc_ecmd|=data_one.flushTo0();
- rc_ecmd|=data_two.flushTo0();
if(rc_ecmd)
{
@@ -133,23 +131,29 @@ ReturnCode io_read_erepair(const Target& target,std::vector<uint8_t> &rx_lanes)
return(rc);
}
- rc = GCR_read( target, interface, rx_lane_bad_vec_0_15_pg, clock_group, 0, data_one);
- if(rc){return rc;}
- rc = GCR_read( target, interface, rx_lane_bad_vec_16_31_pg, clock_group, 0, data_two);
+ rc = GCR_read( target, interface, rx_bad_lane_enc_gcrmsg_pg, clock_group, 0, data_one);
if(rc){return rc;}
// RX lane records
// Set the RX bad lanes in the RX vector
- for(uint8_t i=0;i<16;++i){
- if (data_one.isBitSet(i)) {
- rx_lanes.push_back(lane+i); // 0 to 15 bad lanes
- }
- if(data_two.isBitSet(i)){
- rx_lanes.push_back(lane+i+16); // 16 to 31 bad lanes
- }
+ // Get first bad lane
+ if(!data_one.isBitClear(0,7))
+ {
+ data_one.extract(&lane,0,7);
+ lane=lane>>1;
+ FAPI_DBG("First bad lane is %d",lane);
+ rx_lanes.push_back(lane); // 0 to 15 bad lanes
+ }
+ // Get second bad lane if any
+ if(!data_one.isBitClear(7,7)){
+ data_one.extract(&lane,7,7);
+ lane=lane>>1;
+ FAPI_DBG("Second bad lane is %d",lane);
+ rx_lanes.push_back(lane); // 16 to 31 bad lanes
}
+
}
return rc;
}
OpenPOWER on IntegriCloud