2018-07-12 14:56:34 +00:00
|
|
|
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
2018-07-10 19:08:14 +00:00
|
|
|
From: Leif Lindholm <leif.lindholm@linaro.org>
|
|
|
|
Date: Thu, 1 Feb 2018 18:18:49 +0000
|
|
|
|
Subject: [PATCH] arm64/efi: move EFI_PAGE definitions to efi/memory.h
|
|
|
|
|
|
|
|
The EFI page definitions and macros are generic and should not be confined
|
|
|
|
to arm64 headers - so move to efi/memory.h.
|
|
|
|
Also add EFI_PAGE_SIZE macro.
|
|
|
|
|
|
|
|
Update loader sources to reflect new header location.
|
|
|
|
|
|
|
|
Signed-off-by: Leif Lindholm <leif.lindholm@linaro.org>
|
|
|
|
Reviewed-by: Daniel Kiper <daniel.kiper@oracle.com>
|
|
|
|
---
|
|
|
|
grub-core/loader/arm64/linux.c | 1 +
|
|
|
|
grub-core/loader/arm64/xen_boot.c | 1 +
|
|
|
|
grub-core/loader/efi/fdt.c | 1 +
|
|
|
|
include/grub/efi/fdtload.h | 3 ---
|
|
|
|
include/grub/efi/memory.h | 7 +++++++
|
|
|
|
5 files changed, 10 insertions(+), 3 deletions(-)
|
|
|
|
|
|
|
|
diff --git a/grub-core/loader/arm64/linux.c b/grub-core/loader/arm64/linux.c
|
|
|
|
index 746edd10415..ca01a234961 100644
|
|
|
|
--- a/grub-core/loader/arm64/linux.c
|
|
|
|
+++ b/grub-core/loader/arm64/linux.c
|
|
|
|
@@ -28,6 +28,7 @@
|
|
|
|
#include <grub/cpu/linux.h>
|
|
|
|
#include <grub/efi/efi.h>
|
|
|
|
#include <grub/efi/fdtload.h>
|
|
|
|
+#include <grub/efi/memory.h>
|
|
|
|
#include <grub/efi/pe32.h>
|
|
|
|
#include <grub/i18n.h>
|
|
|
|
#include <grub/lib/cmdline.h>
|
|
|
|
diff --git a/grub-core/loader/arm64/xen_boot.c b/grub-core/loader/arm64/xen_boot.c
|
|
|
|
index 6780b1f0c4a..0a40e16be33 100644
|
|
|
|
--- a/grub-core/loader/arm64/xen_boot.c
|
|
|
|
+++ b/grub-core/loader/arm64/xen_boot.c
|
|
|
|
@@ -30,6 +30,7 @@
|
|
|
|
#include <grub/cpu/linux.h>
|
|
|
|
#include <grub/efi/efi.h>
|
|
|
|
#include <grub/efi/fdtload.h>
|
|
|
|
+#include <grub/efi/memory.h>
|
|
|
|
#include <grub/efi/pe32.h> /* required by struct xen_hypervisor_header */
|
|
|
|
#include <grub/i18n.h>
|
|
|
|
#include <grub/lib/cmdline.h>
|
|
|
|
diff --git a/grub-core/loader/efi/fdt.c b/grub-core/loader/efi/fdt.c
|
|
|
|
index 17212c38d0b..c0c6800f79e 100644
|
|
|
|
--- a/grub-core/loader/efi/fdt.c
|
|
|
|
+++ b/grub-core/loader/efi/fdt.c
|
|
|
|
@@ -24,6 +24,7 @@
|
|
|
|
#include <grub/file.h>
|
|
|
|
#include <grub/efi/efi.h>
|
|
|
|
#include <grub/efi/fdtload.h>
|
|
|
|
+#include <grub/efi/memory.h>
|
|
|
|
|
|
|
|
static void *loaded_fdt;
|
|
|
|
static void *fdt;
|
|
|
|
diff --git a/include/grub/efi/fdtload.h b/include/grub/efi/fdtload.h
|
|
|
|
index 7b9ddba916d..713c9424d0a 100644
|
|
|
|
--- a/include/grub/efi/fdtload.h
|
|
|
|
+++ b/include/grub/efi/fdtload.h
|
|
|
|
@@ -29,7 +29,4 @@ grub_fdt_unload (void);
|
|
|
|
grub_err_t
|
|
|
|
grub_fdt_install (void);
|
|
|
|
|
|
|
|
-#define GRUB_EFI_PAGE_SHIFT 12
|
|
|
|
-#define GRUB_EFI_BYTES_TO_PAGES(bytes) (((bytes) + 0xfff) >> GRUB_EFI_PAGE_SHIFT)
|
|
|
|
-
|
|
|
|
#endif
|
|
|
|
diff --git a/include/grub/efi/memory.h b/include/grub/efi/memory.h
|
|
|
|
index 20526b14676..08fe6227783 100644
|
|
|
|
--- a/include/grub/efi/memory.h
|
|
|
|
+++ b/include/grub/efi/memory.h
|
|
|
|
@@ -22,6 +22,13 @@
|
|
|
|
#include <grub/err.h>
|
|
|
|
#include <grub/types.h>
|
|
|
|
|
|
|
|
+/* The term "page" in UEFI refers only to a 4 KiB-aligned 4 KiB size region of
|
|
|
|
+ memory. It is not concerned with underlying translation management concepts,
|
|
|
|
+ but only used as the granule for memory allocations. */
|
|
|
|
+#define GRUB_EFI_PAGE_SHIFT 12
|
|
|
|
+#define GRUB_EFI_PAGE_SIZE (1 << GRUB_EFI_PAGE_SHIFT)
|
|
|
|
+#define GRUB_EFI_BYTES_TO_PAGES(bytes) (((bytes) + 0xfff) >> GRUB_EFI_PAGE_SHIFT)
|
|
|
|
+
|
|
|
|
#define GRUB_MMAP_REGISTER_BY_FIRMWARE 1
|
|
|
|
|
|
|
|
grub_err_t grub_machine_mmap_register (grub_uint64_t start, grub_uint64_t size,
|