Dears,
* I'm encounter a oops error while run the userspace application
* I tried to porting the openwrt to a R3000 cpu, which will be a new
router but can not buy on market yet
* Would like you give me some advice, thanks
* kernel version linux-2.6.32.16
* below is some messages (detail refer to enclosed file)
{{{
arrow, plat_irq_dispatch: 127, cpuint_ip: 0x800, extint: 0x1000,
Call Trace:
[<80005388>] dump_stack+0x8/0x38
[<8000924c>] plat_irq_dispatch+0x60/0x294
[<80000424>] ret_from_irq+0x0/0x4
[<80163a7c>] uart_start+0xa4/0xc0
[<80165f6c>] uart_write+0x12c/0x15c
[<8015a5e8>] n_tty_write+0x300/0x504
[<80156b30>] tty_write+0x1bc/0x294
[<80096348>] vfs_write+0xc0/0x190
[<80096564>] sys_write+0xa8/0x118
[<800022f4>] stack_done+0x20/0x3c
CPU 0 Unable to handle kernel paging request at virtual address
00000000, epc == 00000000, ra == 800092a4
Oops[#1]:
Cpu 0
$ 0 : 00000000 1000ff00 8029b674 00000000
$ 4 : 0000000c 8029b674 00000001 000076fa
$ 8 : 0000000a 00000000 00000001 64000000
$12 : 24000000 03bd0000 03bf0000 ac000000
$16 : 00001000 00000800 00000800 80240000
$20 : 1000ff01 81a42c1d 00000fff 8187c000
$24 : ffffffff 80168080
$28 : 81a70000 81a71cf8 8187c0e0 800092a4
Hi : 00000000
Lo : 000003c0
epc : 00000000 (null)
Not tainted
ra : 800092a4 plat_irq_dispatch+0xb8/0x294
Status: 1000ff00
Cause : 00000808
BadVA : 00000000
}}}
* the plat_irq_dispatch code as below
{{{
asmlinkage void plat_irq_dispatch(void)
{
unsigned int cpuint_ip = read_c0_cause() & read_c0_status() & ST0_IM;
unsigned int extint_ip = REG32(GIMR) & REG32(GISR);
printk("arrow, %s: %d, cpuint_ip: 0x%x, extint: 0x%x, \n",
__func__, __LINE__, cpuint_ip, extint_ip);
dump_stack();
if (cpuint_ip & CAUSEF_IP7) {
/* Timer 0 */
do_IRQ(TC0_IRQ);
} else if (cpuint_ip & CAUSEF_IP3) {
/* UART 0 */
do_IRQ(UART0_IRQ);
} else if (cpuint_ip & CAUSEF_IP6) {
/* MAC2- External Ethernet */
do_IRQ(SW_IRQ);
} else if (cpuint_ip & CAUSEF_IP2) {
/* For shared interrupts */
printk("arrow, %s: %d, extint_ip: 0x%x\n", __func__,
__LINE__, extint_ip);
if (extint_ip & TC1_IP) {
do_IRQ(TC1_IRQ);
} else if (extint_ip & UART1_IP) {
do_IRQ(UART1_IRQ);
} else if (extint_ip & USB_D_IP) {
do_IRQ(USB_D_IRQ);
} else if (extint_ip & USB_H_IP) {
do_IRQ(USB_H_IRQ);
} else if (extint_ip & NIC100_IP) {
do_IRQ(NIC100_IRQ);
} else if (extint_ip & SAR_IP) {
do_IRQ(SAR_IRQ);
} else if (extint_ip & DMT_IP) {
do_IRQ(7);
}
else {
printk("Unknown Interrupt extint_ip (%x)\n", extint_ip);
}
} else {
printk("Unknown Interrupt cpuint_ip (%x)\n", cpuint_ip);
}
}
}}}
014.dump.open.write.bt
Description: Binary data
|