Commit 6b2672bf authored by Andrew Morton's avatar Andrew Morton Committed by Linus Torvalds

[PATCH] ia32 early printk

From: Andi Kleen <ak@muc.de>

Implement VGA and serial early printk on x86.  We just include the x86_64
version.
parent cf4389cb
...@@ -310,6 +310,23 @@ running once the system is up. ...@@ -310,6 +310,23 @@ running once the system is up.
dtc3181e= [HW,SCSI] dtc3181e= [HW,SCSI]
earlyprintk= [x86, x86_64]
earlyprintk=vga
earlyprintk=serial[,ttySn[,baudrate]]
Append ,keep to not disable it when the real console
takes over.
Only vga or serial at a time, not both.
Currently only ttyS0 and ttyS1 are supported.
Interaction with the standard serial driver is not
very good.
The VGA output is eventually overwritten by the real
console.
eata= [HW,SCSI] eata= [HW,SCSI]
eda= [HW,PS2] eda= [HW,PS2]
......
...@@ -1177,6 +1177,9 @@ config DEBUG_KERNEL ...@@ -1177,6 +1177,9 @@ config DEBUG_KERNEL
Say Y here if you are developing drivers or trying to debug and Say Y here if you are developing drivers or trying to debug and
identify kernel problems. identify kernel problems.
config EARLY_PRINTK
default y
config DEBUG_STACKOVERFLOW config DEBUG_STACKOVERFLOW
bool "Check for stack overflows" bool "Check for stack overflows"
depends on DEBUG_KERNEL depends on DEBUG_KERNEL
......
...@@ -31,6 +31,7 @@ obj-y += sysenter.o vsyscall.o ...@@ -31,6 +31,7 @@ obj-y += sysenter.o vsyscall.o
obj-$(CONFIG_ACPI_SRAT) += srat.o obj-$(CONFIG_ACPI_SRAT) += srat.o
obj-$(CONFIG_HPET_TIMER) += time_hpet.o obj-$(CONFIG_HPET_TIMER) += time_hpet.o
obj-$(CONFIG_EFI) += efi.o efi_stub.o obj-$(CONFIG_EFI) += efi.o efi_stub.o
obj-$(CONFIG_EARLY_PRINTK) += early_printk.o
EXTRA_AFLAGS := -traditional EXTRA_AFLAGS := -traditional
......
#include "../../x86_64/kernel/early_printk.c"
...@@ -1118,6 +1118,18 @@ void __init setup_arch(char **cmdline_p) ...@@ -1118,6 +1118,18 @@ void __init setup_arch(char **cmdline_p)
#endif #endif
paging_init(); paging_init();
#ifdef CONFIG_EARLY_PRINTK
{
char *s = strstr(*cmdline_p, "earlyprintk=");
if (s) {
extern void setup_early_printk(char *);
setup_early_printk(s+12);
printk("early console enabled\n");
}
}
#endif
dmi_scan_machine(); dmi_scan_machine();
#ifdef CONFIG_X86_GENERICARCH #ifdef CONFIG_X86_GENERICARCH
......
...@@ -7,7 +7,11 @@ ...@@ -7,7 +7,11 @@
/* Simple VGA output */ /* Simple VGA output */
#ifdef __i386__
#define VGABASE (__PAGE_OFFSET + 0xb8000UL)
#else
#define VGABASE 0xffffffff800b8000UL #define VGABASE 0xffffffff800b8000UL
#endif
#define MAX_YPOS 25 #define MAX_YPOS 25
#define MAX_XPOS 80 #define MAX_XPOS 80
......
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