diff options
author | Christian Geddes <crgeddes@us.ibm.com> | 2018-03-21 11:48:36 -0500 |
---|---|---|
committer | Daniel M. Crowell <dcrowell@us.ibm.com> | 2018-03-29 17:09:51 -0400 |
commit | fc2a04496b8406eda78cd17ed2965400b60abdcb (patch) | |
tree | 5a843ec064283c222ba0fa5fea8c3343313dc37c /src/include/usr | |
parent | 46cd9952ddffed4cfbe26912bbafa982f96d3733 (diff) | |
download | talos-hostboot-fc2a04496b8406eda78cd17ed2965400b60abdcb.tar.gz talos-hostboot-fc2a04496b8406eda78cd17ed2965400b60abdcb.zip |
Ensure all hbmutex attributes get re-initialized on MPIPL
We saw a bug where we were getting hung up on one of the i2c engine
mutexes on MPIPL. We still haven't determined WHY we are seeing the
mutex locked after an MPIPL but just to be safe we are now looping
through all of the targets and checking each attribute to see if it
is of type hbmutex. If it is then we will call mutex_init on the mutex
to reset it so the mutex is ready to use.
Change-Id: Ie05f7f49c4599c7cfc5d33c43d79cb977bb0cd13
CQ: SW420894
Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/56136
Reviewed-by: Martin Gloff <mgloff@us.ibm.com>
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: Roland Veloz <rveloz@us.ibm.com>
Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com>
Diffstat (limited to 'src/include/usr')
-rw-r--r-- | src/include/usr/targeting/common/targetservice.H | 20 | ||||
-rw-r--r-- | src/include/usr/targeting/targplatreasoncodes.H | 2 |
2 files changed, 20 insertions, 2 deletions
diff --git a/src/include/usr/targeting/common/targetservice.H b/src/include/usr/targeting/common/targetservice.H index 056dfb9a5..2c8133ae8 100644 --- a/src/include/usr/targeting/common/targetservice.H +++ b/src/include/usr/targeting/common/targetservice.H @@ -776,8 +776,24 @@ class TargetService AttrRP *i_attrRP, ATTRIBUTE_ID* &o_pAttrId, AbstractPointer<void>* &o_ppAttrAddr); - - +#ifdef __HOSTBOOT_MODULE + /** + * @brief Reset all hostboot mutex attributes + * + * @par Detailed Description: + * Iterates through all targets and check each of their attributes to + * see if they are of type hbmutex. If we find a mutex attribute we will + * run mutex_init on it to reset it. + * + * @pre TargetService must be initialized. + * AttrRp must be initialized + * + * @post All hb mutex attributes on all targets have been reset + * + * @return void + */ + void resetMutexAttributes(); +#endif private: /** diff --git a/src/include/usr/targeting/targplatreasoncodes.H b/src/include/usr/targeting/targplatreasoncodes.H index ac93bf2b9..b38c0c646 100644 --- a/src/include/usr/targeting/targplatreasoncodes.H +++ b/src/include/usr/targeting/targplatreasoncodes.H @@ -61,6 +61,7 @@ enum PlatTargetingModuleId TARG_RT_HBRT_UPDATE_PREP = 0x85, TARG_RT_VALIDATEDATA = 0x86, TARG_RT_SAVERESTOREATTRS = 0x87, + TARG_SVC_RESET_MUTEX = 0x88, }; /** @@ -80,6 +81,7 @@ enum PlatTargetingReasonCode TARG_RT_SECTION_MISMATCH = TARG_COMP_ID | 0x86, TARG_RT_MISSING_ATTR = TARG_COMP_ID | 0x87, TARG_RT_BAD_ATTR_SIZES = TARG_COMP_ID | 0x88, + TARG_SVC_MISSING_ATTR = TARG_COMP_ID | 0x89, }; } // End TARGETING namespace |