On 06/05/2025 13:24, Luca Fancellu wrote:
Hi Julien,
Hi Luca,
On 6 May 2025, at 12:44, Julien Grall <jul...@xen.org> wrote:
On 29/04/2025 16:20, Luca Fancellu wrote:
Document the requirement needed to boot Xen on Armv8-R platforms.
Signed-off-by: Luca Fancellu <luca.fance...@arm.com>
---
v4 changes:
- New patch
---
docs/misc/arm/booting.txt | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/docs/misc/arm/booting.txt b/docs/misc/arm/booting.txt
index 21ae74837dcc..719af74f1e69 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 state is secure (S) on Arm64 and non secure (NS) on Arm32, hence the
+above requirements need to be adjusted to this case:
+> +* Xen must be entered in S EL2 mode on Arm64 and in NS EL2 mode on Arm32.
I think it would be better to update the line "Xen must be entered in NS EL2
mode" to clarify the state for 64-bit Arm.
+> +* Xen must be entered with MPU off and data cache disabled (SCTLR_EL2.M bit
and
+ SCTLR_EL2.C set to 0).
This line is valid for Armv8-A/Armv7-A when using the Image/zImage protocol.
[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
Just to be sure to be on the same page, are you suggesting these changes on the
original file?
Yes with one tweak.
> > diff --git a/docs/misc/arm/booting.txt b/docs/misc/arm/booting.txt
index 21ae74837dcc..c00c651805d7 100644
--- a/docs/misc/arm/booting.txt
+++ b/docs/misc/arm/booting.txt
@@ -58,10 +58,14 @@ Firmware/bootloader requirements
Xen relies on some settings the firmware has to configure in EL3 before starting Xen.
I think you want to update this sentence to remove the reference to EL3.
Even on A-profile EL3 is not mandatory (I vaguely remember one of the
platform I worked on had no EL3).
-* Xen must be entered in NS EL2 mode
+* Xen must be entered in:
+ * Non-Secure EL2 mode for Armv8-A Arm64 and Arm32, Armv8-R Arm32.
+ * Secure EL2 mode for Armv8-R Arm64.
* The bit SCR_EL3.HCE (resp. SCR.HCE for 32-bit ARM) must be set to 1.
And then here: "When EL3 is supported, ...". This would also cover the
R-profile change.
Cheers,
+* Xen must be entered with MMU/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
Cheers,
Luca
--
Julien Grall