aboutsummaryrefslogtreecommitdiffstats
path: root/main/grub/0009-xen-Add-basic-hooks-for-PVH-in-current-code.patch
diff options
context:
space:
mode:
Diffstat (limited to 'main/grub/0009-xen-Add-basic-hooks-for-PVH-in-current-code.patch')
-rw-r--r--main/grub/0009-xen-Add-basic-hooks-for-PVH-in-current-code.patch267
1 files changed, 0 insertions, 267 deletions
diff --git a/main/grub/0009-xen-Add-basic-hooks-for-PVH-in-current-code.patch b/main/grub/0009-xen-Add-basic-hooks-for-PVH-in-current-code.patch
deleted file mode 100644
index 2c663bc5511..00000000000
--- a/main/grub/0009-xen-Add-basic-hooks-for-PVH-in-current-code.patch
+++ /dev/null
@@ -1,267 +0,0 @@
-From 6f19a6f001e182b9716ea850ce39bb2545c558cb Mon Sep 17 00:00:00 2001
-From: Juergen Gross <jgross@suse.com>
-Date: Fri, 7 Dec 2018 13:11:37 +0100
-Subject: [PATCH 09/20] xen: Add basic hooks for PVH in current code
-
-Add the hooks to current code needed for Xen PVH. They will be filled
-with code later when the related functionality is being added.
-
-loader/i386/linux.c needs to include machine/kernel.h now as it needs
-to get GRUB_KERNEL_USE_RSDP_ADDR from there. This in turn requires to
-add an empty kernel.h header for some i386 platforms (efi, coreboot,
-ieee1275, xen) and for x86_64 efi.
-
-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 0b3e4eb2d2e1875e6045e838962f769f2ce161dd)
----
- grub-core/Makefile.am | 6 +++++
- grub-core/kern/i386/xen/pvh.c | 37 +++++++++++++++++++++++++++
- grub-core/kern/i386/xen/startup_pvh.S | 29 +++++++++++++++++++++
- grub-core/kern/xen/init.c | 4 +++
- grub-core/loader/i386/linux.c | 1 +
- include/grub/i386/coreboot/kernel.h | 0
- include/grub/i386/efi/kernel.h | 0
- include/grub/i386/ieee1275/kernel.h | 0
- include/grub/i386/xen/kernel.h | 0
- include/grub/i386/xen_pvh/kernel.h | 30 ++++++++++++++++++++++
- include/grub/x86_64/efi/kernel.h | 0
- include/grub/xen.h | 5 ++++
- 12 files changed, 112 insertions(+)
- create mode 100644 grub-core/kern/i386/xen/pvh.c
- create mode 100644 grub-core/kern/i386/xen/startup_pvh.S
- create mode 100644 include/grub/i386/coreboot/kernel.h
- create mode 100644 include/grub/i386/efi/kernel.h
- create mode 100644 include/grub/i386/ieee1275/kernel.h
- create mode 100644 include/grub/i386/xen/kernel.h
- create mode 100644 include/grub/i386/xen_pvh/kernel.h
- create mode 100644 include/grub/x86_64/efi/kernel.h
-
-diff --git a/grub-core/Makefile.am b/grub-core/Makefile.am
-index 04e9395fd..e36c109e2 100644
---- a/grub-core/Makefile.am
-+++ b/grub-core/Makefile.am
-@@ -102,6 +102,7 @@ KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/i386/tsc.h
- endif
-
- if COND_i386_efi
-+KERNEL_HEADER_FILES += $(top_builddir)/include/grub/machine/kernel.h
- KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/efi/efi.h
- KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/efi/disk.h
- KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/i386/tsc.h
-@@ -111,6 +112,7 @@ KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/i386/pmtimer.h
- endif
-
- if COND_i386_coreboot
-+KERNEL_HEADER_FILES += $(top_builddir)/include/grub/machine/kernel.h
- KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/i386/tsc.h
- KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/i386/coreboot/lbio.h
- KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/video.h
-@@ -122,6 +124,7 @@ KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/acpi.h
- endif
-
- if COND_i386_multiboot
-+KERNEL_HEADER_FILES += $(top_builddir)/include/grub/machine/kernel.h
- KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/i386/tsc.h
- KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/acpi.h
- endif
-@@ -132,6 +135,7 @@ KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/i386/tsc.h
- endif
-
- if COND_i386_ieee1275
-+KERNEL_HEADER_FILES += $(top_builddir)/include/grub/machine/kernel.h
- KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/ieee1275/ieee1275.h
- KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/terminfo.h
- KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/extcmd.h
-@@ -140,6 +144,7 @@ KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/i386/tsc.h
- endif
-
- if COND_i386_xen
-+KERNEL_HEADER_FILES += $(top_builddir)/include/grub/machine/kernel.h
- KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/xen.h
- KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/i386/xen/hypercall.h
- KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/terminfo.h
-@@ -158,6 +163,7 @@ KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/loader.h
- endif
-
- if COND_x86_64_efi
-+KERNEL_HEADER_FILES += $(top_builddir)/include/grub/machine/kernel.h
- KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/efi/efi.h
- KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/efi/disk.h
- KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/i386/tsc.h
-diff --git a/grub-core/kern/i386/xen/pvh.c b/grub-core/kern/i386/xen/pvh.c
-new file mode 100644
-index 000000000..4f629b15e
---- /dev/null
-+++ b/grub-core/kern/i386/xen/pvh.c
-@@ -0,0 +1,37 @@
-+/*
-+ * GRUB -- GRand Unified Bootloader
-+ * Copyright (C) 2018 Free Software Foundation, Inc.
-+ *
-+ * GRUB is free software: you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation, either version 3 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * GRUB is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-+ * GNU General Public License for more details.
-+ *
-+ * You should have received a copy of the GNU General Public License
-+ * along with GRUB. If not, see <http://www.gnu.org/licenses/>.
-+ */
-+
-+#include <grub/kernel.h>
-+#include <grub/misc.h>
-+#include <grub/memory.h>
-+#include <grub/mm.h>
-+#include <grub/xen.h>
-+#include <xen/hvm/start_info.h>
-+#include <grub/machine/kernel.h>
-+
-+grub_uint64_t grub_rsdp_addr;
-+
-+void
-+grub_xen_setup_pvh (void)
-+{
-+}
-+
-+grub_err_t
-+grub_machine_mmap_iterate (grub_memory_hook_t hook, void *hook_data)
-+{
-+}
-diff --git a/grub-core/kern/i386/xen/startup_pvh.S b/grub-core/kern/i386/xen/startup_pvh.S
-new file mode 100644
-index 000000000..69b8fdcca
---- /dev/null
-+++ b/grub-core/kern/i386/xen/startup_pvh.S
-@@ -0,0 +1,29 @@
-+/* startup.S - bootstrap GRUB itself */
-+/*
-+ * GRUB -- GRand Unified Bootloader
-+ * Copyright (C) 2018 Free Software Foundation, Inc.
-+ *
-+ * GRUB is free software: you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation, either version 3 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * GRUB is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-+ * GNU General Public License for more details.
-+ *
-+ * You should have received a copy of the GNU General Public License
-+ * along with GRUB. If not, see <http://www.gnu.org/licenses/>.
-+ */
-+
-+#include <config.h>
-+#include <grub/symbol.h>
-+
-+ .file "startup_pvh.S"
-+ .text
-+
-+/* Saved pointer to start info structure. */
-+ .globl pvh_start_info
-+pvh_start_info:
-+ .long 0
-diff --git a/grub-core/kern/xen/init.c b/grub-core/kern/xen/init.c
-index a23dad633..782ca7295 100644
---- a/grub-core/kern/xen/init.c
-+++ b/grub-core/kern/xen/init.c
-@@ -564,6 +564,10 @@ grub_machine_init (void)
- + GRUB_KERNEL_MACHINE_MOD_GAP,
- GRUB_KERNEL_MACHINE_MOD_ALIGN);
-
-+#ifdef GRUB_MACHINE_XEN_PVH
-+ grub_xen_setup_pvh ();
-+#endif
-+
- grub_xen_setup_gnttab ();
-
- #ifdef GRUB_MACHINE_XEN
-diff --git a/grub-core/loader/i386/linux.c b/grub-core/loader/i386/linux.c
-index 7d6d5d499..e0825cb21 100644
---- a/grub-core/loader/i386/linux.c
-+++ b/grub-core/loader/i386/linux.c
-@@ -35,6 +35,7 @@
- #include <grub/i18n.h>
- #include <grub/lib/cmdline.h>
- #include <grub/linux.h>
-+#include <grub/machine/kernel.h>
-
- GRUB_MOD_LICENSE ("GPLv3+");
-
-diff --git a/include/grub/i386/coreboot/kernel.h b/include/grub/i386/coreboot/kernel.h
-new file mode 100644
-index 000000000..e69de29bb
-diff --git a/include/grub/i386/efi/kernel.h b/include/grub/i386/efi/kernel.h
-new file mode 100644
-index 000000000..e69de29bb
-diff --git a/include/grub/i386/ieee1275/kernel.h b/include/grub/i386/ieee1275/kernel.h
-new file mode 100644
-index 000000000..e69de29bb
-diff --git a/include/grub/i386/xen/kernel.h b/include/grub/i386/xen/kernel.h
-new file mode 100644
-index 000000000..e69de29bb
-diff --git a/include/grub/i386/xen_pvh/kernel.h b/include/grub/i386/xen_pvh/kernel.h
-new file mode 100644
-index 000000000..2b7b8a129
---- /dev/null
-+++ b/include/grub/i386/xen_pvh/kernel.h
-@@ -0,0 +1,30 @@
-+/*
-+ * GRUB -- GRand Unified Bootloader
-+ * Copyright (C) 2018 Free Software Foundation, Inc.
-+ *
-+ * GRUB is free software: you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation, either version 3 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * GRUB is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-+ * GNU General Public License for more details.
-+ *
-+ * You should have received a copy of the GNU General Public License
-+ * along with GRUB. If not, see <http://www.gnu.org/licenses/>.
-+ */
-+
-+#ifndef GRUB_KERNEL_MACHINE_HEADER
-+#define GRUB_KERNEL_MACHINE_HEADER 1
-+
-+#ifndef ASM_FILE
-+
-+#define GRUB_KERNEL_USE_RSDP_ADDR 1
-+
-+extern grub_uint64_t EXPORT_VAR(grub_rsdp_addr);
-+
-+#endif /* ! ASM_FILE */
-+
-+#endif /* GRUB_KERNEL_MACHINE_HEADER */
-diff --git a/include/grub/x86_64/efi/kernel.h b/include/grub/x86_64/efi/kernel.h
-new file mode 100644
-index 000000000..e69de29bb
-diff --git a/include/grub/xen.h b/include/grub/xen.h
-index c31cc10c7..91cb7cf81 100644
---- a/include/grub/xen.h
-+++ b/include/grub/xen.h
-@@ -95,6 +95,11 @@ typedef grub_uint64_t grub_xen_mfn_t;
- typedef grub_uint32_t grub_xen_mfn_t;
- #endif
- typedef unsigned int grub_xen_evtchn_t;
-+
-+#ifdef GRUB_MACHINE_XEN_PVH
-+extern struct hvm_start_info *pvh_start_info;
-+void grub_xen_setup_pvh (void);
-+#endif
- #endif
-
- #endif
---
-2.21.0
-