The MMU routines are only used by a small subset of the users of ArmLib.
In order to prevent all those users to have to run the library constructor
to clean some MMU handling routines to the PoC, split off all MMU handling
into a separate ArmMmuLib.
NOTE: this change will affect out-of-tree platforms, which will need to add the
ArmMmuLib library class resolution to their .DSC descriptions.
Changes since v1:
- updated ArmVirtQemuKernel as well as ArmVirtQemu and ArmVirtXen to switch to
the new ArmMmuLib (#3)
- added tags from Laszlo and Star (#3)
- dropped ArmLib reference from DxeIp l(#3) [*]
- clarified comment (#4)
[*] I have taken the liberty to keep Star's R-b on patch #3 since the change to
MdeModulePkg is minimal and only affects ARM/AARCH64
Ard Biesheuvel (4):
ArmPkg: introduce ArmMmuLib library class
ArmPkg: introduce base ArmMmuLib implementation
ArmPkg ArmVirtPkg MdeModulePkg: switch to separate ArmMmuLib
ArmPkg/ArmMmuLib: add PEI specific version of ArmMmuLib
ArmPkg/ArmPkg.dec
| 1 +
ArmPkg/Drivers/CpuDxe/CpuDxe.inf
| 1 +
ArmPkg/Include/Library/ArmLib.h
| 38 ----------
ArmPkg/Include/Library/ArmMmuLib.h
| 65 +++++++++++++++++
ArmPkg/Library/ArmLib/AArch64/AArch64BaseLibConstructor.c
| 36 ----------
ArmPkg/Library/ArmLib/AArch64/AArch64Lib.inf
| 3 -
ArmPkg/Library/ArmLib/AArch64/AArch64LibPrePi.inf
| 1 -
ArmPkg/Library/ArmLib/ArmV7/ArmLibSupportV7.S
| 6 --
ArmPkg/Library/ArmLib/ArmV7/ArmLibSupportV7.asm
| 6 --
ArmPkg/Library/ArmLib/ArmV7/ArmV7Lib.h
| 12 ----
ArmPkg/Library/ArmLib/ArmV7/ArmV7Lib.inf
| 1 -
ArmPkg/Library/ArmLib/ArmV7/ArmV7LibPrePi.inf
| 1 -
ArmPkg/Library/ArmLib/ArmV7/ArmV7Support.S
| 5 --
ArmPkg/Library/ArmLib/ArmV7/ArmV7Support.asm
| 4 --
ArmPkg/Library/{ArmLib/AArch64/AArch64Mmu.c =>
ArmMmuLib/AArch64/ArmMmuLibCore.c} | 25 +++++--
ArmPkg/Library/ArmMmuLib/AArch64/ArmMmuLibReplaceEntry.S
| 76 ++++++++++++++++++++
ArmPkg/Library/ArmMmuLib/AArch64/ArmMmuPeiLibConstructor.c
| 61 ++++++++++++++++
ArmPkg/Library/{ArmLib/ArmV7/ArmV7Mmu.c => ArmMmuLib/Arm/ArmMmuLibCore.c}
| 38 +++++++++-
ArmPkg/Library/ArmMmuLib/Arm/ArmMmuLibV7Support.S
| 35 +++++++++
ArmPkg/Library/ArmMmuLib/Arm/ArmMmuLibV7Support.asm
| 32 +++++++++
ArmPkg/Library/ArmMmuLib/ArmMmuBaseLib.inf
| 43 +++++++++++
ArmPkg/Library/ArmMmuLib/ArmMmuPeiLib.inf
| 36 ++++++++++
ArmVirtPkg/ArmVirtQemu.dsc
| 2 +
ArmVirtPkg/ArmVirtQemuKernel.dsc
| 2 +
ArmVirtPkg/ArmVirtXen.dsc
| 2 +
ArmVirtPkg/Library/ArmVirtMemoryInitPeiLib/ArmVirtMemoryInitPeiLib.c
| 1 +
ArmVirtPkg/Library/ArmVirtMemoryInitPeiLib/ArmVirtMemoryInitPeiLib.inf
| 1 +
MdeModulePkg/Core/DxeIplPeim/Arm/DxeLoadFunc.c
| 2 +-
MdeModulePkg/Core/DxeIplPeim/DxeIpl.inf
| 2 +-
29 files changed, 417 insertions(+), 121 deletions(-)
create mode 100644 ArmPkg/Include/Library/ArmMmuLib.h
delete mode 100644 ArmPkg/Library/ArmLib/AArch64/AArch64BaseLibConstructor.c
rename ArmPkg/Library/{ArmLib/AArch64/AArch64Mmu.c =>
ArmMmuLib/AArch64/ArmMmuLibCore.c} (94%)
create mode 100644 ArmPkg/Library/ArmMmuLib/AArch64/ArmMmuLibReplaceEntry.S
create mode 100644 ArmPkg/Library/ArmMmuLib/AArch64/ArmMmuPeiLibConstructor.c
rename ArmPkg/Library/{ArmLib/ArmV7/ArmV7Mmu.c =>
ArmMmuLib/Arm/ArmMmuLibCore.c} (93%)
create mode 100644 ArmPkg/Library/ArmMmuLib/Arm/ArmMmuLibV7Support.S
create mode 100644 ArmPkg/Library/ArmMmuLib/Arm/ArmMmuLibV7Support.asm
create mode 100644 ArmPkg/Library/ArmMmuLib/ArmMmuBaseLib.inf
create mode 100644 ArmPkg/Library/ArmMmuLib/ArmMmuPeiLib.inf
--
2.7.4
_______________________________________________
edk2-devel mailing list
[email protected]
https://lists.01.org/mailman/listinfo/edk2-devel