summaryrefslogtreecommitdiffstats
path: root/src/import/chips/p9/procedures/hwp/pm/p9_quad_power_off.H
diff options
context:
space:
mode:
authorcrgeddes <crgeddes@us.ibm.com>2017-02-21 20:58:21 -0600
committerSachin Gupta <sgupta2m@in.ibm.com>2017-03-23 08:46:57 -0400
commit96491b00071b268af09379e7d9c22b3acc135481 (patch)
tree2aa4d23acbe54768f6ef170692770b5840e64cf5 /src/import/chips/p9/procedures/hwp/pm/p9_quad_power_off.H
parent2b98021d5662fe6d003276d5ae5fd0c8b5e438e9 (diff)
downloadtalos-sbe-96491b00071b268af09379e7d9c22b3acc135481.tar.gz
talos-sbe-96491b00071b268af09379e7d9c22b3acc135481.zip
Update quad power off so HB can call it on Slave Quads
Previously this HWP was only being called by the SBE down the MPIPL but we also need to call it during HB to power down the slave quads. There is a tricky workaround in this HWP where we need to save off some ring data EQ pointers for the PB. On the SBE we just saved the rings in global variables but we cannot do that in HB because the Hcode would not have access to the global varibles. Instead we will write the ring data to the OCC SRAM to do this I will just pass the data out of the hwp via an out param The same ring data is fetch during cache_initf procedure to init Change-Id: I4f20cd8dd9ca1b53604db1bc3020c0d57bbd1172 Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/36828 Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com> Tested-by: PPE CI <ppe-ci+hostboot@us.ibm.com> Tested-by: Hostboot CI <hostboot-ci+hostboot@us.ibm.com> Reviewed-by: Matt K. Light <mklight@us.ibm.com> Reviewed-by: RAJA DAS <rajadas2@in.ibm.com> Reviewed-by: YUE DU <daviddu@us.ibm.com> Reviewed-by: Jennifer A. Stofer <stofer@us.ibm.com> Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/37977 Reviewed-by: Hostboot Team <hostboot@us.ibm.com> Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com> Reviewed-by: Sachin Gupta <sgupta2m@in.ibm.com>
Diffstat (limited to 'src/import/chips/p9/procedures/hwp/pm/p9_quad_power_off.H')
-rw-r--r--src/import/chips/p9/procedures/hwp/pm/p9_quad_power_off.H15
1 files changed, 7 insertions, 8 deletions
diff --git a/src/import/chips/p9/procedures/hwp/pm/p9_quad_power_off.H b/src/import/chips/p9/procedures/hwp/pm/p9_quad_power_off.H
index 9c684aaf..4c6b0065 100644
--- a/src/import/chips/p9/procedures/hwp/pm/p9_quad_power_off.H
+++ b/src/import/chips/p9/procedures/hwp/pm/p9_quad_power_off.H
@@ -48,14 +48,10 @@
// Constant definitions
//------------------------------------------------------------------------------
-#ifdef __PPE__
- extern uint64_t G_ring_save[8];
- extern const uint64_t G_ring_index[10];
-#endif
-
// function pointer typedef definition for HWP call support
typedef fapi2::ReturnCode (*p9_quad_power_off_FP_t) (
- const fapi2::Target<fapi2::TARGET_TYPE_EQ>& i_target);
+ const fapi2::Target<fapi2::TARGET_TYPE_EQ>& i_target,
+ uint64_t* o_ring_save_data);
extern "C"
{
@@ -66,12 +62,15 @@ extern "C"
/**
** @brief Power off the EQ including the functional cores associatated with it.
**
- ** @param[in] i_target Targe type EQ
+ ** @param[in] i_target Targe type EQ
+ ** @param[out] o_ring_save_data The ring data that tells the PB how to find the
+ ** EQ will need to be saved away for when we p-on
**
** @return FAPI2_RC_SUCCESS if success, error otherwise
**/
fapi2::ReturnCode p9_quad_power_off (
- const fapi2::Target<fapi2::TARGET_TYPE_EQ>& i_target);
+ const fapi2::Target<fapi2::TARGET_TYPE_EQ>& i_target,
+ uint64_t* o_ring_save_data);
} // extern "C"
OpenPOWER on IntegriCloud