[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


  • To: Wei Chen <Wei.Chen@xxxxxxx>, "xen-devel@xxxxxxxxxxxxxxxxxxxx" <xen-devel@xxxxxxxxxxxxxxxxxxxx>
  • From: Wei Chen <Wei.Chen@xxxxxxx>
  • Date: Fri, 4 Nov 2022 10:29:50 +0000
  • Accept-language: en-US
  • Arc-authentication-results: i=2; mx.microsoft.com 1; spf=pass (sender ip is 63.35.35.123) smtp.rcpttodomain=lists.xenproject.org smtp.mailfrom=arm.com; dmarc=pass (p=none sp=none pct=100) action=none header.from=arm.com; dkim=pass (signature was verified) header.d=armh.onmicrosoft.com; arc=pass (0 oda=1 ltdi=1 spf=[1,1,smtp.mailfrom=arm.com] dkim=[1,1,header.d=arm.com] dmarc=[1,1,header.from=arm.com])
  • Arc-authentication-results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass header.d=arm.com; arc=none
  • Arc-message-signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=W2/1Zk08baYKUnZ4Ze3qeMxNV80jfkU8x0Nla7XtZW0=; b=IY3Z2jT5ZxD3jIKUpopsbXq38FrNFORT1H1vGy3UZ2UOnUrGiQEMpsm/7RtuMkQcUCTMwKvKdvLUiw6dw3PpJUEG1ZOe5QiEcsFMC0mOEkg4nD16CqCoI9xL0U9ZYSM/7mdgbhsLF+yHHtkGJHTS3mQT3hPsjA2OLyYgk9C76PrBXoXRRDEA1CZFGZ+tS03J1OIXwiyTxMf4e4IV9vsWNdABvr6a4fzHD6HNK65Es48pvDBi6gPvHDmnvilcTppAAB/HXjLT55ctznW35MMqq02qxSGM9Lab+ee3Uq3xKWGEfY3jwavDpgpex82i72BIMZg3fJ2miS3ShfhF0sGBbQ==
  • Arc-message-signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=W2/1Zk08baYKUnZ4Ze3qeMxNV80jfkU8x0Nla7XtZW0=; b=K2HZe+YQp/IRaPIA0WlJFMQr6yg/zzK62g5ai9KPGww65HAG/ByLoNUUOvclPtZL/j/uDEkYjoAwjoZBUEV+hqVafx277Vvp62wvM6tmUqGXaz/OUrJqH6eF+pUE1Wlv3x/F/0Z/ScrfrbucrCs3+i9FuZhjMCH8uLgDENeyMGdu0BCYIYbboW2L/qz97h26HTexS5jFGqtenmydElz5ldqNIKZTO3tRifVKjzaANkF2TUa6hI1kzTYYiWPDQhYPl0Jweo1SpoRatT4NLrOi79qP5mobFe9Qn9SOOkUGg8+EV7svqQ8EIqY5IVsrk3Qble9lJviNzXZzUzTBpeuOag==
  • Arc-seal: i=2; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=pass; b=hbE9X5IQNjl47ZvUuTxdQAmtUCiEpG78gvjzhsqAzc967HVbcxYY7J/PGyKKX1NdCydtNO2Y41yUfD70uB02Llvj2KCMCvIAGPyys3Y0aAz7pVl6W0VQyCA6zrsxIke/g3WAkRwJhQb5JQcmBZn/UdIcQY5HzrIAdFL8XqEjQU1h1r1RuCkRYyCFWwB0UQQwqVljWvlco/BS/ZyFp3QT4P/TJEiIXivhA3UIcbYkMUlQSr/4W2XhFsK+Yifgb645+v4DqsS2+eTlLoaL2WFuJ1b4R+RR3/HxYc8mfDyG5tmQ6Qx1TdKpXaec8frF2XgDYkd4tzqmGw345cDJy+25MQ==
  • Arc-seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=dZMNhzB7YbqnpARmna1PFC8nvMoiBbwJZIaTnaEt0cUzHewVQNbQWXFYbxc/dXqy2Qo1ueTQP7iGow3LQQ1irH4Ansy3ZW495Pd/ZIiOgkKtQEItz/AaX4mYUxp/aumfjwNyE+AqxULHtqMtPs5EDCBkpNXhi/iVPvL9suTrGJvea3+Xd8qgS/ex01aVszuKXhR7trMj5+Os1+RMy4ftGSeaxEKpzUgP/CbMbvViTyT1DZ9FKzZX+goRgYrD61ifb3+ktGrzh6GJQ92fbwiUbERhSoq1xyMtVOJKNjgH8wmd29QHZjBC+hZfgtpuJIiuWvgzDv4IBH+5HrKoZk0lCg==
  • Authentication-results-original: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com;
  • Cc: nd <nd@xxxxxxx>, Stefano Stabellini <sstabellini@xxxxxxxxxx>, Julien Grall <julien@xxxxxxx>, Bertrand Marquis <Bertrand.Marquis@xxxxxxx>, Volodymyr Babchuk <Volodymyr_Babchuk@xxxxxxxx>
  • Delivery-date: Fri, 04 Nov 2022 10:30:29 +0000
  • List-id: Xen developer discussion <xen-devel.lists.xenproject.org>
  • Nodisclaimer: true
  • Original-authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com;
  • Thread-index: AQHY8DVcKFNDls96akm0LlhB1cf9B64uj+2A
  • Thread-topic: [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


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.