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

[PATCH v7 2/2] xen: enable dom0less guests to use console_io hypercalls


  • To: <xen-devel@xxxxxxxxxxxxxxxxxxxx>
  • From: Stefano Stabellini <stefano.stabellini@xxxxxxx>
  • Date: Thu, 22 Jan 2026 17:06:40 -0800
  • Arc-authentication-results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=lists.xenproject.org smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none (0)
  • 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=wtar+qZPCoP0IKYh9UDHTAiZjxPGrGIsKWHWOtMQ6Ro=; b=tzijfIN6P53ToVQVhflMeyiYp5g0I/VbKA5ZQ8vOj01/GHM/xWG4O6FDx6UENWfTWqCnpNE6kC9obHsRdSro9rJLwRRCvZwdS+Yz4b4Q/WENuguqw/jd48+adLVn/0lPfXCLhWjbY+Hzux0QL0VzhyN6+mw4oQfL7lEUbjGSdvgvZGnB+5ni7DjrBhDcsJGAOu7RERBGjMjZTReDqSOzTmDwEcsv9J5gmuhXd6H2RleNoOozrsJmZZK6M0c/tuwahCR7EW7LMVjXD3IkN7WuY3Pl5VhvG4KK05tFkgvqMu3rvdCzb3i5qrSVBOAGl9bHlh9aZmKAR6i2cjjqEenVRQ==
  • Arc-seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=Zy06W+gITimFU1jT6KOAoMEdgEnZsi6uzA6gP1dvQ15kW6aSscNQsDffuxnIoqAz4FSOcCbotNF/oOmjw3EdH+Z7jPlKkWvIU7mABj1k+fnTpUHZ0Gw74o7hkNLIt4kOUiDhX+FMVmjrdR5WENNbEEYjR6FWTL5J6VMhi4WPRY5PuCFQ/RsZ+Z0UvRmmAKnnB3xtO2l/9NdtVQ+MUyh83tWWk1okP1H9N8EWk/l5mxWp2ABhaXpjstrwlBmurtY3S5PIiYoc8n+PpJGMq4iX1+HBg3BW/Rz0sOGvVqWoyIVX9dVKSe8n6IFAxQa7KMnU3BtZIhDuZEfFjoiT/BFw8Q==
  • Cc: <grygorii_strashko@xxxxxxxx>, <anthony.perard@xxxxxxxxxx>, <michal.orzel@xxxxxxx>, <julien@xxxxxxx>, <roger.pau@xxxxxxxxxx>, <jason.andryuk@xxxxxxx>, <victorm.lira@xxxxxxx>, <andrew.cooper3@xxxxxxxxxx>, <jbeulich@xxxxxxxx>, <sstabellini@xxxxxxxxxx>, Stefano Stabellini <stefano.stabellini@xxxxxxx>
  • Delivery-date: Fri, 23 Jan 2026 01:12:02 +0000
  • List-id: Xen developer discussion <xen-devel.lists.xenproject.org>

Enable dom0less guests on ARM to use console_io hypercalls:
- set input_allow = true for dom0less domains
- update the in-code comment in console.c
- prioritize the VUART check to retain the same behavior as today

Signed-off-by: Stefano Stabellini <stefano.stabellini@xxxxxxx>
---
 xen/common/device-tree/dom0less-build.c |  2 ++
 xen/drivers/char/console.c              | 17 ++++++++++-------
 2 files changed, 12 insertions(+), 7 deletions(-)

diff --git a/xen/common/device-tree/dom0less-build.c 
b/xen/common/device-tree/dom0less-build.c
index 840d14419d..cb7026fa7e 100644
--- a/xen/common/device-tree/dom0less-build.c
+++ b/xen/common/device-tree/dom0less-build.c
@@ -829,6 +829,8 @@ static int __init construct_domU(struct kernel_info *kinfo,
 
     rangeset_destroy(kinfo->xen_reg_assigned);
 
+    d->console->input_allowed = true;
+
     return rc;
 }
 
diff --git a/xen/drivers/char/console.c b/xen/drivers/char/console.c
index 09354db2e0..26de872b8d 100644
--- a/xen/drivers/char/console.c
+++ b/xen/drivers/char/console.c
@@ -612,10 +612,18 @@ static void __serial_rx(char c)
     if ( !d )
         return;
 
-    if ( is_hardware_domain(d) )
+#ifdef CONFIG_SBSA_VUART_CONSOLE
+    /* Prioritize vpl011 if enabled for this domain */
+    if ( d->arch.vpl011.base_addr )
+    {
+        /* Deliver input to the emulated UART. */
+        rc = vpl011_rx_char_xen(d, c);
+    }
+    else
+#endif
     {
         /*
-         * Deliver input to the hardware domain buffer, unless it is
+         * Deliver input to the focus domain buffer, unless it is
          * already full.
          */
         nrspin_lock_irq(&console_lock);
@@ -629,11 +637,6 @@ static void __serial_rx(char c)
          */
         send_global_virq(VIRQ_CONSOLE);
     }
-#ifdef CONFIG_SBSA_VUART_CONSOLE
-    else
-        /* Deliver input to the emulated UART. */
-        rc = vpl011_rx_char_xen(d, c);
-#endif
 
     if ( consoled_is_enabled() )
         /* Deliver input to the PV shim console. */
-- 
2.25.1




 


Rackspace

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