(+ Rebecca) On Tue, 8 Mar 2022 at 12:55, Rohit Mathew <rohit.mat...@arm.com> wrote: > > 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.mat...@arm.com> > --- > ArmPlatformPkg/PrePeiCore/PrePeiCore.h | 11 ++++++++++- > ArmPlatformPkg/PrePeiCore/PrePeiCore.c | 9 +++++++-- > 2 files changed, 17 insertions(+), 3 deletions(-) > > 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 > + ); > +
Why do we need this? Can't we just include PiPei.h or something like that? > #endif > diff --git a/ArmPlatformPkg/PrePeiCore/PrePeiCore.c > b/ArmPlatformPkg/PrePeiCore/PrePeiCore.c > index 6dd9bcdea24f..b5f7d2f05b1e 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,7 +86,12 @@ CEntryPoint ( > ArmEnableVFP (); > } > > - // Note: The MMU will be enabled by MemoryPeim. Only the primary core will > have the MMU on. > + // In the Sec phase, explicitly invoke the library constructors. This helps > + // the DebugPrint library to be initialized before it is used by subsequent > + // code executed in the sec phase. Please drop the reference to DebugLib - calling library constructors could be needed for any library dependency. > + ProcessLibraryConstructorList(); > + > + //Note: The MMU will be enabled by MemoryPeim. Only the primary core will > have the MMU on. Please leave this comment as before. > > // If not primary Jump to Secondary Main > if (ArmPlatformIsPrimaryCore (MpId)) { > -- > 2.25.1 > -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#89477): https://edk2.groups.io/g/devel/message/89477 Mute This Topic: https://groups.io/mt/89640640/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-