Add high coreboot table support to libpayload

Signed-off-by: Stefan Reinauer <stepan@coresystems.de>

Index: include/coreboot_tables.h
===================================================================
--- include/coreboot_tables.h	(revision 1300)
+++ include/coreboot_tables.h	(working copy)
@@ -128,6 +128,14 @@
 #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;
Index: i386/coreboot.c
===================================================================
--- i386/coreboot.c	(revision 1300)
+++ i386/coreboot.c	(working copy)
@@ -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 @@
 
 		/* 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;
