aboutsummaryrefslogtreecommitdiffstats
path: root/main/grub/0002-loader-linux-Support-passing-RSDP-address-via-boot-p.patch
diff options
context:
space:
mode:
authorHenrik Riomar <henrik.riomar@gmail.com>2019-04-03 16:07:12 +0200
committerLeonardo Arena <rnalrd@alpinelinux.org>2019-04-05 06:53:00 +0000
commitc40e9ceff34231100ff228d3015900e945727a7f (patch)
treec1960c097ca33cac4b1718485144cd5603f6b96a /main/grub/0002-loader-linux-Support-passing-RSDP-address-via-boot-p.patch
parent311f3a86010da63e189043d072f745b478b45309 (diff)
downloadaports-c40e9ceff34231100ff228d3015900e945727a7f.tar.bz2
aports-c40e9ceff34231100ff228d3015900e945727a7f.tar.xz
main/grub: add xen pvh support
* Backport xen_pvh patches from grub master branch * Adds grub-i386-xen_pvh.bin to the grub-xenhost package
Diffstat (limited to 'main/grub/0002-loader-linux-Support-passing-RSDP-address-via-boot-p.patch')
-rw-r--r--main/grub/0002-loader-linux-Support-passing-RSDP-address-via-boot-p.patch51
1 files changed, 51 insertions, 0 deletions
diff --git a/main/grub/0002-loader-linux-Support-passing-RSDP-address-via-boot-p.patch b/main/grub/0002-loader-linux-Support-passing-RSDP-address-via-boot-p.patch
new file mode 100644
index 0000000000..83f55c2681
--- /dev/null
+++ b/main/grub/0002-loader-linux-Support-passing-RSDP-address-via-boot-p.patch
@@ -0,0 +1,51 @@
+From b800b2b23ac56a5d0fb39b1acfcd9e3d4e0a93c0 Mon Sep 17 00:00:00 2001
+From: Juergen Gross <jgross@suse.com>
+Date: Fri, 7 Dec 2018 13:11:30 +0100
+Subject: [PATCH 02/20] loader/linux: Support passing RSDP address via boot
+ params
+
+Xen PVH guests will have the RSDP at an arbitrary address. Support that
+by passing the RSDP address via the boot parameters to Linux.
+
+Signed-off-by: Juergen Gross <jgross@suse.com>
+Reviewed-by: Daniel Kiper <daniel.kiper@oracle.com>
+Tested-by: Hans van Kranenburg <hans@knorrie.org>
+(cherry picked from commit d170be42f12b0b2ab91d8d943d7b0bf563c906dd)
+---
+ grub-core/loader/i386/linux.c | 4 ++++
+ include/grub/i386/linux.h | 3 ++-
+ 2 files changed, 6 insertions(+), 1 deletion(-)
+
+diff --git a/grub-core/loader/i386/linux.c b/grub-core/loader/i386/linux.c
+index 083f9417c..7d6d5d499 100644
+--- a/grub-core/loader/i386/linux.c
++++ b/grub-core/loader/i386/linux.c
+@@ -551,6 +551,10 @@ grub_linux_boot (void)
+ }
+ }
+
++#ifdef GRUB_KERNEL_USE_RSDP_ADDR
++ linux_params.acpi_rsdp_addr = grub_le_to_cpu64 (grub_rsdp_addr);
++#endif
++
+ mmap_size = find_mmap_size ();
+ /* Make sure that each size is aligned to a page boundary. */
+ cl_offset = ALIGN_UP (mmap_size + sizeof (linux_params), 4096);
+diff --git a/include/grub/i386/linux.h b/include/grub/i386/linux.h
+index da0ca3b83..ada068fa5 100644
+--- a/include/grub/i386/linux.h
++++ b/include/grub/i386/linux.h
+@@ -206,8 +206,9 @@ struct linux_kernel_params
+ grub_uint32_t ist_command; /* 64 */
+ grub_uint32_t ist_event; /* 68 */
+ grub_uint32_t ist_perf_level; /* 6c */
++ grub_uint64_t acpi_rsdp_addr; /* 70 */
+
+- grub_uint8_t padding5[0x80 - 0x70];
++ grub_uint8_t padding5[0x80 - 0x78];
+
+ grub_uint8_t hd0_drive_info[0x10]; /* 80 */
+ grub_uint8_t hd1_drive_info[0x10]; /* 90 */
+--
+2.21.0
+