From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by mx.groups.io with SMTP id smtpd.web09.1169.1573459230594532916 for ; Mon, 11 Nov 2019 00:00:30 -0800 Authentication-Results: mx.groups.io; dkim=missing; spf=pass (domain: intel.com, ip: 134.134.136.20, mailfrom: ray.ni@intel.com) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga008.jf.intel.com ([10.7.209.65]) by orsmga101.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 11 Nov 2019 00:00:30 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.68,291,1569308400"; d="scan'208";a="197591666" Received: from fmsmsx106.amr.corp.intel.com ([10.18.124.204]) by orsmga008.jf.intel.com with ESMTP; 11 Nov 2019 00:00:29 -0800 Received: from fmsmsx118.amr.corp.intel.com (10.18.116.18) by FMSMSX106.amr.corp.intel.com (10.18.124.204) with Microsoft SMTP Server (TLS) id 14.3.439.0; Mon, 11 Nov 2019 00:00:29 -0800 Received: from shsmsx103.ccr.corp.intel.com (10.239.4.69) by fmsmsx118.amr.corp.intel.com (10.18.116.18) with Microsoft SMTP Server (TLS) id 14.3.439.0; Mon, 11 Nov 2019 00:00:29 -0800 Received: from shsmsx104.ccr.corp.intel.com ([169.254.5.127]) by SHSMSX103.ccr.corp.intel.com ([169.254.4.60]) with mapi id 14.03.0439.000; Mon, 11 Nov 2019 16:00:26 +0800 From: "Ni, Ray" To: "Tsao, Ethan" , "devel@edk2.groups.io" CC: "Chaganty, Rangasai V" Subject: Re: [Patch V3] IntelSiliconPkg/Library:Add BaseConfigBlockLib Library Thread-Topic: [Patch V3] IntelSiliconPkg/Library:Add BaseConfigBlockLib Library Thread-Index: AQHVmFYZq+IM+OVJv02SkpGEQDLXCqeFmuwg Date: Mon, 11 Nov 2019 08:00:25 +0000 Deferred-Delivery: Mon, 11 Nov 2019 07:59:00 +0000 Message-ID: <734D49CCEBEEF84792F5B80ED585239D5C357AE4@SHSMSX104.ccr.corp.intel.com> References: <20191111060527.2536-1-ethan.tsao@intel.com> In-Reply-To: <20191111060527.2536-1-ethan.tsao@intel.com> Accept-Language: en-US, zh-CN X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.239.127.40] MIME-Version: 1.0 Return-Path: ray.ni@intel.com Content-Language: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Reviewed-by: Ray Ni > -----Original Message----- > From: Tsao, Ethan > Sent: Monday, November 11, 2019 2:05 PM > To: devel@edk2.groups.io > Cc: Chaganty, Rangasai V ; Ni, Ray > > Subject: [Patch V3] IntelSiliconPkg/Library:Add BaseConfigBlockLib Librar= y >=20 > REF:https://bugzilla.tianocore.org/show_bug.cgi?id=3D2318 >=20 > Establish one copy of Config blocks library class and instance > in IntelSiliconPkg and remove copies from other silicon packages > , like KabyLakeSiliconPkg, CoffelakeSiliconPkg. >=20 > Signed-off-by: Ethan Tsao > Cc: Sai Chaganty > Cc: Ray Ni > --- >=20 > Silicon/Intel/CoffeelakeSiliconPkg/Library/BaseConfigBlockLib/BaseConfigB= lo > ckLib.c | 146 --------------------------------------= ---------------------------- > -------------------------------------------------------------------------= ------- >=20 > Silicon/Intel/CoffeelakeSiliconPkg/Library/BaseConfigBlockLib/BaseConfigB= lo > ckLib.inf | 29 ----------------------------- > Silicon/Intel/{KabylakeSiliconPkg =3D> > IntelSiliconPkg}/Library/BaseConfigBlockLib/BaseConfigBlockLib.c | 10 = ++--- > ----- > Silicon/Intel/{KabylakeSiliconPkg =3D> > IntelSiliconPkg}/Library/BaseConfigBlockLib/BaseConfigBlockLib.inf | 0 > 4 files changed, 2 insertions(+), 183 deletions(-) >=20 > diff --git > a/Silicon/Intel/CoffeelakeSiliconPkg/Library/BaseConfigBlockLib/BaseConfi= gB > lockLib.c > b/Silicon/Intel/CoffeelakeSiliconPkg/Library/BaseConfigBlockLib/BaseConfi= g > BlockLib.c > deleted file mode 100644 > index 369dab97ee..0000000000 > --- > a/Silicon/Intel/CoffeelakeSiliconPkg/Library/BaseConfigBlockLib/BaseConfi= gB > lockLib.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= for the Config > Block Table > - @param[out] ConfigBlockTableAddress - On return, points to a p= ointer > 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 Tabl= e 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 (TotalSize); > - 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 beginni= ng of > Config Block Table Address > - @param[out] ConfigBlockAddress - On return, points to a p= ointer 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 c= annot 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 > *)ConfigBlockTableAddress; > - ConfigBlkAddrPtr =3D (CONFIG_BLOCK *)(*ConfigBlockAddress); > - ConfigBlkSize =3D ConfigBlkAddrPtr->Header.GuidHob.Header.HobLength; > - DEBUG ((DEBUG_INFO, "Config Block GUID: %g / Config Block Size: 0x%x > bytes\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 > Config Block.\n")); > - DEBUG ((DEBUG_ERROR, "Available Config Block Size: 0x%x bytes / > Requested Config Block Size: 0x%x bytes\n", ConfigBlkTblAddrPtr- > >AvailableSize, ConfigBlkSize)); > - 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(CONFIG_BLOCK_HEADER)); > - > - ConfigBlkTblAddrPtr->NumberOfBlocks++; > - ConfigBlkTblAddrPtr->AvailableSize =3D ConfigBlkTblAddrPtr->AvailableS= ize - > ConfigBlkSize; > - > - *ConfigBlockAddress =3D (VOID *) TempConfigBlk; > - DEBUG ((DEBUG_INFO, "Config Block Address: 0x%x / Available Config > Block Size: 0x%x bytes\n", (UINT32)(UINTN)*ConfigBlockAddress, > ConfigBlkTblAddrPtr->AvailableSize)); > - return EFI_SUCCESS; > -} > - > -/** > - Retrieve a specific Config Block data by GUID > - > - @param[in] ConfigBlockTableAddress - A pointer to the beginn= ing of > Config Block Table Address > - @param[in] ConfigBlockGuid - A pointer to the GUID u= ses to > search specific Config Block > - @param[out] ConfigBlockAddress - On return, points to a = pointer 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 > *)ConfigBlockTableAddress; > - NumOfBlocks =3D ConfigBlkTblAddrPtr->NumberOfBlocks; > - > - ConfigBlkOffset =3D 0; > - for (OffsetIndex =3D 0; OffsetIndex < NumOfBlocks; OffsetIndex++) { > - if ((ConfigBlkTblHdrSize + ConfigBlkOffset) > (ConfigBlkTblAddrPtr- > >Header.GuidHob.Header.HobLength)) { > - break; > - } > - TempConfigBlk =3D (CONFIG_BLOCK *)((UINTN)ConfigBlkTblAddrPtr + > (UINTN)ConfigBlkTblHdrSize + (UINTN)ConfigBlkOffset); > - if (CompareGuid (&(TempConfigBlk->Header.GuidHob.Name), > ConfigBlockGuid)) { > - *ConfigBlockAddress =3D (VOID *)TempConfigBlk; > - return EFI_SUCCESS; > - } > - ConfigBlkOffset =3D ConfigBlkOffset + TempConfigBlk- > >Header.GuidHob.Header.HobLength; > - } > - DEBUG ((DEBUG_ERROR, "Could not find the config block.\n")); > - return EFI_NOT_FOUND; > -} > diff --git > a/Silicon/Intel/CoffeelakeSiliconPkg/Library/BaseConfigBlockLib/BaseConfi= gB > lockLib.inf > b/Silicon/Intel/CoffeelakeSiliconPkg/Library/BaseConfigBlockLib/BaseConfi= g > BlockLib.inf > deleted file mode 100644 > index a7def2481d..0000000000 > --- > a/Silicon/Intel/CoffeelakeSiliconPkg/Library/BaseConfigBlockLib/BaseConfi= gB > lockLib.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/BaseConfigB= lo > ckLib.c > b/Silicon/Intel/IntelSiliconPkg/Library/BaseConfigBlockLib/BaseConfigBloc= kLi > b.c > similarity index 84% > rename from > Silicon/Intel/KabylakeSiliconPkg/Library/BaseConfigBlockLib/BaseConfigBlo= ck > Lib.c > rename to > Silicon/Intel/IntelSiliconPkg/Library/BaseConfigBlockLib/BaseConfigBlockL= ib.c > index b9bd6f3a48..77eb2244c2 100644 > --- > a/Silicon/Intel/KabylakeSiliconPkg/Library/BaseConfigBlockLib/BaseConfigB= lo > ckLib.c > +++ > b/Silicon/Intel/IntelSiliconPkg/Library/BaseConfigBlockLib/BaseConfigBloc= kLi > b.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 > (TotalSize); > if (ConfigBlkTblAddrPtr =3D=3D NULL) { > - DEBUG ((DEBUG_ERROR, "Could not allocate memory.\n")); > return EFI_OUT_OF_RESOURCES; > } > ConfigBlkTblAddrPtr->NumberOfBlocks =3D 0; > @@ -77,14 +75,11 @@ AddConfigBlock ( > ConfigBlkTblAddrPtr =3D (CONFIG_BLOCK_TABLE_HEADER > *)ConfigBlockTableAddress; > ConfigBlkAddrPtr =3D (CONFIG_BLOCK *)(*ConfigBlockAddress); > ConfigBlkSize =3D ConfigBlkAddrPtr->Header.GuidHob.Header.HobLength; > - DEBUG ((DEBUG_INFO, "Config Block GUID: %g / Config Block Size: 0x%x > bytes\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 > Config Block.\n")); > - DEBUG ((DEBUG_ERROR, "Available Config Block Size: 0x%x bytes / > Requested Config Block Size: 0x%x bytes\n", ConfigBlkTblAddrPtr- > >AvailableSize, ConfigBlkSize)); > return EFI_OUT_OF_RESOURCES; > } >=20 > @@ -95,7 +90,6 @@ AddConfigBlock ( > ConfigBlkTblAddrPtr->AvailableSize =3D ConfigBlkTblAddrPtr->AvailableS= ize - > 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, > ConfigBlkTblAddrPtr->AvailableSize)); > return EFI_SUCCESS; > } >=20 > @@ -140,6 +134,6 @@ GetConfigBlock ( > } > ConfigBlkOffset =3D ConfigBlkOffset + TempConfigBlk- > >Header.GuidHob.Header.HobLength; > } > - DEBUG ((DEBUG_ERROR, "Could not find the config block.\n")); > + > return EFI_NOT_FOUND; > } > diff --git > a/Silicon/Intel/KabylakeSiliconPkg/Library/BaseConfigBlockLib/BaseConfigB= lo > ckLib.inf > b/Silicon/Intel/IntelSiliconPkg/Library/BaseConfigBlockLib/BaseConfigBloc= kLi > b.inf > similarity index 100% > rename from > Silicon/Intel/KabylakeSiliconPkg/Library/BaseConfigBlockLib/BaseConfigBlo= ck > Lib.inf > rename to > Silicon/Intel/IntelSiliconPkg/Library/BaseConfigBlockLib/BaseConfigBlockL= ib.i > nf > -- > 2.16.2.windows.1