From 2005f2b4c6d477e5dafa16c447c8d7f43ae16c19 Mon Sep 17 00:00:00 2001 From: Dean Sanner Date: Mon, 23 Sep 2013 12:46:48 -0500 Subject: Dynamically determine PLL ATTR based on freq and chip IDEC Change-Id: I733760ecbc995d429de862fe56ad44fcc3aae228 RTC: 69918 Reviewed-on: http://gfw160.austin.ibm.com:8080/gerrit/6305 Tested-by: Jenkins Server Reviewed-by: A. Patrick Williams III --- .../proc_setup_bars/mss_setup_bars.C | 82 +++++++++++++++++++++- 1 file changed, 81 insertions(+), 1 deletion(-) (limited to 'src/usr/hwpf/hwp/dram_initialization/proc_setup_bars') diff --git a/src/usr/hwpf/hwp/dram_initialization/proc_setup_bars/mss_setup_bars.C b/src/usr/hwpf/hwp/dram_initialization/proc_setup_bars/mss_setup_bars.C index ca090dde1..b474bab55 100644 --- a/src/usr/hwpf/hwp/dram_initialization/proc_setup_bars/mss_setup_bars.C +++ b/src/usr/hwpf/hwp/dram_initialization/proc_setup_bars/mss_setup_bars.C @@ -20,7 +20,7 @@ /* Origin: 30 */ /* */ /* IBM_PROLOG_END_TAG */ -// $Id: mss_setup_bars.C,v 1.32 2013/08/16 17:23:27 gpaulraj Exp $ +// $Id: mss_setup_bars.C,v 1.33 2013/09/20 14:07:42 jmcgill Exp $ //------------------------------------------------------------------------------ // *! (C) Copyright International Business Machines Corp. 2012 // *! All Rights Reserved -- Property of IBM @@ -100,8 +100,35 @@ fapi::ReturnCode mss_setup_bars_init_nm_bars( ecmdDataBufferBase MCFGP(64); ecmdDataBufferBase MCFGPA(64); + // Defect HW259884 (AddNote by retter) P8 Lab Brazos: Mirror BAR Scom Parity Error - workaround + ecmdDataBufferBase MCIFIR(64); + ecmdDataBufferBase MCIFIRMASK(64); + ecmdDataBufferBase MCSMODE4(64); + do { + rc = fapiGetScom(i_mcs_target, MCS_MCIFIRMASK_0x02011843, MCIFIRMASK); + if (!rc.ok()) + { + FAPI_ERR("mss_setup_bars_init_nm_bars: Error from fapiGetScom (MCS_MCIFIRMASK_0x02011843"); + break; + } + // Mask MCIFIR bit 25 + rc_ecmd |= MCIFIRMASK.setBit(25); + if (rc_ecmd) + { + FAPI_ERR("mss_setup_bars_init_nm_bars: Error 0x%X setting up MCIFIRMASK data buffer", + rc_ecmd); + rc.setEcmdError(rc_ecmd); + break; + } + rc = fapiPutScom(i_mcs_target, MCS_MCIFIRMASK_0x02011843, MCIFIRMASK); + if (!rc.ok()) + { + FAPI_ERR("mss_setup_bars_init_nm_bars: Error from fapiPutScom (MCS_MCIFIRMASK_0x02011843"); + break; + } + // establish base content for MCFGP register rc_ecmd |= MCFGP.setBit(MCFGP_ENABLE_RCMD0_BIT); rc_ecmd |= MCFGP.setBit(MCFGP_ENABLE_RCMD1_BIT); @@ -211,6 +238,59 @@ fapi::ReturnCode mss_setup_bars_init_nm_bars( FAPI_ERR("mss_setup_bars_init_nm_bars: Error from fapiPutScom (MCS_MCFGPA_0x02011814)"); break; } + + rc = fapiGetScom(i_mcs_target, MCS_MCSMODE4_0x0201181A, MCSMODE4); + if (!rc.ok()) + { + FAPI_ERR("mss_setup_bars_init_nm_bars: Error from fapiGetScom (MCS_MCSMODE4_0x0201181A"); + break; + } + // set MCSMODE4 bit 0 + rc_ecmd |= MCSMODE4.setBit(0); + rc = fapiPutScom(i_mcs_target, MCS_MCSMODE4_0x0201181A, MCSMODE4); + if (!rc.ok()) + { + FAPI_ERR("mss_setup_bars_init_nm_bars: Error from fapiPutScom (MCS_MCSMODE4_0x0201181A"); + break; + } + // Clear MCSMODE4 bit 0 + rc_ecmd |= MCSMODE4.clearBit(0); + rc = fapiPutScom(i_mcs_target, MCS_MCSMODE4_0x0201181A, MCSMODE4); + if (!rc.ok()) + { + FAPI_ERR("mss_setup_bars_init_nm_bars: Error from fapiPutScom (MCS_MCSMODE4_0x0201181A"); + break; + } + + rc = fapiGetScom(i_mcs_target, MCS_MCIFIR_0x02011840, MCIFIR); + if (!rc.ok()) + { + FAPI_ERR("mss_setup_bars_init_nm_bars: Error from fapiGetScom (MCS_MCIFIR_0x02011840"); + break; + } + // Reset MCIFIR bit 25 + rc_ecmd |= MCIFIR.clearBit(25); + rc = fapiPutScom(i_mcs_target, MCS_MCIFIR_0x02011840, MCIFIR); + if (!rc.ok()) + { + FAPI_ERR("mss_setup_bars_init_nm_bars: Error from fapiPutScom (MCS_MCIFIR_0x02011840"); + break; + } + + rc = fapiGetScom(i_mcs_target, MCS_MCIFIRMASK_0x02011843, MCIFIRMASK); + if (!rc.ok()) + { + FAPI_ERR("mss_setup_bars_init_nm_bars: Error from fapiGetScom (MCS_MCIFIRMASK_0x02011843"); + break; + } + // Unmask MCIFIR bit 25 + rc_ecmd |= MCIFIRMASK.clearBit(25); + rc = fapiPutScom(i_mcs_target, MCS_MCIFIRMASK_0x02011843, MCIFIRMASK); + if (!rc.ok()) + { + FAPI_ERR("mss_setup_bars_init_nm_bars: Error from fapiPutScom (MCS_MCIFIRMASK_0x02011843"); + break; + } } while(0); return rc; -- cgit v1.2.1