[MIPS] Early printk for IP27.

Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
This commit is contained in:
Ralf Baechle 2006-06-22 20:09:04 +01:00
parent 73f403527b
commit a3d4539186
3 changed files with 26 additions and 28 deletions

View file

@ -606,6 +606,7 @@ config SGI_IP27
select ARC64 select ARC64
select BOOT_ELF64 select BOOT_ELF64
select DMA_IP27 select DMA_IP27
select EARLY_PRINTK
select HW_HAS_PCI select HW_HAS_PCI
select PCI_DOMAINS select PCI_DOMAINS
select SYS_HAS_CPU_R10000 select SYS_HAS_CPU_R10000

View file

@ -2,11 +2,12 @@
# Makefile for the IP27 specific kernel interface routines under Linux. # Makefile for the IP27 specific kernel interface routines under Linux.
# #
obj-y := ip27-berr.o ip27-console.o ip27-irq.o ip27-init.o \ obj-y := ip27-berr.o ip27-irq.o ip27-init.o ip27-klconfig.o ip27-klnuma.o \
ip27-klconfig.o ip27-klnuma.o ip27-memory.o ip27-nmi.o ip27-reset.o \ ip27-memory.o ip27-nmi.o ip27-reset.o ip27-timer.o ip27-hubio.o \
ip27-timer.o ip27-hubio.o ip27-xtalk.o ip27-xtalk.o
obj-$(CONFIG_KGDB) += ip27-dbgio.o obj-$(CONFIG_EARLY_PRINTK) += ip27-console.o
obj-$(CONFIG_SMP) += ip27-smp.o obj-$(CONFIG_KGDB) += ip27-dbgio.o
obj-$(CONFIG_SMP) += ip27-smp.o
EXTRA_AFLAGS := $(CFLAGS) EXTRA_AFLAGS := $(CFLAGS)

View file

@ -46,33 +46,29 @@ void prom_putchar(char c)
uart->iu_thr = c; uart->iu_thr = c;
} }
char __init prom_getchar(void) static void ioc3_console_write(struct console *con, const char *s, unsigned n)
{ {
return 0; while (n-- && *s) {
if (*s == '\n')
prom_putchar('\r');
prom_putchar(*s);
s++;
}
} }
static void inline ioc3_console_probe(void) static struct console ioc3_console = {
{ .name = "ioc3",
struct uart_port up; .write = ioc3_console_write,
.flags = CON_PRINTBUFFER | CON_BOOT,
/* .index = -1
* Register to interrupt zero because we share the interrupt with };
* the serial driver which we don't properly support yet.
*/
memset(&up, 0, sizeof(up));
up.membase = (unsigned char *) console_uart();
up.irq = 0;
up.uartclk = IOC3_CLK;
up.regshift = 0;
up.iotype = UPIO_MEM;
up.flags = IOC3_FLAGS;
up.line = 0;
if (early_serial_setup(&up))
printk(KERN_ERR "Early serial init of port 0 failed\n");
}
__init void ip27_setup_console(void) __init void ip27_setup_console(void)
{ {
ioc3_console_probe(); register_console(&ioc3_console);
}
void __init disable_early_printk(void)
{
unregister_console(&ioc3_console);
} }