Skip to content

Commit

Permalink
p9_throttle_sync -- clear refresh sync type after issuing IPL sync
Browse files Browse the repository at this point in the history
Refresh sync is desired at IPL time, but not needed at runtime as
OCC programs throttles.  This change simply clears the refresh
sync type after issuing the IPL sync.

Change-Id: I7a4ac00891a179940a62d9d7eb7450734364cd5d
CQ: SW432160
Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/59971
Reviewed-by: Thi N. Tran <thi@us.ibm.com>
Reviewed-by: Michael D. Pardeik <pardeik@us.ibm.com>
Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com>
Reviewed-by: SHELTON LEUNG <sleung@us.ibm.com>
Tested-by: Hostboot CI <hostboot-ci+hostboot@us.ibm.com>
Reviewed-by: Jennifer A. Stofer <stofer@us.ibm.com>
Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/59993
Tested-by: Jenkins OP Build CI <op-jenkins+hostboot@us.ibm.com>
Tested-by: Jenkins OP HW <op-hw-jenkins+hostboot@us.ibm.com>
Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com>
Reviewed-by: Christian R. Geddes <crgeddes@us.ibm.com>
  • Loading branch information
jjmcgill authored and crgeddes committed Jun 22, 2018
1 parent 4696c50 commit 3683998
Showing 1 changed file with 17 additions and 3 deletions.
20 changes: 17 additions & 3 deletions src/import/chips/p9/procedures/hwp/nest/p9_throttle_sync.C
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
/* */
/* OpenPOWER HostBoot Project */
/* */
/* Contributors Listed Below - COPYRIGHT 2015,2017 */
/* Contributors Listed Below - COPYRIGHT 2015,2018 */
/* [+] International Business Machines Corp. */
/* */
/* */
Expand Down Expand Up @@ -49,7 +49,8 @@
///----------------------------------------------------------------------------
/// Constant definitions
///----------------------------------------------------------------------------
const uint8_t SUPER_SYNC_BIT = 14;
const uint8_t MBA_REFRESH_SYNC_BIT = 8;
const uint8_t SUPER_SYNC_BIT = 14;
const uint8_t MAX_MC_SIDES_PER_PROC = 2; // MC01, MC23
const uint8_t MAX_MC_PER_PROC = 4; // MC0, MC1, MC2, MC3
const uint8_t MAX_MC_PER_SIDE = 2; // MC0, MC1 or MC2, MC3
Expand Down Expand Up @@ -272,7 +273,7 @@ fapi2::ReturnCode progMaster(const fapi2::Target<T>& i_mcTarget)
// SUPER_SYNC_BIT == bit 14, supersync for Nimbus, reserved for cumulus.
// Clear it in both cases.
l_scomData.setBit<MCS_MCSYNC_SYNC_TYPE,
MCS_MCSYNC_SYNC_TYPE_LEN>().clearBit(SUPER_SYNC_BIT);
MCS_MCSYNC_SYNC_TYPE_LEN>().clearBit<SUPER_SYNC_BIT>();
l_scomMask.setBit<MCS_MCSYNC_SYNC_TYPE,
MCS_MCSYNC_SYNC_TYPE_LEN>();

Expand All @@ -294,6 +295,19 @@ fapi2::ReturnCode progMaster(const fapi2::Target<T>& i_mcTarget)

// Note: No need to read Sync replay count and retry in P9.

// --------------------------------------------------------------
// 4. Clear refresh sync bit
// --------------------------------------------------------------
l_scomData.flush<0>();
l_scomMask.flush<0>().setBit<MBA_REFRESH_SYNC_BIT>();

FAPI_INF("Writing MCS_MCSYNC reg 0x%.16llX: Mask 0x%.16llX , Data 0x%.16llX",
MCS_MCSYNC, l_scomMask, l_scomData);
FAPI_TRY(fapi2::putScomUnderMask(i_mcTarget, MCS_MCSYNC,
l_scomData, l_scomMask),
"putScomUnderMask() returns an error (Sync), MCS_MCSYNC reg 0x%.16llX",
MCS_MCSYNC);

fapi_try_exit:
FAPI_DBG("Exiting progMaster");
return fapi2::current_err;
Expand Down

0 comments on commit 3683998

Please sign in to comment.