]> git.proxmox.com Git - mirror_edk2.git/commit - ArmPkg/Library/ArmMmuLib/ArmMmuBaseLib.inf
ArmPkg/ArmMmuLib ARM: split ArmMmuLibCore.c into core and update code
authorArd Biesheuvel <ard.biesheuvel@linaro.org>
Wed, 26 Feb 2020 09:36:49 +0000 (10:36 +0100)
committermergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
Thu, 5 Mar 2020 21:08:30 +0000 (21:08 +0000)
commiteaaaece4ad455aca9bac3f719b8280f52f9d1893
tree15f4af60cbc27dfc7ffc7e78ac0471696fa872d9
parentfaca87fa03543478ed7a39fcc0e29c1c90340c0f
ArmPkg/ArmMmuLib ARM: split ArmMmuLibCore.c into core and update code

Unlike the AArch64 implementation of ArmMmuLib, which combines the
initial page table population code with the code that runs at later
stages to manage permission attributes in the page tables, ARM uses
two completely separate sets of routines for this.

Since ArmMmuLib is a static library, we can prevent duplication of
this code between different users, which usually only need one or
the other. (Note that LTO should also achieve the same.)

This also makes it easier to reason about modifying the cache
maintenance handling, and replace the set/way ops with by-VA
ops, since the code that performs the set/way ops only executes
when the MMU is still off.

Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Reviewed-by: Leif Lindholm <leif@nuviainc.com>
ArmPkg/Library/ArmMmuLib/Arm/ArmMmuLibConvert.c [new file with mode: 0644]
ArmPkg/Library/ArmMmuLib/Arm/ArmMmuLibCore.c
ArmPkg/Library/ArmMmuLib/Arm/ArmMmuLibUpdate.c [new file with mode: 0644]
ArmPkg/Library/ArmMmuLib/ArmMmuBaseLib.inf