From b560f3ffa1b8d55cf285e2decb1d05c513f02c35 Mon Sep 17 00:00:00 2001 From: Ed Maste Date: Thu, 3 Jul 2014 17:53:28 +0000 Subject: [PATCH] Display efi framebuffer dimensions on boot The EFI framebuffer produces corrupted output on certain systems. For now display the framebuffer parameters (address, dimensions, etc.) on boot to aid in tracking down these issues. Sponsored by: The FreeBSD Foundation --- sys/boot/amd64/efi/bootinfo.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/sys/boot/amd64/efi/bootinfo.c b/sys/boot/amd64/efi/bootinfo.c index bf11f5b73b2..db82b241df5 100644 --- a/sys/boot/amd64/efi/bootinfo.c +++ b/sys/boot/amd64/efi/bootinfo.c @@ -225,8 +225,15 @@ bi_load_efi_data(struct preloaded_file *kfp) struct efi_map_header *efihdr; struct efi_fb efifb; - if (efi_find_framebuffer(&efifb) == 0) + if (efi_find_framebuffer(&efifb) == 0) { + printf("EFI framebuffer information:\n"); + printf("addr, size 0x%lx, 0x%lx\n", efifb.fb_addr, efifb.fb_size); + printf("dimensions %d x %d\n", efifb.fb_width, efifb.fb_height); + printf("stride %d\n", efifb.fb_stride); + printf("masks 0x%08x, 0x%08x, 0x%08x, 0x%08x\n", efifb.fb_mask_red, efifb.fb_mask_green, efifb.fb_mask_blue, efifb.fb_mask_reserved); + file_addmetadata(kfp, MODINFOMD_EFI_FB, sizeof(efifb), &efifb); + } efisz = (sizeof(struct efi_map_header) + 0xf) & ~0xf;