This causes the DSS port to be used as the console so you see all the boot messages and can still run a shell on ttyS3. If you don't want to re-run "make config" you can manually add "#define CONFIG_DSS_CONSOLE 1" to the end of include/linux/autoconf.h. I have not tried compiling a kernel with xmon using this hack. - todd --- arch/ppc/tcd/403serial.c.DIST Fri May 31 16:28:13 2002 +++ arch/ppc/tcd/403serial.c Sat Nov 9 17:33:13 2002 @@ -16,21 +16,23 @@ { __asm__( "eieio " : : ); } +#ifdef CONFIG_DSS_CONSOLE +static volatile unsigned char *S403_BASE = (volatile unsigned char *) IOBASE_DSSUART; +#else static volatile unsigned char *S403_BASE = (volatile unsigned char *) IOBASE_UART; +#endif int s403_ready = 0; void s403_virtualinit(void) { s403_ready = 0; - S403_BASE = (volatile unsigned char *)IOBASE_UART; s403_init(); } void s403_realinit(void) { s403_ready = 0; - S403_BASE = (volatile unsigned char *) IOBASE_UART; s403_init(); } --- drivers/char/serial.c.DIST Fri May 31 16:28:14 2002 +++ drivers/char/serial.c Sat Nov 9 17:32:37 2002 @@ -351,7 +351,11 @@ { 0, BASE_BAUD, IOBASE_SERIAL, RS_FAKE_S403, STD_COM_FLAGS }, { 0, MODEM_BAUD, IOBASE_MODEM, RS_FAKE_MODEM, ASYNC_BOOT_AUTOCONF }, { 0, BASE_BAUD, IOBASE_UART2, RS_FAKE_UART2, ASYNC_BOOT_AUTOCONF }, +#ifdef CONFIG_DSS_CONSOLE + { 0, BASE_BAUD, IOBASE_DSSUART, RS_FAKE_DSSUART, STD_COM_FLAGS }, +#else { 0, BASE_BAUD, IOBASE_DSSUART, RS_FAKE_DSSUART, ASYNC_BOOT_AUTOCONF }, +#endif #else /* CONFIG_TCD */ { 0, BASE_BAUD, 0x3F8, 4, STD_COM_FLAGS }, /* ttyS0 */ { 0, BASE_BAUD, 0x2F8, 3, STD_COM_FLAGS }, /* ttyS1 */ @@ -3739,6 +3743,26 @@ restore_flags(flags); return; } +#if CONFIG_DSS_CONSOLE + if (state->port == IOBASE_DSSUART) { + state->type = PORT_16550A; +#ifdef SERIAL_DEBUG_OPEN + printk("autoconfig, type=PORT_16550A\n"); +#endif + /* + * If the AUTO_IRQ flag is set, try to do the automatic IRQ + * detection. + */ + state->irq = RS_FAKE_DSSUART; + + state->xmit_fifo_size = uart_config[state->type].dfl_xmit_fifo_size; + + request_region(info->port,8,"serial(auto)"); + + restore_flags(flags); + return; + } +#endif /* * If this is a box prior to P1.7, the DSSART address is aliased with the * the UART at IOBASE_UART (the console). --- arch/ppc/config.in- Sat Nov 9 13:29:25 2002 +++ arch/ppc/config.in Sat Nov 9 18:00:47 2002 @@ -14,6 +14,7 @@ bool 'Support for the TiVo Customer Device' CONFIG_TCD bool 'TiVo Customer Device development kernel' CONFIG_TCD_DEVEL bool 'IBM Eval board for the 403GCX' CONFIG_TCD_EVAL +bool 'Use TiVo DSS port as console' CONFIG_DSS_CONSOLE endmenu mainmenu_option next_comment