diff options
author | Henrik Riomar <henrik.riomar@gmail.com> | 2019-04-03 16:07:12 +0200 |
---|---|---|
committer | Leonardo Arena <rnalrd@alpinelinux.org> | 2019-04-05 06:53:00 +0000 |
commit | c40e9ceff34231100ff228d3015900e945727a7f (patch) | |
tree | c1960c097ca33cac4b1718485144cd5603f6b96a /main/grub/0002-loader-linux-Support-passing-RSDP-address-via-boot-p.patch | |
parent | 311f3a86010da63e189043d072f745b478b45309 (diff) | |
download | aports-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.patch | 51 |
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 + |