This assumes that all CPUs supporting EFI have 4K pages. What if some of
CPUs have other page sizes?

Le Thu, Aug 3, 2017 à 12:07 PM, Leif Lindholm <leif.lindh...@linaro.org> a
écrit :

> The EFI page definitions and macros are generic and should not be confined
> to atm64 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.lindh...@linaro.org>
> ---
>  grub-core/loader/arm64/fdt.c      | 1 +
>  grub-core/loader/arm64/linux.c    | 1 +
>  grub-core/loader/arm64/xen_boot.c | 1 +
>  include/grub/arm64/fdtload.h      | 3 ---
>  include/grub/efi/memory.h         | 4 ++++
>  5 files changed, 7 insertions(+), 3 deletions(-)
>
> diff --git a/grub-core/loader/arm64/fdt.c b/grub-core/loader/arm64/fdt.c
> index db49cf649..bdc3a0c1f 100644
> --- a/grub-core/loader/arm64/fdt.c
> +++ b/grub-core/loader/arm64/fdt.c
> @@ -24,6 +24,7 @@
>  #include <grub/command.h>
>  #include <grub/file.h>
>  #include <grub/efi/efi.h>
> +#include <grub/efi/memory.h>
>
>  static void *loaded_fdt;
>  static void *fdt;
> diff --git a/grub-core/loader/arm64/linux.c
> b/grub-core/loader/arm64/linux.c
> index 9519d2e4d..1960d18b5 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/cpu/fdtload.h>
>  #include <grub/efi/efi.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 27ede46ca..b7a5b17c9 100644
> --- a/grub-core/loader/arm64/xen_boot.c
> +++ b/grub-core/loader/arm64/xen_boot.c
> @@ -30,6 +30,7 @@
>  #include <grub/cpu/fdtload.h>
>  #include <grub/cpu/linux.h>
>  #include <grub/efi/efi.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/include/grub/arm64/fdtload.h b/include/grub/arm64/fdtload.h
> index 7b9ddba91..713c9424d 100644
> --- a/include/grub/arm64/fdtload.h
> +++ b/include/grub/arm64/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 20526b146..a113348ca 100644
> --- a/include/grub/efi/memory.h
> +++ b/include/grub/efi/memory.h
> @@ -22,6 +22,10 @@
>  #include <grub/err.h>
>  #include <grub/types.h>
>
> +#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,
> --
> 2.11.0
>
>
> _______________________________________________
> Grub-devel mailing list
> Grub-devel@gnu.org
> https://lists.gnu.org/mailman/listinfo/grub-devel
>
_______________________________________________
Grub-devel mailing list
Grub-devel@gnu.org
https://lists.gnu.org/mailman/listinfo/grub-devel

Reply via email to