[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [xen-unstable] [XEN] Xen always relinquishes VGA console to domain0 when domain0
# HG changeset patch # User kaf24@xxxxxxxxxxxxxxxxxxxx # Node ID 411a3c01bb40681731ad50fd3b8c5d7972baf36d # Parent 967d4c65659a74d0609ffe482e57098c4e5b6955 [XEN] Xen always relinquishes VGA console to domain0 when domain0 starts to boot (previous behaviour looked for console=tty0 on dom0's command line). To prevent this 'console=vga[keep]' must be specified. Signed-off-by: Keir Fraser <keir@xxxxxxxxxxxxx> --- docs/src/user.tex | 3 ++- xen/arch/ia64/xen/domain.c | 4 +--- xen/arch/ia64/xen/xensetup.c | 3 +-- xen/arch/x86/setup.c | 3 +-- xen/drivers/char/console.c | 14 +++++++++++--- xen/include/xen/console.h | 2 +- 6 files changed, 17 insertions(+), 12 deletions(-) diff -r 967d4c65659a -r 411a3c01bb40 docs/src/user.tex --- a/docs/src/user.tex Tue Jun 20 18:28:41 2006 +0100 +++ b/docs/src/user.tex Tue Jun 20 18:51:46 2006 +0100 @@ -1972,7 +1972,8 @@ editing \path{grub.conf}. \item [ console=$<$specifier list$>$ ] Specify the destination for Xen console I/O. This is a comma-separated list of, for example: \begin{description} - \item[ vga ] Use VGA console and allow keyboard input. + \item[ vga ] Use VGA console (only until domain 0 boots, unless {\bf + vga[keep] } is specified). \item[ com1 ] Use serial port com1. \item[ com2H ] Use serial port com2. Transmitted chars will have the MSB set. Received chars must have MSB set. diff -r 967d4c65659a -r 411a3c01bb40 xen/arch/ia64/xen/domain.c --- a/xen/arch/ia64/xen/domain.c Tue Jun 20 18:28:41 2006 +0100 +++ b/xen/arch/ia64/xen/domain.c Tue Jun 20 18:51:46 2006 +0100 @@ -855,9 +855,7 @@ int construct_dom0(struct domain *d, sprintf(si->magic, "xen-%i.%i-ia64", XEN_VERSION, XEN_SUBVERSION); si->nr_pages = max_pages; - /* Give up the VGA console if DOM0 is configured to grab it. */ - if (cmdline != NULL) - console_endboot(strstr(cmdline, "tty0") != NULL); + console_endboot(); printk("Dom0: 0x%lx\n", (u64)dom0); diff -r 967d4c65659a -r 411a3c01bb40 xen/arch/ia64/xen/xensetup.c --- a/xen/arch/ia64/xen/xensetup.c Tue Jun 20 18:28:41 2006 +0100 +++ b/xen/arch/ia64/xen/xensetup.c Tue Jun 20 18:51:46 2006 +0100 @@ -511,9 +511,8 @@ printk("About to call init_trace_bufs()\ printk("About to call init_trace_bufs()\n"); init_trace_bufs(); - /* Give up the VGA console if DOM0 is configured to grab it. */ #ifdef CONFIG_XEN_CONSOLE_INPUT /* CONFIG_SERIAL_8250_CONSOLE=n in dom0! */ - console_endboot(cmdline && strstr(cmdline, "tty0")); + console_endboot(); #endif domain0_ready = 1; diff -r 967d4c65659a -r 411a3c01bb40 xen/arch/x86/setup.c --- a/xen/arch/x86/setup.c Tue Jun 20 18:28:41 2006 +0100 +++ b/xen/arch/x86/setup.c Tue Jun 20 18:51:46 2006 +0100 @@ -598,8 +598,7 @@ void __init __start_xen(multiboot_info_t init_trace_bufs(); - /* Give up the VGA console if DOM0 is configured to grab it. */ - console_endboot(cmdline && strstr(cmdline, "tty0")); + console_endboot(); /* Hide UART from DOM0 if we're using it */ serial_endboot(); diff -r 967d4c65659a -r 411a3c01bb40 xen/drivers/char/console.c --- a/xen/drivers/char/console.c Tue Jun 20 18:28:41 2006 +0100 +++ b/xen/drivers/char/console.c Tue Jun 20 18:51:46 2006 +0100 @@ -476,7 +476,11 @@ void init_console(void) if ( strncmp(p, "com", 3) == 0 ) sercon_handle = serial_parse_handle(p); else if ( strncmp(p, "vga", 3) == 0 ) + { vgacon_enabled = 1; + if ( strncmp(p+3, "[keep]", 6) == 0 ) + vgacon_enabled++; + } } init_vga(); @@ -502,7 +506,7 @@ void init_console(void) } } -void console_endboot(int disable_vga) +void console_endboot(void) { int i, j; @@ -532,8 +536,12 @@ void console_endboot(int disable_vga) printk("\n"); } - if ( disable_vga ) - vgacon_enabled = 0; + if ( vgacon_enabled ) + { + vgacon_enabled--; + printk("Xen is %s VGA console.\n", + vgacon_enabled ? "keeping" : "relinquishing"); + } /* * If user specifies so, we fool the switch routine to redirect input diff -r 967d4c65659a -r 411a3c01bb40 xen/include/xen/console.h --- a/xen/include/xen/console.h Tue Jun 20 18:28:41 2006 +0100 +++ b/xen/include/xen/console.h Tue Jun 20 18:51:46 2006 +0100 @@ -15,7 +15,7 @@ long read_console_ring(XEN_GUEST_HANDLE( long read_console_ring(XEN_GUEST_HANDLE(char), u32 *, int); void init_console(void); -void console_endboot(int disable_vga); +void console_endboot(void); void console_force_unlock(void); void console_force_lock(void); _______________________________________________ Xen-changelog mailing list Xen-changelog@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-changelog
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |