summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVadim Bendebury <vbendeb@chromium.org>2011-09-23 09:56:11 -0700
committerStefan Reinauer <stefan.reinauer@coreboot.org>2012-03-29 20:17:45 +0200
commit2e43867a20107014cba1f32137adfee8af35a05d (patch)
treeb5f6690e7d65036fe2c23fbd8ecc2b2d161d8f56
parentb93f74bb0776c9911f9b5f5d965610a76a0b31cc (diff)
downloadcoreboot-2e43867a20107014cba1f32137adfee8af35a05d.tar.xz
Add timestamp table pointer to the coreboot table.
This change exports the timestamp table pointer through coreboot table to make it possible for u-boot to add timestamps to the table. Inclusion of cbmem.h allows to drop external declarations in coreboot_table.c. Change-Id: Ia070198cee7a6ffdaeece03d9d15bd91e033b6d1 Signed-off-by: Vadim Bendebury <vbendeb@chromium.org> Reviewed-on: http://review.coreboot.org/716 Tested-by: build bot (Jenkins) Reviewed-by: Ronald G. Minnich <rminnich@gmail.com>
-rw-r--r--src/arch/x86/boot/coreboot_table.c25
-rw-r--r--src/include/boot/coreboot_tables.h8
2 files changed, 29 insertions, 4 deletions
diff --git a/src/arch/x86/boot/coreboot_table.c b/src/arch/x86/boot/coreboot_table.c
index b6e7e77962..53ff3d36d4 100644
--- a/src/arch/x86/boot/coreboot_table.c
+++ b/src/arch/x86/boot/coreboot_table.c
@@ -30,6 +30,7 @@
#include <device/device.h>
#include <stdlib.h>
#include <cbfs.h>
+#include <cbmem.h>
#if CONFIG_USE_OPTION_TABLE
#include <option_table.h>
#endif
@@ -178,6 +179,23 @@ static void lb_framebuffer(struct lb_header *header)
#endif
}
+#if CONFIG_COLLECT_TIMESTAMPS
+static void lb_tsamp(struct lb_header *header)
+{
+ struct lb_tstamp *tstamp;
+ void *tstamp_table = cbmem_find(CBMEM_ID_TIMESTAMP);
+
+ if (!tstamp_table)
+ return;
+
+ tstamp = (struct lb_tstamp *)lb_new_record(header);
+ tstamp->tag = LB_TAG_TIMESTAMPS;
+ tstamp->size = sizeof(*tstamp);
+ tstamp->tstamp_tab = tstamp_table;
+
+}
+#endif
+
static struct lb_mainboard *lb_mainboard(struct lb_header *header)
{
struct lb_record *rec;
@@ -517,10 +535,6 @@ static void add_lb_reserved(struct lb_memory *mem)
lb_add_rsvd_range, mem);
}
-#if CONFIG_WRITE_HIGH_TABLES
-extern uint64_t high_tables_base, high_tables_size;
-#endif
-
unsigned long write_coreboot_table(
unsigned long low_table_start, unsigned long low_table_end,
unsigned long rom_table_start, unsigned long rom_table_end)
@@ -623,6 +637,9 @@ unsigned long write_coreboot_table(
/* Record our framebuffer */
lb_framebuffer(head);
+#if CONFIG_COLLECT_TIMESTAMPS
+ lb_tsamp(head);
+#endif
/* Remember where my valid memory ranges are */
return lb_table_fini(head, 1);
diff --git a/src/include/boot/coreboot_tables.h b/src/include/boot/coreboot_tables.h
index 45ba3af110..46d64898b4 100644
--- a/src/include/boot/coreboot_tables.h
+++ b/src/include/boot/coreboot_tables.h
@@ -195,6 +195,14 @@ struct lb_framebuffer {
uint8_t reserved_mask_size;
};
+#define LB_TAG_TIMESTAMPS 0x0016
+struct lb_tstamp {
+ uint32_t tag;
+ uint32_t size;
+
+ void *tstamp_tab;
+};
+
/* The following structures are for the cmos definitions table */
#define LB_TAG_CMOS_OPTION_TABLE 200
/* cmos header record */