diff options
author | Mahesh Salgaonkar <mahesh@linux.vnet.ibm.com> | 2015-03-11 16:01:13 +0530 |
---|---|---|
committer | Stewart Smith <stewart@linux.vnet.ibm.com> | 2015-03-26 11:12:18 +1100 |
commit | 9650f6b0a40dc21a6796c1ec66a7e5ddbb927947 (patch) | |
tree | 3a57db7f5c3305a3e144137bd690bd703a2ee9f4 /core | |
parent | c426521c4b4286e49c15eaefc0a7b953effc25ec (diff) | |
download | skiboot-9650f6b0a40dc21a6796c1ec66a7e5ddbb927947.zip skiboot-9650f6b0a40dc21a6796c1ec66a7e5ddbb927947.tar.gz skiboot-9650f6b0a40dc21a6796c1ec66a7e5ddbb927947.tar.bz2 |
opal: Handle TFMR parity HMI event.
Handle TFMR parity errors reported through HMER[bit 5] and TFMR bit 60
i.e tx_tfmr_corrupt. For recovery, write '1' to TFMR bit 60 to clear it.
Once we clear this error, check for timebase machine state in TFMR [28:31]
and clear TB errors if timebase machine state is in error (9) state. Once
we reset the timebase machine state continue loading TOD into core TB.
To inject TFMR parity error issue:
$ putscom pu.ex 10013281 0001080000000000 -all
Signed-off-by: Mahesh Salgaonkar <mahesh@linux.vnet.ibm.com>
Signed-off-by: Stewart Smith <stewart@linux.vnet.ibm.com>
Diffstat (limited to 'core')
-rw-r--r-- | core/hmi.c | 2 |
1 files changed, 1 insertions, 1 deletions
@@ -517,7 +517,7 @@ int handle_hmi_exception(uint64_t hmer, struct OpalHMIEvent *hmi_evt) if (hmer & SPR_HMER_TFMR_PARITY_ERROR) { tfmr = mfspr(SPR_TFMR); /* save original TFMR */ hmer &= ~SPR_HMER_TFMR_PARITY_ERROR; - recover = 0; + recover = chiptod_recover_tb_errors(); if (hmi_evt) { hmi_evt->severity = OpalHMI_SEV_FATAL; hmi_evt->type = OpalHMI_ERROR_TFMR_PARITY; |