From nobody Wed Dec 25 04:24:57 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=none (zoho.com: 198.145.21.10 is neither permitted nor denied by domain of lists.01.org) smtp.mailfrom=edk2-devel-bounces@lists.01.org Return-Path: Received: from ml01.01.org (ml01.01.org [198.145.21.10]) by mx.zohomail.com with SMTPS id 1512055523094305.88525294846886; Thu, 30 Nov 2017 07:25:23 -0800 (PST) Received: from [127.0.0.1] (localhost [IPv6:::1]) by ml01.01.org (Postfix) with ESMTP id BC1F02211B431; Thu, 30 Nov 2017 07:20:56 -0800 (PST) Received: from mail-wm0-x242.google.com (mail-wm0-x242.google.com [IPv6:2a00:1450:400c:c09::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 0EC44220F3C23 for ; Thu, 30 Nov 2017 07:20:52 -0800 (PST) Received: by mail-wm0-x242.google.com with SMTP id t8so13709304wmc.3 for ; Thu, 30 Nov 2017 07:25:18 -0800 (PST) Received: from localhost.localdomain ([105.150.171.234]) by smtp.gmail.com with ESMTPSA id 43sm2566328wru.81.2017.11.30.07.25.14 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 30 Nov 2017 07:25:15 -0800 (PST) X-Original-To: edk2-devel@lists.01.org Received-SPF: none (zoho.com: 198.145.21.10 is neither permitted nor denied by domain of lists.01.org) client-ip=198.145.21.10; envelope-from=edk2-devel-bounces@lists.01.org; helo=ml01.01.org; Received-SPF: Pass (sender SPF authorized) identity=mailfrom; client-ip=2a00:1450:400c:c09::242; helo=mail-wm0-x242.google.com; envelope-from=ard.biesheuvel@linaro.org; receiver=edk2-devel@lists.01.org DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=2L0AAaNuria7J8atI9J1Qnt+Bp9RnA/nXnnQ6aH1DPk=; b=R8FHJVLTTeHjE6ZTK4fR1lbnpk+jFD3wijN9YY6zTt7IRpw0ZAM+LixJdzBqTtPwe7 V4WYGzdLyzNAPyd0G4hCNomB3304Ih9u7LQbiNC/zDhR0d255T3wNkGp0UBq74iCgLiT kS9SgzxwW43AKkJGV8ATuNblfNAp7AS4bQ7MY= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=2L0AAaNuria7J8atI9J1Qnt+Bp9RnA/nXnnQ6aH1DPk=; b=sZP9prSuQwCfWraYG9uc+78Qm5IrhX9aQgYF/H5+HXIs+9OL/VhQQHhdOZcm8DWAI2 wGmox9QOrcqFRB08JcEaCoPyjp4afNdfENNJLF2PJxcpBwG7OlEs6mcGnHmD41N3CTPo 8jjKFEu6AXhKKChJL7m7wnDDImo8WhZ6ypprT0hRbHTaTRbW9fVPo90f3iUo9Vh86wnj 0qooKKZn7gRQpBf80/SZLYzBbwHaOVpdnEH8WnMAzsM4eT3iS++xM8yp0j3BVsBi8Nl0 6Kab24CAEP9fKDSu9osjhRtscnSDqZcbX14LoKVaDCJ4OBUW0/DSD3msbnGEuItkED9A ujhw== X-Gm-Message-State: AJaThX6c1NEr66AP/7KLAgPJbpqotTHCUQlu0E3FziKNe3EQiSJ19XKl V1pAwJyZNvAG/tnOhRyYn4Gxsrnz9Ok= X-Google-Smtp-Source: AGs4zMYr8qe0iE34SOg/DkO5p0zIaS7Hq7jyUtgNdTfJYN/LGNWMHV+9yAv+Le8CTyfJN+erEDEslg== X-Received: by 10.28.61.87 with SMTP id k84mr2172602wma.48.1512055516690; Thu, 30 Nov 2017 07:25:16 -0800 (PST) From: Ard Biesheuvel To: edk2-devel@lists.01.org Date: Thu, 30 Nov 2017 15:24:50 +0000 Message-Id: <20171130152453.19205-5-ard.biesheuvel@linaro.org> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20171130152453.19205-1-ard.biesheuvel@linaro.org> References: <20171130152453.19205-1-ard.biesheuvel@linaro.org> Subject: [edk2] [PATCH 4/7] ArmPlatformPkg/PrePi: don't expose 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: , Cc: leif.lindholm@linaro.org, Ard Biesheuvel MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Errors-To: edk2-devel-bounces@lists.01.org Sender: "edk2-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_4 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" Avoid the need to preserve all memory exposed by PrePi indefinitely by removing the 'feature' that exposes the PE/COFF and LZMA libraries via special HOBs to other modules that may want to reuse the code. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Ard Biesheuvel --- ArmPlatformPkg/PrePi/LzmaDecompress.h | 103 -------------------- ArmPlatformPkg/PrePi/PeiMPCore.inf | 1 - ArmPlatformPkg/PrePi/PeiUniCore.inf | 1 - ArmPlatformPkg/PrePi/PrePi.c | 11 --- 4 files changed, 116 deletions(-) diff --git a/ArmPlatformPkg/PrePi/LzmaDecompress.h b/ArmPlatformPkg/PrePi/L= zmaDecompress.h deleted file mode 100644 index a79ff343d231..000000000000 --- a/ArmPlatformPkg/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 BS= D License - which accompanies this distribution. The full text of the license may b= e 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 IMP= LIED. - -**/ - -#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 GUID= ed section. - - Examines a GUIDed section specified by InputSection. - If GUID for InputSection does not match the GUID that this handler suppo= rts, - 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 suppor= ts, - then the size required to hold the decoded buffer is returned in OututBu= fferSize, - the size of an optional scratch buffer is returned in ScratchSize, and t= he Attributes field - from EFI_GUID_DEFINED_SECTION header of InputSection is returned in Sect= ionAttribute. - - 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 f= ormatted file. - @param[out] OutputBufferSize A pointer to the size, in bytes, of an ou= tput buffer required - if the buffer specified by InputSection w= ere decoded. - @param[out] ScratchBufferSize A pointer to the size, in bytes, required= as scratch space - if the buffer specified by InputSection w= ere 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 wa= s 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 outp= ut buffer. - - Decodes the GUIDed section specified by InputSection. - If GUID for InputSection does not match the GUID that this handler suppo= rts, then RETURN_UNSUPPORTED is returned. - If the data in InputSection can not be decoded, then RETURN_INVALID_PARA= METER is returned. - If the GUID of InputSection does match the GUID that this handler suppor= ts, then InputSection - is decoded into the buffer specified by OutputBuffer and the authenticat= ion status of this - decode operation is returned in AuthenticationStatus. If the decoded bu= ffer is identical to the - data in InputSection, then OutputBuffer is set to point at the data in I= nputSection. 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 bu= ffer, then ASSERT(). - If AuthenticationStatus is NULL, then ASSERT(). - - - @param[in] InputSection A pointer to a GUIDed section of an FFS format= ted 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 oper= ation. - @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_STAT= US_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/ArmPlatformPkg/PrePi/PeiMPCore.inf b/ArmPlatformPkg/PrePi/PeiM= PCore.inf index 636049d4f44d..ccb5388e5516 100644 --- a/ArmPlatformPkg/PrePi/PeiMPCore.inf +++ b/ArmPlatformPkg/PrePi/PeiMPCore.inf @@ -52,7 +52,6 @@ [LibraryClasses] SerialPortLib ExtractGuidedSectionLib LzmaDecompressLib - PeCoffGetEntryPointLib DebugAgentLib PrePiLib ArmPlatformLib diff --git a/ArmPlatformPkg/PrePi/PeiUniCore.inf b/ArmPlatformPkg/PrePi/Pei= UniCore.inf index f37ddec9d13d..2d376c30d400 100644 --- a/ArmPlatformPkg/PrePi/PeiUniCore.inf +++ b/ArmPlatformPkg/PrePi/PeiUniCore.inf @@ -51,7 +51,6 @@ [LibraryClasses] SerialPortLib ExtractGuidedSectionLib LzmaDecompressLib - PeCoffGetEntryPointLib DebugAgentLib PrePiLib ArmPlatformLib diff --git a/ArmPlatformPkg/PrePi/PrePi.c b/ArmPlatformPkg/PrePi/PrePi.c index e5016ea45359..a60cafdce45e 100644 --- a/ArmPlatformPkg/PrePi/PrePi.c +++ b/ArmPlatformPkg/PrePi/PrePi.c @@ -17,7 +17,6 @@ #include #include #include -#include #include #include #include @@ -25,10 +24,8 @@ #include #include #include -#include =20 #include "PrePi.h" -#include "LzmaDecompress.h" =20 #define IS_XIP() (((UINT64)FixedPcdGet64 (PcdFdBaseAddress) > mSystemMemor= yEnd) || \ ((FixedPcdGet64 (PcdFdBaseAddress) + FixedPcdGet32 (PcdF= dSize)) < FixedPcdGet64 (PcdSystemMemoryBase))) @@ -168,14 +165,6 @@ PrePiMain ( ExtractGuidedSectionLibConstructor (); LzmaDecompressLibConstructor (); =20 - // 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 compre= ssed FV. Status =3D DecompressFirstFv (); ASSERT_EFI_ERROR (Status); --=20 2.11.0 _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel