diff options
author | Mahesh Salgaonkar <mahesh@linux.vnet.ibm.com> | 2017-10-23 11:46:00 +0530 |
---|---|---|
committer | Stewart Smith <stewart@linux.vnet.ibm.com> | 2017-10-23 12:37:52 -0500 |
commit | 00f2540c3c69c922771a73fda2ef83f49aaee0b6 (patch) | |
tree | ed319fa1a6bc8ff3c0aa8139bbf1440a782c586a /doc | |
parent | d1bb483e84c8819a0e2a7c89f1daa52432446e14 (diff) | |
download | skiboot-00f2540c3c69c922771a73fda2ef83f49aaee0b6.zip skiboot-00f2540c3c69c922771a73fda2ef83f49aaee0b6.tar.gz skiboot-00f2540c3c69c922771a73fda2ef83f49aaee0b6.tar.bz2 |
opal/hmi: Workaround Power9 hw logic bug for couple of TFMR TB errors.
Add a workaround for a HW logic bug in Power9 where TB residue and HDEC
parity errors cleared by one thread aren't visible to other threads of same
core. The TB reside and HDEC parity error are reported through TFMR bit 45
and 26 respectively. If any of the thread from the core clears the TFMR bit
26 and 45, only thread 0 is able to see that errors are cleared but rest of
the threads 1, 2 and 3 do not see those as cleared. This causes TB error
recovery to fail for TB residue and HDEC parity errors. TFMR is per core
register and any changes made by a one thread should be visible by other
threads of the same core.
On TB residue error (TFMR bit 45), TB goes into invalid state. Hence avoid
handling/clearing TB residue error if TB is valid and running. Use TFMR bit 41
to check validity of TB state.
For HDEC parity error (TFMR bit 26), check for other errors on TFMR register
and ignore the pre-recovery for HDEC parity error. If TFMR has any other
TB error bits set alongwith HDEC parity error we can safely ignore handling
of HDEC parity error. Also, while clearing HDEC parity error bit from TFMR,
allow only thread 0 to clear it.
Signed-off-by: Mahesh Salgaonkar <mahesh@linux.vnet.ibm.com>
Signed-off-by: Stewart Smith <stewart@linux.vnet.ibm.com>
Diffstat (limited to 'doc')
0 files changed, 0 insertions, 0 deletions