grub2/0235-EFI-more-debug-output-on-GOP-and-UGA-probing.patch
Peter Jones 98536ecf37 Once more into the breach, dear friends.
- Limit grub_malloc() on x86_64 to < 31bit addresses, as some devices seem to
  have a colossally broken storage controller (or UEFI driver) that can't do
  DMA to higher memory addresses, but fails silently.
  Resolves: rhbz#1626844 (possibly really resolving it this time.)
- Also integrate Hans's attempt to fix the related error from -54, but do it
  the other way around: try the low addresses first and *then* the high one if
  the allocation fails.  This way we'll get low regions by default, and if
  kernel/initramfs don't fit anywhere, it'll try the higher addresses.
  Related: rhbz#1624532
- Coalesce all the intermediate debugging junk from -54/-55/-56.

Signed-off-by: Peter Jones <pjones@redhat.com>
2018-09-11 18:08:44 -04:00

66 lines
2.2 KiB
Diff

From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Peter Jones <pjones@redhat.com>
Date: Mon, 10 Sep 2018 13:01:24 -0400
Subject: [PATCH] EFI: more debug output on GOP and UGA probing.
Signed-off-by: Peter Jones <pjones@redhat.com>
---
grub-core/video/efi_gop.c | 8 +++++++-
grub-core/video/efi_uga.c | 4 ++--
2 files changed, 9 insertions(+), 3 deletions(-)
diff --git a/grub-core/video/efi_gop.c b/grub-core/video/efi_gop.c
index c9e40e8d4e9..be446f8d291 100644
--- a/grub-core/video/efi_gop.c
+++ b/grub-core/video/efi_gop.c
@@ -71,7 +71,10 @@ check_protocol (void)
handles = grub_efi_locate_handle (GRUB_EFI_BY_PROTOCOL,
&graphics_output_guid, NULL, &num_handles);
if (!handles || num_handles == 0)
- return 0;
+ {
+ grub_dprintf ("video", "GOP: no handles\n");
+ return 0;
+ }
for (i = 0; i < num_handles; i++)
{
@@ -81,6 +84,7 @@ check_protocol (void)
grub_video_gop_iterate (check_protocol_hook, &have_usable_mode);
if (have_usable_mode)
{
+ grub_dprintf ("video", "GOP: found usable mode\n");
grub_free (handles);
return 1;
}
@@ -89,6 +93,8 @@ check_protocol (void)
gop = 0;
gop_handle = 0;
+ grub_dprintf ("video", "GOP: no usable mode\n");
+
return 0;
}
diff --git a/grub-core/video/efi_uga.c b/grub-core/video/efi_uga.c
index 97a607c01a5..e74d6c23500 100644
--- a/grub-core/video/efi_uga.c
+++ b/grub-core/video/efi_uga.c
@@ -110,7 +110,7 @@ find_card (grub_pci_device_t dev, grub_pci_id_t pciid, void *data)
{
int i;
- grub_dprintf ("fb", "Display controller: %d:%d.%d\nDevice id: %x\n",
+ grub_dprintf ("video", "Display controller: %d:%d.%d\nDevice id: %x\n",
grub_pci_get_bus (dev), grub_pci_get_device (dev),
grub_pci_get_function (dev), pciid);
addr += 8;
@@ -140,7 +140,7 @@ find_card (grub_pci_device_t dev, grub_pci_id_t pciid, void *data)
base64 <<= 32;
base64 |= (old_bar1 & GRUB_PCI_ADDR_MEM_MASK);
- grub_dprintf ("fb", "%s(%d): 0x%" PRIxGRUB_UINT64_T "\n",
+ grub_dprintf ("video", "%s(%d): 0x%" PRIxGRUB_UINT64_T "\n",
((old_bar1 & GRUB_PCI_ADDR_MEM_PREFETCH) ?
"VMEM" : "MMIO"), type == GRUB_PCI_ADDR_MEM_TYPE_64 ? i - 1 : i,
base64);