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.115; helo=mga14.intel.com; envelope-from=hao.a.wu@intel.com; receiver=edk2-devel@lists.01.org Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) (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 4EAB0211D59DF for ; Thu, 21 Mar 2019 19:00:20 -0700 (PDT) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga002.jf.intel.com ([10.7.209.21]) by fmsmga103.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 21 Mar 2019 19:00:19 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.60,255,1549958400"; d="scan'208";a="144154247" Received: from fmsmsx103.amr.corp.intel.com ([10.18.124.201]) by orsmga002.jf.intel.com with ESMTP; 21 Mar 2019 19:00:18 -0700 Received: from shsmsx102.ccr.corp.intel.com (10.239.4.154) by FMSMSX103.amr.corp.intel.com (10.18.124.201) with Microsoft SMTP Server (TLS) id 14.3.408.0; Thu, 21 Mar 2019 19:00:17 -0700 Received: from shsmsx104.ccr.corp.intel.com ([169.254.5.74]) by shsmsx102.ccr.corp.intel.com ([169.254.2.163]) with mapi id 14.03.0415.000; Fri, 22 Mar 2019 10:00:15 +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 V4 15/17] MdeModulePkg: Add a PEIM to install Debug PPI Thread-Index: AQHU3+9NqZIqh8GFUEqFrHQ9fqCUa6YW5hkg Date: Fri, 22 Mar 2019 02:00:15 +0000 Message-ID: References: <20190321140459.18304-1-zhichao.gao@intel.com> <20190321140459.18304-16-zhichao.gao@intel.com> In-Reply-To: <20190321140459.18304-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 V4 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: Fri, 22 Mar 2019 02:00:20 -0000 Content-Language: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Reviewed-by: Hao Wu Best Regards, Hao Wu > -----Original Message----- > From: Gao, Zhichao > Sent: Thursday, March 21, 2019 10:05 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 V4 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 | 60 > ++++++++++++++++++++++ > .../Universal/DebugServicePei/DebugService.h | 56 > ++++++++++++++++++++ > .../Universal/DebugServicePei/DebugServicePei.c | 54 > +++++++++++++++++++ > .../Universal/DebugServicePei/DebugServicePei.inf | 52 > +++++++++++++++++++ > .../Universal/DebugServicePei/DebugServicePei.uni | 20 ++++++++ > 5 files changed, 242 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..a9ea14db81 > --- /dev/null > +++ b/MdeModulePkg/Universal/DebugServicePei/DebugService.c > @@ -0,0 +1,60 @@ > +/** @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] 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 UINTN ErrorLevel, > + IN CONST CHAR8 *Format, > + IN BASE_LIST Marker > + ) > +{ > + DebugBPrint(ErrorLevel, Format, Marker); > +} > + > +/** > + Print an assert message containing a filename, line number, and descri= ption. > + This may be followed by a breakpoint or a dead loop. > + > + @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 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..3e234f76b6 > --- /dev/null > +++ b/MdeModulePkg/Universal/DebugServicePei/DebugService.h > @@ -0,0 +1,56 @@ > +/** @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] 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 UINTN ErrorLevel, > + IN CONST CHAR8 *Format, > + IN BASE_LIST Marker > + ); > + > +/** > + Prints an assert message containing a filename, line number, and descr= iption. > + This may be followed by a breakpoint or a dead loop. > + > + @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 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..06117cfcf0 > --- /dev/null > +++ b/MdeModulePkg/Universal/DebugServicePei/DebugServicePei.c > @@ -0,0 +1,54 @@ > +/** @file > + This driver installs gEdkiiDebugPpiGuid PPI to provide > + 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..e1252b658d > --- /dev/null > +++ b/MdeModulePkg/Universal/DebugServicePei/DebugServicePei.inf > @@ -0,0 +1,52 @@ > +## @file > +# Debug services for PEI phase > +# > +# This module installs gEdkiiDebugPpiGuid PPI to provide > +# 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. > +# > +## > +[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..c49a7acbca > --- /dev/null > +++ b/MdeModulePkg/Universal/DebugServicePei/DebugServicePei.uni > @@ -0,0 +1,20 @@ > +///** @file > +// This driver installs gEdkiiDebugPpiGuid PPI to provide > +// 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 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 > gEdkiiDebugPpiGuid to print message to debug output device" > + > -- > 2.16.2.windows.1