From: "Ard Biesheuvel" <ard.biesheuvel@linaro.org>
To: devel@edk2.groups.io
Cc: leif@nuviainc.com, Ard Biesheuvel <ard.biesheuvel@linaro.org>
Subject: [PATCH v2 0/9] ArmPkg: eradicate and deprecate by set/way cache ops
Date: Wed, 4 Mar 2020 19:12:37 +0100 [thread overview]
Message-ID: <20200304181246.23513-1-ard.biesheuvel@linaro.org> (raw)
This is a combination of v1 'ArmPkg: eradicate and deprecate by set/way cache
ops' and v1 'ArmPkg/ArmLib: ASSERT() on misuse of set/way ops'
As it turns out, there were still some instances of set/way ops left in
the core code, in ArmMmuLib to be precise.
This series fixes ArmMmuLib to perform the appropriate cache invalidation
when populating page tables with the MMU and caches off, allowing us to
get rid of the cache clean/disable/enable sequences which are incorrect
and pointless at the same time.
I have incorporated some ArmLib changes that I posted separately before,
with the end result being that all uses pf set/way ops are gone from the
EDK2 core code, and the routines themselves will now ASSERT() when used
for anything other than managing the caches while the MMU is still off.
(Note that BeagleBoard in edk2-platforms still relies on this)
Changes since v1[s]:
- don't deprecate the set/way ops but make the usable before MMU is enabled
only
- use a more elaborate sequence for invalidating the page table entries on
32-bit ARM, to ensure we are compliant with the nooks and crannies of
version 7 of the architecture.
- incorporate patch #1, which was still pending on the list, and is related
(its PrePeiCore sibling was already reviewed and merged)
Ard Biesheuvel (9):
ArmPlatformPkg/PrePi: replace set/way cache ops with by-VA ones
ArmPkg/ArmMmuLib ARM: remove dummy constructor
ArmPkg/ArmMmuLib ARM: split ArmMmuLibCore.c into core and update code
ArmPkg/ArmMmuLib ARM: cache-invalidate initial page table entries
ArmPkg/ArmMmuLib AARCH64: cache-invalidate initial page table entries
ArmPkg/ArmLib: move set/way helper functions into private header
ArmPkg/ArmLib: clean up library includes
ArmPkg/ArmLib: remove bogus protocol declaration
ArmPkg/ArmLib: ASSERT on set/way cache ops being used with MMU on
ArmPkg/Include/Library/ArmLib.h | 18 -
ArmPkg/Library/ArmLib/AArch64/AArch64Lib.c | 16 +-
ArmPkg/Library/ArmLib/AArch64/AArch64Lib.h | 18 +
ArmPkg/Library/ArmLib/AArch64/ArmLibSupport.S | 9 +-
ArmPkg/Library/ArmLib/Arm/ArmV7Lib.c | 17 +-
ArmPkg/Library/ArmLib/Arm/ArmV7Lib.h | 18 +
ArmPkg/Library/ArmLib/ArmBaseLib.inf | 6 +-
ArmPkg/Library/ArmLib/ArmLib.c | 2 -
.../Library/ArmMmuLib/AArch64/ArmMmuLibCore.c | 9 -
.../Library/ArmMmuLib/Arm/ArmMmuLibConvert.c | 32 ++
ArmPkg/Library/ArmMmuLib/Arm/ArmMmuLibCore.c | 498 ++----------------
.../Library/ArmMmuLib/Arm/ArmMmuLibUpdate.c | 435 +++++++++++++++
ArmPkg/Library/ArmMmuLib/ArmMmuBaseLib.inf | 4 +
ArmPlatformPkg/PrePi/PeiMPCore.inf | 1 +
ArmPlatformPkg/PrePi/PeiUniCore.inf | 1 +
ArmPlatformPkg/PrePi/PrePi.c | 8 +-
16 files changed, 591 insertions(+), 501 deletions(-)
create mode 100644 ArmPkg/Library/ArmMmuLib/Arm/ArmMmuLibConvert.c
create mode 100644 ArmPkg/Library/ArmMmuLib/Arm/ArmMmuLibUpdate.c
--
2.17.1
next reply other threads:[~2020-03-04 18:12 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-03-04 18:12 Ard Biesheuvel [this message]
2020-03-04 18:12 ` [PATCH v2 1/9] ArmPlatformPkg/PrePi: replace set/way cache ops with by-VA ones Ard Biesheuvel
2020-03-05 16:23 ` Leif Lindholm
2020-03-04 18:12 ` [PATCH v2 2/9] ArmPkg/ArmMmuLib ARM: remove dummy constructor Ard Biesheuvel
2020-03-04 18:12 ` [PATCH v2 3/9] ArmPkg/ArmMmuLib ARM: split ArmMmuLibCore.c into core and update code Ard Biesheuvel
2020-03-04 18:12 ` [PATCH v2 4/9] ArmPkg/ArmMmuLib ARM: cache-invalidate initial page table entries Ard Biesheuvel
2020-03-04 18:12 ` [PATCH v2 5/9] ArmPkg/ArmMmuLib AARCH64: " Ard Biesheuvel
2020-03-04 18:12 ` [PATCH v2 6/9] ArmPkg/ArmLib: move set/way helper functions into private header Ard Biesheuvel
2020-03-04 18:12 ` [PATCH v2 7/9] ArmPkg/ArmLib: clean up library includes Ard Biesheuvel
2020-03-04 18:12 ` [PATCH v2 8/9] ArmPkg/ArmLib: remove bogus protocol declaration Ard Biesheuvel
2020-03-04 18:12 ` [PATCH v2 9/9] ArmPkg/ArmLib: ASSERT on set/way cache ops being used with MMU on Ard Biesheuvel
2020-03-05 16:29 ` [PATCH v2 0/9] ArmPkg: eradicate and deprecate by set/way cache ops Leif Lindholm
2020-03-05 21:40 ` Ard Biesheuvel
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-list from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20200304181246.23513-1-ard.biesheuvel@linaro.org \
--to=devel@edk2.groups.io \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox