From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received-SPF: Pass (sender SPF authorized) identity=mailfrom; client-ip=192.55.52.88; helo=mga01.intel.com; envelope-from=hao.a.wu@intel.com; receiver=edk2-devel@lists.01.org Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id B7C2B21959CB2 for ; Wed, 20 Mar 2019 22:22:27 -0700 (PDT) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga008.jf.intel.com ([10.7.209.65]) by fmsmga101.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 20 Mar 2019 22:22:26 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.60,251,1549958400"; d="scan'208";a="127288829" Received: from fmsmsx108.amr.corp.intel.com ([10.18.124.206]) by orsmga008.jf.intel.com with ESMTP; 20 Mar 2019 22:22:26 -0700 Received: from shsmsx154.ccr.corp.intel.com (10.239.6.54) by FMSMSX108.amr.corp.intel.com (10.18.124.206) with Microsoft SMTP Server (TLS) id 14.3.408.0; Wed, 20 Mar 2019 22:22:25 -0700 Received: from shsmsx104.ccr.corp.intel.com ([169.254.5.74]) by SHSMSX154.ccr.corp.intel.com ([169.254.7.223]) with mapi id 14.03.0415.000; Thu, 21 Mar 2019 13:22:23 +0800 From: "Wu, Hao A" To: "Gao, Zhichao" , "edk2-devel@lists.01.org" CC: "Wang, Jian J" , "Ni, Ray" , "Zeng, Star" , "Gao, Liming" , Sean Brogan , Michael Turner , Bret Barkelew Thread-Topic: [PATCH V3 15/17] MdeModulePkg: Add a PEIM to install Debug PPI Thread-Index: AQHU3mg3CiwA7FxGUka237Vo07RtPaYVYnCA Date: Thu, 21 Mar 2019 05:22:22 +0000 Message-ID: References: <20190319152549.16104-1-zhichao.gao@intel.com> <20190319152549.16104-16-zhichao.gao@intel.com> In-Reply-To: <20190319152549.16104-16-zhichao.gao@intel.com> Accept-Language: zh-CN, en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.239.127.40] MIME-Version: 1.0 Subject: Re: [PATCH V3 15/17] MdeModulePkg: Add a PEIM to install Debug PPI X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 21 Mar 2019 05:22:28 -0000 Content-Language: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Hello, Besides the comments in patch 14/17 to remove the 'PeiServices' & 'This' parameters from the PPI services, some minor comments below: > -----Original Message----- > From: Gao, Zhichao > Sent: Tuesday, March 19, 2019 11:26 PM > To: edk2-devel@lists.01.org > Cc: Wang, Jian J; Wu, Hao A; Ni, Ray; Zeng, Star; Gao, Liming; Sean Broga= n; > Michael Turner; Bret Barkelew > Subject: [PATCH V3 15/17] MdeModulePkg: Add a PEIM to install Debug PPI >=20 > REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3D1395 >=20 > Add a PEIM to install Debug PPI so that PEI debug library > instance can locate gEdkiiDebugPpiGuid to implement the > debug functions. Using this PPI can reduce the size of > PEIMs which consume the debug library. >=20 > Contributed-under: TianoCore Contribution Agreement 1.1 > Signed-off-by: Zhichao Gao > Cc: Jian J Wang > Cc: Hao Wu > Cc: Ray Ni > Cc: Star Zeng > Cc: Liming Gao > Cc: Sean Brogan > Cc: Michael Turner > Cc: Bret Barkelew > --- > .../Universal/DebugServicePei/DebugService.c | 68 > ++++++++++++++++++++++ > .../Universal/DebugServicePei/DebugService.h | 64 > ++++++++++++++++++++ > .../Universal/DebugServicePei/DebugServicePei.c | 54 > +++++++++++++++++ > .../Universal/DebugServicePei/DebugServicePei.inf | 51 > ++++++++++++++++ > .../Universal/DebugServicePei/DebugServicePei.uni | 20 +++++++ > 5 files changed, 257 insertions(+) > create mode 100644 > MdeModulePkg/Universal/DebugServicePei/DebugService.c > create mode 100644 > MdeModulePkg/Universal/DebugServicePei/DebugService.h > create mode 100644 > MdeModulePkg/Universal/DebugServicePei/DebugServicePei.c > create mode 100644 > MdeModulePkg/Universal/DebugServicePei/DebugServicePei.inf > create mode 100644 > MdeModulePkg/Universal/DebugServicePei/DebugServicePei.uni >=20 > diff --git a/MdeModulePkg/Universal/DebugServicePei/DebugService.c > b/MdeModulePkg/Universal/DebugServicePei/DebugService.c > new file mode 100644 > index 0000000000..54ae6974d1 > --- /dev/null > +++ b/MdeModulePkg/Universal/DebugServicePei/DebugService.c > @@ -0,0 +1,68 @@ > +/** @file > + Debug services instances for PEI phase. > + > + Copyright (c) 2019, 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. > + > +**/ > + > +#include > +#include > + > +/** > + Print a debug message to debug output device if the specified error le= vel > + is enabled. > + > + @param[in] PeiServices The pointer to the PEI Services Ta= ble. > + @param[in] This The pointer to this instance of > EDKII_DEBUG_PPI > + @param[in] ErrorLevel The error level of the debug messa= ge. > + @param[in] Format Format string for the debug messag= e to print. > + @param[in] Marker BASE_LIST marker for the variable = argument > list. > + > +**/ > +VOID > +EFIAPI > +PeiDebugBPrint( > + IN CONST EFI_PEI_SERVICES **PeiServices, > + IN EDKII_DEBUG_PPI *This, > + IN UINTN ErrorLevel, > + IN CONST CHAR8 *Format, > + IN BASE_LIST Marker > + ) > +{ > + DebugBPrint(ErrorLevel, Format, Marker); > +} > + > +/** > + Print an assert message containing a filename, line number, and > description. > + This may be followed by a breakpoint or a dead loop. > + > + @param[in] PeiServices The pointer to the PEI Services Ta= ble. > + @param[in] This The pointer to this instance of > EDKII_DEBUG_PPI > + @param[in] FileName The pointer to the name of the sou= rce file > that > + generated the assert condition. > + @param[in] LineNumber The line number in the source file= that > generated > + the assert condition > + @param[in] Description The pointer to the description of = the assert > condition. > + > +**/ > +VOID > +EFIAPI > +PeiDebugAssert( > + IN CONST EFI_PEI_SERVICES **PeiServices, > + IN EDKII_DEBUG_PPI *This, > + IN CONST CHAR8 *FileName, > + IN UINTN LineNumber, > + IN CONST CHAR8 *Description > + ) > +{ > + DebugAssert(FileName, LineNumber, Description); > +} > + > diff --git a/MdeModulePkg/Universal/DebugServicePei/DebugService.h > b/MdeModulePkg/Universal/DebugServicePei/DebugService.h > new file mode 100644 > index 0000000000..21b44248bb > --- /dev/null > +++ b/MdeModulePkg/Universal/DebugServicePei/DebugService.h > @@ -0,0 +1,64 @@ > +/** @file > + Header file of Debug services instances. > + > + Copyright (c) 2019, 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 __DEBUG_SERVICE_H__ > +#define __DEBUG_SERVICE_H__ > + > +#include > + > +/** > + Print a debug message to debug output device if the specified error le= vel > + is enabled. > + > + @param[in] PeiServices The pointer to the PEI Services Ta= ble. > + @param[in] This The pointer to this instance of > EDKII_DEBUG_PPI > + @param[in] ErrorLevel The error level of the debug messa= ge. > + @param[in] Format Format string for the debug messag= e to print. > + @param[in] Marker BASE_LIST marker for the variable = argument > list. > + > +**/ > +VOID > +EFIAPI > +PeiDebugBPrint( > + IN CONST EFI_PEI_SERVICES **PeiServices, > + IN EDKII_DEBUG_PPI *This, > + IN UINTN ErrorLevel, > + IN CONST CHAR8 *Format, > + IN BASE_LIST Marker > + ); > + > +/** > + Prints an assert message containing a filename, line number, and > description. > + This may be followed by a breakpoint or a dead loop. > + > + @param[in] PeiServices The pointer to the PEI Services Ta= ble. > + @param[in] This The pointer to this instance of > EDKII_DEBUG_PPI > + @param[in] FileName The pointer to the name of the sou= rce file > that > + generated the assert condition. > + @param[in] LineNumber The line number in the source file= that > generated > + the assert condition > + @param[in] Description The pointer to the description of = the assert > condition. > + > +**/ > +VOID > +EFIAPI > +PeiDebugAssert( > + IN CONST EFI_PEI_SERVICES **PeiServices, > + IN EDKII_DEBUG_PPI *This, > + IN CONST CHAR8 *FileName, > + IN UINTN LineNumber, > + IN CONST CHAR8 *Description > + ); > + > +#endif > diff --git a/MdeModulePkg/Universal/DebugServicePei/DebugServicePei.c > b/MdeModulePkg/Universal/DebugServicePei/DebugServicePei.c > new file mode 100644 > index 0000000000..a502dd150b > --- /dev/null > +++ b/MdeModulePkg/Universal/DebugServicePei/DebugServicePei.c > @@ -0,0 +1,54 @@ > +/** @file > + This driver installs gEdkiiPeiDebugLibDebugGuid PPI to provide Do you mean 'installs gEdkiiDebugPpiGuid PPI' here? > + debug services for PEIMs. > + > + Copyright (c) 2019, 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. > + > +**/ > + > +#include > +#include > +#include > +#include "DebugService.h" > + > +EDKII_DEBUG_PPI mDebugPpi =3D { > + PeiDebugBPrint, > + PeiDebugAssert > +}; > + > +EFI_PEI_PPI_DESCRIPTOR mDebugServicePpi =3D { > + (EFI_PEI_PPI_DESCRIPTOR_PPI | > EFI_PEI_PPI_DESCRIPTOR_TERMINATE_LIST), > + &gEdkiiDebugPpiGuid, > + (VOID *)&mDebugPpi > +}; > + > +/** > + Entry point of Debug Service PEIM > + > + This funciton installs EDKII DEBUG PPI > + > + @param FileHandle Handle of the file being invoked. > + @param PeiServices Describes the list of possible PEI Services. > + > + @retval EFI_SUCESS The entry point of Debug Service PEIM executes > successfully. > + @retval Others Some error occurs during the execution of this fun= ction. > + > +**/ > +EFI_STATUS > +EFIAPI > +DebugSerivceInitialize ( > + IN EFI_PEI_FILE_HANDLE FileHandle, > + IN CONST EFI_PEI_SERVICES **PeiServices > + ) > +{ > + return PeiServicesInstallPpi (&mDebugServicePpi); > +} > + > diff --git a/MdeModulePkg/Universal/DebugServicePei/DebugServicePei.inf > b/MdeModulePkg/Universal/DebugServicePei/DebugServicePei.inf > new file mode 100644 > index 0000000000..f9563ed1b3 > --- /dev/null > +++ b/MdeModulePkg/Universal/DebugServicePei/DebugServicePei.inf > @@ -0,0 +1,51 @@ > +## @file > +# Debug services for PEI phase > +# > +# This module installs gEdkiiFaultTolerantWriteGuid PPI to inform the c= heck > for FTW last write data has been done. Please help to correct the above description for the INF file. > +# > +# Copyright (c) 2019, 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. > +# > +## > +[Defines] > + INF_VERSION =3D 0x00010005 > + BASE_NAME =3D DebugServicePei > + MODULE_UNI_FILE =3D DebugServicePei.uni > + FILE_GUID =3D B73F81B9-1DFC-487C-824C-0509EE2B012= 8 > + MODULE_TYPE =3D PEIM > + VERSION_STRING =3D 1.0 > + > + ENTRY_POINT =3D DebugSerivceInitialize > + > +# > +# The following information is for reference only and not required by th= e > build tools. > +# > +# VALID_ARCHITECTURES =3D IA32 X64 EBC > +# > + > +[Sources] > + DebugServicePei.c > + DebugService.c > + DebugService.h > + > +[Packages] > + MdePkg/MdePkg.dec > + MdeModulePkg/MdeModulePkg.dec > + > +[LibraryClasses] > + PeimEntryPoint > + PeiServicesLib > + DebugLib > + > +[Ppis] > + gEdkiiDebugPpiGuid ## PRODUCE > + > +[Depex] > + TRUE > + > diff --git a/MdeModulePkg/Universal/DebugServicePei/DebugServicePei.uni > b/MdeModulePkg/Universal/DebugServicePei/DebugServicePei.uni > new file mode 100644 > index 0000000000..2ac1d997d0 > --- /dev/null > +++ b/MdeModulePkg/Universal/DebugServicePei/DebugServicePei.uni > @@ -0,0 +1,20 @@ > +///** @file > +// This driver installs gEdkiiPeiDebugLibDebugGuid PPI to provide Same with above, seems should be 'gEdkiiDebugPpiGuid' to me. > +// debug services for PEIMs. > +// > +// Copyright (c) 2013 - 2019, Intel Corporation. All rights reserved. Since this is a new file, please help to update the copyright year to 2019. > +// > +// This program and the accompanying materials > +// are licensed and made available under the terms and conditions of th= e > BSD License > +// which accompanies this distribution. The full text of the license m= ay 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. > +// > +//**/ > + > +#string STR_MODULE_ABSTRACT #language en-US "Provide debug > services at PEI phase." > + > +#string STR_MODULE_DESCRIPTION #language en-US "It produces > gEdkiiPeiDebugLibDebugGuid to print message to debug output device" Same with above, seems should be 'gEdkiiDebugPpiGuid' to me. Best Regards, Hao Wu > + > -- > 2.16.2.windows.1