[Help] R3000 CPU porting, Oops while run app

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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
* 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);
	}
}


}}}

Attachment: 014.dump.open.write.bt
Description: Binary data


[Index of Archives]     [Linux MIPS Home]     [LKML Archive]     [Linux ARM Kernel]     [Linux ARM]     [Linux]     [Git]     [Yosemite News]     [Linux SCSI]     [Linux Hams]

  Powered by Linux