timestamps: You can never have enough of them!
Now that we have timestamps in pre-RAM stages, let's actually make use of them. This patch adds several timestamps to both the bootblock and especially the verstage to allow more fine-grained boot time tracking. Some of the introduced timestamps can appear more than once per boot. This doesn't seem to be a problem for both coreboot and the cbmem utility, and the context makes it clear which operation was timestamped at what point. Also simplifies cbmem's timestamp printing routine a bit, fixing a display bug when a timestamp had a section of exactly ",000," in it (e.g. 1,000,185). BRANCH=None BUG=None TEST=Booted Pinky, Blaze and Falco, confirmed that all timestamps show up and contained sane values. Booted Storm (no timestamps here since it doesn't support pre-RAM timestamps yet). Change-Id: I7f4d6aba3ebe3db0d003c7bcb2954431b74961b3 Signed-off-by: Patrick Georgi <pgeorgi@chromium.org> Original-Commit-Id: 7a2ce81722aba85beefcc6c81f9908422b8da8fa Original-Change-Id: I5979bfa9445a9e0aba98ffdf8006c21096743456 Original-Signed-off-by: Julius Werner <jwerner@chromium.org> Original-Reviewed-on: https://chromium-review.googlesource.com/234063 Original-Reviewed-by: Aaron Durbin <adurbin@chromium.org> Reviewed-on: http://review.coreboot.org/9608 Tested-by: build bot (Jenkins) Reviewed-by: Stefan Reinauer <stefan.reinauer@coreboot.org>
This commit is contained in:
		
				
					committed by
					
						 Patrick Georgi
						Patrick Georgi
					
				
			
			
				
	
			
			
			
						parent
						
							b5995b5872
						
					
				
				
					commit
					a7d924412a
				
			| @@ -12,6 +12,7 @@ | ||||
| #include <console/console.h> | ||||
| #include <string.h> | ||||
| #include <lib.h> | ||||
| #include <timestamp.h> | ||||
|  | ||||
| #include "lzmadecode.h" | ||||
|  | ||||
| @@ -27,6 +28,8 @@ unsigned long ulzma(unsigned char * src, unsigned char * dst) | ||||
| 	MAYBE_STATIC unsigned char scratchpad[15980]; | ||||
| 	unsigned char *cp; | ||||
|  | ||||
| 	/* Note: these timestamps aren't useful for memory-mapped media (x86) */ | ||||
| 	timestamp_add_now(TS_START_ULZMA); | ||||
| 	memcpy(properties, src, LZMA_PROPERTIES_SIZE); | ||||
| 	/* The outSize in LZMA stream is a 64bit integer stored in little-endian | ||||
| 	 * (ref: lzma.cc@LZMACompress: put_64). To prevent accessing by | ||||
| @@ -50,5 +53,6 @@ unsigned long ulzma(unsigned char * src, unsigned char * dst) | ||||
| 		printk(BIOS_WARNING, "lzma: Decoding error = %d\n", res); | ||||
| 		return 0; | ||||
| 	} | ||||
| 	timestamp_add_now(TS_END_ULZMA); | ||||
| 	return outSize; | ||||
| } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user