[coreboot-gerrit] New patch to review for coreboot: ac18a48 Revert "elog: Use the RTC driver interface instead of reading CMOS directly."

Marc Jones (marc.jones@se-eng.com) gerrit at coreboot.org
Wed Dec 17 04:44:50 CET 2014


Marc Jones (marc.jones at se-eng.com) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/7837

-gerrit

commit ac18a481dba9ffdd8a7730bd7f928e38505d63df
Author: Marc Jones <marc.jones at se-eng.com>
Date:   Tue Dec 16 18:23:27 2014 -0700

    Revert "elog: Use the RTC driver interface instead of reading CMOS directly."
    
    This reverts commit 474313d1b6556ad8b3e6750a4096b5735cbfc846.
    
    This reverted commit was applied out of sequence and there are a number
    of dependencies that need to be in place prior to adding it. Remove it
    for now.
    
    Change-Id: If80c40867098dee2feff2b9a1d824558f4d7028d
    Signed-off-by: Marc Jones <marc.jones at se-eng.com>
---
 src/drivers/elog/elog.c | 25 ++++++++++++++-----------
 1 file changed, 14 insertions(+), 11 deletions(-)

diff --git a/src/drivers/elog/elog.c b/src/drivers/elog/elog.c
index 12aa4c1..7cc7e45a 100644
--- a/src/drivers/elog/elog.c
+++ b/src/drivers/elog/elog.c
@@ -25,8 +25,6 @@
 #if CONFIG_ARCH_X86
 #include <pc80/mc146818rtc.h>
 #endif
-#include <bcd.h>
-#include <rtc.h>
 #include <smbios.h>
 #include <spi-generic.h>
 #include <spi_flash.h>
@@ -640,15 +638,20 @@ int elog_init(void)
  */
 static void elog_fill_timestamp(struct event_header *event)
 {
-	struct rtc_time time;
-
-	rtc_get(&time);
-	event->second = bin2bcd(time.sec);
-	event->minute = bin2bcd(time.min);
-	event->hour = bin2bcd(time.hour);
-	event->day = bin2bcd(time.mday);
-	event->month = bin2bcd(time.mon);
-	event->year = bin2bcd(time.year) & 0xff;
+#if CONFIG_ARCH_X86
+	event->second = cmos_read(RTC_CLK_SECOND);
+	event->minute = cmos_read(RTC_CLK_MINUTE);
+	event->hour   = cmos_read(RTC_CLK_HOUR);
+	event->day    = cmos_read(RTC_CLK_DAYOFMONTH);
+	event->month  = cmos_read(RTC_CLK_MONTH);
+	event->year   = cmos_read(RTC_CLK_YEAR);
+#else
+	/*
+	 * FIXME: We need to abstract the CMOS stuff on non-x86 platforms.
+	 * Until then, use bogus data here to force the values to 0.
+	 */
+	event->month  = 0xff;
+#endif
 
 	/* Basic sanity check of expected ranges */
 	if (event->month > 0x12 || event->day > 0x31 || event->hour > 0x23 ||



More information about the coreboot-gerrit mailing list