[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH 1/1] Fix PCIe LER when GRUB2 accesses non-enabled MMIO data f
From: |
Daniel Kiper |
Subject: |
Re: [PATCH 1/1] Fix PCIe LER when GRUB2 accesses non-enabled MMIO data from VGA |
Date: |
Mon, 26 Mar 2018 17:11:43 +0200 |
User-agent: |
Mutt/1.3.28i |
On Fri, Mar 23, 2018 at 02:11:33PM -0500, Mike Travis wrote:
> A GPU inserted into a PCIe I/O slot disappears during system startup.
> The problem centers around GRUB and a specific VGA init function in
> efi_uga.c. This causes an LER (link error recorvery) because the MMIO
> memory has not been enabled before attempting access.
>
> The fix is to add the same coding used in other VGA drivers, specifically
> to add a check to insure that it is indeed a VGA controller. And then
> enable the MMIO address space with the specific bits.
>
> Signed-off-by: Mike Travis <address@hidden>
> Reviewed-by: Michael Chang <address@hidden>
> ---
> grub-2.02/grub-core/video/efi_uga.c | 15 ++++++++++++---
> 1 file changed, 12 insertions(+), 3 deletions(-)
>
> Index: grub-2.02/grub-core/video/efi_uga.c
> ===================================================================
> --- grub-2.02/grub-core/video/efi_uga.c.orig
> +++ grub-2.02/grub-core/video/efi_uga.c
> @@ -95,9 +95,19 @@ find_card (grub_pci_device_t dev, grub_p
> {
> struct find_framebuf_ctx *ctx = data;
> grub_pci_address_t addr;
> + grub_uint32_t class;
s/class/subclass/
> addr = grub_pci_make_address (dev, GRUB_PCI_REG_CLASS);
> - if (grub_pci_read (addr) >> 24 == 0x3)
> + class = grub_pci_read (addr);
subclass = (grub_pci_read (addr) >> 16) & 0xffff;
> + if (((class >> 16) & 0xffff) != GRUB_PCI_CLASS_SUBCLASS_VGA)
if (subclass != GRUB_PCI_CLASS_SUBCLASS_VGA)
> + return 0;
> +
> + /* Enable MEM address spaces */
> + {
> + grub_pci_address_t rcaddr = grub_pci_make_address (dev,
> GRUB_PCI_REG_COMMAND);
> + grub_pci_write_word (rcaddr, grub_pci_read_word (rcaddr) |
> GRUB_PCI_COMMAND_MEM_ENABLED);
> + }
Please drop these curly brackets.
Daniel
- [PATCH 1/1] Fix PCIe LER when GRUB2 accesses non-enabled MMIO data from VGA, Mike Travis, 2018/03/23
- Re: [PATCH 1/1] Fix PCIe LER when GRUB2 accesses non-enabled MMIO data from VGA,
Daniel Kiper <=
- [PATCH 1/1] Fix PCIe LER when GRUB2 accesses non-enabled MMIO data from VGA, mike.travis, 2018/03/28
- Re: [PATCH 1/1] Fix PCIe LER when GRUB2 accesses non-enabled MMIO data from VGA, Daniel Kiper, 2018/03/29
- Re: [PATCH 1/1] Fix PCIe LER when GRUB2 accesses non-enabled MMIO data from VGA, Michael Chang, 2018/03/29
- Re: [PATCH 1/1] Fix PCIe LER when GRUB2 accesses non-enabled MMIO data from VGA, Daniel Kiper, 2018/03/29
- Re: [PATCH 1/1] Fix PCIe LER when GRUB2 accesses non-enabled MMIO data from VGA, Mike Travis, 2018/03/29
- Re: [PATCH 1/1] Fix PCIe LER when GRUB2 accesses non-enabled MMIO data from VGA, Hans de Goede, 2018/03/29
- Re: [PATCH 1/1] Fix PCIe LER when GRUB2 accesses non-enabled MMIO data from VGA, Daniel Kiper, 2018/03/29