summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStefan Reinauer <stepan@coresystems.de>2009-03-17 16:41:01 +0000
committerStefan Reinauer <stepan@openbios.org>2009-03-17 16:41:01 +0000
commit5f7d506ae72034af4245c4eabbe6553b5ff68bb0 (patch)
treec6f01954d0fe337025ba03e93b825a69f3f04f69
parent927377febe49f9dbf2dc85283583d85beca2f367 (diff)
Add high coreboot table support to libpayload
Signed-off-by: Stefan Reinauer <stepan@coresystems.de> Acked-by: Myles Watson <mylesgw@gmail.com> git-svn-id: svn://svn.coreboot.org/coreboot/trunk@4016 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
-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;