From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-io0-x234.google.com (mail-io0-x234.google.com [IPv6:2607:f8b0:4001:c06::234]) (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 EFF0D21A0480E for ; Wed, 5 Apr 2017 06:11:45 -0700 (PDT) Received: by mail-io0-x234.google.com with SMTP id f84so9062166ioj.0 for ; Wed, 05 Apr 2017 06:11:45 -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=lCUCPx2yPM2MGowiMe58o9/lbkq079rvRAeqTxKF+M4=; b=KdBjzLf1ZJuQjmXJEFyKtLKT8VuDxGcsR7NtRhW9uS1MMrXKWI1tmHHdlNhAx/BVnB FNhO92E+cX89uw6tj99J14rKqyKnZU33a+pRIq8/PTW03xNOBvx1lxlvgSBBEKEq/eqz AB6x4meZLK8M7MKHyux580r8Gz87O3q2YOdxI= 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=lCUCPx2yPM2MGowiMe58o9/lbkq079rvRAeqTxKF+M4=; b=r3eHNlKh8KNncYKbn2o/puG+m7uIKgIviJHDmm5Mz9JLoIhYztnQQw1JV1Ki8l8M5x J+yZ2BszlIUslWpZkve8ljRXTQQFD0SBu264hpWaRa/LmXUkCj2/CCsEcUF/xTCFiyr6 iNCAZRysKy9nWo82vshZ0EIUkkU9XEVvevwT65szmUzocYX2wImLaBk49PkPObRLBSil i8y32ycbc6VN/l93AqPK+pS6H82Tcw2JJ9txlKm549ZiZ97QbuVVmYxK+cXm/RfvUNq4 PZFktuV50gOw0ntLZm9NAVy57hrMVALt6c188t5mAXgIBleMtq3iNlJ7IPviMkZN++fJ sFQQ== X-Gm-Message-State: AFeK/H0gvFXeeJl63FWq4LdxcXsisqSj+zrmSSOgV8MCxbtliMaErRuHGnYkXReSp8doOb7DQ1CcRO5tqKxkqefd X-Received: by 10.107.168.21 with SMTP id r21mr25808080ioe.45.1491397905190; Wed, 05 Apr 2017 06:11:45 -0700 (PDT) MIME-Version: 1.0 Received: by 10.107.10.27 with HTTP; Wed, 5 Apr 2017 06:11:44 -0700 (PDT) In-Reply-To: <20170405130946.GC25239@bivouac.eciton.net> 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:11:44 +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:11:46 -0000 Content-Type: text/plain; charset=UTF-8 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 -- 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 >>