summaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorVadim Bendebury <vbendeb@chromium.org>2012-10-23 18:04:34 +0000
committerSimon Glass <sjg@chromium.org>2012-12-06 14:30:39 -0800
commit3cdc18a8de1b67af0ef7357f9c07bc77a935045c (patch)
treeadde6128bd87b8c98abe461dcfd360d34459aacf /arch
parent6dbe0cce3ffce8db8cffad7a16487ef9e3c95021 (diff)
downloadtalos-obmc-uboot-3cdc18a8de1b67af0ef7357f9c07bc77a935045c.tar.gz
talos-obmc-uboot-3cdc18a8de1b67af0ef7357f9c07bc77a935045c.zip
x86: Add a CBMEM timestamp generated right before the kernel startup.
To maintain the initialization state of the timestamp facility, thesq pointer to the CBMEM section containing the timestamp table should be kept in the .data section (so that it is maintained across u-boot relocation). Signed-off-by: Vadim Bendebury <vbendeb@chromium.org> Signed-off-by: Simon Glass <sjg@chromium.org>
Diffstat (limited to 'arch')
-rw-r--r--arch/x86/include/asm/arch-coreboot/timestamp.h1
-rw-r--r--arch/x86/lib/zimage.c6
2 files changed, 7 insertions, 0 deletions
diff --git a/arch/x86/include/asm/arch-coreboot/timestamp.h b/arch/x86/include/asm/arch-coreboot/timestamp.h
index e48ad8631b..d104912e06 100644
--- a/arch/x86/include/asm/arch-coreboot/timestamp.h
+++ b/arch/x86/include/asm/arch-coreboot/timestamp.h
@@ -42,6 +42,7 @@ enum timestamp_id {
/* U-Boot entry IDs start at 1000 */
TS_U_BOOT_INITTED = 1000, /* This is where u-boot starts */
+ TS_U_BOOT_START_KERNEL = 1100, /* Right before jumping to kernel. */
};
void timestamp_init(void);
diff --git a/arch/x86/lib/zimage.c b/arch/x86/lib/zimage.c
index b8c672babd..238ed614e8 100644
--- a/arch/x86/lib/zimage.c
+++ b/arch/x86/lib/zimage.c
@@ -36,6 +36,9 @@
#include <asm/realmode.h>
#include <asm/byteorder.h>
#include <asm/bootparam.h>
+#ifdef CONFIG_SYS_COREBOOT
+#include <asm/arch/timestamp.h>
+#endif
/*
* Memory lay-out:
@@ -283,6 +286,9 @@ void boot_zimage(void *setup_base, void *load_address)
{
printf("\nStarting kernel ...\n\n");
+#ifdef CONFIG_SYS_COREBOOT
+ timestamp_add_now(TS_U_BOOT_START_KERNEL);
+#endif
#if defined CONFIG_ZBOOT_32
/*
* Set %ebx, %ebp, and %edi to 0, %esi to point to the boot_params
OpenPOWER on IntegriCloud