[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-ia64-devel] [PATCH] Remove use of hpsim console
We've been using the hpsim console for early dom0/domU bootup. This provides an early boot console via Xen, but directs early boot messages to the wrong place a for production system. The patch below removes our usage of the hpsim console and adds smarts to autodetect where the console should go when not specified. Ideally, there shouldn't be any behavioral change other than early boot messages aren't printed out via Xen. As a bonus, we shouldn't need to specify a console= for domUs using the default xencons outputs. It's easy to cause problems tinkering with the console setup, so please give this a test. Comments welcome. Thanks, Alex Signed-off-by: Alex Williamson <alex.williamson@xxxxxx> --- diff -r b3ae332e6dbd linux-2.6-xen-sparse/arch/ia64/kernel/setup.c --- a/linux-2.6-xen-sparse/arch/ia64/kernel/setup.c Tue Feb 06 09:28:07 2007 -0700 +++ b/linux-2.6-xen-sparse/arch/ia64/kernel/setup.c Tue Feb 06 14:41:49 2007 -0700 @@ -375,16 +375,6 @@ early_console_setup (char *cmdline) { int earlycons = 0; -#ifdef CONFIG_XEN -#ifndef CONFIG_IA64_HP_SIM - if (is_running_on_xen()) { - extern struct console hpsim_cons; - hpsim_cons.flags |= CON_BOOT; - register_console(&hpsim_cons); - earlycons++; - } -#endif -#endif #ifdef CONFIG_SERIAL_SGI_L1_CONSOLE { extern int sn_serial_console_early_setup(void); @@ -557,6 +547,45 @@ setup_arch (char **cmdline_p) #if !defined(CONFIG_VT) || !defined(CONFIG_DUMMY_CONSOLE) conswitchp = NULL; #endif + } + + /* + * Add a preferred console to match xencons. This should + * do the right thing on both dom0 & domU, but it depends + * on matching xencons behavior. + */ + if (!strstr(*cmdline_p, "console=")) { + char *p, *q, name[5]; + int offset = 0; + + if (is_initial_xendomain()) + strncpy(name, "ttyS", 4); + else + strncpy(name, "tty", 3); + + p = strstr(*cmdline_p, "xencons="); + + if (p) { + p += 8; + if (!strncmp(p, "ttyS", 4)) { + strncpy(name, p, 4); + p += 4; + offset = simple_strtol(p, &q, 10); + if (p == q) + offset = 0; + } else if (!strncmp(p, "tty", 3) || + !strncmp(p, "xvc", 3)) { + strncpy(name, p, 3); + p += 3; + offset = simple_strtol(p, &q, 10); + if (p == q) + offset = 0; + } else if (!strncmp(p, "off", 3)) + offset = -1; + } + + if (offset >= 0) + add_preferred_console(name, offset, NULL); } } xencons_early_setup(); diff -r b3ae332e6dbd linux-2.6-xen-sparse/arch/ia64/hp/sim/Makefile --- a/linux-2.6-xen-sparse/arch/ia64/hp/sim/Makefile Tue Feb 06 09:28:07 2007 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,18 +0,0 @@ -# -# ia64/platform/hp/sim/Makefile -# -# Copyright (C) 2002 Hewlett-Packard Co. -# David Mosberger-Tang <davidm@xxxxxxxxxx> -# Copyright (C) 1999 Silicon Graphics, Inc. -# Copyright (C) Srinivasa Thirumalachar (sprasad@xxxxxxxxxxxx) -# - -obj-y := hpsim_irq.o hpsim_setup.o hpsim.o -obj-$(CONFIG_IA64_GENERIC) += hpsim_machvec.o - -obj-$(CONFIG_HP_SIMETH) += simeth.o -obj-$(CONFIG_HP_SIMSERIAL) += simserial.o -obj-$(CONFIG_HP_SIMSERIAL_CONSOLE) += hpsim_console.o -obj-$(CONFIG_HP_SIMSCSI) += simscsi.o -obj-$(CONFIG_XEN) += simserial.o -obj-$(CONFIG_XEN) += hpsim_console.o _______________________________________________ Xen-ia64-devel mailing list Xen-ia64-devel@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-ia64-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |