|
@@ -0,0 +1,100 @@
|
|
|
+/** @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 <Library/DebugLib.h>
|
|
|
+
|
|
|
+#include <Ppi/Debug.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
|
|
|
+};
|
|
|
+
|
|
|
+/**
|
|
|
+ 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);
|
|
|
+}
|
|
|
+
|
|
|
+/**
|
|
|
+ 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);
|
|
|
+}
|
|
|
+
|