[U-Boot] [PATCH] efi_loader: Align runtime section to 64kb
Alexander Graf
agraf at suse.de
Mon Sep 17 11:43:12 UTC 2018
On 16.09.18 22:42, Heinrich Schuchardt wrote:
> On 09/17/2018 04:45 AM, Alexander Graf wrote:
>> The UEFI spec mandates that runtime sections are 64kb aligned to enable
> %s/kb/ kiB/g
> The spec requires a multiple of 64,000 not of 65,536.
The other way around you mean I guess? We do usually use "kb" for
multiples of 1024 though, no?
>
>> support for 64kb page size OSs.
>>
>> This patch ensures that we extend the runtime section to 64kb to be spec
>> compliant.
>>
>> Signed-off-by: Alexander Graf <agraf at suse.de>
>> ---
>> lib/efi_loader/efi_memory.c | 7 ++++---
>> 1 file changed, 4 insertions(+), 3 deletions(-)
>>
>> diff --git a/lib/efi_loader/efi_memory.c b/lib/efi_loader/efi_memory.c
>> index 4f8cb545ad..66ad54a152 100644
>> --- a/lib/efi_loader/efi_memory.c
>> +++ b/lib/efi_loader/efi_memory.c
>> @@ -11,6 +11,7 @@
>> #include <mapmem.h>
>> #include <watchdog.h>
>> #include <linux/list_sort.h>
>> +#include <linux/sizes.h>
>>
>> DECLARE_GLOBAL_DATA_PTR;
>>
>> @@ -526,10 +527,10 @@ static void add_u_boot_and_runtime(void)
>> uboot_pages = (gd->ram_top - uboot_start) >> EFI_PAGE_SHIFT;
>> efi_add_memory_map(uboot_start, uboot_pages, EFI_LOADER_DATA, false);
>>
>> - /* Add Runtime Services */
>> - runtime_start = (ulong)&__efi_runtime_start & ~EFI_PAGE_MASK;
>> + /* Add Runtime Services,must be 64kb aligned */
>> + runtime_start = (ulong)&__efi_runtime_start & ~(SZ_64K - 1);
>
> Please, add a comment in the code referring to the requirement in the
> UEFI spec.
Sure, it's part of 2.6.3 (AArch64 Platforms) in the 2.7 spec.
Alex
More information about the U-Boot
mailing list