diff options
Diffstat (limited to 'payloads/libpayload/arch/i386')
-rw-r--r-- | payloads/libpayload/arch/i386/coreboot.c | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/payloads/libpayload/arch/i386/coreboot.c b/payloads/libpayload/arch/i386/coreboot.c index 95d8f16f76..8441903e7c 100644 --- a/payloads/libpayload/arch/i386/coreboot.c +++ b/payloads/libpayload/arch/i386/coreboot.c @@ -95,6 +95,13 @@ static void cb_parse_checksum(unsigned char *ptr, struct sysinfo_t *info) } #endif +#ifdef CONFIG_COREBOOT_VIDEO_CONSOLE +static void cb_parse_framebuffer(unsigned char *ptr, struct sysinfo_t *info) +{ + info->framebuffer = (struct cb_framebuffer *)ptr; +} +#endif + static int cb_parse_header(void *addr, int len, struct sysinfo_t *info) { struct cb_header *header; @@ -147,6 +154,13 @@ static int cb_parse_header(void *addr, int len, struct sysinfo_t *info) cb_parse_checksum(ptr, info); break; #endif +#ifdef CONFIG_COREBOOT_VIDEO_CONSOLE + // FIXME we should warn on serial if coreboot set up a + // framebuffer buf the payload does not know about it. + case CB_TAG_FRAMEBUFFER: + cb_parse_framebuffer(ptr, info); + break; +#endif } ptr += rec->size; |