summaryrefslogtreecommitdiff
path: root/arch
diff options
context:
space:
mode:
Diffstat (limited to 'arch')
-rw-r--r--arch/x86/cpu/coreboot/tables.c8
-rw-r--r--arch/x86/include/asm/ic/coreboot/sysinfo.h2
-rw-r--r--arch/x86/include/asm/ic/coreboot/tables.h7
3 files changed, 17 insertions, 0 deletions
diff --git a/arch/x86/cpu/coreboot/tables.c b/arch/x86/cpu/coreboot/tables.c
index 5916bd0e1c2..18aa1149a5a 100644
--- a/arch/x86/cpu/coreboot/tables.c
+++ b/arch/x86/cpu/coreboot/tables.c
@@ -130,6 +130,11 @@ static void cb_parse_vdat(unsigned char *ptr, struct sysinfo_t *info)
info->vdat_size = vdat->vdat_size;
}
+static void cb_parse_tstamp(unsigned char *ptr, struct sysinfo_t *info)
+{
+ info->tstamp_table = ((struct cb_tstamp *)ptr)->tstamp_tab;
+}
+
static void cb_parse_framebuffer(unsigned char *ptr, struct sysinfo_t *info)
{
info->framebuffer = (struct cb_framebuffer *)ptr;
@@ -237,6 +242,9 @@ static int cb_parse_header(void *addr, int len, struct sysinfo_t *info)
case CB_TAG_VDAT:
cb_parse_vdat(ptr, info);
break;
+ case CB_TAG_TIMESTAMPS:
+ cb_parse_tstamp(ptr, info);
+ break;
}
ptr += rec->size;
diff --git a/arch/x86/include/asm/ic/coreboot/sysinfo.h b/arch/x86/include/asm/ic/coreboot/sysinfo.h
index bde093a9659..3cd797fb5e5 100644
--- a/arch/x86/include/asm/ic/coreboot/sysinfo.h
+++ b/arch/x86/include/asm/ic/coreboot/sysinfo.h
@@ -34,6 +34,7 @@
#include <compiler.h>
#include <asm/ic/coreboot/tables.h>
#include <fdt.h>
+#include <coreboot/timestamp.h>
/* Allow a maximum of 16 memory range definitions. */
#define SYSINFO_MAX_MEM_RANGES 16
@@ -80,6 +81,7 @@ struct sysinfo_t {
void *vdat_addr;
u32 vdat_size;
struct fdt_header *sys_fdt;
+ struct timestamp_table *tstamp_table;
};
extern struct sysinfo_t lib_sysinfo;
diff --git a/arch/x86/include/asm/ic/coreboot/tables.h b/arch/x86/include/asm/ic/coreboot/tables.h
index 27bafa0b0d3..85b12582f5d 100644
--- a/arch/x86/include/asm/ic/coreboot/tables.h
+++ b/arch/x86/include/asm/ic/coreboot/tables.h
@@ -196,6 +196,13 @@ struct cb_vdat {
uint32_t vdat_size;
};
+#define CB_TAG_TIMESTAMPS 0x0016
+struct cb_tstamp {
+ uint32_t tag;
+ uint32_t size;
+ void *tstamp_tab;
+};
+
#define CB_TAG_CMOS_OPTION_TABLE 0x00c8
struct cb_cmos_option_table {
u32 tag;