Commit b8717454 authored by Ard Biesheuvel's avatar Ard Biesheuvel
Browse files

efi/libstub: Move get_dram_base() into arm-stub.c



get_dram_base() is only called from arm-stub.c so move it into
the same source file as its caller.

Signed-off-by: default avatarArd Biesheuvel <ardb@kernel.org>
parent 0ed02bda
Loading
Loading
Loading
Loading
+33 −0
Original line number Diff line number Diff line
@@ -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
+0 −35
Original line number Diff line number Diff line
@@ -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)
{
+0 −2
Original line number Diff line number Diff line
@@ -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,