mirror of https://gitee.com/openkylin/linux.git
efi/libstub/arm: Relax FDT alignment requirement
The arm64 kernel no longer requires the FDT blob to fit inside a naturally aligned 2 MB memory block, so remove the code that aligns the allocation to 2 MB. Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
This commit is contained in:
parent
6f05106e20
commit
184d7e0d7d
|
@ -57,13 +57,6 @@ efi_status_t __efi_rt_asm_wrapper(void *, const char *, ...);
|
|||
|
||||
/* arch specific definitions used by the stub code */
|
||||
|
||||
/*
|
||||
* AArch64 requires the DTB to be 8-byte aligned in the first 512MiB from
|
||||
* start of kernel and may not cross a 2MiB boundary. We set alignment to
|
||||
* 2MiB so we know it won't cross a 2MiB boundary.
|
||||
*/
|
||||
#define EFI_FDT_ALIGN SZ_2M /* used by allocate_new_fdt_and_exit_boot() */
|
||||
|
||||
/*
|
||||
* In some configurations (e.g. VMAP_STACK && 64K pages), stacks built into the
|
||||
* kernel need greater alignment than we require the segments to be padded to.
|
||||
|
|
|
@ -199,10 +199,6 @@ static efi_status_t update_fdt_memmap(void *fdt, struct efi_boot_memmap *map)
|
|||
return EFI_SUCCESS;
|
||||
}
|
||||
|
||||
#ifndef EFI_FDT_ALIGN
|
||||
# define EFI_FDT_ALIGN EFI_PAGE_SIZE
|
||||
#endif
|
||||
|
||||
struct exit_boot_struct {
|
||||
efi_memory_desc_t *runtime_map;
|
||||
int *runtime_entry_count;
|
||||
|
@ -281,7 +277,7 @@ efi_status_t allocate_new_fdt_and_exit_boot(void *handle,
|
|||
pr_efi("Exiting boot services and installing virtual address map...\n");
|
||||
|
||||
map.map = &memory_map;
|
||||
status = efi_high_alloc(MAX_FDT_SIZE, EFI_FDT_ALIGN,
|
||||
status = efi_high_alloc(MAX_FDT_SIZE, EFI_PAGE_SIZE,
|
||||
new_fdt_addr, max_addr);
|
||||
if (status != EFI_SUCCESS) {
|
||||
pr_efi_err("Unable to allocate memory for new device tree.\n");
|
||||
|
|
Loading…
Reference in New Issue