Reviewed-by: Hao Wu <[email protected]> Best Regards, Hao Wu
> -----Original Message----- > From: Gao, Zhichao > Sent: Thursday, March 21, 2019 10:05 PM > To: [email protected] > 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=1395 > > 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 <[email protected]> > Cc: Jian J Wang <[email protected]> > Cc: Hao Wu <[email protected]> > Cc: Ray Ni <[email protected]> > Cc: Star Zeng <[email protected]> > Cc: Liming Gao <[email protected]> > Cc: Sean Brogan <[email protected]> > Cc: Michael Turner <[email protected]> > Cc: Bret Barkelew <[email protected]> > --- > .../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.<BR> > + > + 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 <Ppi/Debug.h> > +#include <Library/DebugLib.h> > + > +/** > + Print a debug message to debug output device if the specified error level > + is enabled. > + > + @param[in] ErrorLevel The error level of the debug message. > + @param[in] Format Format string for the debug message 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 > description. > + This may be followed by a breakpoint or a dead loop. > + > + @param[in] FileName The pointer to the name of the source > 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.<BR> > + > + 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 <Ppi/Debug.h> > + > +/** > + Print a debug message to debug output device if the specified error level > + is enabled. > + > + @param[in] ErrorLevel The error level of the debug message. > + @param[in] Format Format string for the debug message 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 > description. > + This may be followed by a breakpoint or a dead loop. > + > + @param[in] FileName The pointer to the name of the source > 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.<BR> > + > + 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 <Uefi/UefiBaseType.h> > +#include <Library/PeimEntryPoint.h> > +#include <Library/PeiServicesLib.h> > +#include "DebugService.h" > + > +EDKII_DEBUG_PPI mDebugPpi = { > + PeiDebugBPrint, > + PeiDebugAssert > +}; > + > +EFI_PEI_PPI_DESCRIPTOR mDebugServicePpi = { > + (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 > function. > + > +**/ > +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.<BR> > +# > +# 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 = 0x00010005 > + BASE_NAME = DebugServicePei > + MODULE_UNI_FILE = DebugServicePei.uni > + FILE_GUID = B73F81B9-1DFC-487C-824C-0509EE2B0128 > + MODULE_TYPE = PEIM > + VERSION_STRING = 1.0 > + > + ENTRY_POINT = DebugSerivceInitialize > + > +# > +# The following information is for reference only and not required by the > build > tools. > +# > +# VALID_ARCHITECTURES = 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.<BR> > +// > +// 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. > +// > +//**/ > + > +#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 _______________________________________________ edk2-devel mailing list [email protected] https://lists.01.org/mailman/listinfo/edk2-devel

