Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 176007
b: refs/heads/master
c: bc7ecbc
h: refs/heads/master
i:
  176005: 864b79c
  176003: 471c35e
  175999: de46114
v: v3
  • Loading branch information
Russell King committed Dec 13, 2009
1 parent 3cc505e commit 7c5ca3c
Show file tree
Hide file tree
Showing 6 changed files with 69 additions and 2 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 285eae0a4ba0f467341476fd4c6981e5cdafc6be
refs/heads/master: bc7ecbcbc2c0ff235382077b55de7896775afc16
8 changes: 8 additions & 0 deletions trunk/arch/arm/Kconfig.debug
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
1 change: 1 addition & 0 deletions trunk/arch/arm/kernel/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -54,5 +54,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
57 changes: 57 additions & 0 deletions trunk/arch/arm/kernel/early_printk.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
/*
* linux/arch/arm/kernel/early_printk.c
*
* Copyright (C) 2009 Sascha Hauer <s.hauer@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);
1 change: 1 addition & 0 deletions trunk/arch/arm/kernel/smp_twd.c
Original file line number Diff line number Diff line change
Expand Up @@ -160,6 +160,7 @@ void __cpuinit twd_timer_setup(struct clock_event_device *clk)

/* Make sure our local interrupt controller has this enabled */
local_irq_save(flags);
irq_to_desc(clk->irq)->status |= IRQ_NOPROBE;
get_irq_chip(clk->irq)->unmask(clk->irq);
local_irq_restore(flags);

Expand Down
2 changes: 1 addition & 1 deletion trunk/arch/arm/mach-realview/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@ config MACH_REALVIEW_PBX
bool "Support RealView/PBX platform"
select ARM_GIC
select HAVE_PATA_PLATFORM
select ARCH_SPARSEMEM_ENABLE if CPU_V7 && !HIGH_PHYS_OFFSET
select ARCH_SPARSEMEM_ENABLE if CPU_V7 && !REALVIEW_HIGH_PHYS_OFFSET
select ZONE_DMA if SPARSEMEM
help
Include support for the ARM(R) RealView PBX platform.
Expand Down

0 comments on commit 7c5ca3c

Please sign in to comment.