diff options
author | Stefan Reinauer <stepan@coresystems.de> | 2009-03-17 15:33:41 +0000 |
---|---|---|
committer | Stefan Reinauer <stepan@openbios.org> | 2009-03-17 15:33:41 +0000 |
commit | 927377febe49f9dbf2dc85283583d85beca2f367 (patch) | |
tree | b3a2cc2bb627a6165bec7a3c321a542eaeb70ece /util/mkelfImage | |
parent | b743885b43cf735a54da6ac1eddcf81c84f28522 (diff) |
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
Diffstat (limited to 'util/mkelfImage')
-rw-r--r-- | util/mkelfImage/include/linuxbios_tables.h | 9 | ||||
-rw-r--r-- | util/mkelfImage/linux-i386/convert_params.c | 7 |
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; |