[MIPS] Qemu: Add early printk, your friend in a cold night.
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
This commit is contained in:
parent
a8049c53cd
commit
a57c228935
5 changed files with 35 additions and 5 deletions
|
@ -361,10 +361,10 @@ config QEMU
|
|||
select PCSPEAKER
|
||||
select SWAP_IO_SPACE
|
||||
select SYS_HAS_CPU_MIPS32_R1
|
||||
select SYS_HAS_EARLY_PRINTK
|
||||
select SYS_SUPPORTS_32BIT_KERNEL
|
||||
select SYS_SUPPORTS_BIG_ENDIAN
|
||||
select SYS_SUPPORTS_LITTLE_ENDIAN
|
||||
select ARCH_SPARSEMEM_ENABLE
|
||||
select GENERIC_HARDIRQS_NO__DO_IRQ
|
||||
select NR_CPUS_DEFAULT_1
|
||||
select SYS_SUPPORTS_SMP
|
||||
|
|
|
@ -4,6 +4,7 @@
|
|||
|
||||
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
|
||||
|
|
26
arch/mips/qemu/q-console.c
Normal file
26
arch/mips/qemu/q-console.c
Normal file
|
@ -0,0 +1,26 @@
|
|||
#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 @@
|
|||
#include <linux/string.h>
|
||||
#include <asm/addrspace.h>
|
||||
#include <asm/bootinfo.h>
|
||||
#include <asm/io.h>
|
||||
|
||||
#define QEMU_PORT_BASE 0xb4000000
|
||||
|
||||
void __init prom_init(void)
|
||||
{
|
||||
|
@ -15,4 +18,7 @@ void __init prom_init(void)
|
|||
} else {
|
||||
add_memory_region(0x0<<20, 0x10<<20, BOOT_MEM_RAM);
|
||||
}
|
||||
|
||||
|
||||
set_io_port_base(QEMU_PORT_BASE);
|
||||
}
|
||||
|
|
|
@ -6,8 +6,6 @@
|
|||
|
||||
extern void qemu_reboot_setup(void);
|
||||
|
||||
#define QEMU_PORT_BASE 0xb4000000
|
||||
|
||||
const char *get_system_type(void)
|
||||
{
|
||||
return "Qemu";
|
||||
|
@ -20,6 +18,5 @@ void __init plat_time_init(void)
|
|||
|
||||
void __init plat_mem_setup(void)
|
||||
{
|
||||
set_io_port_base(QEMU_PORT_BASE);
|
||||
qemu_reboot_setup();
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue