[MIPS] Early printk for IP27.
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
This commit is contained in:
parent
73f403527b
commit
a3d4539186
3 changed files with 26 additions and 28 deletions
|
@ -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
|
||||||
|
|
|
@ -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)
|
||||||
|
|
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue