summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStefan Reinauer <stepan@coresystems.de>2009-03-17 15:33:41 +0000
committerStefan Reinauer <stepan@openbios.org>2009-03-17 15:33:41 +0000
commit927377febe49f9dbf2dc85283583d85beca2f367 (patch)
treeb3a2cc2bb627a6165bec7a3c321a542eaeb70ece
parentb743885b43cf735a54da6ac1eddcf81c84f28522 (diff)
downloadcoreboot-927377febe49f9dbf2dc85283583d85beca2f367.tar.xz
Add support for high coreboot table to mkelfimage
Signed-off-by: Stefan Reinauer <stepan@coresystems.de> Acked-by: Myles Watson <mylesgw@gmail.com> git-svn-id: svn://svn.coreboot.org/coreboot/trunk@4015 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
-rw-r--r--util/mkelfImage/include/linuxbios_tables.h9
-rw-r--r--util/mkelfImage/linux-i386/convert_params.c7
2 files changed, 16 insertions, 0 deletions
diff --git a/util/mkelfImage/include/linuxbios_tables.h b/util/mkelfImage/include/linuxbios_tables.h
index c324cf543a..8ee3257ee0 100644
--- a/util/mkelfImage/include/linuxbios_tables.h
+++ b/util/mkelfImage/include/linuxbios_tables.h
@@ -79,4 +79,13 @@ struct lb_hwrpb {
uint64_t hwrpb;
};
+#define LB_TAG_FORWARD 0x0011
+struct lb_forward {
+ uint32_t tag;
+ uint32_t size;
+ uint64_t forward;
+};
+
+
+
#endif /* LINUXBIOS_TABLES_H */
diff --git a/util/mkelfImage/linux-i386/convert_params.c b/util/mkelfImage/linux-i386/convert_params.c
index 501adfbb11..5af3fafca3 100644
--- a/util/mkelfImage/linux-i386/convert_params.c
+++ b/util/mkelfImage/linux-i386/convert_params.c
@@ -978,6 +978,13 @@ static int find_lb_table(struct param_info *info)
head = __find_lb_table((void *)0xf0000, (void *)0x100000);
}
if (head) {
+ struct lb_forward *forward = (struct lb_forward *)(((char *)head) + head->header_bytes);
+ if (forward->tag == LB_TAG_FORWARD) {
+ head = __find_lb_table(forward->forward,
+ forward->forward + 0x1000);
+ }
+ }
+ if (head) {
info->has_linuxbios = 1;
info->lb_table = head;
return 1;