diff options
author | Greg Still <stillgs@us.ibm.com> | 2016-03-16 10:19:55 -0500 |
---|---|---|
committer | Sachin Gupta <sgupta2m@in.ibm.com> | 2016-07-01 07:33:39 -0400 |
commit | 2a619ca8c3423edafb4cfa7ab91b8e82d3847899 (patch) | |
tree | 7df8e6a5198d906f66a6cf29113fcd62c999f63a /import | |
parent | 0684c192c5a9c57aa91952abaa9eeda5ab2b654d (diff) | |
download | talos-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.C | 16 |
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++) { |