diff options
Diffstat (limited to 'src/import/chips/p9')
-rw-r--r-- | src/import/chips/p9/procedures/hwp/pm/p9_pm_pstate_gpe_init.C | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/src/import/chips/p9/procedures/hwp/pm/p9_pm_pstate_gpe_init.C b/src/import/chips/p9/procedures/hwp/pm/p9_pm_pstate_gpe_init.C index d1c2342ea..59904d7c3 100644 --- a/src/import/chips/p9/procedures/hwp/pm/p9_pm_pstate_gpe_init.C +++ b/src/import/chips/p9/procedures/hwp/pm/p9_pm_pstate_gpe_init.C @@ -42,6 +42,7 @@ #include <p9_ppe_utils.H> #include <p9_quad_scom_addresses.H> #include <p9_quad_scom_addresses_fld.H> +#include <p9n2_misc_scom_addresses.H> #include <vector> // ----------------------------------------------------------------------------- @@ -303,6 +304,22 @@ fapi2::ReturnCode pstate_gpe_reset( FAPI_IMP(">> pstate_gpe_reset..."); + + //Disable CME monitoring of PGPE heart beat loss before halting PGPE + auto l_eqChiplets = i_target.getChildren<fapi2::TARGET_TYPE_EQ> + (fapi2::TARGET_STATE_FUNCTIONAL); + + // For each functional EQ chiplet + for (auto l_quad_chplt : l_eqChiplets) + { + l_data64.flush<0>() + .setBit<EQ_QPPM_QPMMR_ENABLE_PCB_INTR_UPON_HEARTBEAT_LOSS>(); + + FAPI_TRY(fapi2::putScom(l_quad_chplt, EQ_QPPM_QPMMR_CLEAR, l_data64), + "ERROR: Failed to setup Quad PPM register"); + + } + // Program XCR to HALT PGPE FAPI_INF(" Send HALT command via XCR..."); l_data64.flush<0>().insertFromRight(p9hcd::HALT, 1, 3); |