mirror of
git://projects.qi-hardware.com/openwrt-xburst.git
synced 2024-12-25 15:06:47 +02:00
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
This commit is contained in:
parent
fcb99d5385
commit
cf070486dd
@ -207,3 +207,34 @@ CONFIG_SYS_SUPPORTS_LITTLE_ENDIAN=y
|
|||||||
CONFIG_TRAD_SIGNALS=y
|
CONFIG_TRAD_SIGNALS=y
|
||||||
# CONFIG_UNUSED_SYMBOLS is not set
|
# CONFIG_UNUSED_SYMBOLS is not set
|
||||||
# CONFIG_USB is not set
|
# CONFIG_USB is not set
|
||||||
|
CONFIG_DEBUG_DEVRES=n
|
||||||
|
CONFIG_DEBUG_DRIVER=n
|
||||||
|
CONFIG_DEBUG_KERNEL=y
|
||||||
|
CONFIG_DEBUG_KOBJECT=n
|
||||||
|
CONFIG_DEBUG_LIST=n
|
||||||
|
CONFIG_DEBUG_LOCKING_API_SELFTESTS=n
|
||||||
|
CONFIG_DEBUG_LOCK_ALLOC=n
|
||||||
|
CONFIG_DEBUG_MUTEXES=n
|
||||||
|
CONFIG_DEBUG_RT_MUTEXES=n
|
||||||
|
CONFIG_DEBUG_SHIRQ=n
|
||||||
|
CONFIG_DEBUG_SLAB=n
|
||||||
|
CONFIG_DEBUG_SPINLOCK=n
|
||||||
|
CONFIG_DEBUG_SPINLOCK_SLEEP=n
|
||||||
|
CONFIG_DEBUG_STACK_USAGE=n
|
||||||
|
CONFIG_DEBUG_VM=n
|
||||||
|
CONFIG_DETECT_SOFTLOCKUP=y
|
||||||
|
CONFIG_EARLY_PRINTK=y
|
||||||
|
CONFIG_FAULT_INJECTION=n
|
||||||
|
CONFIG_FORCED_INLINING=y
|
||||||
|
CONFIG_GDB_CONSOLE=y
|
||||||
|
CONFIG_IP_DCCP_DEBUG=n
|
||||||
|
CONFIG_KALLSYMS_ALL=n
|
||||||
|
CONFIG_KGDB=y
|
||||||
|
CONFIG_MIPS_UNCACHED=n
|
||||||
|
CONFIG_PCI_DEBUG=n
|
||||||
|
CONFIG_PROVE_LOCKING=n
|
||||||
|
CONFIG_RCU_TORTURE_TEST=n
|
||||||
|
CONFIG_RT_MUTEX_TESTER=n
|
||||||
|
CONFIG_RUNTIME_DEBUG=n
|
||||||
|
CONFIG_SCHEDSTATS=n
|
||||||
|
CONFIG_TIMER_STATS=n
|
||||||
|
@ -26,6 +26,7 @@
|
|||||||
#include <linux/serial_reg.h>
|
#include <linux/serial_reg.h>
|
||||||
#include <linux/spinlock.h>
|
#include <linux/spinlock.h>
|
||||||
#include <linux/module.h>
|
#include <linux/module.h>
|
||||||
|
#include <linux/string.h>
|
||||||
#include <asm/io.h>
|
#include <asm/io.h>
|
||||||
#include <asm/bootinfo.h>
|
#include <asm/bootinfo.h>
|
||||||
#include <asm/mips-boards/prom.h>
|
#include <asm/mips-boards/prom.h>
|
||||||
@ -245,9 +246,12 @@ static void __init console_config(void)
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
#ifdef CONFIG_KGDB
|
#ifdef CONFIG_KGDB
|
||||||
strcat(prom_getcmdline(), " console=kgdb");
|
if (!strstr(prom_getcmdline(), "nokgdb"))
|
||||||
kgdb_enabled = 1;
|
{
|
||||||
return;
|
strcat(prom_getcmdline(), " console=kgdb");
|
||||||
|
kgdb_enabled = 1;
|
||||||
|
return;
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if ((s = prom_getenv("modetty0"))) {
|
if ((s = prom_getenv("modetty0"))) {
|
||||||
@ -307,6 +311,28 @@ int prom_putchar(char c)
|
|||||||
return 1;
|
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
|
#ifdef CONFIG_KGDB
|
||||||
int putDebugChar(char c)
|
int putDebugChar(char c)
|
||||||
{
|
{
|
||||||
|
@ -32,6 +32,7 @@
|
|||||||
#include <linux/device.h>
|
#include <linux/device.h>
|
||||||
#include <asm/addrspace.h>
|
#include <asm/addrspace.h>
|
||||||
#include <asm/io.h>
|
#include <asm/io.h>
|
||||||
|
#include <asm/ar7/ar7.h>
|
||||||
#include <asm/ar7/vlynq.h>
|
#include <asm/ar7/vlynq.h>
|
||||||
|
|
||||||
#define PER_DEVICE_IRQS 32
|
#define PER_DEVICE_IRQS 32
|
||||||
@ -288,7 +289,7 @@ EXPORT_SYMBOL(vlynq_unregister_driver);
|
|||||||
|
|
||||||
int vlynq_device_enable(struct vlynq_device *dev)
|
int vlynq_device_enable(struct vlynq_device *dev)
|
||||||
{
|
{
|
||||||
u32 val;
|
u32 div;
|
||||||
int result;
|
int result;
|
||||||
struct plat_vlynq_ops *ops = dev->dev.platform_data;
|
struct plat_vlynq_ops *ops = dev->dev.platform_data;
|
||||||
|
|
||||||
@ -299,17 +300,24 @@ int vlynq_device_enable(struct vlynq_device *dev)
|
|||||||
dev->local->control = 0;
|
dev->local->control = 0;
|
||||||
dev->remote->control = 0;
|
dev->remote->control = 0;
|
||||||
|
|
||||||
if (vlynq_linked(dev))
|
div = ar7_dsp_freq() / 62500000;
|
||||||
|
if(ar7_dsp_freq() / div != 62500000)
|
||||||
|
{
|
||||||
|
printk(KERN_WARNING
|
||||||
|
"VLYNQ: Adjusted requested frequency %d to %d\n",
|
||||||
|
62500000, ar7_dsp_freq() / div);
|
||||||
|
}
|
||||||
|
|
||||||
|
printk("VLYNQ: Setting clock to %d (clock divider %u)\n", ar7_dsp_freq() / div, div);
|
||||||
|
dev->local->control = VLYNQ_CTRL_CLOCK_DIV((div - 1)) |
|
||||||
|
VLYNQ_CTRL_CLOCK_INT;
|
||||||
|
|
||||||
|
// dev->local->control = VLYNQ_CTRL_CLOCK_INT;
|
||||||
|
|
||||||
|
if (vlynq_linked(dev))
|
||||||
return vlynq_setup_irq(dev);
|
return vlynq_setup_irq(dev);
|
||||||
|
|
||||||
for (val = 0; val < 8; val++) {
|
return -ENODEV;
|
||||||
dev->local->control = VLYNQ_CTRL_CLOCK_DIV(val) |
|
|
||||||
VLYNQ_CTRL_CLOCK_INT;
|
|
||||||
if (vlynq_linked(dev))
|
|
||||||
return vlynq_setup_irq(dev);
|
|
||||||
}
|
|
||||||
|
|
||||||
return -ENODEV;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void vlynq_device_disable(struct vlynq_device *dev)
|
void vlynq_device_disable(struct vlynq_device *dev)
|
||||||
|
29
target/linux/ar7-2.6/files/include/asm-mips/ar7/prom.h
Normal file
29
target/linux/ar7-2.6/files/include/asm-mips/ar7/prom.h
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
/*
|
||||||
|
* $Id$
|
||||||
|
*
|
||||||
|
* Copyright (C) 2006, 2007 OpenWrt.org
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef __PROM_H__
|
||||||
|
#define __PROM_H__
|
||||||
|
|
||||||
|
extern void prom_init(void);
|
||||||
|
extern char *prom_getenv(char *name);
|
||||||
|
extern void prom_printf(char *fmt, ...);
|
||||||
|
|
||||||
|
#endif // __PROM_H__
|
||||||
|
|
@ -1,7 +1,7 @@
|
|||||||
diff -Nru linux-2.6.19.2/arch/mips/Kconfig linux-ar7/arch/mips/Kconfig
|
diff -Nru linux-2.6.19.2/arch/mips/Kconfig linux-ar7/arch/mips/Kconfig
|
||||||
--- linux-2.6.19.2/arch/mips/Kconfig 2006-12-12 02:32:53.000000000 +0700
|
--- linux-2.6.19.2/arch/mips/Kconfig 2006-12-12 02:32:53.000000000 +0700
|
||||||
+++ linux-ar7/arch/mips/Kconfig 2007-01-29 21:52:21.000000000 +0700
|
+++ linux-ar7/arch/mips/Kconfig 2007-01-29 21:52:21.000000000 +0700
|
||||||
@@ -16,6 +16,20 @@
|
@@ -16,6 +16,21 @@
|
||||||
prompt "System type"
|
prompt "System type"
|
||||||
default SGI_IP22
|
default SGI_IP22
|
||||||
|
|
||||||
@ -16,6 +16,7 @@ diff -Nru linux-2.6.19.2/arch/mips/Kconfig linux-ar7/arch/mips/Kconfig
|
|||||||
+ select SYS_HAS_EARLY_PRINTK
|
+ select SYS_HAS_EARLY_PRINTK
|
||||||
+ select SYS_SUPPORTS_32BIT_KERNEL
|
+ select SYS_SUPPORTS_32BIT_KERNEL
|
||||||
+ select SYS_SUPPORTS_LITTLE_ENDIAN
|
+ select SYS_SUPPORTS_LITTLE_ENDIAN
|
||||||
|
+ select SYS_SUPPORTS_KGDB
|
||||||
+ select NEED_MULTIPLE_NODES
|
+ select NEED_MULTIPLE_NODES
|
||||||
+ select GENERIC_GPIO
|
+ select GENERIC_GPIO
|
||||||
+
|
+
|
||||||
|
Loading…
Reference in New Issue
Block a user