From b73a19e1609d0f705cbab8014ca17aefe89e4c76 Mon Sep 17 00:00:00 2001 From: Yuri Tikhonov Date: Thu, 20 Mar 2008 17:56:04 +0300 Subject: LWMON5: POST RTC fix Modify the RTC API to provide one a status for the time reported by the rtc_get() function: 0 - a reliable time is guaranteed, < 0 - a reliable time isn't guaranteed (power fault, clock issues, and so on). The RTC chip drivers are responsible for providing this info if the corresponding chip supports such functionality. If not - always report that the time is reliable. The POST RTC test was modified to detect the RTC faults utilizing this new rtc_get() feature. Signed-off-by: Yuri Tikhonov --- post/drivers/rtc.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'post/drivers') diff --git a/post/drivers/rtc.c b/post/drivers/rtc.c index 7d4f9b88ee..e3da5e64ce 100644 --- a/post/drivers/rtc.c +++ b/post/drivers/rtc.c @@ -28,6 +28,8 @@ * * The Real Time Clock (RTC) operation is verified by this test. * The following features are verified: + * o) RTC Power Fault + * This is verified by analyzing the rtc_get() return status. * o) Time uniformity * This is verified by reading RTC in polling within * a short period of time. @@ -96,6 +98,10 @@ int rtc_post_test (int flags) unsigned int ynl = 1999; unsigned int yl = 2000; unsigned int skipped = 0; + int reliable; + + /* Time reliability */ + reliable = rtc_get (&svtm); /* Time uniformity */ if (rtc_post_skip (&diff) != 0) { @@ -176,6 +182,15 @@ int rtc_post_test (int flags) } rtc_post_restore (&svtm, skipped); + /* If come here, then RTC operates correcty, check the correctness + * of the time it reports. + */ + if (reliable < 0) { + post_log ("RTC Time is not reliable! Power fault? \n"); + + return -1; + } + return 0; } -- cgit v1.2.1