mirror of
https://git.savannah.gnu.org/git/grub.git
synced 2026-10-22 07:12:39 +00:00
i386/linux: Add support for ext_lfb_base
The EFI Graphics Output Protocol can return a 64-bit linear frame buffer address in some firmware/BIOS implementations. We currently only store the lower 32-bits in the lfb_base. This will eventually be passed to Linux kernel and the efifb driver will incorrectly interpret the framebuffer address as 32-bit address. The Linux kernel has already added support to handle 64-bit linear framebuffer address in the efifb driver since quite some time now. This patch adds the support for 64-bit linear frame buffer address in GRUB to address the above mentioned scenario. Signed-off-by: Arindam Nath <arindam.nath@amd.com> Reviewed-by: Daniel Kiper <daniel.kiper@oracle.com>
This commit is contained in:
1 parent
9b37229f01
commit
886edba877
2 files changed
+11
-1
No files matched your search
@@ -43,6 +43,9 @@
|
||||
|
||||
#define GRUB_LINUX_CL_MAGIC 0xA33F
|
||||
|
||||
#define VIDEO_CAPABILITY_SKIP_QUIRKS (1 << 0)
|
||||
#define VIDEO_CAPABILITY_64BIT_BASE (1 << 1) /* Frame buffer base is 64-bit. */
|
||||
|
||||
#ifdef __x86_64__
|
||||
|
||||
#define GRUB_LINUX_EFI_SIGNATURE \
|
||||
@@ -188,8 +191,9 @@ struct linux_kernel_params
|
||||
grub_uint16_t lfb_pages; /* 32 */
|
||||
grub_uint16_t vesa_attrib; /* 34 */
|
||||
grub_uint32_t capabilities; /* 36 */
|
||||
grub_uint32_t ext_lfb_base; /* 3a */
|
||||
|
||||
grub_uint8_t padding3[0x40 - 0x3a];
|
||||
grub_uint8_t padding3[0x40 - 0x3e];
|
||||
|
||||
grub_uint16_t apm_version; /* 40 */
|
||||
grub_uint16_t apm_code_segment; /* 42 */
|
||||
|
||||
Reference in new issue
Block a user