summaryrefslogtreecommitdiffstats
path: root/import
diff options
context:
space:
mode:
authorGreg Still <stillgs@us.ibm.com>2016-03-16 10:19:55 -0500
committerSachin Gupta <sgupta2m@in.ibm.com>2016-07-01 07:33:39 -0400
commit2a619ca8c3423edafb4cfa7ab91b8e82d3847899 (patch)
tree7df8e6a5198d906f66a6cf29113fcd62c999f63a /import
parent0684c192c5a9c57aa91952abaa9eeda5ab2b654d (diff)
downloadtalos-sbe-2a619ca8c3423edafb4cfa7ab91b8e82d3847899.tar.gz
talos-sbe-2a619ca8c3423edafb4cfa7ab91b8e82d3847899.zip
p9_pm_ocb_init - fix OCBCSRn reset value to put OCB channels in circular mode
- Add bit 4 setting to ensure circular mode Change-Id: I813ac36f3fa40536192a9c6cf23a2f902ee7d143 RTC: 149680 Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/22113 Tested-by: Jenkins Server Tested-by: PPE CI Reviewed-by: Sangeetha T S <sangeet2@in.ibm.com> Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com> Reviewed-by: Jennifer A. Stofer <stofer@us.ibm.com> Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/22115 Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com> Reviewed-by: Sachin Gupta <sgupta2m@in.ibm.com>
Diffstat (limited to 'import')
-rw-r--r--import/chips/p9/procedures/hwp/pm/p9_pm_ocb_init.C16
1 files changed, 11 insertions, 5 deletions
diff --git a/import/chips/p9/procedures/hwp/pm/p9_pm_ocb_init.C b/import/chips/p9/procedures/hwp/pm/p9_pm_ocb_init.C
index 07e57e4a..d8990ac9 100644
--- a/import/chips/p9/procedures/hwp/pm/p9_pm_ocb_init.C
+++ b/import/chips/p9/procedures/hwp/pm/p9_pm_ocb_init.C
@@ -479,7 +479,7 @@ fapi2::ReturnCode pm_ocb_reset(
uint8_t i = 0;
// -------------------------------------------------------------------------
- // Loop over PIB Registers in Channels 0-3
+ // Loop over PIB Registers
// -------------------------------------------------------------------------
for (i = 0; i <= MAX_OCB_CHANNELS; i++)
{
@@ -490,11 +490,17 @@ fapi2::ReturnCode pm_ocb_reset(
"Channel %d BAR Register", i);
// Clear out OCB Channel control and status registers
- // - set bit 5 (circular mode) using OR
- l_data64.setBit<5>();
+ l_data64.flush<1>();
+ FAPI_TRY(fapi2::putScom(i_target, OCBCSRn_CLEAR[i], l_data64),
+ "**** ERROR : Unexpected error encountered in write to OCB "
+ "Channel %d Control & Status Register Clear", i);
+
+ // Put channels in Circular mode
+ // - set bits 4,5 (circular mode) using OR
+ l_data64.flush<0>().setBit<4>().setBit<5>();
FAPI_TRY(fapi2::putScom(i_target, OCBCSRn_OR[i], l_data64),
"**** ERROR : Unexpected error encountered in write to OCB "
- "Channel %d Control & Status OR Register", i);
+ "Channel %d Control & Status OR Register Set", i);
// Clear out OCB Channel Error Status registers
FAPI_TRY(fapi2::putScom(i_target, OCBESRn[i], 0),
@@ -503,7 +509,7 @@ fapi2::ReturnCode pm_ocb_reset(
}
// -------------------------------------------------------------------------
- // Loop over OCI Registers in Channels 0-3
+ // Loop over OCI Registers
// -------------------------------------------------------------------------
for (i = 0; i <= MAX_OCB_CHANNELS; i++)
{
OpenPOWER on IntegriCloud