diff options
author | Ard Biesheuvel <ardb@kernel.org> | 2023-01-19 00:15:08 +0100 |
---|---|---|
committer | mergify[bot] <37929162+mergify[bot]@users.noreply.github.com> | 2023-01-26 18:54:58 +0000 |
commit | 6c8a08bd8a6803c18a54267379e8f5d78c831796 (patch) | |
tree | 6868619168d03bb95d973495cc0b22ba86ec67c4 | |
parent | d0ff1cae3a1ab20ffd5a1d80658c38c113585651 (diff) | |
download | edk2-6c8a08bd8a6803c18a54267379e8f5d78c831796.tar.gz edk2-6c8a08bd8a6803c18a54267379e8f5d78c831796.tar.bz2 edk2-6c8a08bd8a6803c18a54267379e8f5d78c831796.zip |
ArmVirtPkg/PrePi: Ensure timely execution of library constructors
PrePi has a bare metal entry point, and so it is in charge of calling
the library constructors once the C runtime has been initialized
sufficiently.
However, we are now relying on a HOB to have been constructed by the
time the MMU code runs, and so the constructors should be run before
that.
Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
Acked-by: Gerd Hoffmann <kraxel@redhat.com>
-rwxr-xr-x | ArmVirtPkg/PrePi/PrePi.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/ArmVirtPkg/PrePi/PrePi.c b/ArmVirtPkg/PrePi/PrePi.c index c15dc305fc..3d943b2138 100755 --- a/ArmVirtPkg/PrePi/PrePi.c +++ b/ArmVirtPkg/PrePi/PrePi.c @@ -60,6 +60,9 @@ PrePiMain ( //
InvalidateDataCacheRange ((VOID *)(UINTN)PcdGet64 (PcdFdBaseAddress), PcdGet32 (PcdFdSize));
+ // SEC phase needs to run library constructors by hand.
+ ProcessLibraryConstructorList ();
+
// Initialize MMU and Memory HOBs (Resource Descriptor HOBs)
Status = MemoryPeim (UefiMemoryBase, FixedPcdGet32 (PcdSystemMemoryUefiRegionSize));
ASSERT_EFI_ERROR (Status);
@@ -93,9 +96,6 @@ PrePiMain ( // Now, the HOB List has been initialized, we can register performance information
PERF_START (NULL, "PEI", NULL, StartTimeStamp);
- // SEC phase needs to run library constructors by hand.
- ProcessLibraryConstructorList ();
-
// Assume the FV that contains the SEC (our code) also contains a compressed FV.
Status = DecompressFirstFv ();
ASSERT_EFI_ERROR (Status);
|