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:
emaste 2014-07-03 17:53:28 +00:00
parent af9b8de020
commit b4e512449f

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;