diff options
Diffstat (limited to 'src/usr/isteps/istep12/call_proc_dmi_scominit.C')
-rw-r--r-- | src/usr/isteps/istep12/call_proc_dmi_scominit.C | 53 |
1 files changed, 52 insertions, 1 deletions
diff --git a/src/usr/isteps/istep12/call_proc_dmi_scominit.C b/src/usr/isteps/istep12/call_proc_dmi_scominit.C index b875322b4..e0c452206 100644 --- a/src/usr/isteps/istep12/call_proc_dmi_scominit.C +++ b/src/usr/isteps/istep12/call_proc_dmi_scominit.C @@ -5,7 +5,7 @@ /* */ /* OpenPOWER HostBoot Project */ /* */ -/* Contributors Listed Below - COPYRIGHT 2015,2018 */ +/* Contributors Listed Below - COPYRIGHT 2015,2019 */ /* [+] International Business Machines Corp. */ /* */ /* */ @@ -46,6 +46,11 @@ // HWP #include <p9_io_dmi_scominit.H> +#ifdef CONFIG_AXONE +#include <p9a_omi_setup_bars.H> +#endif + + #include <mmio/mmio.H> using namespace ISTEP; @@ -63,6 +68,7 @@ void* call_proc_dmi_scominit (void *io_pArgs) TRACDCOMP( ISTEPS_TRACE::g_trac_isteps_trace, "call_proc_dmi_scominit entry" ); +#ifndef CONFIG_AXONE TARGETING::TargetHandleList l_dmiTargetList; getAllChiplets(l_dmiTargetList, TYPE_DMI); @@ -105,6 +111,51 @@ void* call_proc_dmi_scominit (void *io_pArgs) } +#else // CONFIG_AXONE + + TARGETING::TargetHandleList l_procTargetList; + getAllChips(l_procTargetList, TYPE_PROC); + + TRACFCOMP(ISTEPS_TRACE::g_trac_isteps_trace, "call_proc_dmi_scominit: %d procs found", + l_procTargetList.size()); + + for (const auto & l_proc_target : l_procTargetList) + { + TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace, + "p9a_omi_setup_bars HWP target HUID %.8x", + TARGETING::get_huid(l_proc_target)); + + // call the HWP with each target + fapi2::Target <fapi2::TARGET_TYPE_PROC_CHIP> l_fapi_proc_target + (l_proc_target); + + FAPI_INVOKE_HWP(l_err, p9a_omi_setup_bars, l_fapi_proc_target); + + // process return code. + if ( l_err ) + { + TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace, + "ERROR 0x%.8X: p9a_omi_setup_bars HWP on target HUID %.8x", + l_err->reasonCode(), TARGETING::get_huid(l_proc_target) ); + + // capture the target data in the elog + ErrlUserDetailsTarget(l_proc_target).addToLog( l_err ); + + // Create IStep error log and cross reference to error that occurred + l_StepError.addErrorDetails( l_err ); + + // Commit Error + errlCommit( l_err, ISTEP_COMP_ID ); + } + else + { + TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace, + "SUCCESS : p9a_omi_setup_bars HWP"); + } + + } +#endif // CONFIG_AXONE + // map OCMBs into Hostboot memory l_err = MMIO::mmioSetup(); if ( l_err ) |