From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received-SPF: Pass (sender SPF authorized) identity=mailfrom; client-ip=134.134.136.20; helo=mga02.intel.com; envelope-from=liming.gao@intel.com; receiver=edk2-devel@lists.01.org Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) (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 8DC79211D9155 for ; Wed, 27 Mar 2019 19:05:48 -0700 (PDT) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga003.fm.intel.com ([10.253.24.29]) by orsmga101.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 27 Mar 2019 19:05:47 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.60,278,1549958400"; d="scan'208";a="144489693" Received: from fmsmsx105.amr.corp.intel.com ([10.18.124.203]) by FMSMGA003.fm.intel.com with ESMTP; 27 Mar 2019 19:05:47 -0700 Received: from FMSMSX109.amr.corp.intel.com (10.18.116.9) by FMSMSX105.amr.corp.intel.com (10.18.124.203) with Microsoft SMTP Server (TLS) id 14.3.408.0; Wed, 27 Mar 2019 19:05:47 -0700 Received: from shsmsx153.ccr.corp.intel.com (10.239.6.53) by fmsmsx109.amr.corp.intel.com (10.18.116.9) with Microsoft SMTP Server (TLS) id 14.3.408.0; Wed, 27 Mar 2019 19:05:47 -0700 Received: from shsmsx104.ccr.corp.intel.com ([169.254.5.74]) by SHSMSX153.ccr.corp.intel.com ([169.254.12.121]) with mapi id 14.03.0415.000; Thu, 28 Mar 2019 10:05:45 +0800 From: "Gao, Liming" To: "Gao, Zhichao" , "edk2-devel@lists.01.org" CC: "Wang, Jian J" , "Wu, Hao A" , "Ni, Ray" , "Zeng, Star" , Sean Brogan , Michael Turner , Bret Barkelew Thread-Topic: [PATCH V4 15/17] MdeModulePkg: Add a PEIM to install Debug PPI Thread-Index: AQHU3+9N/2ZegVW9M0WFJ4O3+IZ0wqYgVVIw Date: Thu, 28 Mar 2019 02:05:44 +0000 Message-ID: <4A89E2EF3DFEDB4C8BFDE51014F606A14E40CD9E@SHSMSX104.ccr.corp.intel.com> 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: 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: Thu, 28 Mar 2019 02:05:49 -0000 Content-Language: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Zhichao: One .c file is enough for this PEIM. You can implement all in one C file.= =20 Thanks Liming >-----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 Brogan ; >Michael Turner ; Bret Barkelew > >Subject: [PATCH V4 15/17] MdeModulePkg: Add a PEIM to install Debug PPI > >REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3D1395 > >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. > >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 > >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 B= SD >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 lev= el >+ is enabled. >+ >+ @param[in] ErrorLevel The error level of the debug messag= e. >+ @param[in] Format Format string for the debug message= to print. >+ @param[in] Marker BASE_LIST marker for the variable a= rgument >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 descrip= tion. >+ This may be followed by a breakpoint or a dead loop. >+ >+ @param[in] FileName The pointer to the name of the sour= ce 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 t= he 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 B= SD >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 lev= el >+ is enabled. >+ >+ @param[in] ErrorLevel The error level of the debug messag= e. >+ @param[in] Format Format string for the debug message= to print. >+ @param[in] Marker BASE_LIST marker for the variable a= rgument >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 >description. >+ This may be followed by a breakpoint or a dead loop. >+ >+ @param[in] FileName The pointer to the name of the sour= ce 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 t= he 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 B= SD >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 func= tion. >+ >+**/ >+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-0509EE2B0128 >+ MODULE_TYPE =3D PEIM >+ VERSION_STRING =3D 1.0 >+ >+ ENTRY_POINT =3D DebugSerivceInitialize >+ >+# >+# The following information is for reference only and not required by the >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 the >BSD License >+// which accompanies this distribution. The full text of the license ma= y 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