[kernel] r14875 - in dists/trunk/linux-2.6/debian: . config/armel patches/features/arm patches/series

Martin Michlmayr tbm at alioth.debian.org
Mon Jan 4 11:31:11 UTC 2010


Author: tbm
Date: Mon Jan  4 11:31:08 2010
New Revision: 14875

Log:
ARM: Add an earlyprintk debug console

Added:
   dists/trunk/linux-2.6/debian/patches/features/arm/early-printk.patch
Modified:
   dists/trunk/linux-2.6/debian/changelog
   dists/trunk/linux-2.6/debian/config/armel/config
   dists/trunk/linux-2.6/debian/patches/series/4

Modified: dists/trunk/linux-2.6/debian/changelog
==============================================================================
--- dists/trunk/linux-2.6/debian/changelog	Mon Jan  4 10:18:09 2010	(r14874)
+++ dists/trunk/linux-2.6/debian/changelog	Mon Jan  4 11:31:08 2010	(r14875)
@@ -27,6 +27,8 @@
 
   [ Martin Michlmayr ]
   * Report model information on armel when filing a bug.
+  * ARM: Add an earlyprintk debug console (Catalin Marinas)
+  * [armel] Enable EARLY_PRINTK.
 
  -- Ben Hutchings <ben at decadent.org.uk>  Tue, 29 Dec 2009 15:32:44 +0100
 

Modified: dists/trunk/linux-2.6/debian/config/armel/config
==============================================================================
--- dists/trunk/linux-2.6/debian/config/armel/config	Mon Jan  4 10:18:09 2010	(r14874)
+++ dists/trunk/linux-2.6/debian/config/armel/config	Mon Jan  4 11:31:08 2010	(r14875)
@@ -81,3 +81,6 @@
 CONFIG_ECONET_AUNUDP=y
 CONFIG_ECONET_NATIVE=y
 
+CONFIG_DEBUG_LL=y
+CONFIG_EARLY_PRINTK=y
+

Added: dists/trunk/linux-2.6/debian/patches/features/arm/early-printk.patch
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/trunk/linux-2.6/debian/patches/features/arm/early-printk.patch	Mon Jan  4 11:31:08 2010	(r14875)
@@ -0,0 +1,112 @@
+From: Catalin Marinas <catalin.marinas at arm.com>
+Date: Wed, 9 Dec 2009 10:02:18 +0000 (+0000)
+Subject: ARM: Add an earlyprintk debug console
+X-Git-Tag: v2.6.33-rc1~286^2~4
+X-Git-Url: http://git.kernel.org/?p=linux%2Fkernel%2Fgit%2Ftorvalds%2Flinux-2.6.git;a=commitdiff_plain;h=93fd03a8c6728b58879f8af20ffd55d9c32a778b
+
+ARM: Add an earlyprintk debug console
+
+This patch allows an earlyprintk console if CONFIG_DEBUG_LL is enabled,
+using the printch asm function.
+
+The patch is based on the original work by Sascha Hauer.
+
+Signed-off-by: Catalin Marinas <catalin.marinas at arm.com>
+Cc: Sascha Hauer <s.hauer at pengutronix.de>
+Acked-by: Uwe Kleine-König <u.kleine-koenig at pengutronix.de>
+Acked-by: Pavel Machek <pavel at ucw.cz>
+---
+
+diff --git a/arch/arm/Kconfig.debug b/arch/arm/Kconfig.debug
+index 1a6f70e..feb7b11 100644
+--- a/arch/arm/Kconfig.debug
++++ b/arch/arm/Kconfig.debug
+@@ -71,6 +71,14 @@ config DEBUG_LL
+ 	  in the kernel.  This is helpful if you are debugging code that
+ 	  executes before the console is initialized.
+ 
++config EARLY_PRINTK
++	bool "Early printk"
++	depends on DEBUG_LL
++	help
++	  Say Y here if you want to have an early console using the
++	  kernel low-level debugging functions. Add earlyprintk to your
++	  kernel parameters to enable this console.
++
+ config DEBUG_ICEDCC
+ 	bool "Kernel low-level debugging via EmbeddedICE DCC channel"
+ 	depends on DEBUG_LL
+diff --git a/arch/arm/kernel/Makefile b/arch/arm/kernel/Makefile
+index 79087dd..d0e40b7 100644
+--- a/arch/arm/kernel/Makefile
++++ b/arch/arm/kernel/Makefile
+@@ -52,5 +52,6 @@ endif
+ 
+ head-y			:= head$(MMUEXT).o
+ obj-$(CONFIG_DEBUG_LL)	+= debug.o
++obj-$(CONFIG_EARLY_PRINTK)	+= early_printk.o
+ 
+ extra-y := $(head-y) init_task.o vmlinux.lds
+diff --git a/arch/arm/kernel/early_printk.c b/arch/arm/kernel/early_printk.c
+new file mode 100644
+index 0000000..85aa2b2
+--- /dev/null
++++ b/arch/arm/kernel/early_printk.c
+@@ -0,0 +1,57 @@
++/*
++ *  linux/arch/arm/kernel/early_printk.c
++ *
++ *  Copyright (C) 2009 Sascha Hauer <s.hauer at pengutronix.de>
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License version 2 as
++ * published by the Free Software Foundation.
++ */
++
++#include <linux/kernel.h>
++#include <linux/console.h>
++#include <linux/init.h>
++
++extern void printch(int);
++
++static void early_write(const char *s, unsigned n)
++{
++	while (n-- > 0) {
++		if (*s == '\n')
++			printch('\r');
++		printch(*s);
++		s++;
++	}
++}
++
++static void early_console_write(struct console *con, const char *s, unsigned n)
++{
++	early_write(s, n);
++}
++
++static struct console early_console = {
++	.name =		"earlycon",
++	.write =	early_console_write,
++	.flags =	CON_PRINTBUFFER | CON_BOOT,
++	.index =	-1,
++};
++
++asmlinkage void early_printk(const char *fmt, ...)
++{
++	char buf[512];
++	int n;
++	va_list ap;
++
++	va_start(ap, fmt);
++	n = vscnprintf(buf, sizeof(buf), fmt, ap);
++	early_write(buf, n);
++	va_end(ap);
++}
++
++static int __init setup_early_printk(char *buf)
++{
++	register_console(&early_console);
++	return 0;
++}
++
++early_param("earlyprintk", setup_early_printk);

Modified: dists/trunk/linux-2.6/debian/patches/series/4
==============================================================================
--- dists/trunk/linux-2.6/debian/patches/series/4	Mon Jan  4 10:18:09 2010	(r14874)
+++ dists/trunk/linux-2.6/debian/patches/series/4	Mon Jan  4 11:31:08 2010	(r14875)
@@ -1 +1,2 @@
 + bugfix/all/modules-Skip-empty-section-notes.patch
++ features/arm/early-printk.patch



More information about the Kernel-svn-changes mailing list