From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from phobos.denx.de (phobos.denx.de [85.214.62.61]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 12864C54EBD for ; Fri, 6 Jan 2023 23:23:06 +0000 (UTC) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id DB1AF854CD; Sat, 7 Jan 2023 00:23:03 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=debian.org Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=pass (2048-bit key; secure) header.d=debian.org header.i=@debian.org header.b="oM1EO0jN"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 58F20854CD; Sat, 7 Jan 2023 00:23:01 +0100 (CET) Received: from cascadia.aikidev.net (cascadia.aikidev.net [173.255.214.101]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id DE2F385408 for ; Sat, 7 Jan 2023 00:22:58 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=debian.org Authentication-Results: phobos.denx.de; spf=none smtp.mailfrom=vagrant@debian.org Received: from localhost (unknown [IPv6:2600:3c01:e000:21:7:77:0:20]) (Authenticated sender: vagrant@cascadia.debian.net) by cascadia.aikidev.net (Postfix) with ESMTPSA id 928A61AB3B; Fri, 6 Jan 2023 15:22:56 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=debian.org; s=1.vagrant.user; t=1673047377; bh=ZDywT/3nkRwX64KAoFqWcCNamsgjdRaCVojhEDURbG0=; h=From:To:Cc:Subject:In-Reply-To:References:Date:From; b=oM1EO0jNNnLcyJb8Mqjrn8UDlsSr9UB+9O0Kd+ci5TXNC/PjaKvC16thbIffCEX4G 4dtYFlX1onnbZc6OpOTFMTQaO1boUmP52m/y1/ZR5WPkqApvkK6FAsOuus6p5xCeqd O/VEi2JJtPEQ7HGpAJhnM5kY1UaX4NT7RcRzcjHwmkH5rwOoVjE+1v0s2PEU35tTu9 jZK/FQyMWGsl+OAzcHAIWuu2i4sB9DvGdrcYjOTNkloRb8ztlIJ/SOm+XD2f1ZRbse ppCwBlQrEOcSP6kewfC+dwF6F+MZMPvRgecLwS2EcdMu3jEWIXtN3ukM7cN3y/J+pS i6NujLeD3eXzA== From: Vagrant Cascadian To: Heinrich Schuchardt , Ilias Apalodimas Cc: Tom Rini , Liviu Dudau , Simon Glass , Stefan Roese , Patrick Delaunay , Jaehoon Chung , Michal Simek , Patrice Chotard , Ashok Reddy Soma , u-boot@lists.denx.de, Heinrich Schuchardt Subject: Re: [PATCH v2 3/3] lmb: consider EFI memory map In-Reply-To: <20230105202536.190392-4-heinrich.schuchardt@canonical.com> References: <20230105202536.190392-1-heinrich.schuchardt@canonical.com> <20230105202536.190392-4-heinrich.schuchardt@canonical.com> Date: Fri, 06 Jan 2023 15:22:49 -0800 Message-ID: <87fscn5jue.fsf@contorta> MIME-Version: 1.0 Content-Type: multipart/signed; boundary="=-=-="; micalg=pgp-sha512; protocol="application/pgp-signature" X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.39 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" X-Virus-Scanned: clamav-milter 0.103.6 at phobos.denx.de X-Virus-Status: Clean --=-=-= Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On 2023-01-05, Heinrich Schuchardt wrote: > Add reservations for all EFI memory areas that are not > EFI_CONVENTIONAL_MEMORY. > > Signed-off-by: Heinrich Schuchardt Tested on odroid-c2, fixes booting from extlinux.conf and boot.scr using booti, and still works using EFI boot as well. Thanks! Tested-by: Vagrant Cascadian live well, vagrant > --- > v2: > use efi_get_memory_map_alloc() > --- > lib/lmb.c | 36 ++++++++++++++++++++++++++++++++++++ > 1 file changed, 36 insertions(+) > > diff --git a/lib/lmb.c b/lib/lmb.c > index c599608fa3..ec790760db 100644 > --- a/lib/lmb.c > +++ b/lib/lmb.c > @@ -7,7 +7,9 @@ > */ >=20=20 > #include > +#include > #include > +#include > #include > #include > #include > @@ -153,6 +155,37 @@ void arch_lmb_reserve_generic(struct lmb *lmb, ulong= sp, ulong end, ulong align) > } > } >=20=20 > +/** > + * efi_lmb_reserve() - add reservations for EFI memory > + * > + * Add reservations for all EFI memory areas that are not > + * EFI_CONVENTIONAL_MEMORY. > + * > + * @lmb: lmb environment > + * Return: 0 on success, 1 on failure > + */ > +static __maybe_unused int efi_lmb_reserve(struct lmb *lmb) > +{ > + struct efi_mem_desc *memmap =3D NULL, *map; > + efi_uintn_t i, map_size =3D 0; > + efi_status_t ret; > + > + ret =3D efi_get_memory_map_alloc(&map_size, &memmap); > + if (ret !=3D EFI_SUCCESS) > + return 1; > + > + for (i =3D 0, map =3D memmap; i < map_size / sizeof(*map); ++map, ++i) { > + if (map->type !=3D EFI_CONVENTIONAL_MEMORY) > + lmb_reserve(lmb, > + map_to_sysmem((void *)(uintptr_t) > + map->physical_start), > + map->num_pages * EFI_PAGE_SIZE); > + } > + efi_free_pool(memmap); > + > + return 0; > +} > + > static void lmb_reserve_common(struct lmb *lmb, void *fdt_blob) > { > arch_lmb_reserve(lmb); > @@ -160,6 +193,9 @@ static void lmb_reserve_common(struct lmb *lmb, void = *fdt_blob) >=20=20 > if (CONFIG_IS_ENABLED(OF_LIBFDT) && fdt_blob) > boot_fdt_add_mem_rsv_regions(lmb, fdt_blob); > + > + if (CONFIG_IS_ENABLED(EFI_LOADER)) > + efi_lmb_reserve(lmb); > } >=20=20 > /* Initialize the struct, add memory and call arch/board reserve functio= ns */ --=-=-= Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iHUEARYKAB0WIQRlgHNhO/zFx+LkXUXcUY/If5cWqgUCY7itSgAKCRDcUY/If5cW ql5bAPwL/IX3x0TiI14jgXhftScHjapCSuCHMsl4saqpf+KgqAD/RLC9khtr0dWj q42m1MrRaUUWSO0xuEXkkXwKVmBxmQM= =v275 -----END PGP SIGNATURE----- --=-=-=--