diff options
author | Aaron Durbin <adurbin@chromium.org> | 2015-11-06 15:20:23 -0600 |
---|---|---|
committer | Patrick Georgi <pgeorgi@google.com> | 2015-11-13 00:52:48 +0100 |
commit | c41c6a44127620a61b0a36b3d9b55cc13429c5cd (patch) | |
tree | e3dc2d8d5d63e893e8ed3728afcfaeb80eae1f06 /src/drivers | |
parent | 2603812c8709f03e8df6dd2425f5f743291666b9 (diff) | |
download | coreboot-c41c6a44127620a61b0a36b3d9b55cc13429c5cd.tar.xz |
elog: fix improper assumption for year values
The elog format stores the year of the event in bcd format.
Semi-recently rtc_get() started returning the full year,
e.g. 2015. However, bin2bcd takes a uint8_t as a parameter.
Converting a full year (2015 or 0x7df) to a uint8_t results
in passing bad values (223 or 0xdf) to bin2bcd. In other words
the input value of bin2bcd needs to be a number between 0 and 99.
Therefore fix that mistake.
BUG=chrome-os-partner:47388
BRANCH=None
TEST=Events show up with correct year in eventlog now.
Change-Id: I9209cb9175c0b4925337e2e5d4fea8316b30022a
Signed-off-by: Patrick Georgi <pgeorgi@chromium.org>
Original-Commit-Id: 95a86013234dc999c988291f636e2db3803cc24a
Original-Change-Id: I12734bc3a423ba9d739658b8edc402b8d445f22e
Original-Signed-off-by: Aaron Durbin <adurbin@chromium.org>
Original-Reviewed-on: https://chromium-review.googlesource.com/311263
Original-Reviewed-by: Duncan Laurie <dlaurie@chromium.org>
Reviewed-on: http://review.coreboot.org/12410
Tested-by: build bot (Jenkins)
Reviewed-by: Stefan Reinauer <stefan.reinauer@coreboot.org>
Diffstat (limited to 'src/drivers')
-rw-r--r-- | src/drivers/elog/elog.c | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/src/drivers/elog/elog.c b/src/drivers/elog/elog.c index 97abf81891..71eaad207b 100644 --- a/src/drivers/elog/elog.c +++ b/src/drivers/elog/elog.c @@ -635,8 +635,7 @@ static void elog_fill_timestamp(struct event_header *event) event->hour = bin2bcd(time.hour); event->day = bin2bcd(time.mday); event->month = bin2bcd(time.mon); - event->year = bin2bcd(time.year) & 0xff; - + event->year = bin2bcd(time.year % 100); /* Basic sanity check of expected ranges */ if (event->month > 0x12 || event->day > 0x31 || event->hour > 0x23 || |