elog: calculate year correctly in timestamp
This CL uses a 16-bit value (instead of an 8-bit value) for the year.
This is needed because the function internally does a "year % 100", so
the year should not be truncated to 8-bit before applying the modulo.
This fixes a regression introduced in commit e929a75.
BUG=b:200538760
TEST=deployed coreboot. Manually verified that year is correct using
     "elogtool list"
TEST=test_that -b $BOARD $DUT firmware_EventLog
Change-Id: I17578ff99af5b31b216ac53c22e53b1b70df5084
Signed-off-by: Ricardo Quesada <ricardoq@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/57816
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Furquan Shaikh <furquan@google.com>
			
			
This commit is contained in:
		
				
					committed by
					
						 Patrick Georgi
						Patrick Georgi
					
				
			
			
				
	
			
			
			
						parent
						
							10f2faacea
						
					
				
				
					commit
					425fdeb2f9
				
			| @@ -50,7 +50,7 @@ const void *event_get_data(const struct event_header *event) | ||||
|  | ||||
| /* Populate timestamp in event header with given time. */ | ||||
| void elog_fill_timestamp(struct event_header *event, uint8_t sec, uint8_t min, | ||||
| 			 uint8_t hour, uint8_t mday, uint8_t mon, uint8_t year) | ||||
| 			 uint8_t hour, uint8_t mday, uint8_t mon, uint16_t year) | ||||
| { | ||||
| 	event->second = bin2bcd(sec); | ||||
| 	event->minute = bin2bcd(min); | ||||
|   | ||||
		Reference in New Issue
	
	Block a user