Author: stepan Date: 2009-03-17 16:33:41 +0100 (Tue, 17 Mar 2009) New Revision: 4015
Modified: trunk/util/mkelfImage/include/linuxbios_tables.h trunk/util/mkelfImage/linux-i386/convert_params.c Log:
Add support for high coreboot table to mkelfimage
Signed-off-by: Stefan Reinauer stepan@coresystems.de Acked-by: Myles Watson mylesgw@gmail.com
Modified: trunk/util/mkelfImage/include/linuxbios_tables.h =================================================================== --- trunk/util/mkelfImage/include/linuxbios_tables.h 2009-03-17 15:15:15 UTC (rev 4014) +++ trunk/util/mkelfImage/include/linuxbios_tables.h 2009-03-17 15:33:41 UTC (rev 4015) @@ -79,4 +79,13 @@ uint64_t hwrpb; };
+#define LB_TAG_FORWARD 0x0011 +struct lb_forward { + uint32_t tag; + uint32_t size; + uint64_t forward; +}; + + + #endif /* LINUXBIOS_TABLES_H */
Modified: trunk/util/mkelfImage/linux-i386/convert_params.c =================================================================== --- trunk/util/mkelfImage/linux-i386/convert_params.c 2009-03-17 15:15:15 UTC (rev 4014) +++ trunk/util/mkelfImage/linux-i386/convert_params.c 2009-03-17 15:33:41 UTC (rev 4015) @@ -978,6 +978,13 @@ 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;