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
This commit is contained in:
Stefan Reinauer 2009-03-17 15:33:41 +00:00 committed by Stefan Reinauer
parent b743885b43
commit 927377febe
2 changed files with 16 additions and 0 deletions

View File

@ -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 */

View File

@ -977,6 +977,13 @@ static int find_lb_table(struct param_info *info)
/* Then try at address 0xf0000 */
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;