summaryrefslogtreecommitdiffstats
path: root/src/usr/hwpf/hwp/dram_training/mss_draminit_training/mss_draminit_training.C
diff options
context:
space:
mode:
Diffstat (limited to 'src/usr/hwpf/hwp/dram_training/mss_draminit_training/mss_draminit_training.C')
-rw-r--r--src/usr/hwpf/hwp/dram_training/mss_draminit_training/mss_draminit_training.C39
1 files changed, 27 insertions, 12 deletions
diff --git a/src/usr/hwpf/hwp/dram_training/mss_draminit_training/mss_draminit_training.C b/src/usr/hwpf/hwp/dram_training/mss_draminit_training/mss_draminit_training.C
index dfb063a1a..06f984ab9 100644
--- a/src/usr/hwpf/hwp/dram_training/mss_draminit_training/mss_draminit_training.C
+++ b/src/usr/hwpf/hwp/dram_training/mss_draminit_training/mss_draminit_training.C
@@ -20,7 +20,7 @@
/* Origin: 30 */
/* */
/* IBM_PROLOG_END_TAG */
-// $Id: mss_draminit_training.C,v 1.62 2013/07/17 16:20:12 mwuu Exp $
+// $Id: mss_draminit_training.C,v 1.64 2013/08/01 18:32:48 jdsloat Exp $
//------------------------------------------------------------------------------
// Don't forget to create CVS comments when you check in your changes!
//------------------------------------------------------------------------------
@@ -28,7 +28,9 @@
//------------------------------------------------------------------------------
// Version:| Author: | Date: | Comment:
//---------|----------|---------|------------------------------------------------
-// 1.62 | mwuu |17-JUL-13| Fixed set_bbm function to disable0,disable1,wr_clk registers
+// 1.64 | jdsloat |01-AUG-13| Fixed dimm/rank conversion in address mirroring mode for a 4 rank dimm scenario
+// 1.63 | jdsloat |29-JUN-13| Added JTAG mode and CONTROL SWITCH attribute checks to bad bit mask function calls.
+// 1.62 | mwuu |17-JUN-13| Fixed set_bbm function to disable0,disable1,wr_clk registers
// | | | In x4 single bit fails disables entire nibble in set/get_bbm FN
// 1.61 | jdsloat |13-JUN-13| Added a single RC check
// 1.60 | jdsloat |11-JUN-13| Added a single RC check
@@ -300,6 +302,14 @@ ReturnCode mss_draminit_training_cloned(Target& i_target)
rc = fapiGetParentChip(i_target, l_target_centaur);
if(rc) return rc;
+ uint8_t control_switch = 0;
+ rc = FAPI_ATTR_GET(ATTR_MSS_CONTROL_SWITCH, NULL, control_switch);
+ if(rc) return rc;
+
+ uint8_t jtag_mode = 0;
+ rc = FAPI_ATTR_GET(ATTR_LAB_USE_JTAG_MODE, NULL, jtag_mode);
+ if(rc) return rc;
+
uint8_t dram_gen = 0;
rc = FAPI_ATTR_GET(ATTR_EFF_DRAM_GEN, &i_target, dram_gen);
if(rc) return rc;
@@ -368,12 +378,14 @@ ReturnCode mss_draminit_training_cloned(Target& i_target)
rc = fapiPutScom(i_target, MEM_MBA01_CCS_MODEQ_0x030106A7, data_buffer_64);
if(rc) return rc;
-
- rc = mss_set_bbm_regs (i_target);
- if(rc)
+ if ( ( control_switch && 0x01 ) && (jtag_mode == 0) )
{
- FAPI_ERR( "Error Moving bad bit information to the Phy regs. Exiting.");
- return rc;
+ rc = mss_set_bbm_regs (i_target);
+ if(rc)
+ {
+ FAPI_ERR( "Error Moving bad bit information to the Phy regs. Exiting.");
+ return rc;
+ }
}
if ( ( cal_steps_8.isBitSet(0) ) ||
@@ -713,12 +725,15 @@ ReturnCode mss_draminit_training_cloned(Target& i_target)
if(rc) return rc;
}
- rc = mss_get_bbm_regs(i_target);
- if(rc)
+ if ( ( control_switch && 0x01 ) && (jtag_mode == 0) )
+ {
+ rc = mss_get_bbm_regs(i_target);
+ if(rc)
{
- FAPI_ERR( "Error Moving bad bit information from the Phy regs. Exiting.");
- return rc;
+ FAPI_ERR( "Error Moving bad bit information from the Phy regs. Exiting.");
+ return rc;
}
+ }
if (complete_status == MSS_INIT_CAL_STALL)
{
@@ -2527,7 +2542,7 @@ ReturnCode mss_rtt_nom_rtt_wr_swap(
uint8_t dimm_rank = 0;
// dimm 0, dimm_rank 0-3 = ranks 0-3; dimm 1, dimm_rank 0-3 = ranks 4-7
- dimm = (i_rank + 1) / 4;
+ dimm = (i_rank) / 4;
dimm_rank = i_rank - 4*dimm;
OpenPOWER on IntegriCloud