summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDan Crowell <dcrowell@us.ibm.com>2014-04-09 16:10:17 -0500
committerA. Patrick Williams III <iawillia@us.ibm.com>2014-04-11 12:34:39 -0500
commit2779d6434bc3cfd948a30c6018e518070edf44f5 (patch)
treefad1b262eddc5c468c51c7ee9af6bed9841f82de
parent01f5edc515d9505ce60c11a0522a84b1b1d6db02 (diff)
downloadtalos-hostboot-2779d6434bc3cfd948a30c6018e518070edf44f5.tar.gz
talos-hostboot-2779d6434bc3cfd948a30c6018e518070edf44f5.zip
SW256491: INITPROC: Hostboot - p8_pba_init.C v1.19
CQ:SW256491 Change-Id: I65848ee7d6dd54b6c2a7bbc96becb64e5c657238 Reviewed-on: http://gfw160.aus.stglabs.ibm.com:8080/gerrit/10320 Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com> Tested-by: Daniel M. Crowell <dcrowell@us.ibm.com> Reviewed-on: http://gfw160.aus.stglabs.ibm.com:8080/gerrit/10321 Tested-by: Jenkins Server Reviewed-by: A. Patrick Williams III <iawillia@us.ibm.com>
-rw-r--r--src/usr/hwpf/hwp/occ/occ_procedures/p8_pba_init.C53
1 files changed, 45 insertions, 8 deletions
diff --git a/src/usr/hwpf/hwp/occ/occ_procedures/p8_pba_init.C b/src/usr/hwpf/hwp/occ/occ_procedures/p8_pba_init.C
index 38bf33c6b..24602455a 100644
--- a/src/usr/hwpf/hwp/occ/occ_procedures/p8_pba_init.C
+++ b/src/usr/hwpf/hwp/occ/occ_procedures/p8_pba_init.C
@@ -20,9 +20,8 @@
/* Origin: 30 */
/* */
/* IBM_PROLOG_END_TAG */
-
-// $Id: p8_pba_init.C,v 1.18 2014/03/17 23:16:22 stillgs Exp $
-// $Source: /archive/shadow/ekb/.cvsroot/eclipz/chips/p8/working/procedures/ipl/fapi/p8_pba_init.C,v $
+// $Id: p8_pba_init.C,v 1.19 2014/04/08 05:45:40 stillgs Exp $
+// $Source: /afs/awd/projects/eclipz/KnowledgeBase/.cvsroot/eclipz/chips/p8/working/procedures/ipl/fapi/p8_pba_init.C,v $
//------------------------------------------------------------------------------
// *! (C) Copyright International Business Machines Corp. 2011
// *! All Rights Reserved -- Property of IBM
@@ -466,7 +465,7 @@ pba_slave_setup_init(const Target& i_target)
ec_allows_pba_prefetch_enable);
if(rc)
{
- FAPI_ERR("Error querying Chip EC feature: "
+ FAPI_ERR("Error querying Chip EC feature: "
"ATTR_PROC_EC_PBA_PREFETCH_ENABLE");
break;
}
@@ -691,7 +690,7 @@ pba_slave_reset(const Target& i_target)
ec_has_pba_slvrest_bug);
if(rc)
{
- FAPI_ERR("Error querying Chip EC feature: "
+ FAPI_ERR("Error querying Chip EC feature: "
"ATTR_CHIP_EC_FEATURE_HW_BUG_PBASLVRESET");
break;
}
@@ -699,7 +698,7 @@ pba_slave_reset(const Target& i_target)
rc = FAPI_ATTR_GET(ATTR_IS_MPIPL, NULL, attr_mpipl);
if(rc)
{
- FAPI_ERR("Error querying attribute ATTR_IS_MPIPL");
+ FAPI_ERR("Error querying attribute ATTR_IS_MPIPL");
break;
}
@@ -933,7 +932,7 @@ pba_bc_stop(const Target& i_target)
const fapi::Target & CHIP = i_target;
const uint32_t & POLLCOUNT = MAX_PBA_BC_STOP_POLLS;
const uint32_t & POLLVALUE = MAX_PBA_BC_STOP_POLLS;
- FAPI_SET_HWP_ERROR(rc, RC_PROCPM_PBA_BCDE_STOP_TIMEOUT);
+ FAPI_SET_HWP_ERROR(rc, RC_PROCPM_PBA_BCDE_STOP_TIMEOUT);
break;
}
if (!bcue_stop_complete)
@@ -942,10 +941,47 @@ pba_bc_stop(const Target& i_target)
const fapi::Target & CHIP = i_target;
const uint32_t & POLLCOUNT = MAX_PBA_BC_STOP_POLLS;
const uint32_t & POLLVALUE = MAX_PBA_BC_STOP_POLLS;
- FAPI_SET_HWP_ERROR(rc, RC_PROCPM_PBA_BCUE_STOP_TIMEOUT);
+ FAPI_SET_HWP_ERROR(rc, RC_PROCPM_PBA_BCUE_STOP_TIMEOUT);
break;
}
+ FAPI_INF("Clear the BCDE and BCUE stop bits via control register clearing");
+
+ e_rc |= data.flushTo0();
+ if (e_rc)
+ {
+ rc.setEcmdError(e_rc);
+ break;
+ }
+
+ address = PBA_BCDE_CTL_0x00064010;
+ FAPI_INF("\tClear BCDE stop bit addr=0x%08llX, value=0x%16llX, Target = %s",
+ address,
+ data.getDoubleWord(0),
+ i_target.toEcmdString());
+ rc = fapiPutScom(i_target, address, data);
+ if (!rc.ok())
+ {
+ FAPI_ERR("fapiPutScom(addr=0x%08llX) failed, Target = %s",
+ address,
+ i_target.toEcmdString());
+ break;
+ }
+
+ address = PBA_BCUE_CTL_0x00064015;
+ FAPI_INF("\tClear BCUE stop bit addr=0x%08llX, value=0x%16llX, Target = %s",
+ address,
+ data.getDoubleWord(0),
+ i_target.toEcmdString());
+ rc = fapiPutScom(i_target, address, data);
+ if (!rc.ok())
+ {
+ FAPI_ERR("fapiPutScom(addr=0x%08llX) failed, Target = %s",
+ address,
+ i_target.toEcmdString());
+ break;
+ }
+
} while(0);
return rc;
@@ -955,3 +991,4 @@ pba_bc_stop(const Target& i_target)
} //end extern C
+
OpenPOWER on IntegriCloud