On 15/04/2025 14:10, Luca Fancellu wrote:
> Hi all,
>
> I’ve started this thread to talk about a possible Xen booting protocol when
> running on Armv8-R,
> currently Xen uses the Linux boot protocol and some other requirements stated
> in docs/misc/arm/booting.txt.
>
> Unfortunately we don’t have anything already available for Armv8-R, the only
> implementation of a bootloader
> is the boot-wrapper-aarch64 which keeps the MPU off, I/D cache off.
>
> So my proposal is to add additional requirements in our
> docs/misc/arm/booting.txt for the case where Xen is
> started on Armv8-R, under "Firmware/bootloader requirements”.
>
> diff --git a/docs/misc/arm/booting.txt b/docs/misc/arm/booting.txt
> index 21ae74837dcc..39f029153e38 100644
> --- a/docs/misc/arm/booting.txt
> +++ b/docs/misc/arm/booting.txt
> @@ -62,6 +62,14 @@ Xen relies on some settings the firmware has to configure
> in EL3 before starting
>
> * The bit SCR_EL3.HCE (resp. SCR.HCE for 32-bit ARM) must be set to 1.
>
> +When Xen runs on Armv8-R, the highest exception level is EL2 and the only
> +available mode is secure, hence the above requirements needs to be adjusted
> to
I think in Arm docs, this is called state, i.e. secure/non-secure state.
Also, s/needs/need/
> +this case:
> +
> +* Xen must be entered in S EL2 mode.
> +
> +* Xen must be entered with MPU off and data cache disabled (SCTLR_EL2.M bit
> and
> + SCTLR_EL2.C set to 0).
>
> [1] linux/Documentation/arm/booting.rst
> Latest version:
> http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/Documentation/arch/arm/booting.rst
>
> Please let me know your thoughts.
I think we need to have a place for boot assumptions for Armv8-R, so this is a
good start. MPU work is Experimental for now, so we can treat it as a living doc
(MPU part) for now.
~Michal