Re: [PATCH 1/1] efi/libstub: DRAM base calculation

From: Maxim Uvarov
Date: Mon Sep 07 2020 - 03:02:02 EST


On Fri, 4 Sep 2020 at 18:50, Heinrich Schuchardt <xypron.glpk@xxxxxx> wrote:
>
> In the memory map the regions with the lowest addresses may be of type
> EFI_RESERVED_TYPE. The reserved areas may be discontinuous relative to the
> rest of the memory. So for calculating the maximum loading address for the
> device tree and the initial ramdisk image these reserved areas should not
> be taken into account.
>
> Signed-off-by: Heinrich Schuchardt <xypron.glpk@xxxxxx>
> ---
> drivers/firmware/efi/libstub/efi-stub.c | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/firmware/efi/libstub/efi-stub.c b/drivers/firmware/efi/libstub/efi-stub.c
> index c2484bf75c5d..13058ac75765 100644
> --- a/drivers/firmware/efi/libstub/efi-stub.c
> +++ b/drivers/firmware/efi/libstub/efi-stub.c
> @@ -106,7 +106,8 @@ static unsigned long get_dram_base(void)
> map.map_end = map.map + map_size;
>
> for_each_efi_memory_desc_in_map(&map, md) {
> - if (md->attribute & EFI_MEMORY_WB) {
> + if (md->attribute & EFI_MEMORY_WB &&
> + md->type != EFI_RESERVED_TYPE) {

shouldn't the type here be CONVENTIONAL?

> if (membase > md->phys_addr)
> membase = md->phys_addr;
> }
> --
> 2.28.0
>