REF: https://bugzilla.tianocore.org/show_bug.cgi?id=1416 After ExitBootServices, some pointer would be invalid such as the Protocol pointer and gBS. The function depend on those should be prevent. So disable the related function while after ExitBootServices. Change the gBS to a internal one, because there will be a cycle consume between UefiBootServicesTableLib and DebugLib due to the library constructors. Also remove the SMM support for this instance. Cc: Michael D Kinney <michael.d.kinney@intel.com> Cc: Liming Gao <liming.gao@intel.com> Cc: Sean Brogan <sean.brogan@microsoft.com> Cc: Michael Turner <Michael.Turner@microsoft.com> Cc: Bret Barkelew <Bret.Barkelew@microsoft.com> Signed-off-by: Zhichao Gao <zhichao.gao@intel.com> Reviewed-by: Liming Gao <liming.gao@intel.com>
59 lines
1.5 KiB
INI
59 lines
1.5 KiB
INI
## @file
|
|
# Instance of Debug Library using EFI_DEBUGPORT_PROTOCOL.
|
|
#
|
|
# Debug Lib that sends messages to EFI_DEBUGPORT_PROTOCOL.Write.
|
|
#
|
|
# Copyright (c) 2018, Microsoft Corporation
|
|
#
|
|
# Copyright (c) 2015 - 2019, Intel Corporation. All rights reserved.<BR>
|
|
#
|
|
# SPDX-License-Identifier: BSD-2-Clause-Patent
|
|
#
|
|
#
|
|
##
|
|
|
|
[Defines]
|
|
INF_VERSION = 0x00010005
|
|
BASE_NAME = UefiDebugLibDebugPortProtocol
|
|
MODULE_UNI_FILE = UefiDebugLibDebugPortProtocol.uni
|
|
FILE_GUID = 102287b4-6b12-4D41-91e1-ebee1f3aa614
|
|
MODULE_TYPE = UEFI_DRIVER
|
|
VERSION_STRING = 1.0
|
|
LIBRARY_CLASS = DebugLib|DXE_CORE DXE_DRIVER DXE_RUNTIME_DRIVER UEFI_APPLICATION UEFI_DRIVER
|
|
|
|
CONSTRUCTOR = DxeDebugLibConstructor
|
|
|
|
#
|
|
# VALID_ARCHITECTURES = IA32 X64 EBC
|
|
#
|
|
|
|
|
|
[Sources]
|
|
DebugLib.c
|
|
DebugLibConstructor.c
|
|
|
|
|
|
|
|
[Packages]
|
|
MdePkg/MdePkg.dec
|
|
|
|
|
|
[LibraryClasses]
|
|
BaseMemoryLib
|
|
BaseLib
|
|
PcdLib
|
|
PrintLib
|
|
DebugPrintErrorLevelLib
|
|
|
|
[Guids]
|
|
gEfiEventExitBootServicesGuid ## CONSUMES
|
|
|
|
[Protocols]
|
|
gEfiDebugPortProtocolGuid ## CONSUMES
|
|
|
|
[Pcd]
|
|
gEfiMdePkgTokenSpaceGuid.PcdDebugClearMemoryValue ## SOMETIMES_CONSUMES
|
|
gEfiMdePkgTokenSpaceGuid.PcdDebugPropertyMask ## CONSUMES
|
|
gEfiMdePkgTokenSpaceGuid.PcdFixedDebugPrintErrorLevel ## CONSUMES
|
|
|