URL:
<http://savannah.gnu.org/bugs/?50931>
Summary: Page Fault Exception when grub loads with an Nvidia
cards
Project: GNU GRUB
Submitted by: nzimmer
Submitted on: Wed 03 May 2017 04:32:30 PM UTC
Category: Booting
Severity: Major
Priority: 5 - Normal
Item Group: Software Error
Status: None
Privacy: Public
Assigned to: None
Originator Name: Nathan Zimmer
Originator Email: [email protected]
Open/Closed: Open
Discussion Lock: Any
Release:
Release: Git master
Reproducibility: Every Time
Planned Release: None
_______________________________________________________
Details:
On some of our uv systems with nvidia card grub takes a Page Fault Exception.
After some digging it was discovered that the efi_uga module is not able to
handle a framebuffer at a 64-bit address.
In find_card (grub_pci_device_t dev, grub_pci_id_t pciid, void *data) the
64-bit VMEM bar in base64 is correctly calculated.
The problem is that *ctx->fb_base is type grub_uint32_t, but base64 is type
grub_uint64_t. So grub is storing a
64-bit framebuffer pointer into a 32-bit field, truncating off the
high bits, and leaving zeros.
This size mismatch goes all the way back up the call chain:
find_line_len()->find_card()->find_framebuf()->check_protocol().
_______________________________________________________
Reply to this item at:
<http://savannah.gnu.org/bugs/?50931>
_______________________________________________
Message sent via/by Savannah
http://savannah.gnu.org/
_______________________________________________
Bug-grub mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/bug-grub