summaryrefslogtreecommitdiff
path: root/payloads/libpayload
diff options
context:
space:
mode:
Diffstat (limited to 'payloads/libpayload')
-rw-r--r--payloads/libpayload/arch/i386/coreboot.c9
-rw-r--r--payloads/libpayload/include/sysinfo.h2
2 files changed, 11 insertions, 0 deletions
diff --git a/payloads/libpayload/arch/i386/coreboot.c b/payloads/libpayload/arch/i386/coreboot.c
index bdef4e85d3..365445ed65 100644
--- a/payloads/libpayload/arch/i386/coreboot.c
+++ b/payloads/libpayload/arch/i386/coreboot.c
@@ -82,6 +82,12 @@ static void cb_parse_serial(unsigned char *ptr, struct sysinfo_t *info)
info->ser_ioport = ser->baseaddr;
}
+static void cb_parse_version(unsigned char *ptr, struct sysinfo_t *info)
+{
+ struct cb_string *ver = (struct cb_string *)ptr;
+ info->cb_version = (char *)ver->string;
+}
+
#ifdef CONFIG_NVRAM
static void cb_parse_optiontable(unsigned char *ptr, struct sysinfo_t *info)
{
@@ -148,6 +154,9 @@ static int cb_parse_header(void *addr, int len, struct sysinfo_t *info)
case CB_TAG_SERIAL:
cb_parse_serial(ptr, info);
break;
+ case CB_TAG_VERSION:
+ cb_parse_version(ptr, info);
+ break;
#ifdef CONFIG_NVRAM
case CB_TAG_CMOS_OPTION_TABLE:
cb_parse_optiontable(ptr, info);
diff --git a/payloads/libpayload/include/sysinfo.h b/payloads/libpayload/include/sysinfo.h
index e357704995..c1d2002279 100644
--- a/payloads/libpayload/include/sysinfo.h
+++ b/payloads/libpayload/include/sysinfo.h
@@ -51,6 +51,8 @@ struct sysinfo_t {
u32 cmos_range_end;
u32 cmos_checksum_location;
+ char *cb_version;
+
struct cb_framebuffer *framebuffer;
unsigned long *mbtable; /** Pointer to the multiboot table */