summaryrefslogtreecommitdiffstats
path: root/src/usr/hwpf/hwp/dram_initialization
diff options
context:
space:
mode:
authorThi Tran <thi@us.ibm.com>2014-01-15 08:02:08 -0600
committerA. Patrick Williams III <iawillia@us.ibm.com>2014-01-15 13:39:24 -0600
commit6edbadc455c9d18b5b956f0204de5d9cba359da2 (patch)
tree9e868aaf8d24d37e4c4cde0cf2af7801c9854476 /src/usr/hwpf/hwp/dram_initialization
parent64e21a1e6626fae91eae03b560bfd2b2d97d248f (diff)
downloadtalos-hostboot-6edbadc455c9d18b5b956f0204de5d9cba359da2.tar.gz
talos-hostboot-6edbadc455c9d18b5b956f0204de5d9cba359da2.zip
INITPROC: Hostboot SW238407 Masked bits for PCINESTFIR
Change-Id: I08f9fd35929b25add2f9949d0e751f07be82aa42 CQ:SW238407 Reviewed-on: http://gfw160.aus.stglabs.ibm.com:8080/gerrit/8076 Tested-by: Jenkins Server Reviewed-by: Thi N. Tran <thi@us.ibm.com> Reviewed-by: A. Patrick Williams III <iawillia@us.ibm.com>
Diffstat (limited to 'src/usr/hwpf/hwp/dram_initialization')
-rw-r--r--src/usr/hwpf/hwp/dram_initialization/proc_pcie_config/proc_pcie_config.C72
-rw-r--r--src/usr/hwpf/hwp/dram_initialization/proc_pcie_config/proc_pcie_config.H9
2 files changed, 72 insertions, 9 deletions
diff --git a/src/usr/hwpf/hwp/dram_initialization/proc_pcie_config/proc_pcie_config.C b/src/usr/hwpf/hwp/dram_initialization/proc_pcie_config/proc_pcie_config.C
index 7b1cd0ac4..458e919ae 100644
--- a/src/usr/hwpf/hwp/dram_initialization/proc_pcie_config/proc_pcie_config.C
+++ b/src/usr/hwpf/hwp/dram_initialization/proc_pcie_config/proc_pcie_config.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_pcie_config.C,v 1.4 2013/01/20 19:28:14 jmcgill Exp $
+// $Id: proc_pcie_config.C,v 1.6 2014/01/14 19:25:02 jmcgill Exp $
// $Source: /afs/awd/projects/eclipz/KnowledgeBase/.cvsroot/eclipz/chips/p8/working/procedures/ipl/fapi/proc_pcie_config.C,v $
//------------------------------------------------------------------------------
// *! (C) Copyright International Business Machines Corp. 2012
@@ -102,8 +102,9 @@ fapi::ReturnCode proc_pcie_config_pbcq_fir(
const fapi::Target & i_target)
{
fapi::ReturnCode rc;
+ uint32_t rc_ecmd = 0;
- ecmdDataBufferBase zero_data(64);
+ ecmdDataBufferBase data(64);
// mark function entry
FAPI_INF("proc_pcie_config_pbcq_fir: Start");
@@ -112,9 +113,17 @@ fapi::ReturnCode proc_pcie_config_pbcq_fir(
for (size_t i = 0; i < PROC_PCIE_CONFIG_NUM_PHB; i++)
{
// clear FIR
+ rc_ecmd |= data.flushTo0();
+ if (rc_ecmd)
+ {
+ FAPI_ERR("proc_pcie_config_pbcq_fir: Error 0x%x setting up PCIE Nest FIR clear data buffer",
+ rc_ecmd);
+ rc.setEcmdError(rc_ecmd);
+ break;
+ }
rc = fapiPutScom(i_target,
PROC_PCIE_CONFIG_PCIE_NEST_FIR[i],
- zero_data);
+ data);
if (!rc.ok())
{
FAPI_ERR("proc_pcie_config_pbcq_fir: Error from fapiPutScom (PCIE%d_FIR_0x%08X)",
@@ -125,7 +134,7 @@ fapi::ReturnCode proc_pcie_config_pbcq_fir(
// clear FIR WOF
rc = fapiPutScom(i_target,
PROC_PCIE_CONFIG_PCIE_NEST_FIR_WOF[i],
- zero_data);
+ data);
if (!rc.ok())
{
FAPI_ERR("proc_pcie_config_pbcq_fir: Error from fapiPutScom (PCIE%d_FIR_WOF_0x%08X)",
@@ -133,10 +142,59 @@ fapi::ReturnCode proc_pcie_config_pbcq_fir(
break;
}
- // clear FIR mask
+ // set action0
+ rc_ecmd |= data.setDoubleWord(0, PROC_PCIE_CONFIG_PCIE_NEST_FIR_ACTION0_VAL);
+ if (rc_ecmd)
+ {
+ FAPI_ERR("proc_pcie_config_pbcq_fir: Error 0x%x setting up PCIE Nest FIR Action0 register data buffer",
+ rc_ecmd);
+ rc.setEcmdError(rc_ecmd);
+ break;
+ }
+
+ rc = fapiPutScom(i_target,
+ PROC_PCIE_CONFIG_PCIE_NEST_FIR_ACTION0[i],
+ data);
+ if (!rc.ok())
+ {
+ FAPI_ERR("proc_pcie_config_pbcq_fir: Error from fapiPutScom (PCIE%d_FIR_ACTION0_0x%08X)",
+ i, PROC_PCIE_CONFIG_PCIE_NEST_FIR_ACTION0[i]);
+ break;
+ }
+
+ // set action1
+ rc_ecmd |= data.setDoubleWord(0, PROC_PCIE_CONFIG_PCIE_NEST_FIR_ACTION1_VAL);
+ if (rc_ecmd)
+ {
+ FAPI_ERR("proc_pcie_config_pbcq_fir: Error 0x%x setting up PCIE Nest FIR Action1 register data buffer",
+ rc_ecmd);
+ rc.setEcmdError(rc_ecmd);
+ break;
+ }
+
+ rc = fapiPutScom(i_target,
+ PROC_PCIE_CONFIG_PCIE_NEST_FIR_ACTION1[i],
+ data);
+ if (!rc.ok())
+ {
+ FAPI_ERR("proc_pcie_config_pbcq_fir: Error from fapiPutScom (PCIE%d_FIR_ACTION1_0x%08X)",
+ i, PROC_PCIE_CONFIG_PCIE_NEST_FIR_ACTION1[i]);
+ break;
+ }
+
+ // set mask
+ rc_ecmd |= data.setDoubleWord(0, PROC_PCIE_CONFIG_PCIE_NEST_FIR_MASK_VAL);
+ if (rc_ecmd)
+ {
+ FAPI_ERR("proc_pcie_config_pbcq_fir: Error 0x%x setting up PCIE Nest FIR Mask register data buffer",
+ rc_ecmd);
+ rc.setEcmdError(rc_ecmd);
+ break;
+ }
+
rc = fapiPutScom(i_target,
PROC_PCIE_CONFIG_PCIE_NEST_FIR_MASK[i],
- zero_data);
+ data);
if (!rc.ok())
{
FAPI_ERR("proc_pcie_config_pbcq_fir: Error from fapiPutScom (PCIE%d_FIR_MASK_0x%08X)",
diff --git a/src/usr/hwpf/hwp/dram_initialization/proc_pcie_config/proc_pcie_config.H b/src/usr/hwpf/hwp/dram_initialization/proc_pcie_config/proc_pcie_config.H
index c2920cb15..5b11073ca 100644
--- a/src/usr/hwpf/hwp/dram_initialization/proc_pcie_config/proc_pcie_config.H
+++ b/src/usr/hwpf/hwp/dram_initialization/proc_pcie_config/proc_pcie_config.H
@@ -5,7 +5,7 @@
/* */
/* IBM CONFIDENTIAL */
/* */
-/* COPYRIGHT International Business Machines Corp. 2012 */
+/* COPYRIGHT International Business Machines Corp. 2012,2014 */
/* */
/* p1 */
/* */
@@ -20,7 +20,7 @@
/* Origin: 30 */
/* */
/* IBM_PROLOG_END_TAG */
-// $Id: proc_pcie_config.H,v 1.1 2012/11/05 21:52:37 jmcgill Exp $
+// $Id: proc_pcie_config.H,v 1.2 2014/01/13 18:21:59 jmcgill Exp $
// $Source: /afs/awd/projects/eclipz/KnowledgeBase/.cvsroot/eclipz/chips/p8/working/procedures/ipl/fapi/proc_pcie_config.H,v $
//------------------------------------------------------------------------------
// *! (C) Copyright International Business Machines Corp. 2012
@@ -92,6 +92,11 @@ const uint32_t PROC_PCIE_CONFIG_PCIE_NEST_FIR_MASK[PROC_PCIE_CONFIG_NUM_PHB] =
PCIE2_FIR_MASK_0x02012803
};
+const uint64_t PROC_PCIE_CONFIG_PCIE_NEST_FIR_ACTION0_VAL = 0x5B8F819000000000ULL;
+const uint64_t PROC_PCIE_CONFIG_PCIE_NEST_FIR_ACTION1_VAL = 0x7F8F819000000000ULL;
+const uint64_t PROC_PCIE_CONFIG_PCIE_NEST_FIR_MASK_VAL = 0x0030006E00000000ULL;
+
+
//------------------------------------------------------------------------------
// Structure definitions
//------------------------------------------------------------------------------
OpenPOWER on IntegriCloud