On 15/04/2025 13:10, Luca Fancellu wrote:
Hi all,
Hi Luca,

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”.
This makes sense.

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
+this case:
+
+* Xen must be entered in S EL2 mode.

Refer ARM DDI 0568A.c ID110520 A1.3.1

Armv8-R (AArch32) only supports a single Security state, Non-secure.

I see that it differs from Armv8-R (AArch64) ARM DDI 0600A.d ID120821, A1.3

The PE is always in Secure state.

Probably you can mention both.

+
+* 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.

A question, Do you know if u-boot (or any other bootloader) is supported on Armv8-R ? Because someone needs to pass the DTB address in r2/x0.

- Ayan


Cheers,
Luca


Reply via email to