From 3118b6277d743100a4a0718edbfea02ddb50f625 Mon Sep 17 00:00:00 2001 From: Aaron Durbin Date: Fri, 15 Sep 2017 11:48:53 -0600 Subject: soc/intel/apollolake: 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: I1b02028a1830ff9b28b23da7a4a1fd343f329f0d Signed-off-by: Aaron Durbin Reviewed-on: https://review.coreboot.org/21551 Tested-by: build bot (Jenkins) Reviewed-by: Furquan Shaikh --- src/soc/intel/apollolake/lpc.c | 15 --------------- src/soc/intel/apollolake/pmutil.c | 19 +++++++++++++++++++ 2 files changed, 19 insertions(+), 15 deletions(-) diff --git a/src/soc/intel/apollolake/lpc.c b/src/soc/intel/apollolake/lpc.c index 0cd58de7a8..8abf3eb9cd 100644 --- a/src/soc/intel/apollolake/lpc.c +++ b/src/soc/intel/apollolake/lpc.c @@ -14,17 +14,14 @@ * GNU General Public License for more details. */ -#include #include #include #include #include #include -#include #include #include #include -#include #include "chip.h" static const struct lpc_mmio_range apl_lpc_fixed_mmio_ranges[] = { @@ -83,18 +80,6 @@ void lpc_configure_pads(void) gpio_configure_pads(lpc_gpios, ARRAY_SIZE(lpc_gpios)); } -int soc_get_rtc_failed(void) -{ - const struct chipset_power_state *ps = cbmem_find(CBMEM_ID_POWER_STATE); - - if (!ps) { - printk(BIOS_ERR, "Could not find power state in cbmem, RTC init aborted\n"); - return 1; - } - - return !!(ps->gen_pmcon1 & RPS); -} - void lpc_init(struct device *dev) { const struct soc_intel_apollolake_config *cfg; diff --git a/src/soc/intel/apollolake/pmutil.c b/src/soc/intel/apollolake/pmutil.c index e007da9512..abf47b7782 100644 --- a/src/soc/intel/apollolake/pmutil.c +++ b/src/soc/intel/apollolake/pmutil.c @@ -19,6 +19,7 @@ #include #include +#include #include #include #include @@ -26,6 +27,7 @@ #include #include #include +#include #include #include #include @@ -198,3 +200,20 @@ void enable_pm_timer_emulation(void) msr.lo = EMULATE_PM_TMR_EN | (ACPI_BASE_ADDRESS + R_ACPI_PM1_TMR); wrmsr(MSR_EMULATE_PM_TMR, msr); } + +static int rtc_failed(uint32_t gen_pmcon1) +{ + return !!(gen_pmcon1 & RPS); +} + +int soc_get_rtc_failed(void) +{ + const struct chipset_power_state *ps = cbmem_find(CBMEM_ID_POWER_STATE); + + if (!ps) { + printk(BIOS_ERR, "Could not find power state in cbmem, RTC init aborted\n"); + return 1; + } + + return rtc_failed(ps->gen_pmcon1); +} -- cgit v1.2.3