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: I5979bfa9445a9e0aba98ffdf8006c21096743456 Signed-off-by: Julius Werner <jwerner@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/234063 Reviewed-by: Aaron Durbin <adurbin@chromium.org>
This commit is contained in:
parent
ffaebcd378
commit
7a2ce81722
11 changed files with 116 additions and 42 deletions
|
|
@ -47,8 +47,10 @@
|
|||
|
||||
#define DRAM_START(addr) SYMBOL(dram, addr)
|
||||
|
||||
/* Coordinate asserted minimum size with timestamp.c and x86 romstage.ld! */
|
||||
#define TIMESTAMP(addr, size) \
|
||||
REGION(timestamp, addr, size, 8)
|
||||
REGION(timestamp, addr, size, 8) \
|
||||
_ = ASSERT(size >= 0x180, "Timestamp region must fit timestamp_cache!");
|
||||
|
||||
#define PRERAM_CBMEM_CONSOLE(addr, size) \
|
||||
REGION(preram_cbmem_console, addr, size, 4) \
|
||||
|
|
|
|||
|
|
@ -46,6 +46,10 @@ enum timestamp_id {
|
|||
TS_START_RAMSTAGE = 10,
|
||||
TS_START_BOOTBLOCK = 11,
|
||||
TS_END_BOOTBLOCK = 12,
|
||||
TS_START_COPYROM = 13,
|
||||
TS_END_COPYROM = 14,
|
||||
TS_START_ULZMA = 15,
|
||||
TS_END_ULZMA = 16,
|
||||
TS_DEVICE_ENUMERATE = 30,
|
||||
TS_FSP_BEFORE_ENUMERATE,
|
||||
TS_FSP_AFTER_ENUMERATE,
|
||||
|
|
@ -60,6 +64,20 @@ enum timestamp_id {
|
|||
TS_LOAD_PAYLOAD = 90,
|
||||
TS_ACPI_WAKE_JUMP = 98,
|
||||
TS_SELFBOOT_JUMP = 99,
|
||||
|
||||
/* 500+ reserved for vendorcode extensions (500-600: google/chromeos) */
|
||||
TS_START_COPYVER = 501,
|
||||
TS_END_COPYVER = 502,
|
||||
TS_START_TPMINIT = 503,
|
||||
TS_END_TPMINIT = 504,
|
||||
TS_START_VERIFY_SLOT = 505,
|
||||
TS_END_VERIFY_SLOT = 506,
|
||||
TS_START_HASH_BODY = 507,
|
||||
TS_DONE_LOADING = 508,
|
||||
TS_DONE_HASHING = 509,
|
||||
TS_END_HASH_BODY = 510,
|
||||
|
||||
/* 1000+ reserved for payloads (1000-1200: ChromeOS depthcharge) */
|
||||
};
|
||||
|
||||
#if CONFIG_COLLECT_TIMESTAMPS
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue