[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[RFC PATCH v1 26/26] docs: arm: add an Arm CCA Realm guest guide


  • To: xen-devel@xxxxxxxxxxxxxxxxxxxx
  • From: Koichiro Den <den@xxxxxxxxxxxxx>
  • Date: Fri, 15 May 2026 13:08:12 +0900
  • Arc-authentication-results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=valinux.co.jp; dmarc=pass action=none header.from=valinux.co.jp; dkim=pass header.d=valinux.co.jp; arc=none
  • Arc-message-signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=RPhd/zOT+Y6mzSTQOAaKE/lOmvaSbNYRD4sELEkar04=; b=GoLx3Bim8gBqVZhpHe2XXSE0zlTspOgiBoYZLXy9RKB0AHUaKCf1p8pLZZAxhy0IvelX7it+wYabXB9fufRGic8avukbSn+x/RZ7D1T3e5y9O6Arl7QaS2dovdGpQVpLKvnifioKt0zib+VTsP3t3LSjJpN9MxLNC72VZLhBug4C5do3jbKkd03qRqqf+Q9bEJcwG3sIMhPlvVzDZIb9OwXT3HEQfh5+YmzEcIfcDXAKw6dzfVZw4BvW7pTBkLTZW7Y98gbne0PXclN2g9XQIW4cAoIc117blM9+cXWwrt9QqNZ+jrEZMhyPeuDNJzWH30VSbIB76q1Q1qq5bKYyxw==
  • Arc-seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=csRRytBgoUiTNTiGYAWfRvR038K87mpAVDc1ToAnhFL/4PRstmBF1oSwr0rGUBDgj+5kQ2t+sOliElPlg2B31xfhU6ZUKFmoexColqKyfnYZorqK1mcSccwUSgyfAKl/jCrsBAXsDwGNYIodOGsUh6co3RLZoDfdCibJ2c5KiDkUK97bihHGWn9lMVTCKKAN1JHXHXbzF5rc8smiTXf32CeVjBpsVhNBrlwF3wUrc/mG3n5dw1d7d3aqsfDXV4XgU0uWuXIxcsjUf4by4UQXMd7xCGRmRbuwLyCdr4wINvaPyR12G3cEIGc53LqhR7xmPC1SqadM+HDVEg1jF4MhlQ==
  • Authentication-results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=valinux.co.jp header.i="@valinux.co.jp" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
  • Authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=valinux.co.jp;
  • Cc: Andrew Cooper <andrew.cooper3@xxxxxxxxxx>, Anthony PERARD <anthony.perard@xxxxxxxxxx>, Michal Orzel <michal.orzel@xxxxxxx>, Jan Beulich <jbeulich@xxxxxxxx>, Julien Grall <julien@xxxxxxx>, Roger Pau Monné <roger.pau@xxxxxxxxxx>, Stefano Stabellini <sstabellini@xxxxxxxxxx>, "Daniel P. Smith" <dpsmith@xxxxxxxxxxxxxxxxxxxx>, Juergen Gross <jgross@xxxxxxxx>, Bertrand Marquis <bertrand.marquis@xxxxxxx>, Volodymyr Babchuk <Volodymyr_Babchuk@xxxxxxxx>
  • Delivery-date: Fri, 15 May 2026 04:11:50 +0000
  • List-id: Xen developer discussion <xen-devel.lists.xenproject.org>

Document the Realm guest model, the current build/runtime flow, and the
limits deliberately left outside this implementation.

Signed-off-by: Koichiro Den <den@xxxxxxxxxxxxx>
---
 docs/hypervisor-guide/arm/cca-realm.rst | 83 +++++++++++++++++++++++++
 docs/hypervisor-guide/arm/index.rst     |  1 +
 2 files changed, 84 insertions(+)
 create mode 100644 docs/hypervisor-guide/arm/cca-realm.rst

diff --git a/docs/hypervisor-guide/arm/cca-realm.rst 
b/docs/hypervisor-guide/arm/cca-realm.rst
new file mode 100644
index 000000000000..9a0a63220bfb
--- /dev/null
+++ b/docs/hypervisor-guide/arm/cca-realm.rst
@@ -0,0 +1,83 @@
+.. SPDX-License-Identifier: CC-BY-4.0
+
+======================
+Arm CCA Realm support
+======================
+
+Overview
+========
+
+Xen can create Arm CCA Realm guests and run their vCPUs with
+``RMI_REC_ENTER``.
+
+The initial support implements the DEN0137 2.0-bet1 Realm lifecycle: Xen
+creates the RD and RTTs, initializes RIPAS, populates measured DATA granules,
+creates RECs, and activates the Realm.
+
+Guest creation model
+====================
+
+Realm guest creation is exposed through ``libxl`` with ``realm=true``.
+
+Realm guests are currently restricted to:
+
+* 64-bit Arm PVH
+* GICv3
+* a Xen-generated device tree
+* guest RAM fully contained within the first guest RAM bank
+
+When ``realm=true`` is selected, Realm DTBs set the PSCI method to ``"smc"``
+and do not include the Xen hypervisor node, because Xen PV interfaces are not
+exposed to Realm guests. The only supported virtual console is
+``vuart="sbsa_uart"``.
+
+This VUART is a host-visible clear-text debug channel. It is accepted only when
+``CONFIG_ARM_CCA_REALM_DEBUG_VUART=y`` and is not suitable for
+confidentiality-oriented Realm deployments.
+
+Runtime model
+=============
+
+Each Realm vCPU has a REC and a ``RecRun`` buffer shared between Xen and the
+RMM in non-secure memory. Xen enters the Realm with ``RMI_REC_ENTER``. On
+return, the RMM provides an ``RmiRecExit`` describing why the REC stopped.
+
+Before handling an exit, Xen synchronizes the Realm-side vGIC and timer state
+needed by the host model. The current path handles the exits needed by this
+series: host interrupt returns, emulatable MMIO, a small GICv3 sysreg subset,
+``WFI/WFE``, PSCI, and RIPAS changes. Other exits are treated as unsupported.
+
+Current implementation notes
+============================
+
+* Initial Realm RAM population currently measures all populated DATA
+  granules.  There is no separate interface for passing measured ranges
+  from the toolstack.
+
+* Xen tracks up to 64 accepted donation pages for one memory-transferring
+  SRO. This is a Xen implementation cap, not an RMI limit.
+
+* Xen checks that host RAM is fine-tracked conventional memory and ensures
+  GPT L1s exist before it creates Realms.
+
+Known limitations
+=================
+
+The initial support is small in scope.
+
+* No Dom0less Realm launch at Xen boot
+* No Xen PV, grant-table based, or virtio device exposure to Realm guests
+* No passthrough or Realm device assignment, including VDEV/VSMMU handling
+* No ACPI support
+* No Multi-Plane Realms or S2AP change exits
+* No Realm LPA2, SVE, or PMU support
+* Fixed Live Firmware Activation policy, ``RMI_LFA_DISALLOW``
+* Shared MEC policy only
+* Fixed zero Realm Personalization Value
+* No non-4KB RMI granule or non-1GB tracking-region configuration support
+* No Realm shared-memory mappings via
+  ``RMI_RTT_UNPROT_MAP`` / ``RMI_RTT_UNPROT_UNMAP``
+* No ``RMI_EXIT_HOST_CALL`` handling
+* No hardware-backed vIRQ deactivation in the ``ICC_DIR_EL1`` emulation path
+
+This document should be updated as the Xen/Arm Realm feature set expands.
diff --git a/docs/hypervisor-guide/arm/index.rst 
b/docs/hypervisor-guide/arm/index.rst
index 7aae4a0a0301..feac2b4230c3 100644
--- a/docs/hypervisor-guide/arm/index.rst
+++ b/docs/hypervisor-guide/arm/index.rst
@@ -6,4 +6,5 @@ ARM
 .. toctree::
    :maxdepth: 2
 
+   cca-realm
    firmware/arm-scmi
-- 
2.51.0




 


Rackspace

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