On Mon, 2020-02-10 at 17:02 +0100, Ard Biesheuvel wrote: > get_dram_base() is only called from arm-stub.c so move it into > the same source file as its caller. > Just FYI: riscv efi stub port is also going to use get_dram_base(). However, I have renamed arm-stub.c to generic efi-stub.c so that arm, arm64 and riscv can reuse it. Thus, Moving get_dram_base() into arm- stub.c works for riscv as well. I will rebase my patches on top of this series. > Signed-off-by: Ard Biesheuvel <ardb@xxxxxxxxxx> > --- > drivers/firmware/efi/libstub/arm-stub.c | 33 > ++++++++++++++++++ > drivers/firmware/efi/libstub/efi-stub-helper.c | 35 ---------------- > ---- > drivers/firmware/efi/libstub/efistub.h | 2 -- > 3 files changed, 33 insertions(+), 37 deletions(-) > > diff --git a/drivers/firmware/efi/libstub/arm-stub.c > b/drivers/firmware/efi/libstub/arm-stub.c > index ebdf1964dd5c..fb5b2b35d3be 100644 > --- a/drivers/firmware/efi/libstub/arm-stub.c > +++ b/drivers/firmware/efi/libstub/arm-stub.c > @@ -87,6 +87,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 > diff --git a/drivers/firmware/efi/libstub/efi-stub-helper.c > b/drivers/firmware/efi/libstub/efi-stub-helper.c > index 92ccd0a51ae6..1a8f2cf5a2bd 100644 > --- a/drivers/firmware/efi/libstub/efi-stub-helper.c > +++ b/drivers/firmware/efi/libstub/efi-stub-helper.c > @@ -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) > { > diff --git a/drivers/firmware/efi/libstub/efistub.h > b/drivers/firmware/efi/libstub/efistub.h > index b94c63d17a4f..5123def761e9 100644 > --- a/drivers/firmware/efi/libstub/efistub.h > +++ b/drivers/firmware/efi/libstub/efistub.h > @@ -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, -- Regards, Atish