File grub-0.97-bz825054-Pass-high-order-address-bits-to-EFI-maps.patch of Package grub

From 79ecfffd3bf5254c6cc5d8856004c5c0b87dcf1e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?V=C3=A1clav=20Pavl=C3=ADn?= <vpavlin@redhat.com>
Date: Tue, 9 Oct 2012 10:31:29 +0200
Subject: [PATCH 3/3] bz#825054 Pass high order address bits to EFI maps

Pass hig order bits to EFI system map and memory map.
---
 efi/grub/x86_64/linux.h   | 3 ++-
 efi/x86_64/loader/linux.c | 2 ++
 2 files changed, 4 insertions(+), 1 deletion(-)

diff --git a/efi/grub/x86_64/linux.h b/efi/grub/x86_64/linux.h
index 65af9ee..282cd66 100644
--- a/efi/grub/x86_64/linux.h
+++ b/efi/grub/x86_64/linux.h
@@ -201,7 +201,8 @@ struct linux_kernel_params
       grub_uint32_t efi_mem_desc_version; /* 0x1cc */
       grub_uint32_t efi_mmap; /* 0x1d0 */
       grub_uint32_t efi_mmap_size; /* 0x1d4 */
-      grub_uint8_t padding7_4[0x1e0 - 0x1d8]; /* 0x1d8 */
+      grub_uint32_t efi_system_table_hi;       /* 1d8 */
+      grub_uint32_t efi_mmap_hi;       /* 1dc */
     } version_0206;
   };
 
diff --git a/efi/x86_64/loader/linux.c b/efi/x86_64/loader/linux.c
index 7e57a5c..ceebf5b 100644
--- a/efi/x86_64/loader/linux.c
+++ b/efi/x86_64/loader/linux.c
@@ -222,6 +222,7 @@ big_linux_boot (void)
     params->version_0206.efi_mem_desc_version = desc_version;
     params->version_0206.efi_mmap = (grub_uint32_t) (unsigned long) mmap_buf;
     params->version_0206.efi_mmap_size = mmap_size;
+    params->version_0206.efi_mmap_hi = PTR_HI(mmap_buf);
   } else if (grub_le_to_cpu16 (lh->version) >= 0x0204) {
     params->version_0204.efi_mem_desc_size = desc_size;
     params->version_0204.efi_mem_desc_version = desc_version;
@@ -378,6 +379,7 @@ grub_load_linux (char *kernel, char *arg)
     grub_memcpy(&params->version_0204.efi_signature, "EL64", 4);
     params->version_0206.efi_system_table = \
                         (grub_uint32_t) (unsigned long) grub_efi_system_table;
+    params->version_0206.efi_system_table_hi = PTR_HI(grub_efi_system_table);
   } else if (grub_le_to_cpu16 (lh->version) >= 0x0204) {
     grub_memcpy(&params->version_0204.efi_signature, "EFIL", 4);
     params->version_0204.efi_system_table = \
-- 
1.7.11.4

openSUSE Build Service is sponsored by