linux-mips
[Top] [All Lists]

[Help] R3000 CPU porting, Oops while run app

To: linux-mips@linux-mips.org
Subject: [Help] R3000 CPU porting, Oops while run app
From: arrow zhang <arrow.ebd@gmail.com>
Date: Mon, 16 Aug 2010 23:44:38 +0800
Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:received:date:message-id :subject:from:to:content-type; bh=9FOPE3dHUDWsIaLP3XgRQ95WOMKFH7Ln0HHBsGooi6U=; b=UrEFKdqtGTJwUv18okMuprIOQMYrCh4N3tLBQ5/GuuKKQNZQrHZs7EKtns51A+Vz2C hBP6H1ppTAZQ6CJOdxIINjDhbKUCoK9pHXNhYXj4pbsoeLDqteWv40pdtOhdaps+mN6p dAoZ00v/Qcam7z8BkAyKyL7Vm79owm1AS4Gc0=
Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:date:message-id:subject:from:to:content-type; b=VVdv3wMfEKaBZTVrdxYJwJe7JmBCghWY8NaTC4avO0E5uvzxFYqutC8JuLTTGIMD8t DPe0dxZThGYjbN2MkGI6neW8JQ0E6zlMPF5zsmxCcUV7gFYO8YMK04GWI2KfgYBc4p3s yVuCJy5l4a6SFiFw+6AU6JdxU75UpYJCB0X9w=
Original-recipient: rfc822;linux-mips@linux-mips.org
Sender: linux-mips-bounce@linux-mips.org
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

<Prev in Thread] Current Thread [Next in Thread>