From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received-SPF: Pass (sender SPF authorized) identity=mailfrom; client-ip=2607:f8b0:4001:c06::242; helo=mail-io0-x242.google.com; envelope-from=ard.biesheuvel@linaro.org; receiver=edk2-devel@lists.01.org Received: from mail-io0-x242.google.com (mail-io0-x242.google.com [IPv6:2607:f8b0:4001:c06::242]) (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 5899721A10979 for ; Mon, 27 Nov 2017 10:20:59 -0800 (PST) Received: by mail-io0-x242.google.com with SMTP id x63so37316885ioe.6 for ; Mon, 27 Nov 2017 10:25:22 -0800 (PST) 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=8+P72DbLfCTgTywC+vWHTjIlX73ETgTGNWUit+KjV+E=; b=Yje/cB/Do7m633c2dR33eq5D0S0ZkpfTylhQE8ckFSC1GMuK/ovqjhYkzpANDecoFY fpmnvesBT7cUJioxxF+g4spd53+vKMPaLKAHUGsVRppAkxBEGvgi8JngkXgAn7xVhfS0 UzHjga79QZ7yYM+PZ6eknVHLW/YpmRVg8ofzw= 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=8+P72DbLfCTgTywC+vWHTjIlX73ETgTGNWUit+KjV+E=; b=ksBqPaCxONVb2AV4DooXFtQ8KkfafSKunz/s+MT0YRkcYnJ1NriNOwTBMytjT3d99Y ashUNImEWV0kLsTrAuRS/ZqYCxfuvDgBpNRlRE1U3vRkczY10jWAr8iZcpsIIkSayuH0 a7AwpvS9j9VHp1le6A/OzQg9ZPHn3W/D/qA6rpWkCu+WKgSKazZVszOMjpfTo23BLaok KWf96XlY1zVhZ2ynaFSVx5/y+olMc1GrO1/XP7UF3mThsU56o/Elq9LbTfg9XepJZpHj hmdktWBnZAuVqYn8ZlxzqlpokL8izRPiH98xE+2YNp5fLS8PQ6vEczE2GZWeKc0qBGY9 bZyg== X-Gm-Message-State: AJaThX61ESxMFlnFCumkRgI20EQ46F4roQc0yN0lvsLLub9wk9t1D+Tn abHQmR82Scl2clYK6ZDZS8u89UkR8n4jWyx7SV3BhA== X-Google-Smtp-Source: AGs4zMb4lyl6/9kIWOdmLgroFiUCxvpct4Tw8s4Sy1D/5hiGdsiTbF9iPUmolqYl2KAp0IcPT1is6o2NzEkgCi+aRjE= X-Received: by 10.107.69.17 with SMTP id s17mr40026147ioa.253.1511807121256; Mon, 27 Nov 2017 10:25:21 -0800 (PST) MIME-Version: 1.0 Received: by 10.107.104.16 with HTTP; Mon, 27 Nov 2017 10:25:20 -0800 (PST) In-Reply-To: References: <20171124095103.26099-1-ard.biesheuvel@linaro.org> From: Ard Biesheuvel Date: Mon, 27 Nov 2017 18:25:20 +0000 Message-ID: To: Laszlo Ersek Cc: "edk2-devel@lists.01.org" , Julien Grall Subject: Re: [PATCH] ArmVirtPkg/PrePi: don't export PE/COFF and LZMA libraries via HOBs 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: Mon, 27 Nov 2017 18:21:00 -0000 Content-Type: text/plain; charset="UTF-8" On 27 November 2017 at 12:32, Laszlo Ersek wrote: > On 11/24/17 10:51, Ard Biesheuvel wrote: >> The PrePi code we inherited from ArmPlatformPkg contains a rather >> obscure optimization, where entry points of the PE/COFF and LZMA >> handling routines are recorded in special HOBs, allowing DXE core >> to call into that code directly rather than carry its own copy of >> these libraries. >> >> Given that no ArmVirtPkg platforms actually include the library >> resolutions* that take advantage of these optimizations, let's not >> bother with them, and remove the associated code. >> >> * EmbeddedPkg/Library/LzmaHobCustomDecompressLib/LzmaHobCustomDecompressLib.inf >> EmbeddedPkg/Library/DxeHobPeCoffLib/DxeHobPeCoffLib.inf >> >> Contributed-under: TianoCore Contribution Agreement 1.1 >> Signed-off-by: Ard Biesheuvel >> --- >> ArmVirtPkg/PrePi/ArmVirtPrePiUniCoreRelocatable.inf | 1 - >> ArmVirtPkg/PrePi/LzmaDecompress.h | 103 -------------------- >> ArmVirtPkg/PrePi/PrePi.c | 11 --- >> 3 files changed, 115 deletions(-) >> >> diff --git a/ArmVirtPkg/PrePi/ArmVirtPrePiUniCoreRelocatable.inf b/ArmVirtPkg/PrePi/ArmVirtPrePiUniCoreRelocatable.inf >> index 58290d2d1b76..b3a3f5da065e 100755 >> --- a/ArmVirtPkg/PrePi/ArmVirtPrePiUniCoreRelocatable.inf >> +++ b/ArmVirtPkg/PrePi/ArmVirtPrePiUniCoreRelocatable.inf >> @@ -51,7 +51,6 @@ [LibraryClasses] >> SerialPortLib >> ExtractGuidedSectionLib >> LzmaDecompressLib >> - PeCoffGetEntryPointLib >> PrePiLib >> MemoryAllocationLib >> HobLib >> diff --git a/ArmVirtPkg/PrePi/LzmaDecompress.h b/ArmVirtPkg/PrePi/LzmaDecompress.h >> deleted file mode 100644 >> index a79ff343d231..000000000000 >> --- a/ArmVirtPkg/PrePi/LzmaDecompress.h >> +++ /dev/null >> @@ -1,103 +0,0 @@ >> -/** @file >> - LZMA Decompress Library header file >> - >> - Copyright (c) 2006 - 2010, Intel Corporation. All rights reserved.
>> - This program and the accompanying materials >> - are licensed and made available under the terms and conditions of the BSD License >> - which accompanies this distribution. The full text of the license may be found at >> - http://opensource.org/licenses/bsd-license.php >> - >> - THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, >> - WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. >> - >> -**/ >> - >> -#ifndef __LZMA_DECOMPRESS_H___ >> -#define __LZMA_DECOMPRESS_H___ >> - >> -/** >> - Examines a GUIDed section and returns the size of the decoded buffer and the >> - size of an scratch buffer required to actually decode the data in a GUIDed section. >> - >> - Examines a GUIDed section specified by InputSection. >> - If GUID for InputSection does not match the GUID that this handler supports, >> - then RETURN_UNSUPPORTED is returned. >> - If the required information can not be retrieved from InputSection, >> - then RETURN_INVALID_PARAMETER is returned. >> - If the GUID of InputSection does match the GUID that this handler supports, >> - then the size required to hold the decoded buffer is returned in OututBufferSize, >> - the size of an optional scratch buffer is returned in ScratchSize, and the Attributes field >> - from EFI_GUID_DEFINED_SECTION header of InputSection is returned in SectionAttribute. >> - >> - If InputSection is NULL, then ASSERT(). >> - If OutputBufferSize is NULL, then ASSERT(). >> - If ScratchBufferSize is NULL, then ASSERT(). >> - If SectionAttribute is NULL, then ASSERT(). >> - >> - >> - @param[in] InputSection A pointer to a GUIDed section of an FFS formatted file. >> - @param[out] OutputBufferSize A pointer to the size, in bytes, of an output buffer required >> - if the buffer specified by InputSection were decoded. >> - @param[out] ScratchBufferSize A pointer to the size, in bytes, required as scratch space >> - if the buffer specified by InputSection were decoded. >> - @param[out] SectionAttribute A pointer to the attributes of the GUIDed section. See the Attributes >> - field of EFI_GUID_DEFINED_SECTION in the PI Specification. >> - >> - @retval RETURN_SUCCESS The information about InputSection was returned. >> - @retval RETURN_UNSUPPORTED The section specified by InputSection does not match the GUID this handler supports. >> - @retval RETURN_INVALID_PARAMETER The information can not be retrieved from the section specified by InputSection. >> - >> -**/ >> -RETURN_STATUS >> -EFIAPI >> -LzmaGuidedSectionGetInfo ( >> - IN CONST VOID *InputSection, >> - OUT UINT32 *OutputBufferSize, >> - OUT UINT32 *ScratchBufferSize, >> - OUT UINT16 *SectionAttribute >> - ); >> - >> -/** >> - Decompress a LZAM compressed GUIDed section into a caller allocated output buffer. >> - >> - Decodes the GUIDed section specified by InputSection. >> - If GUID for InputSection does not match the GUID that this handler supports, then RETURN_UNSUPPORTED is returned. >> - If the data in InputSection can not be decoded, then RETURN_INVALID_PARAMETER is returned. >> - If the GUID of InputSection does match the GUID that this handler supports, then InputSection >> - is decoded into the buffer specified by OutputBuffer and the authentication status of this >> - decode operation is returned in AuthenticationStatus. If the decoded buffer is identical to the >> - data in InputSection, then OutputBuffer is set to point at the data in InputSection. Otherwise, >> - the decoded data will be placed in caller allocated buffer specified by OutputBuffer. >> - >> - If InputSection is NULL, then ASSERT(). >> - If OutputBuffer is NULL, then ASSERT(). >> - If ScratchBuffer is NULL and this decode operation requires a scratch buffer, then ASSERT(). >> - If AuthenticationStatus is NULL, then ASSERT(). >> - >> - >> - @param[in] InputSection A pointer to a GUIDed section of an FFS formatted file. >> - @param[out] OutputBuffer A pointer to a buffer that contains the result of a decode operation. >> - @param[out] ScratchBuffer A caller allocated buffer that may be required by this function >> - as a scratch buffer to perform the decode operation. >> - @param[out] AuthenticationStatus >> - A pointer to the authentication status of the decoded output buffer. >> - See the definition of authentication status in the EFI_PEI_GUIDED_SECTION_EXTRACTION_PPI >> - section of the PI Specification. EFI_AUTH_STATUS_PLATFORM_OVERRIDE must >> - never be set by this handler. >> - >> - @retval RETURN_SUCCESS The buffer specified by InputSection was decoded. >> - @retval RETURN_UNSUPPORTED The section specified by InputSection does not match the GUID this handler supports. >> - @retval RETURN_INVALID_PARAMETER The section specified by InputSection can not be decoded. >> - >> -**/ >> -RETURN_STATUS >> -EFIAPI >> -LzmaGuidedSectionExtraction ( >> - IN CONST VOID *InputSection, >> - OUT VOID **OutputBuffer, >> - OUT VOID *ScratchBuffer, OPTIONAL >> - OUT UINT32 *AuthenticationStatus >> - ); >> - >> -#endif // __LZMADECOMPRESS_H__ >> - >> diff --git a/ArmVirtPkg/PrePi/PrePi.c b/ArmVirtPkg/PrePi/PrePi.c >> index fce4ab9428a5..f6abe2f2016b 100755 >> --- a/ArmVirtPkg/PrePi/PrePi.c >> +++ b/ArmVirtPkg/PrePi/PrePi.c >> @@ -17,7 +17,6 @@ >> >> #include >> #include >> -#include >> #include >> #include >> #include >> @@ -25,10 +24,8 @@ >> >> #include >> #include >> -#include >> >> #include "PrePi.h" >> -#include "LzmaDecompress.h" >> >> VOID >> EFIAPI >> @@ -98,14 +95,6 @@ PrePiMain ( >> // SEC phase needs to run library constructors by hand. >> ProcessLibraryConstructorList (); >> >> - // Build HOBs to pass up our version of stuff the DXE Core needs to save space >> - BuildPeCoffLoaderHob (); >> - BuildExtractSectionHob ( >> - &gLzmaCustomDecompressGuid, >> - LzmaGuidedSectionGetInfo, >> - LzmaGuidedSectionExtraction >> - ); >> - >> // Assume the FV that contains the SEC (our code) also contains a compressed FV. >> Status = DecompressFirstFv (); >> ASSERT_EFI_ERROR (Status); >> > > Acked-by: Laszlo Ersek > Thanks. Pushed as 2c936d7c39ba4305e2da39ef2059326802a42bd2