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>
This commit is contained in:
Duncan Laurie 2011-10-19 15:32:39 -07:00 committed by Stefan Reinauer
parent c668af7441
commit cde7801c2e
3 changed files with 16 additions and 0 deletions

View File

@ -32,6 +32,9 @@
#include <device/pci.h> #include <device/pci.h>
#include <cbmem.h> #include <cbmem.h>
#include <cpu/x86/lapic_def.h> #include <cpu/x86/lapic_def.h>
#if CONFIG_COLLECT_TIMESTAMPS
#include <timestamp.h>
#endif
#if CONFIG_CHROMEOS #if CONFIG_CHROMEOS
#include <vendorcode/google/chromeos/chromeos.h> #include <vendorcode/google/chromeos/chromeos.h>
#endif #endif
@ -610,6 +613,10 @@ void acpi_jump_to_wakeup(void *vector)
/* Copy wakeup trampoline in place. */ /* Copy wakeup trampoline in place. */
memcpy((void *)WAKEUP_BASE, &__wakeup, (size_t)&__wakeup_size); 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, acpi_do_wakeup((u32)vector, acpi_backup_memory, CONFIG_RAMBASE,
HIGH_MEMORY_SAVE); HIGH_MEMORY_SAVE);
} }

View File

@ -29,6 +29,9 @@
#include <string.h> #include <string.h>
#include <cbfs.h> #include <cbfs.h>
#include <lib.h> #include <lib.h>
#if CONFIG_COLLECT_TIMESTAMPS
#include <timestamp.h>
#endif
/* Maximum physical address we can use for the coreboot bounce buffer. */ /* Maximum physical address we can use for the coreboot bounce buffer. */
#ifndef MAX_ADDR #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); printk(BIOS_DEBUG, "Jumping to boot code at %x\n", entry);
post_code(POST_ENTER_ELF_BOOT); post_code(POST_ENTER_ELF_BOOT);
#if CONFIG_COLLECT_TIMESTAMPS
timestamp_add_now(TS_SELFBOOT_JUMP);
#endif
/* Jump to kernel */ /* Jump to kernel */
jmp_to_elf_entry((void*)entry, bounce_buffer, bounce_size); jmp_to_elf_entry((void*)entry, bounce_buffer, bounce_size);
return 1; return 1;

View File

@ -37,6 +37,8 @@ struct timestamp_table {
enum timestamp_id { enum timestamp_id {
TS_BEFORE_INITRAM = 1, TS_BEFORE_INITRAM = 1,
TS_AFTER_INITRAM = 2, TS_AFTER_INITRAM = 2,
TS_ACPI_WAKE_JUMP = 98,
TS_SELFBOOT_JUMP = 99,
}; };
void timestamp_init(tsc_t base); void timestamp_init(tsc_t base);