|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH 09/12 v3] xen/arm: vpl011: Add support for vuart in xenconsole
Xenconsole supports only PV console currently. This patch adds support
for vuart console, which allows emulated pl011 UART to be accessed
as a console.
Signed-off-by: Bhupinder Thakur <bhupinder.thakur@xxxxxxxxxx>
---
One review comment was to keep the vuart code under CONFIG_ARM64 && CONFIG_ACPI
flags.
This code review could not be incorporated as I could not find out the
appropriate flags
unders which this code can be kept. Are the CONFIG* flags exported to
xenconsole?
tools/console/daemon/io.c | 29 +++++++++++++++++++++++++++++
1 file changed, 29 insertions(+)
diff --git a/tools/console/daemon/io.c b/tools/console/daemon/io.c
index 9bb14de..19a2f35 100644
--- a/tools/console/daemon/io.c
+++ b/tools/console/daemon/io.c
@@ -115,6 +115,7 @@ struct console_data {
};
static int map_pvcon_ring_ref(struct console *, int );
+static int map_vuartcon_ring_ref(struct console *, int );
static struct console_data console_data[] = {
@@ -124,6 +125,12 @@ static struct console_data console_data[] = {
.mapfunc = map_pvcon_ring_ref,
.mandatory = true
},
+ {
+ .xsname = "/vuart/0",
+ .ttyname = "tty",
+ .mapfunc = map_vuartcon_ring_ref,
+ .mandatory = false
+ }
};
#define MAX_CONSOLE (sizeof(console_data)/sizeof(struct console_data))
@@ -751,6 +758,28 @@ out:
return err;
}
+static int map_vuartcon_ring_ref(struct console *con, int ring_ref)
+{
+ int err = 0;
+ struct domain *dom = con->d;
+
+ if (!con->interface) {
+ con->interface = xc_map_foreign_range(xc,
+
dom->domid,
+
XC_PAGE_SIZE,
+
PROT_READ|PROT_WRITE,
+
(unsigned long)ring_ref);
+ if (con->interface == NULL) {
+ err = EINVAL;
+ goto out;
+ }
+ con->ring_ref = ring_ref;
+ }
+
+out:
+ return err;
+}
+
static int console_create_ring(struct console *con)
{
int err, remote_port, ring_ref;
--
2.7.4
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
https://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |