\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.
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);
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;
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();
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();
}
}
-void console_endboot(int disable_vga)
+void console_endboot(void)
{
int i, j;
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
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);