Skip to content

Commit

Permalink
Revert "Use query_cache_state hwp before scoming ex's in cme_firinit"
Browse files Browse the repository at this point in the history
This reverts commit 12e8b2c5e93434b7a277155f2717e7e3b20ec107.

Change-Id: I6f8ad94251de54ced2a6149ab8f5d0986d657c2d
Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/40884
Reviewed-by: William G. Hoffa <wghoffa@us.ibm.com>
Reviewed-by: Martin Gloff <mgloff@us.ibm.com>
Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com>
Reviewed-by: Thi N. Tran <thi@us.ibm.com>
Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/40913
Reviewed-by: Hostboot Team <hostboot@us.ibm.com>
Tested-by: Jenkins OP Build CI <op-jenkins+hostboot@us.ibm.com>
Reviewed-by: Christian R. Geddes <crgeddes@us.ibm.com>
  • Loading branch information
crgeddes committed May 24, 2017
1 parent 60c97af commit 718ee2a
Showing 1 changed file with 15 additions and 50 deletions.
65 changes: 15 additions & 50 deletions src/import/chips/p9/procedures/hwp/pm/p9_pm_cme_firinit.C
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,6 @@
// Includes
// ----------------------------------------------------------------------
#include <p9_pm_cme_firinit.H>
#include <p9_query_cache_access_state.H>

// ----------------------------------------------------------------------
// Constant Definitions
Expand Down Expand Up @@ -224,68 +223,34 @@ fapi2::ReturnCode pm_cme_fir_reset(
const fapi2::Target<fapi2::TARGET_TYPE_PROC_CHIP>& i_target)
{
FAPI_IMP("pm_cme_fir_reset start");

uint8_t l_firinit_done_flag;
auto l_eqChiplets = i_target.getChildren<fapi2::TARGET_TYPE_EQ>
auto l_exChiplets = i_target.getChildren<fapi2::TARGET_TYPE_EX>
(fapi2::TARGET_STATE_FUNCTIONAL);

FAPI_TRY(FAPI_ATTR_GET(fapi2::ATTR_PM_FIRINIT_DONE_ONCE_FLAG,
i_target, l_firinit_done_flag),
"ERROR: Failed to fetch the entry status of FIRINIT");

for (auto l_eq_chplt : l_eqChiplets)
for (auto l_ex_chplt : l_exChiplets)
{
//We cannot rely on the HWAS state because during an MPIPL
//the cores get stopped and the SP doesnt know until an
//attr sync occurs with the platform. We must use the
//query_cache_state to safely determine if we can scom
//the ex targets
fapi2::ReturnCode l_rc;
bool l_l2_is_scanable = false;
bool l_l3_is_scanable = false;
bool l_l2_is_scomable = false;
bool l_l3_is_scomable = false;
uint8_t l_chip_unit_pos;

FAPI_TRY(FAPI_ATTR_GET(fapi2::ATTR_CHIP_UNIT_POS,
l_eq_chplt, l_chip_unit_pos),
"ERROR: Failed to get the chip unit pos attribute from the eq");

FAPI_EXEC_HWP(l_rc, p9_query_cache_access_state, l_eq_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_chip_unit_pos);

//If this cache isnt scommable continue to the next EQ
if(!l_l2_is_scomable)
{
continue;
}

auto l_exChiplets = l_eq_chplt.getChildren<fapi2::TARGET_TYPE_EX>
(fapi2::TARGET_STATE_FUNCTIONAL);
p9pmFIR::PMFir <p9pmFIR::FIRTYPE_CME_LFIR> l_cmeFir(l_ex_chplt);

for(auto l_ex_chplt : l_exChiplets)
if (l_firinit_done_flag == 1)
{
p9pmFIR::PMFir <p9pmFIR::FIRTYPE_CME_LFIR> l_cmeFir(l_ex_chplt);

if (l_firinit_done_flag == 1)
{
FAPI_TRY(l_cmeFir.get(p9pmFIR::REG_FIRMASK),
"ERROR: Failed to get the CME FIR MASK value");

/* Fetch the CME FIR MASK; Save it to HWP attribute; clear it */
FAPI_TRY(l_cmeFir.saveMask(),
"ERROR: Failed to save CME FIR Mask to the attribute");
}
FAPI_TRY(l_cmeFir.get(p9pmFIR::REG_FIRMASK),
"ERROR: Failed to get the CME FIR MASK value");

FAPI_TRY(l_cmeFir.setAllRegBits(p9pmFIR::REG_FIRMASK),
"ERROR: Faled to set the CME FIR MASK");

FAPI_TRY(l_cmeFir.put(),
"ERROR:Failed to write to the CME FIR MASK");
/* Fetch the CME FIR MASK; Save it to HWP attribute; clear it */
FAPI_TRY(l_cmeFir.saveMask(),
"ERROR: Failed to save CME FIR Mask to the attribute");
}

FAPI_TRY(l_cmeFir.setAllRegBits(p9pmFIR::REG_FIRMASK),
"ERROR: Faled to set the CME FIR MASK");

FAPI_TRY(l_cmeFir.put(),
"ERROR:Failed to write to the CME FIR MASK");
}

fapi_try_exit:
Expand Down

0 comments on commit 718ee2a

Please sign in to comment.