diff options
author | Florian Fainelli <florian@openwrt.org> | 2007-07-24 11:05:23 +0000 |
---|---|---|
committer | Florian Fainelli <florian@openwrt.org> | 2007-07-24 11:05:23 +0000 |
commit | 3363fb80993f1fc78fdd631cab9f70d9079e9ae7 (patch) | |
tree | 00f368c31196fa8be06918b0a428197cb49a1769 /target/linux/ar7-2.6/files/arch/mips/ar7/prom.c | |
parent | 566472ce8e430197cc54cc686f22f952eaa95009 (diff) | |
download | master-187ad058-3363fb80993f1fc78fdd631cab9f70d9079e9ae7.tar.gz master-187ad058-3363fb80993f1fc78fdd631cab9f70d9079e9ae7.tar.bz2 master-187ad058-3363fb80993f1fc78fdd631cab9f70d9079e9ae7.zip |
Add more ar7 fixes by DerAgo. Fix vlnyq initialistion on fritzbox, add prom_printf required for kgdb, make kgbd finally work, thanks !
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@8141 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'target/linux/ar7-2.6/files/arch/mips/ar7/prom.c')
-rw-r--r-- | target/linux/ar7-2.6/files/arch/mips/ar7/prom.c | 32 |
1 files changed, 29 insertions, 3 deletions
diff --git a/target/linux/ar7-2.6/files/arch/mips/ar7/prom.c b/target/linux/ar7-2.6/files/arch/mips/ar7/prom.c index 38037dd337..08904dee71 100644 --- a/target/linux/ar7-2.6/files/arch/mips/ar7/prom.c +++ b/target/linux/ar7-2.6/files/arch/mips/ar7/prom.c @@ -26,6 +26,7 @@ #include <linux/serial_reg.h> #include <linux/spinlock.h> #include <linux/module.h> +#include <linux/string.h> #include <asm/io.h> #include <asm/bootinfo.h> #include <asm/mips-boards/prom.h> @@ -245,9 +246,12 @@ static void __init console_config(void) return; #ifdef CONFIG_KGDB - strcat(prom_getcmdline(), " console=kgdb"); - kgdb_enabled = 1; - return; + if (!strstr(prom_getcmdline(), "nokgdb")) + { + strcat(prom_getcmdline(), " console=kgdb"); + kgdb_enabled = 1; + return; + } #endif if ((s = prom_getenv("modetty0"))) { @@ -307,6 +311,28 @@ int prom_putchar(char c) return 1; } +// from adm5120/prom.c +void prom_printf(char *fmt, ...) +{ + va_list args; + int l; + char *p, *buf_end; + char buf[1024]; + + va_start(args, fmt); + l = vsprintf(buf, fmt, args); /* hopefully i < sizeof(buf) */ + va_end(args); + + buf_end = buf + l; + + for (p = buf; p < buf_end; p++) { + /* Crude cr/nl handling is better than none */ + if (*p == '\n') + prom_putchar('\r'); + prom_putchar(*p); + } +} + #ifdef CONFIG_KGDB int putDebugChar(char c) { |