summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThi Tran <thi@us.ibm.com>2013-08-29 10:43:07 -0500
committerA. Patrick Williams III <iawillia@us.ibm.com>2013-09-10 11:35:39 -0500
commita6a8c9aac3ba72f054aeabc0eb63591922684242 (patch)
tree3d2bafa4cce23852e66fcc56a35c9e23b9825d55
parentbbcb8da395800c41bb912932fb915ce9bd165acf (diff)
downloadtalos-hostboot-a6a8c9aac3ba72f054aeabc0eb63591922684242.tar.gz
talos-hostboot-a6a8c9aac3ba72f054aeabc0eb63591922684242.zip
Hostboot - Updated HWPs from defect SW218652 Epsilon Updates
SW218652 Change-Id: Ifdcfe632db23e533406759bf5c1088bff9f390dd Reviewed-on: http://gfw160.austin.ibm.com:8080/gerrit/5967 Tested-by: Jenkins Server Reviewed-by: Richard J. Knight <rjknight@us.ibm.com> Reviewed-by: A. Patrick Williams III <iawillia@us.ibm.com>
-rw-r--r--src/usr/hwpf/hwp/activate_powerbus/proc_build_smp/proc_build_smp.C6
-rw-r--r--src/usr/hwpf/hwp/activate_powerbus/proc_build_smp/proc_build_smp.H5
-rw-r--r--src/usr/hwpf/hwp/activate_powerbus/proc_build_smp/proc_build_smp_epsilon.C22
-rw-r--r--src/usr/hwpf/hwp/activate_powerbus/proc_build_smp/proc_build_smp_epsilon.H38
-rw-r--r--src/usr/hwpf/hwp/activate_powerbus/proc_build_smp/proc_build_smp_fbc_cd.H18
-rw-r--r--src/usr/hwpf/hwp/bus_training/proc_fab_smp.H9
-rw-r--r--src/usr/hwpf/hwp/dram_initialization/proc_setup_bars/proc_fab_smp.H7
7 files changed, 68 insertions, 37 deletions
diff --git a/src/usr/hwpf/hwp/activate_powerbus/proc_build_smp/proc_build_smp.C b/src/usr/hwpf/hwp/activate_powerbus/proc_build_smp/proc_build_smp.C
index 444ad0777..f796a5341 100644
--- a/src/usr/hwpf/hwp/activate_powerbus/proc_build_smp/proc_build_smp.C
+++ b/src/usr/hwpf/hwp/activate_powerbus/proc_build_smp/proc_build_smp.C
@@ -20,7 +20,7 @@
/* Origin: 30 */
/* */
/* IBM_PROLOG_END_TAG */
-// $Id: proc_build_smp.C,v 1.8 2013/02/25 18:11:44 jmcgill Exp $
+// $Id: proc_build_smp.C,v 1.9 2013/07/30 20:51:09 jmcgill Exp $
// $Source: /afs/awd/projects/eclipz/KnowledgeBase/.cvsroot/eclipz/chips/p8/working/procedures/ipl/fapi/proc_build_smp.C,v $
//------------------------------------------------------------------------------
// *|
@@ -274,6 +274,10 @@ fapi::ReturnCode proc_build_smp_process_system(
io_smp.eps_cfg.table_type = PROC_FAB_SMP_EPSILON_TABLE_TYPE_HE;
FAPI_DBG("proc_build_smp_process_system: ATTR_PROC_EPS_TABLE_TYPE = HE");
break;
+ case 3:
+ io_smp.eps_cfg.table_type = PROC_FAB_SMP_EPSILON_TABLE_TYPE_1S;
+ FAPI_DBG("proc_build_smp_process_system: ATTR_PROC_EPS_TABLE_TYPE = 1S");
+ break;
default:
FAPI_ERR("proc_build_smp_process_system: Invalid epsilon table type attribute value 0x%02X",
temp_attr);
diff --git a/src/usr/hwpf/hwp/activate_powerbus/proc_build_smp/proc_build_smp.H b/src/usr/hwpf/hwp/activate_powerbus/proc_build_smp/proc_build_smp.H
index 9329711f1..2f3330554 100644
--- a/src/usr/hwpf/hwp/activate_powerbus/proc_build_smp/proc_build_smp.H
+++ b/src/usr/hwpf/hwp/activate_powerbus/proc_build_smp/proc_build_smp.H
@@ -20,7 +20,7 @@
/* Origin: 30 */
/* */
/* IBM_PROLOG_END_TAG */
-// $Id: proc_build_smp.H,v 1.9 2013/02/14 00:51:31 jmcgill Exp $
+// $Id: proc_build_smp.H,v 1.10 2013/07/30 20:51:20 jmcgill Exp $
// $Source: /afs/awd/projects/eclipz/KnowledgeBase/.cvsroot/eclipz/chips/p8/working/procedures/ipl/fapi/proc_build_smp.H,v $
//------------------------------------------------------------------------------
// *|
@@ -50,14 +50,13 @@
// *! o init epsilon registers,
// *! o program FBC configuration dependent registers (switch C/D)
// *! o join all single chip 'island' fabrics into drawer level
-// *! SMP (switch A/B)
+// *! SMP (switch A/B)
// *!
// *! SMP_ACTIVATE_PHASE2 (FSP):
// *! o join collection of drawer level SMPs into full system SMP
// *! (switch A/B)
// *!
//------------------------------------------------------------------------------
-// *! TODO:: epsilon: table updates for Venice (current: Murano only)
// *! TODO:: epsilon: need updated pre-epsilon values (current: P7 values)
// *! TODO:: switch CD: hang rate for foreign links & other lab tuned settings
// *! (current: placeholder settings from Murano sim)
diff --git a/src/usr/hwpf/hwp/activate_powerbus/proc_build_smp/proc_build_smp_epsilon.C b/src/usr/hwpf/hwp/activate_powerbus/proc_build_smp/proc_build_smp_epsilon.C
index 669d6ef41..16f920c4e 100644
--- a/src/usr/hwpf/hwp/activate_powerbus/proc_build_smp/proc_build_smp_epsilon.C
+++ b/src/usr/hwpf/hwp/activate_powerbus/proc_build_smp/proc_build_smp_epsilon.C
@@ -20,7 +20,7 @@
/* Origin: 30 */
/* */
/* IBM_PROLOG_END_TAG */
-// $Id: proc_build_smp_epsilon.C,v 1.6 2013/02/22 17:55:10 jmcgill Exp $
+// $Id: proc_build_smp_epsilon.C,v 1.8 2013/07/30 23:52:27 jmcgill Exp $
// $Source: /afs/awd/projects/eclipz/KnowledgeBase/.cvsroot/eclipz/chips/p8/working/procedures/ipl/fapi/proc_build_smp_epsilon.C,v $
//------------------------------------------------------------------------------
// *|
@@ -1169,6 +1169,22 @@ fapi::ReturnCode proc_build_smp_calc_epsilons(
io_smp.eps_cfg.w_f = PROC_BUILD_SMP_EPSILON_W_F_LE[io_smp.core_floor_ratio];
io_smp.eps_cfg.p = PROC_BUILD_SMP_EPSILON_P_LE[io_smp.core_floor_ratio];
break;
+ case PROC_FAB_SMP_EPSILON_TABLE_TYPE_1S:
+ if (io_smp.pump_mode == PROC_FAB_SMP_PUMP_MODE1)
+ {
+ io_smp.eps_cfg.r_t0 = PROC_BUILD_SMP_EPSILON_R_T0_1S[io_smp.core_floor_ratio];
+ }
+ else
+ {
+ io_smp.eps_cfg.r_t0 = PROC_BUILD_SMP_EPSILON_R_T1_1S[io_smp.core_floor_ratio];
+ }
+ io_smp.eps_cfg.r_t1 = PROC_BUILD_SMP_EPSILON_R_T1_1S[io_smp.core_floor_ratio];
+ io_smp.eps_cfg.r_t2 = PROC_BUILD_SMP_EPSILON_R_T2_1S[io_smp.core_floor_ratio];
+ io_smp.eps_cfg.r_f = PROC_BUILD_SMP_EPSILON_R_F_1S[io_smp.core_floor_ratio];
+ io_smp.eps_cfg.w_t2 = PROC_BUILD_SMP_EPSILON_W_1S[io_smp.core_floor_ratio];
+ io_smp.eps_cfg.w_f = PROC_BUILD_SMP_EPSILON_W_F_1S[io_smp.core_floor_ratio];
+ io_smp.eps_cfg.p = PROC_BUILD_SMP_EPSILON_P_1S[io_smp.core_floor_ratio];
+ break;
default:
FAPI_ERR("proc_build_smp_calc_epsilons: Invalid epsilon table type");
FAPI_SET_HWP_ERROR(rc, RC_PROC_BUILD_SMP_EPSILON_INVALID_TABLE_ERR);
@@ -1238,8 +1254,8 @@ fapi::ReturnCode proc_build_smp_calc_epsilons(
// write tier2 value is greater than write foreign value
if ((io_smp.eps_cfg.r_t0 > io_smp.eps_cfg.r_t1) ||
(io_smp.eps_cfg.r_t1 > io_smp.eps_cfg.r_t2) ||
- (io_smp.eps_cfg.r_f > io_smp.eps_cfg.r_t2) ||
- (io_smp.eps_cfg.w_f > io_smp.eps_cfg.w_t2))
+ ((io_smp.eps_cfg.r_f > io_smp.eps_cfg.r_t2) && (io_smp.eps_cfg.table_type != PROC_FAB_SMP_EPSILON_TABLE_TYPE_1S)) ||
+ ((io_smp.eps_cfg.w_f > io_smp.eps_cfg.w_t2) && (io_smp.eps_cfg.table_type != PROC_FAB_SMP_EPSILON_TABLE_TYPE_1S)))
{
FAPI_ERR("proc_build_smp_calc_epsilons: Invalid relationship between base epsilon values");
FAPI_SET_HWP_ERROR(rc, RC_PROC_BUILD_SMP_EPSILON_INVALID_TABLE_ERR);
diff --git a/src/usr/hwpf/hwp/activate_powerbus/proc_build_smp/proc_build_smp_epsilon.H b/src/usr/hwpf/hwp/activate_powerbus/proc_build_smp/proc_build_smp_epsilon.H
index 2d1394838..42115520c 100644
--- a/src/usr/hwpf/hwp/activate_powerbus/proc_build_smp/proc_build_smp_epsilon.H
+++ b/src/usr/hwpf/hwp/activate_powerbus/proc_build_smp/proc_build_smp_epsilon.H
@@ -20,7 +20,7 @@
/* Origin: 30 */
/* */
/* IBM_PROLOG_END_TAG */
-// $Id: proc_build_smp_epsilon.H,v 1.4 2013/03/17 21:43:43 jmcgill Exp $
+// $Id: proc_build_smp_epsilon.H,v 1.6 2013/07/30 23:46:30 jmcgill Exp $
// $Source: /afs/awd/projects/eclipz/KnowledgeBase/.cvsroot/eclipz/chips/p8/working/procedures/ipl/fapi/proc_build_smp_epsilon.H,v $
//------------------------------------------------------------------------------
// *|
@@ -55,23 +55,33 @@
const uint32_t PROC_BUILD_SMP_EPSILON_MIN_VALUE = 0x1;
const uint32_t PROC_BUILD_SMP_EPSILON_MAX_VALUE = 0xFFFFFFFF;
-// MR epsilon (Murano)
-const uint32_t PROC_BUILD_SMP_EPSILON_R_T0_HE[] = { 5, 5, 6, 7, 8, 15 };
-const uint32_t PROC_BUILD_SMP_EPSILON_R_T1_HE[] = { 35, 37, 39, 41, 45, 63 };
-const uint32_t PROC_BUILD_SMP_EPSILON_R_T2_HE[] = { 71, 73, 75, 77, 80, 99 };
-const uint32_t PROC_BUILD_SMP_EPSILON_R_F_HE[] = { 55, 56, 58, 60, 65, 82 };
-const uint32_t PROC_BUILD_SMP_EPSILON_W_HE[] = { 26, 27, 28, 29, 30, 35 };
-const uint32_t PROC_BUILD_SMP_EPSILON_W_F_HE[] = { 26, 27, 28, 29, 30, 35 };
+// HE epsilon (4 chips per-group)
+const uint32_t PROC_BUILD_SMP_EPSILON_R_T0_HE[] = { 6, 6, 7, 8, 9, 15 };
+const uint32_t PROC_BUILD_SMP_EPSILON_R_T1_HE[] = { 56, 58, 60, 62, 65, 84 };
+const uint32_t PROC_BUILD_SMP_EPSILON_R_T2_HE[] = { 102, 104, 105, 108, 111, 130 };
+const uint32_t PROC_BUILD_SMP_EPSILON_R_F_HE[] = { 66, 67, 69, 71, 75, 93 };
+const uint32_t PROC_BUILD_SMP_EPSILON_W_HE[] = { 46, 47, 47, 48, 50, 55 };
+const uint32_t PROC_BUILD_SMP_EPSILON_W_F_HE[] = { 37, 38, 39, 40, 40, 46 };
const uint32_t PROC_BUILD_SMP_EPSILON_P_HE[] = { 771, 1338, 1338, 1338, 1338, 1338 };
-const uint32_t PROC_BUILD_SMP_EPSILON_R_T0_LE[] = { 6, 6, 7, 8, 9, 17 };
-const uint32_t PROC_BUILD_SMP_EPSILON_R_T1_LE[] = { 6, 6, 7, 8, 9, 17 };
-const uint32_t PROC_BUILD_SMP_EPSILON_R_T2_LE[] = { 62, 63, 65, 68, 73, 94 };
-const uint32_t PROC_BUILD_SMP_EPSILON_R_F_LE[] = { 57, 59, 61, 64, 68, 90 };
-const uint32_t PROC_BUILD_SMP_EPSILON_W_LE[] = { 3, 3, 4, 5, 6, 14 };
-const uint32_t PROC_BUILD_SMP_EPSILON_W_F_LE[] = { 13, 13, 14, 15, 16, 23 };
+// LE epsilon (2 chips per-group)
+const uint32_t PROC_BUILD_SMP_EPSILON_R_T0_LE[] = { 6, 6, 7, 8, 9, 15 };
+const uint32_t PROC_BUILD_SMP_EPSILON_R_T1_LE[] = { 47, 49, 50, 53, 56, 75 };
+const uint32_t PROC_BUILD_SMP_EPSILON_R_T2_LE[] = { 93, 95, 96, 99, 102, 120 };
+const uint32_t PROC_BUILD_SMP_EPSILON_R_F_LE[] = { 66, 67, 69, 71, 75, 93 };
+const uint32_t PROC_BUILD_SMP_EPSILON_W_LE[] = { 46, 47, 47, 48, 50, 55 };
+const uint32_t PROC_BUILD_SMP_EPSILON_W_F_LE[] = { 37, 38, 39, 40, 40, 46 };
const uint32_t PROC_BUILD_SMP_EPSILON_P_LE[] = { 925, 1605, 1605, 1605, 1605, 1605 };
+// Stradale epsilon (1 chip per-group)
+const uint32_t PROC_BUILD_SMP_EPSILON_R_T0_1S[] = { 6, 6, 7, 8, 9, 15 };
+const uint32_t PROC_BUILD_SMP_EPSILON_R_T1_1S[] = { 6, 6, 7, 8, 9, 15 };
+const uint32_t PROC_BUILD_SMP_EPSILON_R_T2_1S[] = { 63, 64, 65, 68, 72, 90 };
+const uint32_t PROC_BUILD_SMP_EPSILON_R_F_1S[] = { 66, 67, 69, 71, 75, 93 };
+const uint32_t PROC_BUILD_SMP_EPSILON_W_1S[] = { 14, 14, 15, 15, 16, 23 };
+const uint32_t PROC_BUILD_SMP_EPSILON_W_F_1S[] = { 37, 38, 39, 40, 40, 46 };
+const uint32_t PROC_BUILD_SMP_EPSILON_P_1S[] = { 925, 1605, 1605, 1605, 1605, 1605 };
+
//
// unit specific epsilon range constants
diff --git a/src/usr/hwpf/hwp/activate_powerbus/proc_build_smp/proc_build_smp_fbc_cd.H b/src/usr/hwpf/hwp/activate_powerbus/proc_build_smp/proc_build_smp_fbc_cd.H
index 940c05bb7..0b0eabf26 100644
--- a/src/usr/hwpf/hwp/activate_powerbus/proc_build_smp/proc_build_smp_fbc_cd.H
+++ b/src/usr/hwpf/hwp/activate_powerbus/proc_build_smp/proc_build_smp_fbc_cd.H
@@ -20,7 +20,7 @@
/* Origin: 30 */
/* */
/* IBM_PROLOG_END_TAG */
-// $Id: proc_build_smp_fbc_cd.H,v 1.8 2013/06/20 21:19:05 jmcgill Exp $
+// $Id: proc_build_smp_fbc_cd.H,v 1.9 2013/07/29 20:15:05 jmcgill Exp $
// $Source: /afs/awd/projects/eclipz/KnowledgeBase/.cvsroot/eclipz/chips/p8/working/procedures/ipl/fapi/proc_build_smp_fbc_cd.H,v $
//------------------------------------------------------------------------------
// *|
@@ -157,14 +157,14 @@ const uint32_t PB_SCONFIG_C6_RGP_LO_JUMP_END_BIT = 60;
const uint32_t PB_SCONFIG_C6_RGP_HI_JUMP_START_BIT = 61;
const uint32_t PB_SCONFIG_C6_RGP_HI_JUMP_END_BIT = 63;
-const uint32_t PB_SCONFIG_C6_GP_REQ_SAMPLE_TIME = 512;
-const uint32_t PB_SCONFIG_C6_SP_REQ_SAMPLE_TIME = 512;
-const uint32_t PB_SCONFIG_C6_GP_LO_JUMP = 0x3;
-const uint32_t PB_SCONFIG_C6_GP_HI_JUMP = 0x3;
-const uint32_t PB_SCONFIG_C6_SP_LO_JUMP = 0x3;
-const uint32_t PB_SCONFIG_C6_SP_HI_JUMP = 0x3;
-const uint32_t PB_SCONFIG_C6_RGP_LO_JUMP = 0x3;
-const uint32_t PB_SCONFIG_C6_RGP_HI_JUMP = 0x3;
+const uint32_t PB_SCONFIG_C6_GP_REQ_SAMPLE_TIME = 1024;
+const uint32_t PB_SCONFIG_C6_SP_REQ_SAMPLE_TIME = 1024;
+const uint32_t PB_SCONFIG_C6_GP_LO_JUMP = 0x2;
+const uint32_t PB_SCONFIG_C6_GP_HI_JUMP = 0x2;
+const uint32_t PB_SCONFIG_C6_SP_LO_JUMP = 0x2;
+const uint32_t PB_SCONFIG_C6_SP_HI_JUMP = 0x2;
+const uint32_t PB_SCONFIG_C6_RGP_LO_JUMP = 0x2;
+const uint32_t PB_SCONFIG_C6_RGP_HI_JUMP = 0x2;
//
diff --git a/src/usr/hwpf/hwp/bus_training/proc_fab_smp.H b/src/usr/hwpf/hwp/bus_training/proc_fab_smp.H
index 3b235161f..3434d9668 100644
--- a/src/usr/hwpf/hwp/bus_training/proc_fab_smp.H
+++ b/src/usr/hwpf/hwp/bus_training/proc_fab_smp.H
@@ -5,7 +5,7 @@
/* */
/* IBM CONFIDENTIAL */
/* */
-/* COPYRIGHT International Business Machines Corp. 2012 */
+/* COPYRIGHT International Business Machines Corp. 2012,2013 */
/* */
/* p1 */
/* */
@@ -20,7 +20,7 @@
/* Origin: 30 */
/* */
/* IBM_PROLOG_END_TAG */
-// $Id: proc_fab_smp.H,v 1.6 2012/09/24 05:00:15 jmcgill Exp $
+// $Id: proc_fab_smp.H,v 1.7 2013/07/30 20:51:28 jmcgill Exp $
// $Source: /afs/awd/projects/eclipz/KnowledgeBase/.cvsroot/eclipz/chips/p8/working/procedures/ipl/fapi/proc_fab_smp.H,v $
//------------------------------------------------------------------------------
// *|
@@ -77,8 +77,9 @@ enum proc_fab_smp_chip_id
// define set of supported epsilon table types
enum proc_fab_smp_eps_table_type
{
- PROC_FAB_SMP_EPSILON_TABLE_TYPE_LE = 0,
- PROC_FAB_SMP_EPSILON_TABLE_TYPE_HE = 1
+ PROC_FAB_SMP_EPSILON_TABLE_TYPE_LE = 1,
+ PROC_FAB_SMP_EPSILON_TABLE_TYPE_HE = 2,
+ PROC_FAB_SMP_EPSILON_TABLE_TYPE_1S = 3
};
// define set of supported broadcast/pump modes
diff --git a/src/usr/hwpf/hwp/dram_initialization/proc_setup_bars/proc_fab_smp.H b/src/usr/hwpf/hwp/dram_initialization/proc_setup_bars/proc_fab_smp.H
index 98d60048e..c519563b1 100644
--- a/src/usr/hwpf/hwp/dram_initialization/proc_setup_bars/proc_fab_smp.H
+++ b/src/usr/hwpf/hwp/dram_initialization/proc_setup_bars/proc_fab_smp.H
@@ -20,7 +20,7 @@
/* Origin: 30 */
/* */
/* IBM_PROLOG_END_TAG */
-// $Id: proc_fab_smp.H,v 1.6 2012/09/24 05:00:15 jmcgill Exp $
+// $Id: proc_fab_smp.H,v 1.7 2013/07/30 20:51:28 jmcgill Exp $
// $Source: /afs/awd/projects/eclipz/KnowledgeBase/.cvsroot/eclipz/chips/p8/working/procedures/ipl/fapi/proc_fab_smp.H,v $
//------------------------------------------------------------------------------
// *|
@@ -77,8 +77,9 @@ enum proc_fab_smp_chip_id
// define set of supported epsilon table types
enum proc_fab_smp_eps_table_type
{
- PROC_FAB_SMP_EPSILON_TABLE_TYPE_LE = 0,
- PROC_FAB_SMP_EPSILON_TABLE_TYPE_HE = 1
+ PROC_FAB_SMP_EPSILON_TABLE_TYPE_LE = 1,
+ PROC_FAB_SMP_EPSILON_TABLE_TYPE_HE = 2,
+ PROC_FAB_SMP_EPSILON_TABLE_TYPE_1S = 3
};
// define set of supported broadcast/pump modes
OpenPOWER on IntegriCloud