From: "Leif Lindholm" <leif@nuviainc.com>
To: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Cc: devel@edk2.groups.io
Subject: Re: [PATCH v2 0/9] ArmPkg: eradicate and deprecate by set/way cache ops
Date: Thu, 5 Mar 2020 16:29:46 +0000 [thread overview]
Message-ID: <20200305162946.GA23627@bivouac.eciton.net> (raw)
In-Reply-To: <20200304181246.23513-1-ard.biesheuvel@linaro.org>
On Wed, Mar 04, 2020 at 19:12:37 +0100, Ard Biesheuvel wrote:
> 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
Apart from the minor nit pointed out (which you can fix before
committing) - for the series:
Reviewed-by: Leif Lindholm <leif@nuviainc.com>
Thanks!
> 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 prev parent reply other threads:[~2020-03-05 16:29 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-03-04 18:12 [PATCH v2 0/9] ArmPkg: eradicate and deprecate by set/way cache ops Ard Biesheuvel
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 ` Leif Lindholm [this message]
2020-03-05 21:40 ` [PATCH v2 0/9] ArmPkg: eradicate and deprecate by set/way cache ops 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=20200305162946.GA23627@bivouac.eciton.net \
--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