linux/arch/unicore32/kernel/early_printk.c
<<
>>
Prefs
   1/*
   2 * linux/arch/unicore32/kernel/early_printk.c
   3 *
   4 * Code specific to PKUnity SoC and UniCore ISA
   5 *
   6 * Copyright (C) 2001-2010 GUAN Xue-tao
   7 *
   8 * This program is free software; you can redistribute it and/or modify
   9 * it under the terms of the GNU General Public License version 2 as
  10 * published by the Free Software Foundation.
  11 */
  12#include <linux/console.h>
  13#include <linux/init.h>
  14#include <linux/string.h>
  15#include <mach/ocd.h>
  16
  17/* On-Chip-Debugger functions */
  18
  19static void early_ocd_write(struct console *con, const char *s, unsigned n)
  20{
  21        while (*s && n-- > 0) {
  22                if (*s == '\n')
  23                        ocd_putc((int)'\r');
  24                ocd_putc((int)*s);
  25                s++;
  26        }
  27}
  28
  29static struct console early_ocd_console = {
  30        .name =         "earlyocd",
  31        .write =        early_ocd_write,
  32        .flags =        CON_PRINTBUFFER,
  33        .index =        -1,
  34};
  35
  36static int __init setup_early_printk(char *buf)
  37{
  38        if (!buf || early_console)
  39                return 0;
  40
  41        early_console = &early_ocd_console;
  42        if (strstr(buf, "keep"))
  43                early_console->flags &= ~CON_BOOT;
  44        else
  45                early_console->flags |= CON_BOOT;
  46        register_console(early_console);
  47        return 0;
  48}
  49early_param("earlyprintk", setup_early_printk);
  50