diff options
author | Thi Tran <thi@us.ibm.com> | 2013-08-29 10:43:07 -0500 |
---|---|---|
committer | A. Patrick Williams III <iawillia@us.ibm.com> | 2013-09-10 11:35:39 -0500 |
commit | a6a8c9aac3ba72f054aeabc0eb63591922684242 (patch) | |
tree | 3d2bafa4cce23852e66fcc56a35c9e23b9825d55 | |
parent | bbcb8da395800c41bb912932fb915ce9bd165acf (diff) | |
download | talos-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>
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 |