Skip to content

Commit

Permalink
efi/libstub: Move get_dram_base() into arm-stub.c
Browse files Browse the repository at this point in the history
get_dram_base() is only called from arm-stub.c so move it into
the same source file as its caller.

Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
  • Loading branch information
Ard Biesheuvel committed Feb 23, 2020
1 parent 0ed02bd commit b871745
Show file tree
Hide file tree
Showing 3 changed files with 33 additions and 37 deletions.
33 changes: 33 additions & 0 deletions drivers/firmware/efi/libstub/arm-stub.c
Original file line number Diff line number Diff line change
Expand Up @@ -88,6 +88,39 @@ void install_memreserve_table(void)
pr_efi_err("Failed to install memreserve config table!\n");
}

static unsigned long get_dram_base(void)
{
efi_status_t status;
unsigned long map_size, buff_size;
unsigned long membase = EFI_ERROR;
struct efi_memory_map map;
efi_memory_desc_t *md;
struct efi_boot_memmap boot_map;

boot_map.map = (efi_memory_desc_t **)&map.map;
boot_map.map_size = &map_size;
boot_map.desc_size = &map.desc_size;
boot_map.desc_ver = NULL;
boot_map.key_ptr = NULL;
boot_map.buff_size = &buff_size;

status = efi_get_memory_map(&boot_map);
if (status != EFI_SUCCESS)
return membase;

map.map_end = map.map + map_size;

for_each_efi_memory_desc_in_map(&map, md) {
if (md->attribute & EFI_MEMORY_WB) {
if (membase > md->phys_addr)
membase = md->phys_addr;
}
}

efi_bs_call(free_pool, map.map);

return membase;
}

/*
* This function handles the architcture specific differences between arm and
Expand Down
35 changes: 0 additions & 35 deletions drivers/firmware/efi/libstub/efi-stub-helper.c
Original file line number Diff line number Diff line change
Expand Up @@ -75,41 +75,6 @@ void efi_printk(char *str)
}
}


unsigned long get_dram_base(void)
{
efi_status_t status;
unsigned long map_size, buff_size;
unsigned long membase = EFI_ERROR;
struct efi_memory_map map;
efi_memory_desc_t *md;
struct efi_boot_memmap boot_map;

boot_map.map = (efi_memory_desc_t **)&map.map;
boot_map.map_size = &map_size;
boot_map.desc_size = &map.desc_size;
boot_map.desc_ver = NULL;
boot_map.key_ptr = NULL;
boot_map.buff_size = &buff_size;

status = efi_get_memory_map(&boot_map);
if (status != EFI_SUCCESS)
return membase;

map.map_end = map.map + map_size;

for_each_efi_memory_desc_in_map(&map, md) {
if (md->attribute & EFI_MEMORY_WB) {
if (membase > md->phys_addr)
membase = md->phys_addr;
}
}

efi_bs_call(free_pool, map.map);

return membase;
}

static efi_status_t efi_file_size(void *__fh, efi_char16_t *filename_16,
void **handle, u64 *file_sz)
{
Expand Down
2 changes: 0 additions & 2 deletions drivers/firmware/efi/libstub/efistub.h
Original file line number Diff line number Diff line change
Expand Up @@ -549,8 +549,6 @@ efi_status_t efi_exit_boot_services(void *handle,

void efi_char16_printk(efi_char16_t *);

unsigned long get_dram_base(void);

efi_status_t allocate_new_fdt_and_exit_boot(void *handle,
unsigned long *new_fdt_addr,
unsigned long max_addr,
Expand Down

0 comments on commit b871745

Please sign in to comment.