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
This commit is contained in:
Ed Maste 2014-07-03 17:53:28 +00:00
parent e099b3a948
commit b560f3ffa1

View file

@ -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;