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