public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
* [edk2][PATCH V2 1/1] ArmPlatformPkg/PrePeiCore: Explicitly invoke constructor for SEC phase
@ 2022-06-20 13:56 Rohit Mathew
  0 siblings, 0 replies; only message in thread
From: Rohit Mathew @ 2022-06-20 13:56 UTC (permalink / raw)
  To: devel; +Cc: Ard Biesheuvel, Sami Mujawar, Rebecca Cran

PrePeiCore's CEntry function calls DebugLib library's print API before
the library is initialized. So, invoke the constructor in the SEC phase
to call into initialization functions associated with libraries linked
with this particular module. This change is essential to initialize
uart for SEC.

Signed-off-by: Rohit Mathew <rohit.mathew@arm.com>
---
 ArmPlatformPkg/PrePeiCore/PrePeiCore.h | 11 ++++++++++-
 ArmPlatformPkg/PrePeiCore/PrePeiCore.c |  5 ++++-
 2 files changed, 14 insertions(+), 2 deletions(-)

Changes since V1:
- Rebased on top of latest master branch.
- Addressed comments from Ard.

Link to github branch with the patches in this series -
https://github.com/rohit-arm/edk2/tree/sec_constructor_issue

diff --git a/ArmPlatformPkg/PrePeiCore/PrePeiCore.h b/ArmPlatformPkg/PrePeiCore/PrePeiCore.h
index 0345dd7bdd2a..d2491aa586ee 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,13 @@ PeiCommonExceptionEntry (
   IN UINTN   LR
   );
 
+/*
+ * Constructor for SEC phase
+ */
+VOID
+EFIAPI
+ProcessLibraryConstructorList (
+  VOID
+  );
+
 #endif
diff --git a/ArmPlatformPkg/PrePeiCore/PrePeiCore.c b/ArmPlatformPkg/PrePeiCore/PrePeiCore.c
index 6dd9bcdea24f..72c5f2f193b6 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
 
@@ -86,6 +86,9 @@ CEntryPoint (
     ArmEnableVFP ();
   }
 
+  // Explicitly invoke the library constructor to resolve any library dependency
+  ProcessLibraryConstructorList();
+
   // Note: The MMU will be enabled by MemoryPeim. Only the primary core will have the MMU on.
 
   // If not primary Jump to Secondary Main
-- 
2.25.1


^ permalink raw reply related	[flat|nested] only message in thread

only message in thread, other threads:[~2022-06-20 13:56 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-06-20 13:56 [edk2][PATCH V2 1/1] ArmPlatformPkg/PrePeiCore: Explicitly invoke constructor for SEC phase Rohit Mathew

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox