audk/MdeModulePkg/Core/Dxe
Laszlo Ersek 1366cd58cd MdeModulePkg/Core/Dxe: log memory base and length, after lib ctors again
CoreInitializeMemoryServices() logs "BaseAddress" and "Length" with
DEBUG() before DxeMain() calls ProcessLibraryConstructorList()
explicitly. (Library construction is not an automatic part of the DXE
Core entry point.)

So those DEBUG()s in CoreInitializeMemoryServices() are issued against
an un-constructed DebugLib, and also against a -- possibly underlying --
un-constructed SerialPortLib.

Some DebugLib instances can deal with this (see for example commit
91a5b13650, "OvmfPkg/PlatformDebugLibIoPort: fix port detection for
use in the DXE Core", 2018-08-06), while some others can't (see for
example the DebugLib instance
"MdePkg/Library/BaseDebugLibSerialPort/BaseDebugLibSerialPort.inf"
coupled with the SerialPortLib instance
"ArmVirtPkg/Library/FdtPL011SerialPortLib/FdtPL011SerialPortLib.inf").

Addressing this issue in a SerialPortLib instance that underlies
BaseDebugLibSerialPort seems wrong; either the DebugLib instance should
cope directly with being called un-constructed (see again commit
91a5b13650), or the DXE Core should log relevant information *at
least* after library instances have been constructed. This patch
implements the latter (only for the "BaseAddress" and "Length" values
calculated by CoreInitializeMemoryServices()).

Cc: Ard Biesheuvel <ard.biesheuvel@arm.com>
Cc: Dandan Bi <dandan.bi@intel.com>
Cc: Hao A Wu <hao.a.wu@intel.com>
Cc: Jeff Brasen <jbrasen@nvidia.com>
Cc: Jian J Wang <jian.j.wang@intel.com>
Cc: Leif Lindholm <leif@nuviainc.com>
Cc: Liming Gao <gaoliming@byosoft.com.cn>
Cc: Philippe Mathieu-Daudé <philmd@redhat.com>
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
Message-Id: <20201103161557.30621-1-lersek@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Reviewed-by: Liming Gao <gaoliming@byosoft.com.cn>
2020-11-06 20:37:22 +00:00
..
Dispatcher MdeModulePkg DxeCore: Fix typo in function name 2019-10-17 09:09:02 +08:00
DxeMain MdeModulePkg/Core/Dxe: log memory base and length, after lib ctors again 2020-11-06 20:37:22 +00:00
Event MdeModulePkg: document workaround for EFI_RUNTIME_EVENT_ENTRY PI spec bug 2019-10-09 09:40:09 +02:00
FwVol MdeModulePkg/Core: Support standalone MM in FV2 protocol GetNextFile(). 2020-10-29 05:29:42 +00:00
FwVolBlock MdeModulePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:08 -07:00
Gcd MdeModulePkg/Gcd: Check memory allocation when initializing memory 2020-11-05 03:37:37 +00:00
Hand MdeModulePkg: Make retval in UninstallMultipleProtocol follow Spec 2020-02-19 14:43:25 +00:00
Image MdeModulePkg/DxeCore: defer PE/COFF emulator registration to StartImage 2020-03-04 09:26:45 +00:00
Library MdeModulePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:08 -07:00
Mem MdeModulePkg/Core/Dxe: expose SP and CRYPTO capabilities in UEFI memmap 2020-10-10 04:04:50 +00:00
Misc MdeModulePkg: Add New Memory Attributes 2020-07-15 14:58:25 +00:00
SectionExtraction MdeModulePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:08 -07:00
DxeCore.uni MdeModulePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:08 -07:00
DxeCoreExtra.uni MdeModulePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:08 -07:00
DxeMain.h MdeModulePkg/DxeCore: merge properties table routines into MAT handling 2020-04-07 08:15:46 +00:00
DxeMain.inf MdeModulePkg/DxeCore: merge properties table routines into MAT handling 2020-04-07 08:15:46 +00:00