summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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);