Add timestamp table pointer to the coreboot table.
authorVadim Bendebury <vbendeb@chromium.org>
Fri, 23 Sep 2011 16:56:11 +0000 (09:56 -0700)
committerStefan Reinauer <stefan.reinauer@coreboot.org>
Thu, 29 Mar 2012 18:17:45 +0000 (20:17 +0200)
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>
src/arch/x86/boot/coreboot_table.c
src/include/boot/coreboot_tables.h

index b6e7e77962716a864003b82c8a35075df89acd9c..53ff3d36d43f94763568909357dfe90199113dce 100644 (file)
@@ -30,6 +30,7 @@
 #include <device/device.h>
 #include <stdlib.h>
 #include <cbfs.h>
 #include <device/device.h>
 #include <stdlib.h>
 #include <cbfs.h>
+#include <cbmem.h>
 #if CONFIG_USE_OPTION_TABLE
 #include <option_table.h>
 #endif
 #if CONFIG_USE_OPTION_TABLE
 #include <option_table.h>
 #endif
@@ -178,6 +179,23 @@ static void lb_framebuffer(struct lb_header *header)
 #endif
 }
 
 #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;
 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);
 }
 
                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)
 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);
 
        /* 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);
 
        /* Remember where my valid memory ranges are */
        return lb_table_fini(head, 1);
 
index 45ba3af110e20a56624cbe281062dd95568aed14..46d64898b47cbcd6284ba2f3f7e068d799cca3b3 100644 (file)
@@ -195,6 +195,14 @@ struct lb_framebuffer {
        uint8_t reserved_mask_size;
 };
 
        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 */
 /* The following structures are for the cmos definitions table */
 #define LB_TAG_CMOS_OPTION_TABLE 200
 /* cmos header record */