mirror of https://github.com/acidanthera/audk.git
ArmVirtPkg/ArmVirtQemu: enable initial ID map at early boot
Now that we have all the pieces in place, switch the AArch64 version of ArmVirtQemu to a mode where the first thing it does out of reset is enable a preliminary ID map that covers the NOR flash and sufficient DRAM to create the UEFI page tables as usual. The advantage of this is that no manipulation of memory occurs any longer before the MMU is enabled, which removes the need for explicit coherency management, which is cumbersome and bad for performance. It also means we no longer need to build all components that may execute with the MMU off (including BASE libraries) with strict alignment. Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
This commit is contained in:
parent
a26050f74d
commit
07be1d34d9
|
@ -64,8 +64,6 @@
|
|||
QemuFwCfgSimpleParserLib|OvmfPkg/Library/QemuFwCfgSimpleParserLib/QemuFwCfgSimpleParserLib.inf
|
||||
QemuLoadImageLib|OvmfPkg/Library/GenericQemuLoadImageLib/GenericQemuLoadImageLib.inf
|
||||
|
||||
ArmPlatformLib|ArmPlatformPkg/Library/ArmPlatformLibNull/ArmPlatformLibNull.inf
|
||||
|
||||
TimerLib|ArmPkg/Library/ArmArchTimerLib/ArmArchTimerLib.inf
|
||||
NorFlashPlatformLib|ArmVirtPkg/Library/NorFlashQemuLib/NorFlashQemuLib.inf
|
||||
|
||||
|
@ -93,6 +91,12 @@
|
|||
TpmPlatformHierarchyLib|SecurityPkg/Library/PeiDxeTpmPlatformHierarchyLibNull/PeiDxeTpmPlatformHierarchyLib.inf
|
||||
!endif
|
||||
|
||||
[LibraryClasses.AARCH64]
|
||||
ArmPlatformLib|ArmVirtPkg/Library/ArmPlatformLibQemu/ArmPlatformLibQemu.inf
|
||||
|
||||
[LibraryClasses.ARM]
|
||||
ArmPlatformLib|ArmPlatformPkg/Library/ArmPlatformLibNull/ArmPlatformLibNull.inf
|
||||
|
||||
[LibraryClasses.common.PEIM]
|
||||
ArmVirtMemInfoLib|ArmVirtPkg/Library/QemuVirtMemInfoLib/QemuVirtMemInfoPeiLib.inf
|
||||
|
||||
|
@ -113,6 +117,8 @@
|
|||
UefiScsiLib|MdePkg/Library/UefiScsiLib/UefiScsiLib.inf
|
||||
|
||||
[BuildOptions]
|
||||
GCC:*_*_AARCH64_CC_XIPFLAGS = -mno-strict-align
|
||||
|
||||
!include NetworkPkg/NetworkBuildOptions.dsc.inc
|
||||
|
||||
################################################################################
|
||||
|
@ -311,7 +317,12 @@
|
|||
PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf
|
||||
}
|
||||
ArmPlatformPkg/PlatformPei/PlatformPeim.inf
|
||||
ArmPlatformPkg/MemoryInitPei/MemoryInitPeim.inf
|
||||
ArmVirtPkg/MemoryInitPei/MemoryInitPeim.inf {
|
||||
<LibraryClasses>
|
||||
!if $(ARCH) == AARCH64
|
||||
ArmMmuLib|ArmPkg/Library/ArmMmuLib/ArmMmuPeiLib.inf
|
||||
!endif
|
||||
}
|
||||
ArmPkg/Drivers/CpuPei/CpuPei.inf
|
||||
|
||||
MdeModulePkg/Universal/Variable/Pei/VariablePei.inf
|
||||
|
|
|
@ -107,7 +107,7 @@ READ_LOCK_STATUS = TRUE
|
|||
INF ArmPlatformPkg/PrePeiCore/PrePeiCoreUniCore.inf
|
||||
INF MdeModulePkg/Core/Pei/PeiMain.inf
|
||||
INF ArmPlatformPkg/PlatformPei/PlatformPeim.inf
|
||||
INF ArmPlatformPkg/MemoryInitPei/MemoryInitPeim.inf
|
||||
INF ArmVirtPkg/MemoryInitPei/MemoryInitPeim.inf
|
||||
INF ArmPkg/Drivers/CpuPei/CpuPei.inf
|
||||
INF MdeModulePkg/Universal/PCD/Pei/Pcd.inf
|
||||
INF MdeModulePkg/Universal/Variable/Pei/VariablePei.inf
|
||||
|
|
Loading…
Reference in New Issue