public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
From: "Jonathan Cameron via groups.io" <jonathan.cameron=huawei.com@groups.io>
To: Ard Biesheuvel <ardb+git@google.com>
Cc: <devel@edk2.groups.io>, <quic_llindhol@quicinc.com>,
	Ard Biesheuvel <ardb@kernel.org>,
	Richard Henderson <richard.henderson@linaro.org>,
	Philippe Mathieu-Daud_ <philmd@linaro.org>,
	Idan Horowitz <idan.horowitz@gmail.com>, <qemu-arm@nongnu.org>,
	<salil.mehta@huawei.com>
Subject: Re: [edk2-devel] [PATCH] ArmVirtPkg/ArmVirtQemu: always build XIP code with strict alignment
Date: Mon, 22 Apr 2024 10:30:37 +0100	[thread overview]
Message-ID: <20240422103037.00000a96@Huawei.com> (raw)
In-Reply-To: <20240419175013.3983824-1-ardb+git@google.com>

On Fri, 19 Apr 2024 19:50:13 +0200
Ard Biesheuvel <ardb+git@google.com> wrote:

> From: Ard Biesheuvel <ardb@kernel.org>
> 
> The optimization that enabled entry with MMU and caches enabled at EL1
> removed the strict alignment requirement for XIP code (roughly, any code
> that might execute with the MMU and caches off, which means SEC and PEI
> phase modules but also *all* BASE libraries), on the basis that QEMU can
> only run guest payloads at EL2 in TCG emulation, which used to ignore
> alignment violations, and execution at EL1 would always occur with the
> MMU enabled.
> 
> This assumption no longer holds: not only does QEMU now enforce strict
> alignment for memory accesses with device semantics, there are also
> cases where this code might execute at EL2 under virtualization (i.e.,
> under NV2 nested virtualization) where the strict alignment is required
> too.
> 
> The latter case could be optimized too, by enabling VHE and pretending
> execution is occurring at EL1, which would allow the existing logic for
> entry with the MMU enabled to be reused. However, this would leave
> non-VHE CPUs behind.
> 
> So in summary, strict alignment needs to be enforced for any code that
> may execute with the MMU off, so drop the override that sets the XIP
> flags to the empty string.
> 
> Cc: Jonathan Cameron <Jonathan.Cameron@huawei.com>
> Cc: Richard Henderson <richard.henderson@linaro.org>
> Cc: Philippe Mathieu-Daud� <philmd@linaro.org>
> Cc: Idan Horowitz <idan.horowitz@gmail.com>
> Cc: qemu-arm@nongnu.org
> Signed-off-by: Ard Biesheuvel <ardb@kernel.org>

This matches what I was testing with locally. Thanks sorting this
out.

Tested-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
Reviewed-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>

> ---
>  ArmVirtPkg/ArmVirtQemu.dsc | 2 --
>  1 file changed, 2 deletions(-)
> 
> diff --git a/ArmVirtPkg/ArmVirtQemu.dsc b/ArmVirtPkg/ArmVirtQemu.dsc
> index e48c75b5e99f..f6f78359552d 100644
> --- a/ArmVirtPkg/ArmVirtQemu.dsc
> +++ b/ArmVirtPkg/ArmVirtQemu.dsc
> @@ -124,8 +124,6 @@ [LibraryClasses.common.UEFI_DRIVER]
>  [BuildOptions]
> 
>  !if $(CAVIUM_ERRATUM_27456) == TRUE
> 
>    GCC:*_*_AARCH64_PP_FLAGS = -DCAVIUM_ERRATUM_27456
> 
> -!else
> 
> -  GCC:*_*_AARCH64_CC_XIPFLAGS ==
> 
>  !endif
> 
>  
> 
>  !include NetworkPkg/NetworkBuildOptions.dsc.inc
> 
> --
> 2.44.0.769.g3c40516874-goog
> 



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#118080): https://edk2.groups.io/g/devel/message/118080
Mute This Topic: https://groups.io/mt/105630615/7686176
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io]
-=-=-=-=-=-=-=-=-=-=-=-



      reply	other threads:[~2024-04-22  9:30 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-04-19 17:50 [edk2-devel] [PATCH] ArmVirtPkg/ArmVirtQemu: always build XIP code with strict alignment Ard Biesheuvel via groups.io
2024-04-22  9:30 ` Jonathan Cameron via groups.io [this message]

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=20240422103037.00000a96@Huawei.com \
    --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