diff --git a/ArmPlatformPkg/PrePeiCore/PrePeiCore.c b/ArmPlatformPkg/PrePeiCore/PrePeiCore.c index 6dd9bcdea2..9c4b25df95 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); diff --git a/ArmPlatformPkg/PrePeiCore/PrePeiCore.h b/ArmPlatformPkg/PrePeiCore/PrePeiCore.h index 0345dd7bdd..c1e13e23e1 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