Skip to content

Commit

Permalink
Use query_cache_access_state to verify EQ scomable in corequad_init
Browse files Browse the repository at this point in the history
In corequad_init we cannot rely on hwas states because targets are
not always scommable even though they are functional. This adds
a check to ensure a ex is scommable before we attempt to scom it

CQ: SW388687
Change-Id: Ic4ea7a71231a0cbc13e76fa085cbd3b1a47348c0
Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/40560
Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com>
Tested-by: Hostboot CI <hostboot-ci+hostboot@us.ibm.com>
Reviewed-by: Gregory S. Still <stillgs@us.ibm.com>
Reviewed-by: AMIT KUMAR <akumar3@us.ibm.com>
Reviewed-by: RANGANATHPRASAD G. BRAHMASAMUDRA <prasadbgr@in.ibm.com>
Reviewed-by: Jennifer A. Stofer <stofer@us.ibm.com>
Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/40565
Tested-by: Jenkins OP Build CI <op-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
crgeddes committed May 22, 2017
1 parent 5156dbe commit 8f6ec7a
Showing 1 changed file with 21 additions and 0 deletions.
21 changes: 21 additions & 0 deletions src/import/chips/p9/procedures/hwp/pm/p9_pm_corequad_init.C
Expand Up @@ -74,6 +74,7 @@
// Includes
// -----------------------------------------------------------------------------
#include <p9_pm_corequad_init.H>
#include <p9_query_cache_access_state.H>

// -----------------------------------------------------------------------------
// Constant definitions
Expand Down Expand Up @@ -339,11 +340,16 @@ fapi2::ReturnCode pm_corequad_reset(
FAPI_IMP("Entering pm_corequad_reset...");

fapi2::buffer<uint64_t> l_data64;
fapi2::ReturnCode l_rc;
uint8_t l_chpltNumber = 0;
uint64_t l_address = 0;
uint32_t l_errMask = 0;
uint32_t l_firMask = 0;
uint32_t l_pollCount = 20;
bool l_l2_is_scanable = false;
bool l_l3_is_scanable = false;
bool l_l2_is_scomable = false;
bool l_l3_is_scomable = false;

auto l_eqChiplets = i_target.getChildren<fapi2::TARGET_TYPE_EQ>
(fapi2::TARGET_STATE_FUNCTIONAL);
Expand Down Expand Up @@ -392,6 +398,21 @@ fapi2::ReturnCode pm_corequad_reset(
FAPI_TRY(fapi2::putScom(l_quad_chplt, l_address, l_data64),
"ERROR: Failed to clear QUAD PPM ERROR");

//Cannot always rely on HWAS state, during MPIPL attr are not
//accurate, must use query_cache_access state prior to scomming
//ex targets
FAPI_EXEC_HWP(l_rc, p9_query_cache_access_state, l_quad_chplt,
l_l2_is_scomable, l_l2_is_scanable,
l_l3_is_scomable, l_l3_is_scanable);
FAPI_TRY(l_rc, "ERROR: failed to query cache access state for EQ %d",
l_chpltNumber);

if(!l_l2_is_scomable)
{
//Skip all of the scoms for this EQ if its not scommable
continue;
}

auto l_exChiplets = l_quad_chplt.getChildren<fapi2::TARGET_TYPE_EX>
(fapi2::TARGET_STATE_FUNCTIONAL);

Expand Down

0 comments on commit 8f6ec7a

Please sign in to comment.