> On Aug 12, 2016, at 10:11 AM, Leif Lindholm <[email protected]> wrote: > > Contributed-under: TianoCore Contribution Agreement 1.0 > Signed-off-by: Leif Lindholm <[email protected]> > --- > > This is not a proposed change, but rather a demonstration: > When trying to build HelloWorld standalone for ARM/AARCH64, > with a command line like > build -a AARCH64 -t GCC5 -p MdeModulePkg/MdeModulePkg.dsc \ > -m MdeModulePkg/Application/HelloWorld/HelloWorld.inf > this fails with > > /work/git/edk2/MdeModulePkg/MdeModulePkg.dsc(...): error 4000: Instance of > library class [ArmMmuLib] is not found > in [/work/git/edk2/MdeModulePkg/Core/DxeIplPeim/DxeIpl.inf] [AARCH64] > consumed by module > [/work/git/edk2/MdeModulePkg/Core/DxeIplPeim/DxeIpl.inf] > > Adding the below stanzas resolve the issue, but looking > into why other architectures have no issues with this, > I spot a lot of low-level MMU tweakery directly under > DxeIplPeim. > > Would this not be better handled through some standardised > mechanism? >
Leif, The DXE IPL containing the paging code predated the edk2. On x86 the common boot flow is IA32 PEI and X64 DXE. To turn on X64 (long mode) paging must be enabled. So the paging code is here since this is the location than needs to transition to long mode. I'm guessing this code did not get turned into a library "back in the day" as it was the only place it was being used. Thanks, Andrew Fish > / > Leif > > MdeModulePkg/MdeModulePkg.dsc | 8 ++++++++ > 1 file changed, 8 insertions(+) > > diff --git a/MdeModulePkg/MdeModulePkg.dsc b/MdeModulePkg/MdeModulePkg.dsc > index 05120c7..e9c2866 100644 > --- a/MdeModulePkg/MdeModulePkg.dsc > +++ b/MdeModulePkg/MdeModulePkg.dsc > @@ -24,6 +24,14 @@ [Defines] > BUILD_TARGETS = DEBUG|RELEASE|NOOPT > SKUID_IDENTIFIER = DEFAULT > > +[LibraryClasses.ARM, LibraryClasses.AARCH64] > + ArmMmuLib|ArmPkg/Library/ArmMmuLib/ArmMmuBaseLib.inf > +[LibraryClasses.ARM] > + ArmLib|ArmPkg/Library/ArmLib/ArmV7/ArmV7Lib.inf > + NULL|MdePkg/Library/BaseStackCheckLib/BaseStackCheckLib.inf > +[LibraryClasses.AARCH64] > + ArmLib|ArmPkg/Library/ArmLib/AArch64/AArch64Lib.inf > + > [LibraryClasses] > # > # Entry point > -- > 2.1.4 > > _______________________________________________ > edk2-devel mailing list > [email protected] > https://lists.01.org/mailman/listinfo/edk2-devel _______________________________________________ edk2-devel mailing list [email protected] https://lists.01.org/mailman/listinfo/edk2-devel

