Add high coreboot table support to libpayload
authorStefan Reinauer <stepan@coresystems.de>
Tue, 17 Mar 2009 16:41:01 +0000 (16:41 +0000)
committerStefan Reinauer <stepan@openbios.org>
Tue, 17 Mar 2009 16:41:01 +0000 (16:41 +0000)
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

payloads/libpayload/i386/coreboot.c
payloads/libpayload/include/coreboot_tables.h

index 2a675afbe69b2fae28a63333016bb3de5be60876..66e02f11b72936cfe8889b7f4fa0898beaa8ad45 100644 (file)
@@ -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;
index a289a91c6f9793b066cb46b6e2d281dd9b020ffd..768bb34ec1fdc3470d16db70cb196486506fbdfe 100644 (file)
@@ -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;