mirror of
https://github.com/edk2-porting/linux-next.git
synced 2024-12-26 06:04:14 +08:00
efi: stub: get rid of efi_get_max_fdt_addr()
Now that ARM started following the example of arm64 and RISC-V, and no longer imposes any restrictions on the placement of the FDT in memory at boot, we no longer need per-arch implementations of efi_get_max_fdt_addr() to factor out the differences. So get rid of it. Signed-off-by: Ard Biesheuvel <ardb@kernel.org> Reviewed-by: Atish Patra <atish.patra@wdc.com> Link: https://lore.kernel.org/r/20201029134901.9773-1-ardb@kernel.org
This commit is contained in:
parent
ff20661bb5
commit
54649911f3
@ -73,12 +73,6 @@ static inline void efifb_setup_from_dmi(struct screen_info *si, const char *opt)
|
|||||||
*/
|
*/
|
||||||
#define EFI_PHYS_ALIGN max(SZ_2M, roundup_pow_of_two(TEXT_OFFSET))
|
#define EFI_PHYS_ALIGN max(SZ_2M, roundup_pow_of_two(TEXT_OFFSET))
|
||||||
|
|
||||||
/* on ARM, the FDT should be located in a lowmem region */
|
|
||||||
static inline unsigned long efi_get_max_fdt_addr(unsigned long image_addr)
|
|
||||||
{
|
|
||||||
return round_down(image_addr, EFI_PHYS_ALIGN) + SZ_512M;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* on ARM, the initrd should be loaded in a lowmem region */
|
/* on ARM, the initrd should be loaded in a lowmem region */
|
||||||
static inline unsigned long efi_get_max_initrd_addr(unsigned long image_addr)
|
static inline unsigned long efi_get_max_initrd_addr(unsigned long image_addr)
|
||||||
{
|
{
|
||||||
|
@ -64,12 +64,6 @@ efi_status_t __efi_rt_asm_wrapper(void *, const char *, ...);
|
|||||||
#define EFI_KIMG_ALIGN \
|
#define EFI_KIMG_ALIGN \
|
||||||
(SEGMENT_ALIGN > THREAD_ALIGN ? SEGMENT_ALIGN : THREAD_ALIGN)
|
(SEGMENT_ALIGN > THREAD_ALIGN ? SEGMENT_ALIGN : THREAD_ALIGN)
|
||||||
|
|
||||||
/* on arm64, the FDT may be located anywhere in system RAM */
|
|
||||||
static inline unsigned long efi_get_max_fdt_addr(unsigned long image_addr)
|
|
||||||
{
|
|
||||||
return ULONG_MAX;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* On arm64, we have to ensure that the initrd ends up in the linear region,
|
* On arm64, we have to ensure that the initrd ends up in the linear region,
|
||||||
* which is a 1 GB aligned region of size '1UL << (VA_BITS_MIN - 1)' that is
|
* which is a 1 GB aligned region of size '1UL << (VA_BITS_MIN - 1)' that is
|
||||||
|
@ -27,12 +27,6 @@ int efi_set_mapping_permissions(struct mm_struct *mm, efi_memory_desc_t *md);
|
|||||||
|
|
||||||
#define ARCH_EFI_IRQ_FLAGS_MASK (SR_IE | SR_SPIE)
|
#define ARCH_EFI_IRQ_FLAGS_MASK (SR_IE | SR_SPIE)
|
||||||
|
|
||||||
/* on RISC-V, the FDT may be located anywhere in system RAM */
|
|
||||||
static inline unsigned long efi_get_max_fdt_addr(unsigned long image_addr)
|
|
||||||
{
|
|
||||||
return ULONG_MAX;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Load initrd at enough distance from DRAM start */
|
/* Load initrd at enough distance from DRAM start */
|
||||||
static inline unsigned long efi_get_max_initrd_addr(unsigned long image_addr)
|
static inline unsigned long efi_get_max_initrd_addr(unsigned long image_addr)
|
||||||
{
|
{
|
||||||
|
@ -273,7 +273,6 @@ efi_status_t __efiapi efi_pe_entry(efi_handle_t handle,
|
|||||||
install_memreserve_table();
|
install_memreserve_table();
|
||||||
|
|
||||||
status = allocate_new_fdt_and_exit_boot(handle, &fdt_addr,
|
status = allocate_new_fdt_and_exit_boot(handle, &fdt_addr,
|
||||||
efi_get_max_fdt_addr(image_addr),
|
|
||||||
initrd_addr, initrd_size,
|
initrd_addr, initrd_size,
|
||||||
cmdline_ptr, fdt_addr, fdt_size);
|
cmdline_ptr, fdt_addr, fdt_size);
|
||||||
if (status != EFI_SUCCESS)
|
if (status != EFI_SUCCESS)
|
||||||
|
@ -750,7 +750,6 @@ efi_status_t efi_exit_boot_services(void *handle,
|
|||||||
|
|
||||||
efi_status_t allocate_new_fdt_and_exit_boot(void *handle,
|
efi_status_t allocate_new_fdt_and_exit_boot(void *handle,
|
||||||
unsigned long *new_fdt_addr,
|
unsigned long *new_fdt_addr,
|
||||||
unsigned long max_addr,
|
|
||||||
u64 initrd_addr, u64 initrd_size,
|
u64 initrd_addr, u64 initrd_size,
|
||||||
char *cmdline_ptr,
|
char *cmdline_ptr,
|
||||||
unsigned long fdt_addr,
|
unsigned long fdt_addr,
|
||||||
|
@ -238,7 +238,6 @@ static efi_status_t exit_boot_func(struct efi_boot_memmap *map,
|
|||||||
|
|
||||||
efi_status_t allocate_new_fdt_and_exit_boot(void *handle,
|
efi_status_t allocate_new_fdt_and_exit_boot(void *handle,
|
||||||
unsigned long *new_fdt_addr,
|
unsigned long *new_fdt_addr,
|
||||||
unsigned long max_addr,
|
|
||||||
u64 initrd_addr, u64 initrd_size,
|
u64 initrd_addr, u64 initrd_size,
|
||||||
char *cmdline_ptr,
|
char *cmdline_ptr,
|
||||||
unsigned long fdt_addr,
|
unsigned long fdt_addr,
|
||||||
@ -275,7 +274,7 @@ efi_status_t allocate_new_fdt_and_exit_boot(void *handle,
|
|||||||
efi_info("Exiting boot services and installing virtual address map...\n");
|
efi_info("Exiting boot services and installing virtual address map...\n");
|
||||||
|
|
||||||
map.map = &memory_map;
|
map.map = &memory_map;
|
||||||
status = efi_allocate_pages(MAX_FDT_SIZE, new_fdt_addr, max_addr);
|
status = efi_allocate_pages(MAX_FDT_SIZE, new_fdt_addr, ULONG_MAX);
|
||||||
if (status != EFI_SUCCESS) {
|
if (status != EFI_SUCCESS) {
|
||||||
efi_err("Unable to allocate memory for new device tree.\n");
|
efi_err("Unable to allocate memory for new device tree.\n");
|
||||||
goto fail;
|
goto fail;
|
||||||
|
Loading…
Reference in New Issue
Block a user