audk/MdeModulePkg
Tan, Ming d4945b1027 MdeModulePkg/Universal/StatusCodeHandler: Fix a bug about log lost
REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3126

1. If use PeiDxeDebugLibReportStatusCode as DebugLib, then some logs
after ExitBootService() will be lost.
2. The root cause:
2.1 The original code will register an unregister function
of gEfiEventExitBootServicesGuid, this unregister function will call
EFI_RSC_HANDLER_PROTOCOL->Unregister and does not support log through
serial port.
2.2 And some other drivers also register call back funtions of
gEfiEventExitBootServicesGuid.
2.3 Then after the unregister function is called, other call back
functions can't out log if them use RSC as DebugLib.
3. The DxeMain will report status code EFI_SW_BS_PC_EXIT_BOOT_SERVICES
after notify all the call back functions of
gEfiEventExitBootServicesGuid.
4. Solution: the StatusCodeHandlerRuntimeDxe.c will not register an
unregister function of gEfiEventExitBootServicesGuid, but unregister it
after receive the status code of EFI_SW_BS_PC_EXIT_BOOT_SERVICES.

Cc: Dandan Bi <dandan.bi@intel.com>
Cc: Liming Gao <gaoliming@byosoft.com.cn>
Signed-off-by: Ming Tan <ming.tan@intel.com>
Reviewed-by: Liming Gao <gaoliming@byosoft.com.cn>
Reviewed-by: Dandan Bi <dandan.bi@intel.com>
2020-12-22 08:23:51 +00:00
..
Application MdeModulePkg/CapsuleApp: Fix spelling mistake 2020-08-07 18:53:01 +00:00
Bus MdeModulePkg/PciSioSerialDxe: Flush Tx before config change 2020-12-19 01:29:44 +00:00
Core MdeModulePkg: Fix undefined reference to memcpy with XCODE5 2020-12-04 02:59:38 +00:00
Include MdeModulePkg: Define the VarCheckPolicyLib and SMM interface 2020-11-17 01:03:43 +00:00
Library MdeModulePkg/FileExplorerLib: remove redundant null pointer check 2020-12-04 05:56:09 +00:00
Logo MdeModulePkg/Logo:Add RISCV64 architecture 2020-05-07 03:17:15 +00:00
Test MdeModulePkg/Variable/RuntimeDxe: Add Variable Lock Protocol Unit Tests 2020-12-15 06:26:34 +00:00
Universal MdeModulePkg/Universal/StatusCodeHandler: Fix a bug about log lost 2020-12-22 08:23:51 +00:00
MdeModulePkg.ci.yaml MdeModulePkg: Define the VariablePolicyLib 2020-11-17 01:03:43 +00:00
MdeModulePkg.dec MdeModulePkg/Core/Dxe: limit FwVol encapsulation section recursion 2020-11-21 01:40:53 +00:00
MdeModulePkg.dsc MdeModulePkg: Define the VarCheckPolicyLib and SMM interface 2020-11-17 01:03:43 +00:00
MdeModulePkg.uni MdeModulePkg/Core/Dxe: limit FwVol encapsulation section recursion 2020-11-21 01:40:53 +00:00
MdeModulePkgExtra.uni MdeModulePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:08 -07:00