lkml.org 
[lkml]   [2002]   [Dec]   [2]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
Date
From
SubjectRe: [PATCH] (3/3) early printk for 386
Finally, do early printk for i386.  Only serial is supported for now, 
but there is nothing to stop other console types from being added.

arch/i386/kernel/setup.c | 14 ++++++++++++++
drivers/serial/8250.c | 3 +++
kernel/printk.c | 2 +-
3 files changed, 18 insertions(+), 1 deletion(-)

--
Dave Hansen
haveblue@us.ibm.com
# This is a BitKeeper generated patch for the following project:
# Project Name: Linux kernel tree
# This patch format is intended for GNU patch command version 2.5 or higher.
# This patch includes the following deltas:
# ChangeSet 1.970 -> 1.971
# drivers/serial/8250.c 1.24 -> 1.25
# arch/i386/kernel/setup.c 1.64 -> 1.65
# kernel/printk.c 1.15 -> 1.16
#
# The following is the BitKeeper ChangeSet Log
# --------------------------------------------
# 02/12/02 haveblue@elm3b96.(none) 1.971
# 2-3
# --------------------------------------------
#
diff -Nru a/arch/i386/kernel/setup.c b/arch/i386/kernel/setup.c
--- a/arch/i386/kernel/setup.c Mon Dec 2 16:00:27 2002
+++ b/arch/i386/kernel/setup.c Mon Dec 2 16:00:27 2002
@@ -554,6 +554,20 @@
return 1;
}

+static int __init early_printk_setup(char* arg)
+{
+ /* early printk only works for serial ports now */
+ if (strncmp(arg,"ttyS",4) && strncmp(arg,"/dev/ttyS",9))
+ return 0;
+
+ console_setup(arg);
+ serial8250_console_init();
+
+ printk( "early printk enabled \n" );
+ return 1;
+}
+
+__ordered_setup(SETUP_ARCH_BEGIN,"console=",early_printk_setup);
__ordered_setup(SETUP_ARCH_LATE, "mem=nopentium", arch_setup_mem_nopentium);
__ordered_setup(SETUP_ARCH_LATE, "mem=exactmap", arch_setup_mem_exactmap);
__ordered_setup(SETUP_ARCH_LATE, "mem=", arch_setup_mem);
diff -Nru a/drivers/serial/8250.c b/drivers/serial/8250.c
--- a/drivers/serial/8250.c Mon Dec 2 16:00:27 2002
+++ b/drivers/serial/8250.c Mon Dec 2 16:00:27 2002
@@ -1910,6 +1910,9 @@

void __init serial8250_console_init(void)
{
+ if (serial8250_console.flags & CON_ENABLED)
+ return;
+
serial8250_isa_init_ports();
register_console(&serial8250_console);
}
diff -Nru a/kernel/printk.c b/kernel/printk.c
--- a/kernel/printk.c Mon Dec 2 16:00:27 2002
+++ b/kernel/printk.c Mon Dec 2 16:00:27 2002
@@ -99,7 +99,7 @@
/*
* Setup a list of consoles. Called from init/main.c
*/
-static int __init console_setup(char *str)
+int __init console_setup(char *str)
{
struct console_cmdline *c;
char name[sizeof(c->name)];
\
 
 \ /
  Last update: 2005-03-22 13:31    [W:0.058 / U:0.064 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site