From b9d9b79cedebcbcd46bd457ab2f70239a22ab572 Mon Sep 17 00:00:00 2001 From: Aaron Durbin Date: Fri, 15 Sep 2017 11:51:58 -0600 Subject: soc/intel/broadwell: refactor rtc failure checking In order to prepare for checking RTC failure in the early boot paths move the rtc failure calculation to pmutil.c and add a helper function to determine if failure occurred. BUG=b:63054105 Change-Id: Ia0a38f00d2a5c7270e24bdd35ecab7fbba1016d4 Signed-off-by: Aaron Durbin Reviewed-on: https://review.coreboot.org/21552 Tested-by: build bot (Jenkins) Reviewed-by: Subrata Banik Reviewed-by: Furquan Shaikh --- src/soc/intel/broadwell/pmutil.c | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'src/soc/intel/broadwell/pmutil.c') diff --git a/src/soc/intel/broadwell/pmutil.c b/src/soc/intel/broadwell/pmutil.c index 43c4744945..7cf184ee05 100644 --- a/src/soc/intel/broadwell/pmutil.c +++ b/src/soc/intel/broadwell/pmutil.c @@ -446,3 +446,20 @@ int acpi_sci_irq(void) printk(BIOS_DEBUG, "SCI is IRQ%d\n", sci_irq); return sci_irq; } + +int rtc_failure(void) +{ + u8 reg8; + int rtc_failed; + device_t dev = PCH_DEV_LPC; + + reg8 = pci_read_config8(dev, GEN_PMCON_3); + rtc_failed = reg8 & RTC_BATTERY_DEAD; + if (rtc_failed) { + reg8 &= ~RTC_BATTERY_DEAD; + pci_write_config8(dev, GEN_PMCON_3, reg8); + printk(BIOS_DEBUG, "rtc_failed = 0x%x\n", rtc_failed); + } + + return !!rtc_failed; +} -- cgit v1.2.3