diff options
author | Thi Tran <thi@us.ibm.com> | 2014-05-05 15:32:53 -0500 |
---|---|---|
committer | A. Patrick Williams III <iawillia@us.ibm.com> | 2014-05-08 16:07:00 -0500 |
commit | 61e77208b99c4086e9da6b313b9b9e4d9d79348f (patch) | |
tree | eaa0a8fdb18aec8e285bb5e57a99189e3a5da556 /src/usr | |
parent | 679df937c8d61247dfff4c0cbe21d7a8af43e7b0 (diff) | |
download | talos-hostboot-61e77208b99c4086e9da6b313b9b9e4d9d79348f.tar.gz talos-hostboot-61e77208b99c4086e9da6b313b9b9e4d9d79348f.zip |
SW258328: FW820-FTC P8: Apparent hot/cold counter data corrupting memory outside
Change-Id: Ie5561d14998e735dc53d6a79fd72200fc4ae38ae
CQ:SW258328
Depends-On:I9276f5e2cabf4fa0cbad294d8d683cf53799f9b4
Reviewed-on: http://gfw160.aus.stglabs.ibm.com:8080/gerrit/10972
Reviewed-by: Thi N. Tran <thi@us.ibm.com>
Tested-by: Thi N. Tran <thi@us.ibm.com>
Reviewed-on: http://gfw160.aus.stglabs.ibm.com:8080/gerrit/10973
Tested-by: Jenkins Server
Reviewed-by: A. Patrick Williams III <iawillia@us.ibm.com>
Diffstat (limited to 'src/usr')
5 files changed, 46 insertions, 20 deletions
diff --git a/src/usr/hwpf/hwp/dram_initialization/proc_setup_bars/proc_setup_bars.H b/src/usr/hwpf/hwp/dram_initialization/proc_setup_bars/proc_setup_bars.H index fc991c6a5..de4c39be6 100644 --- a/src/usr/hwpf/hwp/dram_initialization/proc_setup_bars/proc_setup_bars.H +++ b/src/usr/hwpf/hwp/dram_initialization/proc_setup_bars/proc_setup_bars.H @@ -20,7 +20,7 @@ /* Origin: 30 */ /* */ /* IBM_PROLOG_END_TAG */ -// $Id: proc_setup_bars.H,v 1.15 2014/02/03 18:46:03 jmcgill Exp $ +// $Id: proc_setup_bars.H,v 1.16 2014/04/29 12:48:04 jmcgill Exp $ // $Source: /afs/awd/projects/eclipz/KnowledgeBase/.cvsroot/eclipz/chips/p8/working/procedures/ipl/fapi/proc_setup_bars.H,v $ //------------------------------------------------------------------------------ // *| @@ -968,7 +968,7 @@ const proc_setup_bars_bar_reg_def hca_nm_bar_reg_def = 0, 14, 31, - true, // enable: bit 63 + false, // enable: bit 63 (off for SW258328) 63, true, // size: bits 33:40 33, @@ -986,7 +986,7 @@ const proc_setup_bars_bar_reg_def hca_m_bar_reg_def = 0, 14, 32, - true, // enable: bit 63 + false, // enable: bit 63 (off for SW258328) 63, false, // size: other reg 0, diff --git a/src/usr/hwpf/hwp/nest_chiplets/makefile b/src/usr/hwpf/hwp/nest_chiplets/makefile index 03fbc7d64..841206a98 100644 --- a/src/usr/hwpf/hwp/nest_chiplets/makefile +++ b/src/usr/hwpf/hwp/nest_chiplets/makefile @@ -5,7 +5,7 @@ # # IBM CONFIDENTIAL # -# COPYRIGHT International Business Machines Corp. 2012,2013 +# COPYRIGHT International Business Machines Corp. 2012,2014 # # p1 # @@ -41,6 +41,7 @@ EXTRAINCDIR += ${ROOTPATH}/src/usr/hwpf/hwp/nest_chiplets/proc_chiplet_scominit EXTRAINCDIR += ${ROOTPATH}/src/usr/hwpf/hwp/nest_chiplets/proc_scomoverride_chiplets EXTRAINCDIR += ${ROOTPATH}/src/usr/hwpf/hwp/nest_chiplets/proc_a_x_pci_dmi_pll_setup EXTRAINCDIR += ${ROOTPATH}/src/usr/hwpf/hwp/nest_chiplets/proc_pcie_scominit +EXTRAINCDIR += ${ROOTPATH}/src/usr/hwpf/hwp/slave_sbe/proc_cen_ref_clk_enable ## NOTE: add new object files when you add a new HWP OBJS = nest_chiplets.o \ diff --git a/src/usr/hwpf/hwp/nest_chiplets/proc_chiplet_scominit/proc_chiplet_scominit.C b/src/usr/hwpf/hwp/nest_chiplets/proc_chiplet_scominit/proc_chiplet_scominit.C index 13515c50f..cf3f93f6d 100644 --- a/src/usr/hwpf/hwp/nest_chiplets/proc_chiplet_scominit/proc_chiplet_scominit.C +++ b/src/usr/hwpf/hwp/nest_chiplets/proc_chiplet_scominit/proc_chiplet_scominit.C @@ -5,7 +5,7 @@ /* */ /* IBM CONFIDENTIAL */ /* */ -/* COPYRIGHT International Business Machines Corp. 2012,2013 */ +/* COPYRIGHT International Business Machines Corp. 2012,2014 */ /* */ /* p1 */ /* */ @@ -20,7 +20,7 @@ /* Origin: 30 */ /* */ /* IBM_PROLOG_END_TAG */ -// $Id: proc_chiplet_scominit.C,v 1.22 2013/11/18 14:43:14 thi Exp $ +// $Id: proc_chiplet_scominit.C,v 1.23 2014/04/21 18:47:07 bgass Exp $ // $Source: /afs/awd/projects/eclipz/KnowledgeBase/.cvsroot/eclipz/chips/p8/working/procedures/ipl/fapi/proc_chiplet_scominit.C,v $ //------------------------------------------------------------------------------ // *! (C) Copyright International Business Machines Corp. 2012 @@ -43,6 +43,7 @@ #include <fapiHwpExecInitFile.H> #include <proc_chiplet_scominit.H> #include <p8_scom_addresses.H> +#include <proc_check_master_sbe_seeprom.H> extern "C" { @@ -69,13 +70,23 @@ fapi::ReturnCode proc_chiplet_scominit(const fapi::Target & i_target) uint8_t enable_xbus_resonant_clocking = 0x0; ecmdDataBufferBase data(64); + ecmdDataBufferBase cfam_data(32); ecmdDataBufferBase mask(64); + bool is_master = false; + // mark HWP entry FAPI_INF("proc_chiplet_scominit: Start"); do { + rc = proc_check_master_sbe_seeprom(i_target, is_master); + if (!rc.ok()) + { + FAPI_ERR("proc_cen_ref_clk_enable: Error from proc_check_master_sbe_seeprom"); + break; + } + // obtain target type to determine which initfile(s) to execute target_type = i_target.getType(); @@ -295,14 +306,27 @@ fapi::ReturnCode proc_chiplet_scominit(const fapi::Target & i_target) break; } - rc = fapiPutScom(i_target, + if (is_master) + { + rc = fapiPutScom(i_target, MBOX_FSIGP6_0x00050015, data); - if (!rc.ok()) - { - FAPI_ERR("proc_chiplet_scominit: fapiPutScom error (MBOX_FSIGP6_0x00050015) on %s", + if (!rc.ok()) + { + FAPI_ERR("proc_chiplet_scominit: fapiPutScom error (MBOX_FSIGP6_0x00050015) on %s", i_target.toEcmdString()); - break; + break; + } + } + else + { + cfam_data.insert(data, 0, 32, 0); + rc = fapiPutCfamRegister(i_target, CFAM_FSI_GP6_0x00002815, cfam_data); + if (rc) + { + FAPI_ERR("proc_cen_ref_clk_enable: fapiPutCfamRegister error (CFAM_FSI_GP8_0x00001017)"); + break; + } } } diff --git a/src/usr/hwpf/hwp/occ/occ_procedures/p8_pm_init.C b/src/usr/hwpf/hwp/occ/occ_procedures/p8_pm_init.C index 12c273e40..b6717975a 100644 --- a/src/usr/hwpf/hwp/occ/occ_procedures/p8_pm_init.C +++ b/src/usr/hwpf/hwp/occ/occ_procedures/p8_pm_init.C @@ -20,7 +20,7 @@ /* Origin: 30 */ /* */ /* IBM_PROLOG_END_TAG */ -// $Id: p8_pm_init.C,v 1.24 2014/02/17 02:57:00 stillgs Exp $ +// $Id: p8_pm_init.C,v 1.26 2014/05/02 12:25:37 stillgs Exp $ // $Source: /afs/awd/projects/eclipz/KnowledgeBase/.cvsroot/eclipz/chips/p8/working/procedures/ipl/fapi/p8_pm_init.C,v $ //------------------------------------------------------------------------------ // *! (C) Copyright International Business Machines Corp. 2011 @@ -140,18 +140,18 @@ p8_pm_init(const fapi::Target &i_target1 ,const fapi::Target &i_target2 , uint32 } int_mode = PM_CONFIG; - rc = pm_list(i_target1, i_target2, mode); + rc = pm_list(i_target1, i_target2, int_mode); if (rc) { - FAPI_ERR("ERROR: p8_pm_list detected failed "); + FAPI_ERR("ERROR: p8_pm_list PM_CONFIG detected failed "); break; } int_mode = PM_INIT; - rc = pm_list(i_target1, i_target2, mode); + rc = pm_list(i_target1, i_target2, int_mode); if (rc) { - FAPI_ERR("ERROR: p8_pm_list detected failed "); + FAPI_ERR("ERROR: p8_pm_list PM_INIT detected failed "); break; } @@ -458,7 +458,7 @@ pm_list(const Target& i_target, const Target& i_target2, uint32_t i_mode) { if (effective_mode == PM_RESET) { - rc = ocb_channel_reset(i_target, effective_mode); + rc = ocb_channel_reset(i_target2, effective_mode); if (rc) { FAPI_ERR("ERROR: p8_pm_init detected ocb_channel_reset error"); @@ -467,7 +467,7 @@ pm_list(const Target& i_target, const Target& i_target2, uint32_t i_mode) } else if (effective_mode == PM_INIT) { - rc = ocb_channel_init(i_target); + rc = ocb_channel_init(i_target2); if (rc) { FAPI_ERR("ERROR: p8_pm_init detected ocb_channel_init error"); diff --git a/src/usr/hwpf/hwp/pstates/pstates/p8_build_pstate_datablock.C b/src/usr/hwpf/hwp/pstates/pstates/p8_build_pstate_datablock.C index 405e253fb..6b785d14c 100755 --- a/src/usr/hwpf/hwp/pstates/pstates/p8_build_pstate_datablock.C +++ b/src/usr/hwpf/hwp/pstates/pstates/p8_build_pstate_datablock.C @@ -20,7 +20,7 @@ /* Origin: 30 */ /* */ /* IBM_PROLOG_END_TAG */ -// $Id: p8_build_pstate_datablock.C,v 1.34 2014/04/07 02:17:52 stillgs Exp $ +// $Id: p8_build_pstate_datablock.C,v 1.35 2014/04/09 22:00:46 stillgs Exp $ // $Source: /afs/awd/projects/eclipz/KnowledgeBase/.cvsroot/eclipz/chips/p8/working/procedures/ipl/fapi/p8_build_pstate_datablock.C,v $ //------------------------------------------------------------------------------ // *! (C) Copyright International Business Machines Corp. 2012 @@ -1078,6 +1078,7 @@ ReturnCode proc_boost_gpst (PstateSuperStructure *pss, uint8_t gpsi_max; const uint32_t MAXIMUM_BOOST_PERCENT_SUPPORTED = 20; + const uint32_t MAXIMUM_PSTATE_RANGE = 255; // maximum represented by uint8_t do { @@ -1124,7 +1125,7 @@ ReturnCode proc_boost_gpst (PstateSuperStructure *pss, boosted_pct, pstate0_frequency_khz, boosted_freq_khz); break; } - else if (pstate_diff > 255) { + else if (pstate_diff > MAXIMUM_PSTATE_RANGE) { FAPI_ERR("Percentage boost calculation overrun produced invalid Pstate Difference: %u", pstate_diff); const uint32_t& PSTATEDIFF = pstate_diff; const uint32_t& BOOSTEDFREQKHZ = boosted_freq_khz; |