[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] RE: [PATCH v6 00/11] xen/arm: Add Armv8-R64 MPU support to Xen - Part#1
Sorry for the wrong patch version. This is the first version of this series. Cheers, Wei Chen > -----Original Message----- > From: Wei Chen <wei.chen@xxxxxxx> > Sent: 2022年11月4日 18:08 > To: xen-devel@xxxxxxxxxxxxxxxxxxxx > Cc: nd <nd@xxxxxxx>; Wei Chen <Wei.Chen@xxxxxxx>; Stefano Stabellini > <sstabellini@xxxxxxxxxx>; Julien Grall <julien@xxxxxxx>; Bertrand Marquis > <Bertrand.Marquis@xxxxxxx>; Volodymyr Babchuk <Volodymyr_Babchuk@xxxxxxxx> > Subject: [PATCH v6 00/11] xen/arm: Add Armv8-R64 MPU support to Xen - > Part#1 > > The Armv-R architecture profile was designed to support use cases > that have a high sensitivity to deterministic execution. (e.g. > Fuel Injection, Brake control, Drive trains, Motor control etc) > > Arm announced Armv8-R in 2013, it is the latest generation Arm > architecture targeted at the Real-time profile. It introduces > virtualization at the highest security level while retaining the > Protected Memory System Architecture (PMSA) based on a Memory > Protection Unit (MPU). In 2020, Arm announced Cortex-R82, > which is the first Arm 64-bit Cortex-R processor based on Armv8-R64. > The latest Armv8-R64 document can be found [1]. And the features of > Armv8-R64 architecture: > - An exception model that is compatible with the Armv8-A model > - Virtualization with support for guest operating systems > - PMSA virtualization using MPUs In EL2. > - Adds support for the 64-bit A64 instruction set. > - Supports up to 48-bit physical addressing. > - Supports three Exception Levels (ELs) > - Secure EL2 - The Highest Privilege > - Secure EL1 - RichOS (MMU) or RTOS (MPU) > - Secure EL0 - Application Workloads > - Supports only a single Security state - Secure. > - MPU in EL1 & EL2 is configurable, MMU in EL1 is configurable. > > These patch series are implementing the Armv8-R64 MPU support > for Xen, which are based on the discussion of > "Proposal for Porting Xen to Armv8-R64 - DraftC" [1]. > > We will implement the Armv8-R64 and MPU support in three stages: > 1. Boot Xen itself to idle thread, do not create any guests on it. > 2. Support to boot MPU and MMU domains on Armv8-R64 Xen. > 3. SMP and other advanced features of Xen support on Armv8-R64. > > We will split these patches to several parts, this series is the > part#1, the full PoC can be found in [3]. More software for > Armv8-R64 can be found in [4]; > > [1] https://developer.arm.com/documentation/ddi0600/latest > [2] https://lists.xenproject.org/archives/html/xen-devel/2022- > 05/msg00643.html > [3] https://gitlab.com/xen-project/people/bmarquis/xen-arm-poc/- > /tree/poc/r82-mpu-v2 > [4] https://armv8r64-refstack.docs.arm.com/en/v4.0/ > > Penny Zheng (3): > xen/arm64: create boot-time MPU protection regions > xen/arm64: introduce helpers for MPU enable/disable > xen/arm64: add setup_fixmap and remove_identity_mapping for MPU > > Wei Chen (8): > xen/arm: remove xen_phys_start and xenheap_phys_end from config.h > xen/arm: add iounmap after initrd has been loaded in domain_build > xen/arm: disable EFI boot services for MPU systems > xen/arm: adjust Xen TLB helpers for Armv8-R64 PMSA > xen/arm: define Xen start address for FVP BaseR platform > xen/arm: split MMU and MPU config files from config.h > xen/arm: implement FIXMAP_ADDR for MPU systems > xen/arm64: move MMU related code from head.S to head_mmu.S > > xen/arch/arm/Kconfig | 15 +- > xen/arch/arm/arm64/Makefile | 5 + > xen/arch/arm/arm64/head.S | 429 ++---------------- > xen/arch/arm/arm64/head_mmu.S | 364 +++++++++++++++ > xen/arch/arm/arm64/head_mpu.S | 154 +++++++ > xen/arch/arm/domain_build.c | 2 + > xen/arch/arm/include/asm/arm64/flushtlb.h | 25 + > xen/arch/arm/include/asm/arm64/macros.h | 52 ++- > xen/arch/arm/include/asm/arm64/mpu.h | 13 + > xen/arch/arm/include/asm/arm64/sysregs.h | 89 ++++ > xen/arch/arm/include/asm/config.h | 99 +--- > xen/arch/arm/include/asm/config_mmu.h | 119 +++++ > xen/arch/arm/include/asm/config_mpu.h | 29 ++ > xen/arch/arm/include/asm/fixmap.h | 25 + > xen/arch/arm/include/asm/flushtlb.h | 22 + > .../arm/include/asm/platforms/fvp_baser.h | 18 + > xen/arch/arm/platforms/Kconfig | 16 +- > 17 files changed, 976 insertions(+), 500 deletions(-) > create mode 100644 xen/arch/arm/arm64/head_mmu.S > create mode 100644 xen/arch/arm/arm64/head_mpu.S > create mode 100644 xen/arch/arm/include/asm/arm64/mpu.h > create mode 100644 xen/arch/arm/include/asm/config_mmu.h > create mode 100644 xen/arch/arm/include/asm/config_mpu.h > create mode 100644 xen/arch/arm/include/asm/platforms/fvp_baser.h > > -- > 2.25.1
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |