aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--payloads/libpayload/i386/coreboot.c4
-rw-r--r--payloads/libpayload/include/coreboot_tables.h8
2 files changed, 12 insertions, 0 deletions
diff --git a/payloads/libpayload/i386/coreboot.c b/payloads/libpayload/i386/coreboot.c
index 2a675afbe6..66e02f11b7 100644
--- a/payloads/libpayload/i386/coreboot.c
+++ b/payloads/libpayload/i386/coreboot.c
@@ -2,6 +2,7 @@
* This file is part of the libpayload project.
*
* Copyright (C) 2008 Advanced Micro Devices, Inc.
+ * Copyright (C) 2009 coresystems GmbH
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -125,6 +126,9 @@ static int cb_parse_header(void *addr, int len, struct sysinfo_t *info)
/* We only care about a few tags here (maybe more later). */
switch (rec->tag) {
+ case CB_TAG_FORWARD:
+ return cb_parse_header((void *)(unsigned long)((struct cb_forward *)rec)->forward, len, info);
+ continue;
case CB_TAG_MEMORY:
cb_parse_memory(ptr, info);
break;
diff --git a/payloads/libpayload/include/coreboot_tables.h b/payloads/libpayload/include/coreboot_tables.h
index a289a91c6f..768bb34ec1 100644
--- a/payloads/libpayload/include/coreboot_tables.h
+++ b/payloads/libpayload/include/coreboot_tables.h
@@ -128,6 +128,14 @@ struct cb_console {
#define CB_TAG_CONSOLE_SROM 4
#define CB_TAG_CONSOLE_EHCI 5
+#define CB_TAG_FORWARD 0x00011
+
+struct cb_forward {
+ u32 tag;
+ u32 size;
+ u64 forward;
+};
+
#define CB_TAG_CMOS_OPTION_TABLE 0x00c8
struct cb_cmos_option_table {
u32 tag;