aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDuncan Laurie <dlaurie@chromium.org>2011-10-19 15:32:39 -0700
committerStefan Reinauer <stefan.reinauer@coreboot.org>2012-03-30 05:30:08 +0200
commitcde7801c2e5560ef0c923a41beac4f4cdc3fcbd4 (patch)
tree34c1dd1d86683e6be267a569a90ba4a26ab2c40d
parentc668af74412cb7cae24957e9a86320be5493434d (diff)
Add timestamps for selfboot and acpi wake
Change-Id: I28224867610b947739d940d25c98399d219f10f4 Signed-off-by: Duncan Laurie <dlaurie@google.com> Reviewed-on: http://review.coreboot.org/733 Tested-by: build bot (Jenkins) Reviewed-by: Stefan Reinauer <stefan.reinauer@coreboot.org>
-rw-r--r--src/arch/x86/boot/acpi.c7
-rw-r--r--src/boot/selfboot.c7
-rw-r--r--src/include/timestamp.h2
3 files changed, 16 insertions, 0 deletions
diff --git a/src/arch/x86/boot/acpi.c b/src/arch/x86/boot/acpi.c
index 33d730bc8c..ab67d38b85 100644
--- a/src/arch/x86/boot/acpi.c
+++ b/src/arch/x86/boot/acpi.c
@@ -32,6 +32,9 @@
#include <device/pci.h>
#include <cbmem.h>
#include <cpu/x86/lapic_def.h>
+#if CONFIG_COLLECT_TIMESTAMPS
+#include <timestamp.h>
+#endif
#if CONFIG_CHROMEOS
#include <vendorcode/google/chromeos/chromeos.h>
#endif
@@ -610,6 +613,10 @@ void acpi_jump_to_wakeup(void *vector)
/* Copy wakeup trampoline in place. */
memcpy((void *)WAKEUP_BASE, &__wakeup, (size_t)&__wakeup_size);
+#if CONFIG_COLLECT_TIMESTAMPS
+ timestamp_add_now(TS_ACPI_WAKE_JUMP);
+#endif
+
acpi_do_wakeup((u32)vector, acpi_backup_memory, CONFIG_RAMBASE,
HIGH_MEMORY_SAVE);
}
diff --git a/src/boot/selfboot.c b/src/boot/selfboot.c
index 67603f07db..3c310234cb 100644
--- a/src/boot/selfboot.c
+++ b/src/boot/selfboot.c
@@ -29,6 +29,9 @@
#include <string.h>
#include <cbfs.h>
#include <lib.h>
+#if CONFIG_COLLECT_TIMESTAMPS
+#include <timestamp.h>
+#endif
/* Maximum physical address we can use for the coreboot bounce buffer. */
#ifndef MAX_ADDR
@@ -512,6 +515,10 @@ static int selfboot(struct lb_memory *mem, struct cbfs_payload *payload)
printk(BIOS_DEBUG, "Jumping to boot code at %x\n", entry);
post_code(POST_ENTER_ELF_BOOT);
+#if CONFIG_COLLECT_TIMESTAMPS
+ timestamp_add_now(TS_SELFBOOT_JUMP);
+#endif
+
/* Jump to kernel */
jmp_to_elf_entry((void*)entry, bounce_buffer, bounce_size);
return 1;
diff --git a/src/include/timestamp.h b/src/include/timestamp.h
index cfa06e29fc..8b9a89a2b8 100644
--- a/src/include/timestamp.h
+++ b/src/include/timestamp.h
@@ -37,6 +37,8 @@ struct timestamp_table {
enum timestamp_id {
TS_BEFORE_INITRAM = 1,
TS_AFTER_INITRAM = 2,
+ TS_ACPI_WAKE_JUMP = 98,
+ TS_SELFBOOT_JUMP = 99,
};
void timestamp_init(tsc_t base);