[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH 3/7] efi: move fdt helper library
From: |
Leif Lindholm |
Subject: |
[PATCH 3/7] efi: move fdt helper library |
Date: |
Tue, 28 Feb 2017 22:35:33 +0000 |
There is nothing ARM64 (or even ARM) specific about the efi fdt
helper library, which is used for locating or overriding a
firmware-provided devicetree in a UEFI system - so move it to
loader/efi for reuse.
Move the fdtload.h include file to grub/efi and move the (at least
theoretically) machine dependent page size definitions to
grub/machine/memory.h.
---
grub-core/Makefile.core.def | 2 +-
grub-core/loader/arm64/linux.c | 3 ++-
grub-core/loader/arm64/xen_boot.c | 3 ++-
grub-core/loader/{arm64 => efi}/fdt.c | 11 ++++++-----
include/grub/arm64/efi/memory.h | 3 +++
include/grub/{arm64 => efi}/fdtload.h | 3 ---
6 files changed, 14 insertions(+), 11 deletions(-)
rename grub-core/loader/{arm64 => efi}/fdt.c (93%)
rename include/grub/{arm64 => efi}/fdtload.h (89%)
diff --git a/grub-core/Makefile.core.def b/grub-core/Makefile.core.def
index 2dfa22a92..2d8d8618d 100644
--- a/grub-core/Makefile.core.def
+++ b/grub-core/Makefile.core.def
@@ -1677,7 +1677,7 @@ module = {
module = {
name = fdt;
- arm64 = loader/arm64/fdt.c;
+ arm64 = loader/efi/fdt.c;
common = lib/fdt.c;
enable = fdt;
};
diff --git a/grub-core/loader/arm64/linux.c b/grub-core/loader/arm64/linux.c
index 9519d2e4d..02e405460 100644
--- a/grub-core/loader/arm64/linux.c
+++ b/grub-core/loader/arm64/linux.c
@@ -26,11 +26,12 @@
#include <grub/mm.h>
#include <grub/types.h>
#include <grub/cpu/linux.h>
-#include <grub/cpu/fdtload.h>
#include <grub/efi/efi.h>
+#include <grub/efi/fdtload.h>
#include <grub/efi/pe32.h>
#include <grub/i18n.h>
#include <grub/lib/cmdline.h>
+#include <grub/machine/memory.h>
GRUB_MOD_LICENSE ("GPLv3+");
diff --git a/grub-core/loader/arm64/xen_boot.c
b/grub-core/loader/arm64/xen_boot.c
index a914eb8e2..341805c50 100644
--- a/grub-core/loader/arm64/xen_boot.c
+++ b/grub-core/loader/arm64/xen_boot.c
@@ -27,12 +27,13 @@
#include <grub/misc.h>
#include <grub/mm.h>
#include <grub/types.h>
-#include <grub/cpu/fdtload.h>
#include <grub/cpu/linux.h>
#include <grub/efi/efi.h>
+#include <grub/efi/fdtload.h>
#include <grub/efi/pe32.h> /* required by struct xen_hypervisor_header */
#include <grub/i18n.h>
#include <grub/lib/cmdline.h>
+#include <grub/machine/memory.h>
GRUB_MOD_LICENSE ("GPLv3+");
diff --git a/grub-core/loader/arm64/fdt.c b/grub-core/loader/efi/fdt.c
similarity index 93%
rename from grub-core/loader/arm64/fdt.c
rename to grub-core/loader/efi/fdt.c
index db49cf649..e2899c47b 100644
--- a/grub-core/loader/arm64/fdt.c
+++ b/grub-core/loader/efi/fdt.c
@@ -18,12 +18,13 @@
#include <grub/fdt.h>
#include <grub/mm.h>
-#include <grub/cpu/fdtload.h>
#include <grub/err.h>
#include <grub/dl.h>
#include <grub/command.h>
#include <grub/file.h>
#include <grub/efi/efi.h>
+#include <grub/efi/fdtload.h>
+#include <grub/machine/memory.h>
static void *loaded_fdt;
static void *fdt;
@@ -32,12 +33,12 @@ void *
grub_fdt_load (grub_size_t additional_size)
{
void *raw_fdt;
- grub_size_t size;
+ unsigned int size;
if (fdt)
{
size = GRUB_EFI_BYTES_TO_PAGES (grub_fdt_get_totalsize (fdt));
- grub_efi_free_pages ((grub_efi_physical_address_t) fdt, size);
+ grub_efi_free_pages ((grub_addr_t) fdt, size);
}
if (loaded_fdt)
@@ -49,7 +50,7 @@ grub_fdt_load (grub_size_t additional_size)
raw_fdt ? grub_fdt_get_totalsize (raw_fdt) : GRUB_FDT_EMPTY_TREE_SZ;
size += additional_size;
- grub_dprintf ("linux", "allocating %ld bytes for fdt\n", size);
+ grub_dprintf ("linux", "allocating %d bytes for fdt\n", size);
fdt = grub_efi_allocate_pages (0, GRUB_EFI_BYTES_TO_PAGES (size));
if (!fdt)
return NULL;
@@ -88,7 +89,7 @@ grub_fdt_unload (void) {
if (!fdt) {
return;
}
- grub_efi_free_pages ((grub_efi_physical_address_t) fdt,
+ grub_efi_free_pages ((grub_addr_t) fdt,
GRUB_EFI_BYTES_TO_PAGES (grub_fdt_get_totalsize (fdt)));
fdt = NULL;
}
diff --git a/include/grub/arm64/efi/memory.h b/include/grub/arm64/efi/memory.h
index c6cb32417..9414b69e0 100644
--- a/include/grub/arm64/efi/memory.h
+++ b/include/grub/arm64/efi/memory.h
@@ -3,4 +3,7 @@
#define GRUB_EFI_MAX_USABLE_ADDRESS 0xffffffffffffULL
+#define GRUB_EFI_PAGE_SHIFT 12
+#define GRUB_EFI_BYTES_TO_PAGES(bytes) (((bytes) + 0xfff) >>
GRUB_EFI_PAGE_SHIFT)
+
#endif /* ! GRUB_MEMORY_CPU_HEADER */
diff --git a/include/grub/arm64/fdtload.h b/include/grub/efi/fdtload.h
similarity index 89%
rename from include/grub/arm64/fdtload.h
rename to include/grub/efi/fdtload.h
index 7b9ddba91..713c9424d 100644
--- a/include/grub/arm64/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
--
2.11.0
- [PATCH 0/7] efi: improved correctness, arm unification, and cleanup, Leif Lindholm, 2017/02/28
- [PATCH 2/7] efi: refactor grub_efi_allocate_pages, Leif Lindholm, 2017/02/28
- [PATCH 1/7] efi: add grub_efi_get_dram_base() function for arm*, Leif Lindholm, 2017/02/28
- [PATCH 3/7] efi: move fdt helper library,
Leif Lindholm <=
- [PATCH 6/7] efi: restrict arm/arm64 linux loader initrd placement, Leif Lindholm, 2017/02/28
- [PATCH 4/7] arm64: make efi linux loader more generic, Leif Lindholm, 2017/02/28
- [PATCH 7/7] efi: change heap allocation type to GRUB_EFI_LOADER_CODE, Leif Lindholm, 2017/02/28
- [PATCH 5/7] arm: reuse arm64 linux loader on efi systems, Leif Lindholm, 2017/02/28
- Re: [PATCH 0/7] efi: improved correctness, arm unification, and cleanup, Vladimir 'phcoder' Serbinenko, 2017/02/28