Commit a57c2289 authored by Ralf Baechle's avatar Ralf Baechle

[MIPS] Qemu: Add early printk, your friend in a cold night.

Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
parent a8049c53
...@@ -361,10 +361,10 @@ config QEMU ...@@ -361,10 +361,10 @@ config QEMU
select PCSPEAKER select PCSPEAKER
select SWAP_IO_SPACE select SWAP_IO_SPACE
select SYS_HAS_CPU_MIPS32_R1 select SYS_HAS_CPU_MIPS32_R1
select SYS_HAS_EARLY_PRINTK
select SYS_SUPPORTS_32BIT_KERNEL select SYS_SUPPORTS_32BIT_KERNEL
select SYS_SUPPORTS_BIG_ENDIAN select SYS_SUPPORTS_BIG_ENDIAN
select SYS_SUPPORTS_LITTLE_ENDIAN select SYS_SUPPORTS_LITTLE_ENDIAN
select ARCH_SPARSEMEM_ENABLE
select GENERIC_HARDIRQS_NO__DO_IRQ select GENERIC_HARDIRQS_NO__DO_IRQ
select NR_CPUS_DEFAULT_1 select NR_CPUS_DEFAULT_1
select SYS_SUPPORTS_SMP select SYS_SUPPORTS_SMP
......
...@@ -4,6 +4,7 @@ ...@@ -4,6 +4,7 @@
obj-y = q-firmware.o q-irq.o q-mem.o q-setup.o q-reset.o obj-y = q-firmware.o q-irq.o q-mem.o q-setup.o q-reset.o
obj-$(CONFIG_SMP) += q-smp.o obj-$(CONFIG_EARLY_PRINTK) += q-console.o
obj-$(CONFIG_SMP) += q-smp.o
EXTRA_CFLAGS += -Werror EXTRA_CFLAGS += -Werror
#include <linux/console.h>
#include <linux/init.h>
#include <linux/serial_reg.h>
#include <asm/io.h>
#define PORT(offset) (0x3f8 + (offset))
static inline unsigned int serial_in(int offset)
{
return inb(PORT(offset));
}
static inline void serial_out(int offset, int value)
{
outb(value, PORT(offset));
}
int prom_putchar(char c)
{
while ((serial_in(UART_LSR) & UART_LSR_THRE) == 0)
;
serial_out(UART_TX, c);
return 1;
}
...@@ -2,6 +2,9 @@ ...@@ -2,6 +2,9 @@
#include <linux/string.h> #include <linux/string.h>
#include <asm/addrspace.h> #include <asm/addrspace.h>
#include <asm/bootinfo.h> #include <asm/bootinfo.h>
#include <asm/io.h>
#define QEMU_PORT_BASE 0xb4000000
void __init prom_init(void) void __init prom_init(void)
{ {
...@@ -15,4 +18,7 @@ void __init prom_init(void) ...@@ -15,4 +18,7 @@ void __init prom_init(void)
} else { } else {
add_memory_region(0x0<<20, 0x10<<20, BOOT_MEM_RAM); add_memory_region(0x0<<20, 0x10<<20, BOOT_MEM_RAM);
} }
set_io_port_base(QEMU_PORT_BASE);
} }
...@@ -6,8 +6,6 @@ ...@@ -6,8 +6,6 @@
extern void qemu_reboot_setup(void); extern void qemu_reboot_setup(void);
#define QEMU_PORT_BASE 0xb4000000
const char *get_system_type(void) const char *get_system_type(void)
{ {
return "Qemu"; return "Qemu";
...@@ -20,6 +18,5 @@ void __init plat_time_init(void) ...@@ -20,6 +18,5 @@ void __init plat_time_init(void)
void __init plat_mem_setup(void) void __init plat_mem_setup(void)
{ {
set_io_port_base(QEMU_PORT_BASE);
qemu_reboot_setup(); qemu_reboot_setup();
} }
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment