On platforms that do not have the serial console port pre-initialized prior to the SEC phase and due to the absence of a call to "SerialPortInitialize", this results in missing debug logs. So, call the auto-generated "ProcessLibraryConstructorList" function from SEC phase to have all the dependent library constructors called (this includes a call to "SerialPortInitialize").
Signed-off-by: Rohit Mathew <rohit.mat...@arm.com> --- ArmPlatformPkg/PrePeiCore/PrePeiCore.h | 12 +++++++++++- ArmPlatformPkg/PrePeiCore/PrePeiCore.c | 6 +++++- 2 files changed, 16 insertions(+), 2 deletions(-) Changes since V1: - Rebased on top of latest master branch. - Addressed comments from Ard. Changes since V2: - Rebased on top of latest master branch. Changes since V3: - Addressed comments from Sami. Link to github branch for the patch - https://github.com/rohit-arm/edk2/tree/sec_constructor_issue diff --git a/ArmPlatformPkg/PrePeiCore/PrePeiCore.h b/ArmPlatformPkg/PrePeiCore/PrePeiCore.h index 0345dd7bdd2a..c1e13e23e11e 100644 --- a/ArmPlatformPkg/PrePeiCore/PrePeiCore.h +++ b/ArmPlatformPkg/PrePeiCore/PrePeiCore.h @@ -1,7 +1,7 @@ /** @file Main file supporting the transition to PEI Core in Normal World for Versatile Express - Copyright (c) 2011, ARM Limited. All rights reserved. + Copyright (c) 2011 - 2022, ARM Limited. All rights reserved. SPDX-License-Identifier: BSD-2-Clause-Patent @@ -73,4 +73,14 @@ PeiCommonExceptionEntry ( IN UINTN LR ); +/* + * Autogenerated function that calls the library constructors for all of the + * module's dependent libraries. + */ +VOID +EFIAPI +ProcessLibraryConstructorList ( + VOID + ); + #endif diff --git a/ArmPlatformPkg/PrePeiCore/PrePeiCore.c b/ArmPlatformPkg/PrePeiCore/PrePeiCore.c index 6dd9bcdea24f..9c4b25df953d 100644 --- a/ArmPlatformPkg/PrePeiCore/PrePeiCore.c +++ b/ArmPlatformPkg/PrePeiCore/PrePeiCore.c @@ -1,7 +1,7 @@ /** @file Main file supporting the transition to PEI Core in Normal World for Versatile Express - Copyright (c) 2011-2014, ARM Limited. All rights reserved. + Copyright (c) 2011 - 2022, ARM Limited. All rights reserved. SPDX-License-Identifier: BSD-2-Clause-Patent @@ -90,6 +90,10 @@ CEntryPoint ( // If not primary Jump to Secondary Main if (ArmPlatformIsPrimaryCore (MpId)) { + // Invoke "ProcessLibraryConstructorList" to have all library constructors + // called. + ProcessLibraryConstructorList (); + // Initialize the Debug Agent for Source Level Debugging InitializeDebugAgent (DEBUG_AGENT_INIT_POSTMEM_SEC, NULL, NULL); SaveAndSetDebugTimerInterrupt (TRUE); -- 2.25.1 -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#91725): https://edk2.groups.io/g/devel/message/91725 Mute This Topic: https://groups.io/mt/92552068/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-