Skip to content

Commit

Permalink
Add call to exp_check_for_ready to istep 10.4
Browse files Browse the repository at this point in the history
As per P9 Axone IPL flow doc, this HWP needs to be called on every
functional OCMB targets. This is called after the p9a_ocmb_enable
hwp is called in this istep.

Change-Id: I5bab233545769f396ba35b6d61c0733a9afd9087
RTC: 195553
Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/71787
Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com>
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: Matt Derksen <mderkse1@us.ibm.com>
Reviewed-by: Corey V. Swenson <cswenson@us.ibm.com>
Reviewed-by: Roland Veloz <rveloz@us.ibm.com>
Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com>
  • Loading branch information
crgeddes authored and dcrowell77 committed Feb 16, 2019
1 parent 8b07197 commit e2b54b9
Show file tree
Hide file tree
Showing 2 changed files with 62 additions and 13 deletions.
65 changes: 54 additions & 11 deletions src/usr/isteps/istep10/call_proc_cen_ref_clk_enable.C
Original file line number Diff line number Diff line change
Expand Up @@ -94,6 +94,7 @@
//HWP
#include <p9_update_security_ctrl.H>
#include <p9a_ocmb_enable.H>
#include <exp_check_for_ready.H>

// secureboot
#include <secureboot/service.H>
Expand Down Expand Up @@ -974,16 +975,12 @@ void* call_proc_cen_ref_clk_enable(void *io_pArgs )
l_proc_iter != functionalProcChipList.end();
++l_proc_iter)
{
TRACFCOMP(ISTEPS_TRACE::g_trac_isteps_trace,
"target HUID %.8X",
TARGETING::get_huid( *l_proc_iter ));

//Raise fences on centaurs to prevent FSP from analyzing
// if HB TIs for recoverable errors
fenceAttachedMembufs( *l_proc_iter );

TRACFCOMP(ISTEPS_TRACE::g_trac_isteps_trace,
"passing target HUID %.8X ",
"START: p9_cen_ref_clk_enable started on target HUID %.8X",
TARGETING::get_huid( *l_proc_iter ) );

// Cumulus only
Expand All @@ -998,7 +995,7 @@ void* call_proc_cen_ref_clk_enable(void *io_pArgs )
if (l_errl)
{
TRACFCOMP(ISTEPS_TRACE::g_trac_isteps_trace,
"ERROR : proc_cen_ref_clk_enable",
"ERROR : proc_cen_ref_clk_enable"
"failed, returning errorlog" );

// capture the target data in the elog
Expand All @@ -1013,10 +1010,13 @@ void* call_proc_cen_ref_clk_enable(void *io_pArgs )
else
{
TRACFCOMP(ISTEPS_TRACE::g_trac_isteps_trace,
"SUCCESS : proc_cen_ref_clk_enable",
"SUCCESS : proc_cen_ref_clk_enable"
"completed ok");
}

TRACFCOMP(ISTEPS_TRACE::g_trac_isteps_trace,
"START : p9a_ocmb_enable"
"starting on 0x%.08X", TARGETING::get_huid( *l_proc_iter ));

// Invoke the HWP passing in the proc target
// HWP loops on child OCMB targets
Expand All @@ -1027,8 +1027,8 @@ void* call_proc_cen_ref_clk_enable(void *io_pArgs )
if (l_errl)
{
TRACFCOMP(ISTEPS_TRACE::g_trac_isteps_trace,
"ERROR : p9a_ocmb_enable",
"failed, returning errorlog" );
"ERROR : p9a_ocmb_enable"
"failed, committing errorlog" );

// capture the target data in the elog
ErrlUserDetailsTarget( *l_proc_iter ).addToLog( l_errl );
Expand All @@ -1042,10 +1042,53 @@ void* call_proc_cen_ref_clk_enable(void *io_pArgs )
else
{
TRACFCOMP(ISTEPS_TRACE::g_trac_isteps_trace,
"SUCCESS : p9a_ocmb_enable",
"completed ok");
"SUCCESS : p9a_ocmb_enable"
"completed ok on 0x%.08X", TARGETING::get_huid( *l_proc_iter ));
}

TARGETING::TargetHandleList l_functionalOcmbChipList;
getChildAffinityTargets( l_functionalOcmbChipList,
const_cast<TARGETING::Target*>(*l_proc_iter),
TARGETING::CLASS_CHIP,
TARGETING::TYPE_OCMB_CHIP,
true);

for (const auto & l_ocmb : l_functionalOcmbChipList)
{
TRACFCOMP(ISTEPS_TRACE::g_trac_isteps_trace,
"Start : exp_check_for_ready "
"for 0x%.08X", TARGETING::get_huid(l_ocmb));

fapi2::Target <fapi2::TARGET_TYPE_OCMB_CHIP> l_fapi_ocmb_target(l_ocmb);
FAPI_INVOKE_HWP(l_errl,
exp_check_for_ready,
l_fapi_ocmb_target);

if (l_errl)
{
TRACFCOMP(ISTEPS_TRACE::g_trac_isteps_trace,
"ERROR : exp_check_for_ready"
"failed for target 0x%.08X , committing errorlog", TARGETING::get_huid(l_ocmb) );

// capture the target data in the elog
ErrlUserDetailsTarget( l_ocmb ).addToLog( l_errl );

// Create IStep error log and cross ref error that occurred
l_stepError.addErrorDetails( l_errl );

// Commit error log
errlCommit( l_errl, HWPF_COMP_ID );
}
else
{
TRACFCOMP(ISTEPS_TRACE::g_trac_isteps_trace,
"SUCCESS : exp_check_for_ready"
"completed ok");
}
}



} // endfor

