There are features in the forthcoming patches which are dependent on
MPU. For eg fixed start address.
Also, some of the Xen features (eg STATIC_MEMORY) will be selected
by the MPU configuration.
Thus, this patch introduces a choice between MMU and MPU for the type
of memory management system. By default, MMU is selected.
MPU is now gated by UNSUPPORTED.
Update SUPPORT.md to state that the support for MPU is experimental.
Also updated CHANGELOG.md as well.
Signed-off-by: Ayan Kumar Halder <ayan.kumar.halder@amd.com>
Reviewed-by: Luca Fancellu <luca.fancellu@arm.com>
Acked-by: Julien Grall <jgrall@amazon.com>
---
Changes from :-
v1 - 1. Reword the help messages.
2. Update Support.md.
v2 - 1. Reword the help message.
v3 - 1. Update Changelog.
2. Add R-b and Ack.
CHANGELOG.md | 2 ++
SUPPORT.md | 1 +
xen/arch/arm/Kconfig | 17 ++++++++++++++++-
xen/arch/arm/platforms/Kconfig | 2 +-
4 files changed, 20 insertions(+), 2 deletions(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index c499d12dc4..79524cc15f 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -12,6 +12,8 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
- Prefer ACPI reboot over UEFI ResetSystem() run time service call.
### Added
+ - On Arm:
+ - Support for earlyboot of Xen on Armv8-R (experimental).
### Removed
- On x86:
diff --git a/SUPPORT.md b/SUPPORT.md
index 23dd7e6424..94610d3c91 100644
--- a/SUPPORT.md
+++ b/SUPPORT.md
@@ -40,6 +40,7 @@ supported in this document.
Status, Xen in AArch64 mode: Supported
Status, Xen in AArch32 mode: Tech Preview
+ Status, Xen in Armv8-R: Experimental
Status, Cortex A57 r0p0-r1p1: Supported, not security supported
Status, Cortex A77 r0p0-r1p0: Supported, not security supported
diff --git a/xen/arch/arm/Kconfig b/xen/arch/arm/Kconfig
index 323c967361..ed92eb67cb 100644
--- a/xen/arch/arm/Kconfig
+++ b/xen/arch/arm/Kconfig
@@ -58,10 +58,25 @@ config PADDR_BITS
default 40 if ARM_PA_BITS_40
default 48 if ARM_64
+choice
+ prompt "Memory management system"
+ default MMU
+ help
+ User can choose between the different forms of memory management system.
+
config MMU
- def_bool y
+ bool "MMU"
select HAS_PMAP
select HAS_VMAP
+ help
+ Select it if you plan to run Xen on A-profile Armv7+
+
+config MPU
+ bool "MPU" if UNSUPPORTED
+ help
+ Memory Protection Unit (MPU). Select if you plan to run Xen on ARMv8-R
+ systems supporting EL2. (UNSUPPORTED)
+endchoice
source "arch/Kconfig"
diff --git a/xen/arch/arm/platforms/Kconfig b/xen/arch/arm/platforms/Kconfig
index 76f7e76b1b..02322c259c 100644
--- a/xen/arch/arm/platforms/Kconfig
+++ b/xen/arch/arm/platforms/Kconfig
@@ -1,5 +1,5 @@
choice
- prompt "Platform Support"
+ prompt "Platform Support" if MMU
default ALL_PLAT
help
Choose which hardware platform to enable in Xen.
--
2.25.1