summaryrefslogtreecommitdiffstats
path: root/src/usr/hwpf
diff options
context:
space:
mode:
Diffstat (limited to 'src/usr/hwpf')
-rw-r--r--src/usr/hwpf/hwp/activate_powerbus/activate_powerbus.C72
-rw-r--r--src/usr/hwpf/hwp/activate_powerbus/makefile3
-rw-r--r--src/usr/hwpf/hwp/core_activate/makefile2
-rw-r--r--src/usr/hwpf/hwp/nest_chiplets/makefile8
-rw-r--r--src/usr/hwpf/hwp/nest_chiplets/nest_chiplets.C59
-rw-r--r--src/usr/hwpf/hwp/nest_chiplets/proc_pcie_slot_power/proc_pcie_slot_power.C (renamed from src/usr/hwpf/hwp/activate_powerbus/proc_pcie_slot_power/proc_pcie_slot_power.C)0
-rw-r--r--src/usr/hwpf/hwp/nest_chiplets/proc_pcie_slot_power/proc_pcie_slot_power.H (renamed from src/usr/hwpf/hwp/activate_powerbus/proc_pcie_slot_power/proc_pcie_slot_power.H)0
-rw-r--r--src/usr/hwpf/hwp/nest_chiplets/proc_pcie_slot_power/proc_pcie_slot_power_errors.xml (renamed from src/usr/hwpf/hwp/activate_powerbus/proc_pcie_slot_power/proc_pcie_slot_power_errors.xml)0
-rw-r--r--src/usr/hwpf/makefile2
9 files changed, 79 insertions, 67 deletions
diff --git a/src/usr/hwpf/hwp/activate_powerbus/activate_powerbus.C b/src/usr/hwpf/hwp/activate_powerbus/activate_powerbus.C
index 90752042d..1bcd6c6cd 100644
--- a/src/usr/hwpf/hwp/activate_powerbus/activate_powerbus.C
+++ b/src/usr/hwpf/hwp/activate_powerbus/activate_powerbus.C
@@ -49,6 +49,7 @@
#include <sbe/sbeif.H>
#include <pnor/pnorif.H>
+#include <i2c/i2cif.H>
// targeting support
#include <targeting/common/commontargeting.H>
@@ -64,7 +65,6 @@
#include "proc_build_smp/proc_build_smp.H"
#include <intr/interrupt.H>
#include <fsi/fsiif.H>
-#include "proc_pcie_slot_power.H"
namespace ACTIVATE_POWERBUS
{
@@ -346,6 +346,16 @@ void * call_host_slave_sbe_update( void * io_pArgs )
do
{
+ // Reset I2C devices before trying to access the SBE SEEPROMs
+ // Any error returned should not fail istep
+ l_errl = I2C::i2cResetMasters( I2C::I2C_RESET_PROC_HOST );
+ if (l_errl)
+ {
+ // Commit error
+ errlCommit( l_errl, HWPF_COMP_ID );
+ break;
+ }
+
// Call to check state of Processor SBE SEEPROMs and
// make any necessary updates
l_errl = SBE::updateProcessorSbeSeeproms();
@@ -368,65 +378,7 @@ void * call_host_slave_sbe_update( void * io_pArgs )
errlCommit( l_errl, HWPF_COMP_ID );
break;
}
-
-
-#ifdef CONFIG_PCIE_HOTPLUG_CONTROLLER
- // Loop through all the procs in the system
- // and run proc_pcie_slot_power to
- // power off hot plug controller to avoid downstream MEX issues
-
- TARGETING::Target* l_pMasterProcTarget = NULL;
- TARGETING::targetService().
- masterProcChipTargetHandle(l_pMasterProcTarget);
- TARGETING::TargetHandleList l_procTargetList;
- getAllChips(l_procTargetList, TYPE_PROC);
-
- for (TargetHandleList::const_iterator
- l_proc_iter = l_procTargetList.begin();
- l_proc_iter != l_procTargetList.end();
- ++l_proc_iter)
- {
- // make a local copy of the Processor target
- TARGETING::Target* l_pProcTarget = *l_proc_iter;
-
- TRACFCOMP(ISTEPS_TRACE::g_trac_isteps_trace,
- "target HUID %.8X",
- TARGETING::get_huid(l_pProcTarget));
-
- fapi::Target l_fapiProcTarget( fapi::TARGET_TYPE_PROC_CHIP,
- l_pProcTarget );
-
- // Invoke the HWP
- FAPI_INVOKE_HWP(l_errl,
- proc_pcie_slot_power,
- l_fapiProcTarget,
- false ); // turn off
- if (l_errl)
- {
- TRACFCOMP(ISTEPS_TRACE::g_trac_isteps_trace,
- "ERROR : proc_pcie_hotplug_control",
- " failed, returning errorlog" );
-
- // capture the target data in the elog
- ErrlUserDetailsTarget(l_pProcTarget).addToLog( l_errl );
-
- // informational. Don't add to istep error or return error
- l_errl->setSev(ERRORLOG::ERRL_SEV_INFORMATIONAL);
-
- // Commit error log
- errlCommit( l_errl, HWPF_COMP_ID );
- }
- else
- {
- TRACFCOMP(ISTEPS_TRACE::g_trac_isteps_trace,
- "SUCCESS : proc_pcie_hotplug_control",
- " completed ok");
- }
- } // endfor
-#endif
-
-
- } while (0);
+ } while (0);
TRACDCOMP( ISTEPS_TRACE::g_trac_isteps_trace,
"call_host_slave_sbe_update exit" );
diff --git a/src/usr/hwpf/hwp/activate_powerbus/makefile b/src/usr/hwpf/hwp/activate_powerbus/makefile
index b5583abd6..0db637a6f 100644
--- a/src/usr/hwpf/hwp/activate_powerbus/makefile
+++ b/src/usr/hwpf/hwp/activate_powerbus/makefile
@@ -48,7 +48,6 @@ EXTRAINCDIR += ${ROOTPATH}/src/usr/hwpf/hwp/activate_powerbus
## EXAMPLE:
## EXTRAINCDIR += ${ROOTPATH}/src/usr/hwpf/hwp/activate_powerbus/<HWP_dir>
EXTRAINCDIR += ${ROOTPATH}/src/usr/hwpf/hwp/activate_powerbus/proc_build_smp
-EXTRAINCDIR += ${ROOTPATH}/src/usr/hwpf/hwp/activate_powerbus/proc_pcie_slot_power
## NOTE: add new object files when you add a new HWP
OBJS += activate_powerbus.o
@@ -59,13 +58,11 @@ OBJS += proc_build_smp_fbc_ab.o
OBJS += proc_build_smp_fbc_cd.o
OBJS += proc_build_smp_fbc_nohp.o
OBJS += proc_adu_utils.o
-OBJS += proc_pcie_slot_power.o
## NOTE: add a new directory onto the vpaths when you add a new HWP
## EXAMPLE:
# VPATH += ${ROOTPATH}/src/usr/hwpf/hwp/activate_powerbus/<HWP_dir>
VPATH += ${ROOTPATH}/src/usr/hwpf/hwp/activate_powerbus/proc_build_smp
-VPATH += ${ROOTPATH}/src/usr/hwpf/hwp/activate_powerbus/proc_pcie_slot_power
include ${ROOTPATH}/config.mk
diff --git a/src/usr/hwpf/hwp/core_activate/makefile b/src/usr/hwpf/hwp/core_activate/makefile
index 2a545e7ce..40ce20f6f 100644
--- a/src/usr/hwpf/hwp/core_activate/makefile
+++ b/src/usr/hwpf/hwp/core_activate/makefile
@@ -53,7 +53,7 @@ EXTRAINCDIR += ${ROOTPATH}/src/usr/hwpf/hwp/build_winkle_images/p8_set_pore_bar
EXTRAINCDIR += ${ROOTPATH}/src/usr/hwpf/hwp/core_activate/switch_rec_attn
EXTRAINCDIR += ${ROOTPATH}/src/usr/hwpf/hwp/core_activate/proc_check_slw_done
EXTRAINCDIR += ${ROOTPATH}/src/usr/hwpf/hwp/build_winkle_images/p8_block_wakeup_intr
-EXTRAINCDIR += ${ROOTPATH}/src/usr/hwpf/hwp/activate_powerbus/proc_pcie_slot_power
+EXTRAINCDIR += ${ROOTPATH}/src/usr/hwpf/hwp/nest_chiplets/proc_pcie_slot_power
EXTRAINCDIR += ${ROOTPATH}/src/include/usr/hwpf/hwp/utility_procedures
diff --git a/src/usr/hwpf/hwp/nest_chiplets/makefile b/src/usr/hwpf/hwp/nest_chiplets/makefile
index 66dd26885..bda3544d3 100644
--- a/src/usr/hwpf/hwp/nest_chiplets/makefile
+++ b/src/usr/hwpf/hwp/nest_chiplets/makefile
@@ -5,7 +5,9 @@
#
# OpenPOWER HostBoot Project
#
-# COPYRIGHT International Business Machines Corp. 2012,2014
+# Contributors Listed Below - COPYRIGHT 2012,2014
+# [+] International Business Machines Corp.
+#
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -42,6 +44,7 @@ EXTRAINCDIR += ${ROOTPATH}/src/usr/hwpf/hwp/nest_chiplets/proc_scomoverride_chip
EXTRAINCDIR += ${ROOTPATH}/src/usr/hwpf/hwp/nest_chiplets/proc_a_x_pci_dmi_pll_setup
EXTRAINCDIR += ${ROOTPATH}/src/usr/hwpf/hwp/nest_chiplets/proc_pcie_scominit
EXTRAINCDIR += ${ROOTPATH}/src/usr/hwpf/hwp/slave_sbe/proc_cen_ref_clk_enable
+EXTRAINCDIR += ${ROOTPATH}/src/usr/hwpf/hwp/nest_chiplets/proc_pcie_slot_power
## NOTE: add new object files when you add a new HWP
OBJS += nest_chiplets.o
@@ -54,6 +57,8 @@ OBJS += proc_pcie_scominit.o
OBJS += proc_abus_scominit.o
OBJS += proc_xbus_scominit.o
OBJS += proc_a_x_pci_dmi_pll_utils.o
+OBJS += proc_pcie_slot_power.o
+
## NOTE: add a new directory onto the vpaths when you add a new HWP
VPATH += ${ROOTPATH}/src/usr/hwpf/hwp/nest_chiplets/proc_start_clocks_chiplets
@@ -61,6 +66,7 @@ VPATH += ${ROOTPATH}/src/usr/hwpf/hwp/nest_chiplets/proc_chiplet_scominit
VPATH += ${ROOTPATH}/src/usr/hwpf/hwp/nest_chiplets/proc_scomoverride_chiplets
VPATH += ${ROOTPATH}/src/usr/hwpf/hwp/nest_chiplets/proc_a_x_pci_dmi_pll_setup
VPATH += ${ROOTPATH}/src/usr/hwpf/hwp/nest_chiplets/proc_pcie_scominit
+VPATH += ${ROOTPATH}/src/usr/hwpf/hwp/nest_chiplets/proc_pcie_slot_power
include ${ROOTPATH}/config.mk
diff --git a/src/usr/hwpf/hwp/nest_chiplets/nest_chiplets.C b/src/usr/hwpf/hwp/nest_chiplets/nest_chiplets.C
index 6d1d05271..bd6dc5775 100644
--- a/src/usr/hwpf/hwp/nest_chiplets/nest_chiplets.C
+++ b/src/usr/hwpf/hwp/nest_chiplets/nest_chiplets.C
@@ -5,7 +5,9 @@
/* */
/* OpenPOWER HostBoot Project */
/* */
-/* COPYRIGHT International Business Machines Corp. 2012,2014 */
+/* Contributors Listed Below - COPYRIGHT 2012,2014 */
+/* [+] International Business Machines Corp. */
+/* */
/* */
/* Licensed under the Apache License, Version 2.0 (the "License"); */
/* you may not use this file except in compliance with the License. */
@@ -73,6 +75,8 @@
#include "proc_pcie_scominit/proc_pcie_scominit.H"
#include "../bus_training/pbusLinkSvc.H"
#include <fapiHwpExecInitFile.H>
+#include "proc_pcie_slot_power.H"
+
const char * const PROC_CHIPLET_ABUS_IF = "p8.abus.scom.if";
const char * const PROC_CHIPLET_XBUS_IF = "p8.xbus.scom.if";
@@ -290,6 +294,58 @@ void* call_proc_a_x_pci_dmi_pll_setup( void *io_pArgs )
}
}
+
+#ifdef CONFIG_PCIE_HOTPLUG_CONTROLLER
+ // Loop through all the procs in the system
+ // and run proc_pcie_slot_power to
+ // power off hot plug controller to avoid downstream MEX issues
+
+
+ for (TargetHandleList::const_iterator
+ l_proc_iter = l_procTargetList.begin();
+ l_proc_iter != l_procTargetList.end();
+ ++l_proc_iter)
+ {
+ // make a local copy of the Processor target
+ TARGETING::Target* l_pProcTarget = *l_proc_iter;
+
+ TRACFCOMP(ISTEPS_TRACE::g_trac_isteps_trace,
+ "target HUID %.8X",
+ TARGETING::get_huid(l_pProcTarget));
+
+ fapi::Target l_fapiProcTarget( fapi::TARGET_TYPE_PROC_CHIP,
+ l_pProcTarget );
+
+ // Invoke the HWP
+ FAPI_INVOKE_HWP(l_err,
+ proc_pcie_slot_power,
+ l_fapiProcTarget,
+ false ); // turn off
+ if (l_err)
+ {
+ TRACFCOMP(ISTEPS_TRACE::g_trac_isteps_trace,
+ "ERROR : proc_pcie_hotplug_control",
+ " failed, returning errorlog" );
+
+ // capture the target data in the elog
+ ErrlUserDetailsTarget(l_pProcTarget).addToLog( l_err );
+
+ // informational. Don't add to istep error or return error
+ l_err->setSev(ERRORLOG::ERRL_SEV_INFORMATIONAL);
+
+ // Commit error log
+ errlCommit( l_err, HWPF_COMP_ID );
+ }
+ else
+ {
+ TRACFCOMP(ISTEPS_TRACE::g_trac_isteps_trace,
+ "SUCCESS : proc_pcie_hotplug_control",
+ " completed ok");
+ }
+ } // endfor
+#endif
+
+
TRACDCOMP( ISTEPS_TRACE::g_trac_isteps_trace,
"call_proc_a_x_pci_dmi_pll_setup exit" );
@@ -400,6 +456,7 @@ void* call_proc_startclock_chiplets( void *io_pArgs )
TARGETING::TargetHandleList l_procTargetList;
getAllChips(l_procTargetList, TYPE_PROC);
+
for ( TargetHandleList::const_iterator
l_iter = l_procTargetList.begin();
l_iter != l_procTargetList.end();
diff --git a/src/usr/hwpf/hwp/activate_powerbus/proc_pcie_slot_power/proc_pcie_slot_power.C b/src/usr/hwpf/hwp/nest_chiplets/proc_pcie_slot_power/proc_pcie_slot_power.C
index 92069c833..92069c833 100644
--- a/src/usr/hwpf/hwp/activate_powerbus/proc_pcie_slot_power/proc_pcie_slot_power.C
+++ b/src/usr/hwpf/hwp/nest_chiplets/proc_pcie_slot_power/proc_pcie_slot_power.C
diff --git a/src/usr/hwpf/hwp/activate_powerbus/proc_pcie_slot_power/proc_pcie_slot_power.H b/src/usr/hwpf/hwp/nest_chiplets/proc_pcie_slot_power/proc_pcie_slot_power.H
index 6795dc883..6795dc883 100644
--- a/src/usr/hwpf/hwp/activate_powerbus/proc_pcie_slot_power/proc_pcie_slot_power.H
+++ b/src/usr/hwpf/hwp/nest_chiplets/proc_pcie_slot_power/proc_pcie_slot_power.H
diff --git a/src/usr/hwpf/hwp/activate_powerbus/proc_pcie_slot_power/proc_pcie_slot_power_errors.xml b/src/usr/hwpf/hwp/nest_chiplets/proc_pcie_slot_power/proc_pcie_slot_power_errors.xml
index 2b54b385e..2b54b385e 100644
--- a/src/usr/hwpf/hwp/activate_powerbus/proc_pcie_slot_power/proc_pcie_slot_power_errors.xml
+++ b/src/usr/hwpf/hwp/nest_chiplets/proc_pcie_slot_power/proc_pcie_slot_power_errors.xml
diff --git a/src/usr/hwpf/makefile b/src/usr/hwpf/makefile
index a8c706074..344d6f51a 100644
--- a/src/usr/hwpf/makefile
+++ b/src/usr/hwpf/makefile
@@ -56,7 +56,7 @@ HWP_ERROR_XML_FILES += hwp/core_activate/proc_prep_master_winkle/proc_prep_maste
HWP_ERROR_XML_FILES += hwp/core_activate/proc_stop_deadman_timer/proc_stop_deadman_timer_errors.xml
HWP_ERROR_XML_FILES += hwp/activate_powerbus/proc_build_smp/proc_build_smp_errors.xml
HWP_ERROR_XML_FILES += hwp/activate_powerbus/proc_build_smp/proc_adu_utils_errors.xml
-HWP_ERROR_XML_FILES += hwp/activate_powerbus/proc_pcie_slot_power/proc_pcie_slot_power_errors.xml
+HWP_ERROR_XML_FILES += hwp/nest_chiplets/proc_pcie_slot_power/proc_pcie_slot_power_errors.xml
HWP_ERROR_XML_FILES += hwp/thread_activate/proc_thread_control/proc_thread_control.xml
HWP_ERROR_XML_FILES += hwp/bus_training/erepair_errors.xml
HWP_ERROR_XML_FILES += hwp/nest_chiplets/proc_pcie_scominit/proc_pcie_scominit_errors.xml
OpenPOWER on IntegriCloud