TRACDCOMP( ISTEPS_TRACE::g_trac_isteps_trace,
Expand Down
10 changes: 8 additions & 2 deletions src/usr/isteps/istep10/makefile
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ PERV_HWP_PATH += ${ROOTPATH}/src/import/chips/p9/procedures/hwp/perv
PROCEDURES_PATH += ${ROOTPATH}/src/import/chips/p9/procedures
XIP_CUSTOMIZE_PATH = ${PROCEDURES_PATH}/hwp/customize
HWP_ACC_PATH += ${PROCEDURES_PATH}/hwp/accessors

OCMB_HWP_PATH += ${ROOTPATH}/src/import/chips/ocmb/explorer/procedures/hwp/memory/

EXTRAINCDIR += ${HWP_ACC_PATH}
EXTRAINCDIR += ${XIP_CUSTOMIZE_PATH}
Expand All @@ -49,6 +49,8 @@ EXTRAINCDIR += ${ROOTPATH}/src/import/chips/p9/xip
EXTRAINCDIR += ${NEST_HWP_PATH}
EXTRAINCDIR += ${INITFILES_HWP_PATH}
EXTRAINCDIR += ${PERV_HWP_PATH}
EXTRAINCDIR += ${OCMB_HWP_PATH}
EXTRAINCDIR += ${ROOTPATH}/src/import/


OBJS += call_proc_build_smp.o
Expand Down Expand Up @@ -86,7 +88,8 @@ VPATH += ${PERV_HWP_PATH}
VPATH += ${PROCEDURES_PATH}/hwp/io
VPATH += ${PROCEDURES_PATH}/hwp/pm
VPATH += ${PROCEDURES_PATH}/hwp/lib
VPATH+= ${HWP_ACC_PATH}
VPATH += ${HWP_ACC_PATH}
VPATH += ${OCMB_HWP_PATH}

#Required include before all the procedure.mk are included
include ${ROOTPATH}/procedure.rules.mk
Expand Down Expand Up @@ -120,6 +123,9 @@ include $(PERV_HWP_PATH)/p9_cen_ref_clk_enable.mk
# p9a_ocmb_enable
include ${PERV_HWP_PATH}/p9a_ocmb_enable.mk

# exp_check_for_ready
OBJS+=exp_check_for_ready.o

# p9_avsbus_lib.mk sets MODULE, reset here to istep10
MODULE = istep10

Expand Down

0 comments on commit e2b54b9

Please sign in to comment.