From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-io0-x231.google.com (mail-io0-x231.google.com [IPv6:2607:f8b0:4001:c06::231]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id 8B39F21A0480E for ; Wed, 5 Apr 2017 06:15:38 -0700 (PDT) Received: by mail-io0-x231.google.com with SMTP id f84so9135701ioj.0 for ; Wed, 05 Apr 2017 06:15:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=9j4nsjaK735MTM33e+wgAi/aGycTZzfyyVscLYn2T+s=; b=UttQgEKbHEp7BXbCFs7V45l2GFU7sLow32IMdsX0CbyFRhCbikzXnhnMddKwVSzvX5 pI2RdG2YhzGPYJtmhzILMIQoKR9A7+9tfMJG8K/1siRmrBG3zkXuCHAAmqE4BR7ybArk siJ3AdljEllKrbXQJKF818d+YU2oHYM2sRuqk= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=9j4nsjaK735MTM33e+wgAi/aGycTZzfyyVscLYn2T+s=; b=JnAX8Co65PwrbhM65YElV2JwqdDzSvrZ/RygiBD1aFnAKkCGNgGKJqm0aVPaVLfzdO psIxsQScxxHfH8patxtM1hHAKCueY9uL8JPLY9NM5RvtYAMIs4sG479dnBxWJLp7ZrWp NefN3QaVGqSelqrumxGeM8bFjYvW5+ZdCcmXWxH9pPiT/tdJumkIf3xTASzTYWmZuEAk 8qm4JMkS1RqjwIzf/AbFJ2wfi0hpZpNN2DB+Q5E/wNc7SmPVjaw/qj8gHn+jUHySC3/O uj9XZEb1zWARl0HhaDedJd0Rpb4VEQhDchLHOFYwz+tBYvABuyJckmG4l/a0eR4By4dr 3XFA== X-Gm-Message-State: AFeK/H2+yaDM1rdFUgs+ZmiBtHdGE1MSuLRA0sbkFLGHa/JWz+kZZoxCfveTyLhi3p3HDWpn3k06dSrxeIeYShN8 X-Received: by 10.107.168.21 with SMTP id r21mr25828766ioe.45.1491398137753; Wed, 05 Apr 2017 06:15:37 -0700 (PDT) MIME-Version: 1.0 Received: by 10.107.10.27 with HTTP; Wed, 5 Apr 2017 06:15:37 -0700 (PDT) In-Reply-To: References: <20170404123010.11722-1-ard.biesheuvel@linaro.org> <20170404123010.11722-2-ard.biesheuvel@linaro.org> <20170405130946.GC25239@bivouac.eciton.net> From: Ard Biesheuvel Date: Wed, 5 Apr 2017 14:15:37 +0100 Message-ID: To: Leif Lindholm Cc: "edk2-devel@lists.01.org" , Ryan Harkin Subject: Re: [PATCH v3 1/6] ArmPlatformPkg/ArmShellCmdRunAxf: remove BdsLib dependency X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 05 Apr 2017 13:15:38 -0000 Content-Type: text/plain; charset=UTF-8 On 5 April 2017 at 14:11, Ard Biesheuvel wrote: > On 5 April 2017 at 14:09, Leif Lindholm wrote: >> On Tue, Apr 04, 2017 at 01:30:05PM +0100, Ard Biesheuvel wrote: >>> Remove ArmShellCmdRunAxf's dependency on the deprecated BdsLib by >>> cloning the ShutdownUefiBootServices() routine into a local source >>> file; this is the only BdsLib feature 'runaxf' depends on. >> >> I was going to go through these individually and give a R-b for the >> whole series at the end if I didn't come across anything, but I'd just >> like to add for this one: >> >> This is abslutely the right thing to do - BdsLib only had this >> functionality due to the LinuxLoader, and it could be deleted now (but >> I guess we're planning to get rid of the whole thing?). >> > > I'd like to avoid doing any 'improvements' to BdsLib while it's on its > way you way *out* > -- once AndroidFastBootApp is the last remaining user, we can > fold whatever it uses into it instead. > > >> Reviewed-by: Leif Lindholm >> > > Thanks > >>> >>> Contributed-under: TianoCore Contribution Agreement 1.0 >>> Signed-off-by: Ard Biesheuvel >>> --- >>> ArmPlatformPkg/Library/ArmShellCmdRunAxf/ArmShellCmdRunAxf.inf | 1 - >>> ArmPlatformPkg/Library/ArmShellCmdRunAxf/RunAxf.c | 58 +++++++++++++++++++- >>> 2 files changed, 57 insertions(+), 2 deletions(-) >>> >>> diff --git a/ArmPlatformPkg/Library/ArmShellCmdRunAxf/ArmShellCmdRunAxf.inf b/ArmPlatformPkg/Library/ArmShellCmdRunAxf/ArmShellCmdRunAxf.inf >>> index 9a34f666612a..7d15f6934608 100644 >>> --- a/ArmPlatformPkg/Library/ArmShellCmdRunAxf/ArmShellCmdRunAxf.inf >>> +++ b/ArmPlatformPkg/Library/ArmShellCmdRunAxf/ArmShellCmdRunAxf.inf >>> @@ -43,7 +43,6 @@ [Packages] >>> [LibraryClasses] >>> ArmLib >>> BaseLib >>> - BdsLib >>> DebugLib >>> HiiLib >>> ShellLib >>> diff --git a/ArmPlatformPkg/Library/ArmShellCmdRunAxf/RunAxf.c b/ArmPlatformPkg/Library/ArmShellCmdRunAxf/RunAxf.c >>> index 2abfb6cc1053..9f4fc780307d 100644 >>> --- a/ArmPlatformPkg/Library/ArmShellCmdRunAxf/RunAxf.c >>> +++ b/ArmPlatformPkg/Library/ArmShellCmdRunAxf/RunAxf.c >>> @@ -21,7 +21,6 @@ >>> #include >>> #include >>> #include >>> -#include >>> #include >>> #include >>> >>> @@ -35,6 +34,63 @@ >>> typedef VOID (*ELF_ENTRYPOINT)(UINTN arg0, UINTN arg1, >>> UINTN arg2, UINTN arg3); >>> >>> +STATIC >>> +EFI_STATUS >>> +ShutdownUefiBootServices ( >>> + VOID >>> + ) >>> +{ >>> + EFI_STATUS Status; >>> + UINTN MemoryMapSize; >>> + EFI_MEMORY_DESCRIPTOR *MemoryMap; >>> + UINTN MapKey; >>> + UINTN DescriptorSize; >>> + UINT32 DescriptorVersion; >>> + UINTN Pages; >>> + >>> + MemoryMap = NULL; >>> + MemoryMapSize = 0; >>> + Pages = 0; >>> + >>> + do { >>> + Status = gBS->GetMemoryMap ( >>> + &MemoryMapSize, >>> + MemoryMap, >>> + &MapKey, >>> + &DescriptorSize, >>> + &DescriptorVersion >>> + ); >>> + if (Status == EFI_BUFFER_TOO_SMALL) { >>> + >>> + Pages = EFI_SIZE_TO_PAGES (MemoryMapSize) + 1; >>> + MemoryMap = AllocatePages (Pages); >>> + >>> + // >>> + // Get System MemoryMap >>> + // >>> + Status = gBS->GetMemoryMap ( >>> + &MemoryMapSize, >>> + MemoryMap, >>> + &MapKey, >>> + &DescriptorSize, >>> + &DescriptorVersion >>> + ); >>> + } >>> + >>> + // Don't do anything between the GetMemoryMap() and ExitBootServices() >>> + if (!EFI_ERROR(Status)) { >>> + Status = gBS->ExitBootServices (gImageHandle, MapKey); >>> + if (EFI_ERROR(Status)) { >>> + FreePages (MemoryMap, Pages); >>> + MemoryMap = NULL; >>> + MemoryMapSize = 0; >>> + } >>> + } >>> + } while (EFI_ERROR(Status)); >>> + >>> + return Status; >>> +} >>> + >>> >>> STATIC >>> EFI_STATUS >>> -- >>> 2.9.3 >>>