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:
committed by
Stefan Reinauer
parent
b743885b43
commit
927377febe
@ -79,4 +79,13 @@ struct lb_hwrpb {
|
|||||||
uint64_t 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 */
|
#endif /* LINUXBIOS_TABLES_H */
|
||||||
|
@ -977,6 +977,13 @@ static int find_lb_table(struct param_info *info)
|
|||||||
/* Then try at address 0xf0000 */
|
/* Then try at address 0xf0000 */
|
||||||
head = __find_lb_table((void *)0xf0000, (void *)0x100000);
|
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) {
|
if (head) {
|
||||||
info->has_linuxbios = 1;
|
info->has_linuxbios = 1;
|
||||||
info->lb_table = head;
|
info->lb_table = head;
|
||||||
|
Reference in New Issue
Block a user