diff --git a/cbtable.c b/cbtable.c
index 2a3f2a7..4aa260b 100644
--- a/cbtable.c
+++ b/cbtable.c
@@ -4,7 +4,7 @@
  * Copyright (C) 2002 Steven James <pyro@linuxlabs.com>
  * Copyright (C) 2002 Linux Networx
  * (Written by Eric Biederman <ebiederman@lnxi.com> for Linux Networx)
- * Copyright (C) 2006-2007 coresystems GmbH
+ * Copyright (C) 2006-2009 coresystems GmbH
  * (Written by Stefan Reinauer <stepan@coresystems.de> for coresystems GmbH)
  *
  * This program is free software; you can redistribute it and/or modify
@@ -124,7 +124,7 @@
 				head->table_checksum);
 			continue;
 		}
-		fprintf(stdout, "Found coreboot table at 0x%08lx.\n", addr);
+		printf_debug("Found coreboot table at 0x%08lx.\n", addr);
 		return head;
 
 	};
@@ -181,9 +181,10 @@
 	}
 }
 
+#define BYTES_TO_MAP (1024*1024)
 int coreboot_init(void)
 {
-	uint8_t *low_1MB;
+	uint8_t *table_area;
 	unsigned long addr, start;
 	struct lb_header *lb_table;
 	struct lb_record *rec, *last;
@@ -196,18 +197,31 @@
 #else
 	start = 0x0;
 #endif
-	low_1MB = physmap("low megabyte", start, 1024*1024);
+	table_area = physmap("low megabyte", start, BYTES_TO_MAP);
 
-	lb_table = find_lb_table(low_1MB, 0x00000, 0x1000);
+	lb_table = find_lb_table(table_area, 0x00000, 0x1000);
 	if (!lb_table)
-		lb_table = find_lb_table(low_1MB, 0xf0000, 1024*1024);
+		lb_table = find_lb_table(table_area, 0xf0000, BYTES_TO_MAP);
+	if (lb_table) {
+		struct lb_forward *forward = (struct lb_forward *)
+			(((char *)lb_table) + lb_table->header_bytes);
+		if (forward->tag == LB_TAG_FORWARD) {
+			start = forward->forward;
+			start &= ~(getpagesize()-1);
+			physunmap(table_area, BYTES_TO_MAP);
+			table_area = physmap("high tables", start, BYTES_TO_MAP);
+			lb_table = find_lb_table(table_area, 0x00000, 0x1000);
+		}
+	}
+
 	if (!lb_table) {
 		printf("No coreboot table found.\n");
 		return -1;
 	}
 
-	addr = ((char *)lb_table) - ((char *)low_1MB) + start;
-	printf_debug("coreboot table found at %p.\n", lb_table + start);
+	addr = ((char *)lb_table) - ((char *)table_area) + start;
+	fprintf(stdout, "coreboot table found at 0x%lx.\n", 
+		(unsigned long)lb_table - (unsigned long)table_area + start);
 	rec = (struct lb_record *)(((char *)lb_table) + lb_table->header_bytes);
 	last = (struct lb_record *)(((char *)rec) + lb_table->table_bytes);
 	printf_debug("coreboot header(%d) checksum: %04x table(%d) checksum: %04x entries: %d\n",
diff --git a/coreboot_tables.h b/coreboot_tables.h
index c4c2d4d..2eaff08 100644
--- a/coreboot_tables.h
+++ b/coreboot_tables.h
@@ -135,6 +135,13 @@
 	uint8_t string[0];
 };
 
+#define LB_TAG_FORWARD		0x0011
+struct lb_forward {
+	uint32_t tag;
+	uint32_t size;
+	uint64_t forward;
+};
+
 /* The following structures are for the cmos definitions table */
 #define LB_TAG_CMOS_OPTION_TABLE 200
 /* cmos header record */
