diff options
author | Mahesh Salgaonkar <mahesh@linux.vnet.ibm.com> | 2014-10-14 21:40:51 +0530 |
---|---|---|
committer | Stewart Smith <stewart@linux.vnet.ibm.com> | 2014-12-02 14:17:25 +1100 |
commit | 699c433a8c736f44b13b7ba28cc0f9e0ac55840c (patch) | |
tree | 49a01df1e548abece3a0ed27e3a1c7d3726002cb /hw/chiptod.c | |
parent | b77a89ed78436000833ad7e210fc58e51d4e9b93 (diff) | |
download | skiboot-699c433a8c736f44b13b7ba28cc0f9e0ac55840c.zip skiboot-699c433a8c736f44b13b7ba28cc0f9e0ac55840c.tar.gz skiboot-699c433a8c736f44b13b7ba28cc0f9e0ac55840c.tar.bz2 |
opal: Handle more TFAC errors.
Handle more TFAC errors reported through TFMR i.e TB_RESIDUE_ERR,
FW_CONTROL_ERR and CHIP_TOD_PARITY_ERR. Clear these errors by writing to
respective TFMR bits.
Signed-off-by: Mahesh Salgaonkar <mahesh@linux.vnet.ibm.com>
Signed-off-by: Stewart Smith <stewart@linux.vnet.ibm.com>
Diffstat (limited to 'hw/chiptod.c')
-rw-r--r-- | hw/chiptod.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/hw/chiptod.c b/hw/chiptod.c index daa67ef..295c745 100644 --- a/hw/chiptod.c +++ b/hw/chiptod.c @@ -311,6 +311,8 @@ static bool chiptod_reset_tb_errors(void) tfmr |= SPR_TFMR_TB_MISSING_SYNC; tfmr |= SPR_TFMR_TB_MISSING_STEP; tfmr |= SPR_TFMR_TB_RESIDUE_ERR; + tfmr |= SPR_TFMR_FW_CONTROL_ERR; + tfmr |= SPR_TFMR_CHIP_TOD_PARITY_ERR; mtspr(SPR_TFMR, tfmr); /* We have to write "Clear TB Errors" again */ @@ -652,6 +654,9 @@ int chiptod_recover_tb_errors(void) * clear it. */ if ((tfmr & SPR_TFMR_TB_MISSING_STEP) || + (tfmr & SPR_TFMR_TB_RESIDUE_ERR) || + (tfmr & SPR_TFMR_FW_CONTROL_ERR) || + (tfmr & SPR_TFMR_CHIP_TOD_PARITY_ERR) || (tfmr & SPR_TFMR_TB_MISSING_SYNC)) { if (!chiptod_reset_tb_errors()) { rc = 0; |