[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH 1/5] x86/platform: introduce hypercall to get initial video console settings
- To: xen-devel@xxxxxxxxxxxxxxxxxxxx
- From: Roger Pau Monne <roger.pau@xxxxxxxxxx>
- Date: Wed, 23 Nov 2022 16:45:20 +0100
- Arc-authentication-results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com; dkim=pass header.d=citrix.com; arc=none
- 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=ijoTp2u9ZjfF4M3JsrM4RqHyGjKHHh5FQnpmKT5pXL8=; b=WVRIw6Bwn9wABibvjF5Bt1sF9UyvmyoN4s/n+G81aocW9xuKHA4IIwm1kX1qmy7ldX3efpBPkfhcSZbeN5PJNx8v3UdyBQ/8ElrsHDhvwHD83qKvn6qCB3hHpzPHgdzt3JS3Vwk9w516zFhilaVrtc7Ummbr9SfQdHANfOz0SG/TK6DWeDIDiHSDzCwpyMoA0KhMSz9T2nJvsM8vyVEirbGT+XtujJV0CK+0MjjPap5a2UYRzyGeQSk5WyNI1RMESFH/5GjiYsgn5cz6W0h8LLOfUOr+2QjKzABpHJ0K/CuVNrimx7I84TAcUfc7rEd3RNdVa9zDvoGbeyjmYLqIzQ==
- Arc-seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=bJNNP/A1EP399rVzYLncv4RFnxE5LnSEYxAokaCTDBcy6AhGDZeJSThiX9gZEnJh/G55wqsdfnAszO46o+s0qWaCbYlYutPa8PpJpPNZLOxMxpVF11I4qDWf/lVDdB9xY6NZPsOBG+Mx/UnVibihZhR1nkgxAW+VfQHnrSa3VdNHU80CTfI4/nKLC8qonoww2yLaZbrPZ+b7nYH8cLbzRWQMPhiZ8gfiRrMEDJ0R7Ku4UqlPEi0wKrRNwD2LREkMkXV+ZmRdA7nMc1Q4e5OfZR4bojHasMMEqPiDwtPjoYgVDC7Zp5BNlLGO1PRU4IFo4uGuIh9uWKS992G6JPGT1w==
- Authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=citrix.com;
- Cc: marmarek@xxxxxxxxxxxxxxxxxxxxxx, Roger Pau Monne <roger.pau@xxxxxxxxxx>, Jan Beulich <jbeulich@xxxxxxxx>, Andrew Cooper <andrew.cooper3@xxxxxxxxxx>, Wei Liu <wl@xxxxxxx>, George Dunlap <george.dunlap@xxxxxxxxxx>, Julien Grall <julien@xxxxxxx>, Stefano Stabellini <sstabellini@xxxxxxxxxx>
- Delivery-date: Wed, 23 Nov 2022 15:45:59 +0000
- Ironport-data: A9a23:H92EDa1erck4eEgpcfbD5T1wkn2cJEfYwER7XKvMYLTBsI5bp2MEz TYdWz+BO6vYN2fwetl+YY23/BkHu8PTzdE1HgFopC1hF35El5HIVI+TRqvS04F+DeWYFR46s J9OAjXkBJppJpMJjk71atANlVEliefTAOK5ULSfUsxIbVcMYD87jh5+kPIOjIdtgNyoayuAo tq3qMDEULOf82cc3lk8tuTS9nuDgNyo4GlC5wVkPqgR1LPjvyJ94Kw3dPnZw0TQGuG4LsbiL 87fwbew+H/u/htFIrtJRZ6iLyXm6paLVeS/oiI+t5qK23CulQRrukoPD9IOaF8/ttm8t4sZJ OOhF3CHYVxB0qXkwIzxWvTDes10FfUuFLTveRBTvSEPpqFvnrSFL/hGVSkL0YMkFulfLE1lx 8A9Bi82NDO4wM/r6rKiTsNwiZF2RCXrFNt3VnBI6xj8VapjZK+ZBqLA6JlfwSs6gd1IEbDGf c0FZDFzbRPGJRpSJlMQD5F4l+Ct7pX9W2QA9BTJ+uxouC6Kk1MZPLvFabI5fvSQQspYhACAr 3/u9GXlGBAKcteYzFJp91r827OVwHOqAur+EpWhr98xvBqX5lVLVh09DnS4rdKliVOHDoc3x 0s8v3BGQbIJ3FymSJzxUgO1pFaAvwUAQJxAHusi8gaPx6HIpQGDCQAsSzdbbdU8ucweRDo01 0SIldfkGTxutrKOTXuXsLyTqFuaOyIYMGsDbi8sVhYe7p/op4Rbpg3LZsZuFuiylNKdMTPtx zGHqgAuirNVitQEv42g5kzOiT+oopnPTyY26x/RU2bj6Rl2DLNJfKSt4FnfqPNfdoCQSwHdu GBewpfBqucTEZuKiSqBBv0XG62k7OqENzuahkNzG54m9HKm/HvLkZ1s3QyS7XxBaq4sEQIFq meJ0e+NzPe/5EeXUJI=
- Ironport-hdrordr: A9a23:dpotOKsyZ4rq5Wszh1m+HKvF7skCFoAji2hC6mlwRA09TyXGra 2TdaUgvyMc1gx7ZJhBo7+90We7MBHhHPlOkPMs1NaZLXLbUQ6TQL2KgrGSpwEIdxefygcZ79 YYT0EcMqyOMbEFt7ec3ODQKb9Jrri6GeKT9J/jJh9WPH1XgspbnmJE42igYy5LrF4sP+tFKH PQ3LswmxOQPVAsKuirDHgMWObO4/XNiZLdeBYDQzI39QWUijusybjiVzyVxA0XXT9jyaortT GtqX2y2oyT99WAjjPM3W7a6Jpb3PPn19t4HcSJzuQFNzn2jQ6sRYJ5H5mPpio8ru2D4Esj1P PMvxAjFcJu7G65RBD/nTLdny3blBo+4X7rzlGVxVPlvMzCXTo/T+5Mn5hQfBf141cp+IgU6t MC40up875sST/QliX04NbFEzlsi0qPuHIn1coelWZWX4cyYKJY6aYf4ERWOpEdGz+S0vFvLM BeSOXnoNpGe1KTaH7U+kFp3dyXR3w2WiyLR0AT0/blpgR+rTRc9Q811cYflnAP+NYWUJ9f/d nJNaxuifVnUtIWRbgVPpZOfeKHTkj2BT7cOmObJlrqUIsdPWjWlpLx6LIpoMm3ZZ0zyocokp ipaiIWiYcLQTOvNSSy5uwJzviUK1/NHwgFi/suq6SRg4eMBYYCaka4ORUTe8jJmYRsPiSUYY f2BHtsOY6SEYLfI/c24+TAYegiFZBnarxyhj8aYSP7niuZEPycisXrNNDuGZHKLREIHkvCP1 prZkmBGCwH1DHnZkPF
- List-id: Xen developer discussion <xen-devel.lists.xenproject.org>
This is required so PVH dom0 can get the initial video console state
as handled by Xen. PV dom0 will get this as part of the start_info,
but it doesn't seem necessary to place such information in the
HVM start info.
Signed-off-by: Roger Pau Monné <roger.pau@xxxxxxxxxx>
---
xen/arch/x86/platform_hypercall.c | 11 +++++++++++
xen/drivers/video/vga.c | 2 +-
xen/include/public/platform.h | 6 ++++++
3 files changed, 18 insertions(+), 1 deletion(-)
diff --git a/xen/arch/x86/platform_hypercall.c
b/xen/arch/x86/platform_hypercall.c
index a7341dc3d7..3f0d0389af 100644
--- a/xen/arch/x86/platform_hypercall.c
+++ b/xen/arch/x86/platform_hypercall.c
@@ -839,6 +839,17 @@ ret_t do_platform_op(
}
break;
+ case XENPF_get_dom0_console:
+ if ( !fill_console_start_info(&op->u.dom0_console) )
+ {
+ ret = -ENODEV;
+ break;
+ }
+
+ if ( copy_field_to_guest(u_xenpf_op, op, u.dom0_console) )
+ ret = -EFAULT;
+ break;
+
default:
ret = -ENOSYS;
break;
diff --git a/xen/drivers/video/vga.c b/xen/drivers/video/vga.c
index 29a88e8241..0a03508bee 100644
--- a/xen/drivers/video/vga.c
+++ b/xen/drivers/video/vga.c
@@ -205,7 +205,7 @@ static void cf_check vga_text_puts(const char *s, size_t nr)
}
}
-int __init fill_console_start_info(struct dom0_vga_console_info *ci)
+int fill_console_start_info(struct dom0_vga_console_info *ci)
{
memcpy(ci, &vga_console_info, sizeof(*ci));
return 1;
diff --git a/xen/include/public/platform.h b/xen/include/public/platform.h
index 5e1494fe9a..14784dfa77 100644
--- a/xen/include/public/platform.h
+++ b/xen/include/public/platform.h
@@ -605,6 +605,11 @@ struct xenpf_symdata {
typedef struct xenpf_symdata xenpf_symdata_t;
DEFINE_XEN_GUEST_HANDLE(xenpf_symdata_t);
+/* Fetch the video console information and mode setup by Xen. */
+#define XENPF_get_dom0_console 64
+typedef struct dom0_vga_console_info xenpf_dom0_console_t;
+DEFINE_XEN_GUEST_HANDLE(xenpf_dom0_console_t);
+
/*
* ` enum neg_errnoval
* ` HYPERVISOR_platform_op(const struct xen_platform_op*);
@@ -635,6 +640,7 @@ struct xen_platform_op {
xenpf_core_parking_t core_parking;
xenpf_resource_op_t resource_op;
xenpf_symdata_t symdata;
+ xenpf_dom0_console_t dom0_console;
uint8_t pad[128];
} u;
};
--
2.37.3
|