]> git.dujemihanovic.xyz Git - u-boot.git/commitdiff
x86: coreboot: Update the timestamp code to use sysinfo
authorSimon Glass <sjg@chromium.org>
Wed, 28 Aug 2024 20:13:53 +0000 (14:13 -0600)
committerSimon Glass <sjg@chromium.org>
Fri, 18 Oct 2024 20:10:21 +0000 (14:10 -0600)
Rather than using a special variable, get the timestamp info from the
coreboot sysinfo struct. Return a proper error as well.

Signed-off-by: Simon Glass <sjg@chromium.org>
arch/x86/cpu/coreboot/timestamp.c

index ec4003c4e77e57d12527921d362167332b5ac14b..681191d85bb68392060f57a65b7312aabca98313 100644 (file)
@@ -6,13 +6,12 @@
  */
 
 #include <bootstage.h>
+#include <errno.h>
 #include <asm/arch/timestamp.h>
 #include <asm/cb_sysinfo.h>
 #include <asm/u-boot-x86.h>
 #include <linux/compiler.h>
 
-static struct timestamp_table *ts_table  __section(".data");
-
 void timestamp_init(void)
 {
        timestamp_add_now(TS_U_BOOT_INITTED);
@@ -20,6 +19,8 @@ void timestamp_init(void)
 
 void timestamp_add(enum timestamp_id id, uint64_t ts_time)
 {
+       const struct sysinfo_t *info = cb_get_sysinfo();
+       struct timestamp_table *ts_table = info->tstamp_table;
        struct timestamp_entry *tse;
 
        if (!ts_table || (ts_table->num_entries == ts_table->max_entries))
@@ -37,13 +38,15 @@ void timestamp_add_now(enum timestamp_id id)
 
 int timestamp_add_to_bootstage(void)
 {
+       const struct sysinfo_t *info = cb_get_sysinfo();
+       const struct timestamp_table *ts_table = info->tstamp_table;
        uint i;
 
        if (!ts_table)
-               return -1;
+               return -ENOENT;
 
        for (i = 0; i < ts_table->num_entries; i++) {
-               struct timestamp_entry *tse = &ts_table->entries[i];
+               const struct timestamp_entry *tse = &ts_table->entries[i];
                const char *name = NULL;
 
                switch (tse->entry_id) {