From nobody Thu Apr 25 09:29:55 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of groups.io designates 66.175.222.12 as permitted sender) client-ip=66.175.222.12; envelope-from=bounce+27952+50295+1787277+3901457@groups.io; helo=web01.groups.io; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zoho.com: domain of groups.io designates 66.175.222.12 as permitted sender) smtp.mailfrom=bounce+27952+50295+1787277+3901457@groups.io; dmarc=fail(p=none dis=none) header.from=intel.com ARC-Seal: i=1; a=rsa-sha256; t=1573198257; cv=none; d=zoho.com; s=zohoarc; b=kS1nsMymQn5czaT3UQB3Cg2NNUvzTzzzohyIQNiIQUsy1MiGaajNkGo+I981L2zj0vJRS9o0W0RkZWwtJvwPGoRGKDQQ2gZJkcr/4GRtzDTfEcQkZ77YxQvttpX7oLAyjjSybovEjIXAj4alxZIwo9V60y+qptJraBnWBmzSgG8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zoho.com; s=zohoarc; t=1573198257; h=Cc:Date:From:List-Id:List-Unsubscribe:Message-ID:Reply-To:Sender:Subject:To; bh=nT675xIZvrCF15ktKunKVTPv5GbAOZuiDalRy4/j4rc=; b=LxiOh+PBzJshWXwsZhEx7b02iVNcfql32c7YGeFJuxDyJpCFiz7CW7YgajLkD/gFIohnO7tehdv8Je09mrC2i67ID64ldPEZsxecizw6miutEi0aQyT+dQ9SuME185Ro+TvKWGb5KWpAU1xpfLK+/kHU2UNFUc4tozsKl6ieJJI= ARC-Authentication-Results: i=1; mx.zoho.com; dkim=pass; spf=pass (zoho.com: domain of groups.io designates 66.175.222.12 as permitted sender) smtp.mailfrom=bounce+27952+50295+1787277+3901457@groups.io; dmarc=fail header.from= (p=none dis=none) header.from= Received: from web01.groups.io (web01.groups.io [66.175.222.12]) by mx.zohomail.com with SMTPS id 1573198257739697.367407908601; Thu, 7 Nov 2019 23:30:57 -0800 (PST) Return-Path: X-Received: by 127.0.0.2 with SMTP id rVdFYY1788612xMcyfoMW2B8; Thu, 07 Nov 2019 23:30:57 -0800 X-Received: from mga06.intel.com (mga06.intel.com [134.134.136.31]) by mx.groups.io with SMTP id smtpd.web11.6575.1573198256667597471 for ; Thu, 07 Nov 2019 23:30:56 -0800 X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False X-Received: from orsmga004.jf.intel.com ([10.7.209.38]) by orsmga104.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 07 Nov 2019 23:30:53 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.68,280,1569308400"; d="scan'208";a="354026296" X-Received: from unknown (HELO ethantsa-MOBL1.gar.corp.intel.com) ([10.5.242.81]) by orsmga004.jf.intel.com with ESMTP; 07 Nov 2019 23:30:52 -0800 From: "Ethan Tsao" To: devel@edk2.groups.io Cc: Sai Chaganty , Ray Ni Subject: [edk2-devel] [Patch V2] IntelSiliconPkg/Library:Add BaseConfigBlockLib Library Date: Fri, 8 Nov 2019 15:30:34 +0800 Message-Id: <20191108073034.17980-1-ethan.tsao@intel.com> Precedence: Bulk List-Unsubscribe: Sender: devel@edk2.groups.io List-Id: Mailing-List: list devel@edk2.groups.io; contact devel+owner@edk2.groups.io Reply-To: devel@edk2.groups.io,ethan.tsao@intel.com X-Gm-Message-State: w3w7wHe1uZMYgKOzqM2FJPQMx1787277AA= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groups.io; q=dns/txt; s=20140610; t=1573198257; bh=rTQ8MlAPzXWhnE4frKskMKVLBSjrnFOkz0SqqDVsiT0=; h=Cc:Date:From:Reply-To:Subject:To; b=eqP5xmFP1M1oYmfU6KxROCX1FxFXSJgzrju4CugYdvxwIArMHkbebcVdiKcE4lnwcME MFDOziPsWWPeUfkp+gLGQQjU/OZEZG0GhbuGaYQvRNqsKTkGh4Rks9IWhcJq6Y2NybKXq 8qlPHTsqkxpnwyiC+07WR14t8VVPZn9i5/k= X-ZohoMail-DKIM: pass (identity @groups.io) Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" REF:https://bugzilla.tianocore.org/show_bug.cgi?id=3D2318 Establish one copy of Config blocks library class and instance in IntelSiliconPkg and remove copies from other silicon packages , like KabyLakeSiliconPkg, CoffelakeSiliconPkg. Signed-off-by: Ethan Tsao Cc: Sai Chaganty Cc: Ray Ni --- Silicon/Intel/CoffeelakeSiliconPkg/Library/BaseConfigBlockLib/BaseConfigBl= ockLib.c | 146 ---------------------------------------= ---------------------------------------------------------------------------= -------------------------------- Silicon/Intel/CoffeelakeSiliconPkg/Library/BaseConfigBlockLib/BaseConfigBl= ockLib.inf | 29 ----------------------------- Silicon/Intel/{KabylakeSiliconPkg =3D> IntelSiliconPkg}/Library/BaseConfig= BlockLib/BaseConfigBlockLib.c | 9 ++------- Silicon/Intel/{KabylakeSiliconPkg =3D> IntelSiliconPkg}/Library/BaseConfig= BlockLib/BaseConfigBlockLib.inf | 0 4 files changed, 2 insertions(+), 182 deletions(-) diff --git a/Silicon/Intel/CoffeelakeSiliconPkg/Library/BaseConfigBlockLib/= BaseConfigBlockLib.c b/Silicon/Intel/CoffeelakeSiliconPkg/Library/BaseConfi= gBlockLib/BaseConfigBlockLib.c deleted file mode 100644 index 369dab97ee..0000000000 --- a/Silicon/Intel/CoffeelakeSiliconPkg/Library/BaseConfigBlockLib/BaseCon= figBlockLib.c +++ /dev/null @@ -1,146 +0,0 @@ -/** @file - Library functions for Config Block management. - - Copyright (c) 2019 Intel Corporation. All rights reserved.
- - SPDX-License-Identifier: BSD-2-Clause-Patent -**/ - -#include -#include -#include -#include -#include - -/** - Create config block table - - @param[in] TotalSize - Max size to be allocated f= or the Config Block Table - @param[out] ConfigBlockTableAddress - On return, points to a poi= nter to the beginning of Config Block Table Address - - @retval EFI_INVALID_PARAMETER - Invalid Parameter - @retval EFI_OUT_OF_RESOURCES - Out of resources - @retval EFI_SUCCESS - Successfully created Config Block Table = at ConfigBlockTableAddress -**/ -EFI_STATUS -EFIAPI -CreateConfigBlockTable ( - IN UINT16 TotalSize, - OUT VOID **ConfigBlockTableAddress - ) -{ - CONFIG_BLOCK_TABLE_HEADER *ConfigBlkTblAddrPtr; - UINT32 ConfigBlkTblHdrSize; - - ConfigBlkTblHdrSize =3D (UINT32)(sizeof (CONFIG_BLOCK_TABLE_HEADER)); - - if (TotalSize <=3D (ConfigBlkTblHdrSize + sizeof (CONFIG_BLOCK_HEADER)))= { - DEBUG ((DEBUG_ERROR, "Invalid Parameter\n")); - return EFI_INVALID_PARAMETER; - } - - ConfigBlkTblAddrPtr =3D (CONFIG_BLOCK_TABLE_HEADER *)AllocateZeroPool (T= otalSize); - if (ConfigBlkTblAddrPtr =3D=3D NULL) { - DEBUG ((DEBUG_ERROR, "Could not allocate memory.\n")); - return EFI_OUT_OF_RESOURCES; - } - ConfigBlkTblAddrPtr->NumberOfBlocks =3D 0; - ConfigBlkTblAddrPtr->Header.GuidHob.Header.HobLength =3D TotalSize; - ConfigBlkTblAddrPtr->AvailableSize =3D TotalSize - ConfigBlkTblHdrSize; - - *ConfigBlockTableAddress =3D (VOID *)ConfigBlkTblAddrPtr; - - return EFI_SUCCESS; -} - -/** - Add config block into config block table structure - - @param[in] ConfigBlockTableAddress - A pointer to the beginning= of Config Block Table Address - @param[out] ConfigBlockAddress - On return, points to a poi= nter to the beginning of Config Block Address - - @retval EFI_OUT_OF_RESOURCES - Config Block Table is full and cannot add= new Config Block or - Config Block Offset Table is full and can= not add new Config Block. - @retval EFI_SUCCESS - Successfully added Config Block -**/ -EFI_STATUS -EFIAPI -AddConfigBlock ( - IN VOID *ConfigBlockTableAddress, - OUT VOID **ConfigBlockAddress - ) -{ - CONFIG_BLOCK *TempConfigBlk; - CONFIG_BLOCK_TABLE_HEADER *ConfigBlkTblAddrPtr; - CONFIG_BLOCK *ConfigBlkAddrPtr; - UINT16 ConfigBlkSize; - - ConfigBlkTblAddrPtr =3D (CONFIG_BLOCK_TABLE_HEADER *)ConfigBlockTableAdd= ress; - ConfigBlkAddrPtr =3D (CONFIG_BLOCK *)(*ConfigBlockAddress); - ConfigBlkSize =3D ConfigBlkAddrPtr->Header.GuidHob.Header.HobLength; - DEBUG ((DEBUG_INFO, "Config Block GUID: %g / Config Block Size: 0x%x byt= es\n", &(ConfigBlkAddrPtr->Header.GuidHob.Name), ConfigBlkSize)); - if ((ConfigBlkSize % 4) !=3D 0) { - DEBUG ((DEBUG_ERROR, "Config Block must be multiples of 4 bytes\n")); - return EFI_INVALID_PARAMETER; - } - if (ConfigBlkTblAddrPtr->AvailableSize < ConfigBlkSize) { - DEBUG ((DEBUG_ERROR, "Config Block Table is full and cannot add new Co= nfig Block.\n")); - DEBUG ((DEBUG_ERROR, "Available Config Block Size: 0x%x bytes / Reques= ted Config Block Size: 0x%x bytes\n", ConfigBlkTblAddrPtr->AvailableSize, C= onfigBlkSize)); - return EFI_OUT_OF_RESOURCES; - } - - TempConfigBlk =3D (CONFIG_BLOCK *)((UINTN)ConfigBlkTblAddrPtr + (UINTN)(= ConfigBlkTblAddrPtr->Header.GuidHob.Header.HobLength - ConfigBlkTblAddrPtr-= >AvailableSize)); - CopyMem (&TempConfigBlk->Header, &ConfigBlkAddrPtr->Header, sizeof(CONFI= G_BLOCK_HEADER)); - - ConfigBlkTblAddrPtr->NumberOfBlocks++; - ConfigBlkTblAddrPtr->AvailableSize =3D ConfigBlkTblAddrPtr->AvailableSiz= e - ConfigBlkSize; - - *ConfigBlockAddress =3D (VOID *) TempConfigBlk; - DEBUG ((DEBUG_INFO, "Config Block Address: 0x%x / Available Config Block= Size: 0x%x bytes\n", (UINT32)(UINTN)*ConfigBlockAddress, ConfigBlkTblAddrP= tr->AvailableSize)); - return EFI_SUCCESS; -} - -/** - Retrieve a specific Config Block data by GUID - - @param[in] ConfigBlockTableAddress - A pointer to the beginnin= g of Config Block Table Address - @param[in] ConfigBlockGuid - A pointer to the GUID use= s to search specific Config Block - @param[out] ConfigBlockAddress - On return, points to a po= inter to the beginning of Config Block Address - - @retval EFI_NOT_FOUND - Could not find the Config Block - @retval EFI_SUCCESS - Config Block found and return -**/ -EFI_STATUS -EFIAPI -GetConfigBlock ( - IN VOID *ConfigBlockTableAddress, - IN EFI_GUID *ConfigBlockGuid, - OUT VOID **ConfigBlockAddress - ) -{ - UINT16 OffsetIndex; - CONFIG_BLOCK *TempConfigBlk; - CONFIG_BLOCK_TABLE_HEADER *ConfigBlkTblAddrPtr; - UINT32 ConfigBlkTblHdrSize; - UINT32 ConfigBlkOffset; - UINT16 NumOfBlocks; - - ConfigBlkTblHdrSize =3D (UINT32)(sizeof (CONFIG_BLOCK_TABLE_HEADER)); - ConfigBlkTblAddrPtr =3D (CONFIG_BLOCK_TABLE_HEADER *)ConfigBlockTableAdd= ress; - NumOfBlocks =3D ConfigBlkTblAddrPtr->NumberOfBlocks; - - ConfigBlkOffset =3D 0; - for (OffsetIndex =3D 0; OffsetIndex < NumOfBlocks; OffsetIndex++) { - if ((ConfigBlkTblHdrSize + ConfigBlkOffset) > (ConfigBlkTblAddrPtr->He= ader.GuidHob.Header.HobLength)) { - break; - } - TempConfigBlk =3D (CONFIG_BLOCK *)((UINTN)ConfigBlkTblAddrPtr + (UINTN= )ConfigBlkTblHdrSize + (UINTN)ConfigBlkOffset); - if (CompareGuid (&(TempConfigBlk->Header.GuidHob.Name), ConfigBlockGui= d)) { - *ConfigBlockAddress =3D (VOID *)TempConfigBlk; - return EFI_SUCCESS; - } - ConfigBlkOffset =3D ConfigBlkOffset + TempConfigBlk->Header.GuidHob.He= ader.HobLength; - } - DEBUG ((DEBUG_ERROR, "Could not find the config block.\n")); - return EFI_NOT_FOUND; -} diff --git a/Silicon/Intel/CoffeelakeSiliconPkg/Library/BaseConfigBlockLib/= BaseConfigBlockLib.inf b/Silicon/Intel/CoffeelakeSiliconPkg/Library/BaseCon= figBlockLib/BaseConfigBlockLib.inf deleted file mode 100644 index a7def2481d..0000000000 --- a/Silicon/Intel/CoffeelakeSiliconPkg/Library/BaseConfigBlockLib/BaseCon= figBlockLib.inf +++ /dev/null @@ -1,29 +0,0 @@ -## @file -# Component INF file for the BaseConfigBlock library. -# -# Copyright (c) 2019 Intel Corporation. All rights reserved.
-# -# SPDX-License-Identifier: BSD-2-Clause-Patent -# -## - -[Defines] -INF_VERSION =3D 0x00010017 -BASE_NAME =3D BaseConfigBlockLib -FILE_GUID =3D 1EC07EA8-7808-4e06-9D79-309AE331D2D5 -VERSION_STRING =3D 1.0 -MODULE_TYPE =3D BASE -LIBRARY_CLASS =3D ConfigBlockLib - - -[Packages] -MdePkg/MdePkg.dec -CoffeelakeSiliconPkg/SiPkg.dec - -[Sources] -BaseConfigBlockLib.c - -[LibraryClasses] -DebugLib -BaseMemoryLib -MemoryAllocationLib diff --git a/Silicon/Intel/KabylakeSiliconPkg/Library/BaseConfigBlockLib/Ba= seConfigBlockLib.c b/Silicon/Intel/IntelSiliconPkg/Library/BaseConfigBlockL= ib/BaseConfigBlockLib.c similarity index 86% rename from Silicon/Intel/KabylakeSiliconPkg/Library/BaseConfigBlockLib/Bas= eConfigBlockLib.c rename to Silicon/Intel/IntelSiliconPkg/Library/BaseConfigBlockLib/BaseConf= igBlockLib.c index b9bd6f3a48..4ade89d776 100644 --- a/Silicon/Intel/KabylakeSiliconPkg/Library/BaseConfigBlockLib/BaseConfi= gBlockLib.c +++ b/Silicon/Intel/IntelSiliconPkg/Library/BaseConfigBlockLib/BaseConfigBl= ockLib.c @@ -34,13 +34,11 @@ CreateConfigBlockTable ( ConfigBlkTblHdrSize =3D (UINT32)(sizeof (CONFIG_BLOCK_TABLE_HEADER)); =20 if (TotalSize <=3D (ConfigBlkTblHdrSize + sizeof (CONFIG_BLOCK_HEADER)))= { - DEBUG ((DEBUG_ERROR, "Invalid Parameter\n")); return EFI_INVALID_PARAMETER; } =20 ConfigBlkTblAddrPtr =3D (CONFIG_BLOCK_TABLE_HEADER *)AllocateZeroPool (T= otalSize); if (ConfigBlkTblAddrPtr =3D=3D NULL) { - DEBUG ((DEBUG_ERROR, "Could not allocate memory.\n")); return EFI_OUT_OF_RESOURCES; } ConfigBlkTblAddrPtr->NumberOfBlocks =3D 0; @@ -77,13 +75,11 @@ AddConfigBlock ( ConfigBlkTblAddrPtr =3D (CONFIG_BLOCK_TABLE_HEADER *)ConfigBlockTableAdd= ress; ConfigBlkAddrPtr =3D (CONFIG_BLOCK *)(*ConfigBlockAddress); ConfigBlkSize =3D ConfigBlkAddrPtr->Header.GuidHob.Header.HobLength; - DEBUG ((DEBUG_INFO, "Config Block GUID: %g / Config Block Size: 0x%x byt= es\n", &(ConfigBlkAddrPtr->Header.GuidHob.Name), ConfigBlkSize)); + if ((ConfigBlkSize % 4) !=3D 0) { - DEBUG ((DEBUG_ERROR, "Config Block must be multiples of 4 bytes\n")); return EFI_INVALID_PARAMETER; } if (ConfigBlkTblAddrPtr->AvailableSize < ConfigBlkSize) { - DEBUG ((DEBUG_ERROR, "Config Block Table is full and cannot add new Co= nfig Block.\n")); DEBUG ((DEBUG_ERROR, "Available Config Block Size: 0x%x bytes / Reques= ted Config Block Size: 0x%x bytes\n", ConfigBlkTblAddrPtr->AvailableSize, C= onfigBlkSize)); return EFI_OUT_OF_RESOURCES; } @@ -95,7 +91,6 @@ AddConfigBlock ( ConfigBlkTblAddrPtr->AvailableSize =3D ConfigBlkTblAddrPtr->AvailableSiz= e - ConfigBlkSize; =20 *ConfigBlockAddress =3D (VOID *) TempConfigBlk; - DEBUG ((DEBUG_INFO, "Config Block Address: 0x%x / Available Config Block= Size: 0x%x bytes\n", (UINT32)(UINTN)*ConfigBlockAddress, ConfigBlkTblAddrP= tr->AvailableSize)); return EFI_SUCCESS; } =20 @@ -140,6 +135,6 @@ GetConfigBlock ( } ConfigBlkOffset =3D ConfigBlkOffset + TempConfigBlk->Header.GuidHob.He= ader.HobLength; } - DEBUG ((DEBUG_ERROR, "Could not find the config block.\n")); + return EFI_NOT_FOUND; } diff --git a/Silicon/Intel/KabylakeSiliconPkg/Library/BaseConfigBlockLib/Ba= seConfigBlockLib.inf b/Silicon/Intel/IntelSiliconPkg/Library/BaseConfigBloc= kLib/BaseConfigBlockLib.inf similarity index 100% rename from Silicon/Intel/KabylakeSiliconPkg/Library/BaseConfigBlockLib/Bas= eConfigBlockLib.inf rename to Silicon/Intel/IntelSiliconPkg/Library/BaseConfigBlockLib/BaseConf= igBlockLib.inf --=20 2.16.2.windows.1 -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#50295): https://edk2.groups.io/g/devel/message/50295 Mute This Topic: https://groups.io/mt/47373306/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-