summaryrefslogtreecommitdiffstats
path: root/src/include/usr/sbeio/sbe_retry_handler.H
Commit message (Collapse)AuthorAgeFilesLines
* Correctly handle psu FFDC on OpenPower SystemsChristian Geddes2018-09-271-24/+0
| | | | | | | | | | | | | | | | | | | | | | | Prior to this change, there was a switch statement that was saying "if this RC is found in the psu FFDC, then do this recovery action" that is obviously not very easy to maintain because for every error we need to add the proper action. Instead of this, now we will just look if any GARD records were created as part of the error found in the FFDC. If a gard was found , Hostboot will stop trying to recover the SBE and instead enter a reconfig loop to try and IPL w/ the target garded out. Again this only applies to OP system, in the FSP world we will commit the error logs w/ the gard records and then TI telling HWSV they need to look at the SBE Change-Id: I04e03feebf2bbd1eae2d725bee31993062fe7c94 Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/66374 Reviewed-by: Matt Derksen <mderkse1@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>
* Improve linking of PLIDs for sbe_retry_handlerChristian Geddes2018-04-131-11/+32
| | | | | | | | | | | | | | | | | | Previously if a PLID was passed to the ctor of the sbe_retry_handler we would link all errors logs created during the process of recovering the SBE with this PLID. But if no PLID was passed then we would not link the logs. This commit changes it so if no PLID is passed to the ctor then the first log created in the recovery process will become the PLID that all logs after will be set to. Change-Id: I93ef3a48b4cc1d7df3237d7ba3dfefba21d5fb6b Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/56885 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: Daniel M. Crowell <dcrowell@us.ibm.com>
* Revert "Clear perv scrach register prior to triggering HRESET"Christian R. Geddes2018-04-101-15/+0
| | | | | | | | | | This reverts commit 4f32915aa1240d07bb2671010f95695ba5f306c3. Change-Id: Ie51fd274d018df63aef6f725bf57c7b1f7f59265 Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/57026 CI-Ready: Christian R. Geddes <crgeddes@us.ibm.com> Reviewed-by: Christian R. Geddes <crgeddes@us.ibm.com> Tested-by: Christian R. Geddes <crgeddes@us.ibm.com>
* Clear perv scrach register prior to triggering HRESETChristian Geddes2018-04-101-0/+15
| | | | | | | | | | | | | | | | | | | | | | Before we initiate an HRESET we need to make sure that the perv scratch register that the SBE looks at during boot are all zeros. When these registers are zeros the SBE will ignore them and pull values from its own image. We need to do this because Hostboot will repurpose these registers after the SBE boots the first time so the data in the registers is no longer valid. It is okay for the SBE to pull the values from it's own image because during the IPL hostboot customized the SBE image with the correct values. Change-Id: I8b434d04cde3c384e35a3089a349a1d121b6b1dc RTC: 180242 Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/56959 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> CI-Ready: Christian R. Geddes <crgeddes@us.ibm.com> Tested-by: Jenkins OP HW <op-hw-jenkins+hostboot@us.ibm.com> Reviewed-by: Roland Veloz <rveloz@us.ibm.com> Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com>
* Enable OpenPower SBE Vital Attention handlerChristian Geddes2018-04-101-20/+0
| | | | | | | | | | | | | | | | | | | | | | | | If PRD notices that a sbe vital attention is set (TP_LFIR 26) then it will call hostboot code to attempt to recover the SBE. If this occurs during IPL time then hostboot will not be able to recover the SBE and we will deconfigure the processor. If this occurs during runtime HBRT will attempt to run the retry_handler. This will result in us calling hreset on the SBE that failed. If we were able to recover the SBE then no error will be returned. If we are unable to recover the SBE then we will return an error with a deconfig record. Change-Id: I3da6ec932ef8e59f7b2a184621a47e88d465e0c5 RTC: 167191 Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/56821 CI-Ready: Daniel M. Crowell <dcrowell@us.ibm.com> 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>
* sbe_retry_handler refactorChristian Geddes2018-04-061-92/+143
| | | | | | | | | | | | | | | | | | | Previously the sbe_retry_handler had logic and wording that assumed that it was being used to tell if the slave sbe booted or not. However this code has many more use cases then that. Also there was some indirect recursion that made the code hard to follow. With this refactor the code should be easier to follow and the vocabulary used should be more generic. Change-Id: If6520197b3dd561857e336ed89d9356c1f2601d6 CQ: SW416106 RTC: 167191 Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/55896 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> Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com> Tested-by: Daniel M. Crowell <dcrowell@us.ibm.com>
* Always have secureModeDisable bit set to 0 in sbe_retry_handlerChristian Geddes2018-02-041-0/+4
| | | | | | | | | | | | | | | | | After talking with the HWP writers for the sbe_extract_rc HWP they told us we should always act like the secureModeDisable bit is false. The only reason that option is there is for lab use and we shouldnt ever use it. This commit makes that bit always 0 Change-Id: Id781df3a95ffdf5ec82624aebe6830f17d7dcf2b Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/52861 Reviewed-by: Elizabeth K. Liner <eliner@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>
* Add sbe_retry_handler to FIFO fail pathChristian Geddes2018-01-301-0/+51
| | | | | | | | | | | | | | | | | | | | In the event of a FIFO communication failure w/ SBE, hostboot wants to run the sbe_retry_handler in order to collect as much FFDC as possible. We were missing support for this before this commit. This commit also adds support for the sbe_retry_handler to use the Secure Debug Bit and the unsecure mode bit for the p9_extract_rc hwp. Change-Id: I171abd89ccf4e78ffcc7c1190b58af3b11846362 CQ:SW395356 Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/52702 Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com> Reviewed-by: Martin Gloff <mgloff@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> Reviewed-by: Roland Veloz <rveloz@us.ibm.com> Reviewed-by: Elizabeth K. Liner <eliner@us.ibm.com> Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com> Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com>
* Propagate PLID from caller to any new errors; GARD target on retry failsRoland Veloz2018-01-181-3/+34
| | | | | | | | | | | | | | | | | For any new errors, if caller has provided a PLID, that PLID is to replace the new error's PLID. Also gard out the target associated with the SBE if the SBE retry fails. Change-Id: Ic0bf1a0233c1cda8f91dd0ef093bd6c9e31574bd RTC:184891 Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/51904 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: Christian R. Geddes <crgeddes@us.ibm.com> Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com>
* Adding advanced restart logic after detecting vital attentionsElizabeth Liner2017-12-221-0/+22
| | | | | | | | | | | | | | | | This code sets up and calls the SbeRetryHandler class to attempt an SBE restart. Additionally, we need more than one way to restart the SBE: p9_start_cbs and hreset. This commit sets up the structure to use one of the two methods while waiting on hreset to be available. Change-Id: I17dfb4047268efa84e388391698b668cec2e13e4 RTC:180243 Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/50953 Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com> Tested-by: Jenkins OP Build CI <op-jenkins+hostboot@us.ibm.com> Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com> Tested-by: Jenkins OP HW <op-hw-jenkins+hostboot@us.ibm.com> Reviewed-by: William G. Hoffa <wghoffa@us.ibm.com>
* Add in a check in the PSU error logging for SBE failureElizabeth Liner2017-12-201-23/+33
| | | | | | | | | | | | | If there is an error in the PSU, and there is no FFDC, there is probably something wrong with the SBE. Since there is new support to attempt an SBE reboot if there's an error, we want to add that functionality to the PSU flow as well. Change-Id: I8203193b49caaf640962e181a814df83c0760ff4 RTC:178801 Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/46641 Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com> Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com>
* SBE error logging and handler cleanupElizabeth Liner2017-12-131-69/+105
| | | | | | | | | | | | | | | | | | | | | | | This commit takes care of a few things 1) Removing the sbe threshold handler - we decided that retrying after the initial loop was overkill 2) Making use of the class structure - we added a lot of class elements to decrease things passed between functions and to facilitate debugging 3) Creating a main entry point and simplifying functions We decided that we wanted one function to handle all actions. This also made some function irrelevant and as such they were removed. Additionally, this also fixes an infinite circular logic bug. Change-Id: I9556e3181226755150c3debd1471f1be23e13be4 RTC:180961 Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/49886 Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com> Tested-by: FSP CI Jenkins <fsp-CI-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> Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com>
* Fixing the SBE switch functionalityElizabeth Liner2017-12-081-2/+7
| | | | | | | | | | | Change-Id: I121c121b8c58f3c44e748d91a88906ad1ca35d43 RTC:180961 Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/49067 Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com> Reviewed-by: Martin Gloff <mgloff@us.ibm.com> Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com> Tested-by: Jenkins OP Build CI <op-jenkins+hostboot@us.ibm.com> Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com>
* Create base class structure for SbeRetryHandlerElizabeth Liner2017-12-081-0/+205
This commit restructures the sbe_extract_rc_handler code into its own class. Change-Id: Ib6ecb1a67353b060a6578b13da951b276bc93ca7 RTC:180961 Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/48511 Reviewed-by: Martin Gloff <mgloff@us.ibm.com> Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com> Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com> Tested-by: Jenkins OP Build CI <op-jenkins+hostboot@us.ibm.com> Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com>
OpenPOWER on IntegriCloud