[#5719] SVN trunk MPU kernel panics when boot from a xip root romfs in nor flash on bf537 0.3

Document created by Aaronwu Employee on Sep 5, 2013
Version 1Show Document
  • View in full screen mode

[#5719] SVN trunk MPU kernel panics when boot from a xip root romfs in nor flash on bf537 0.3

Submitted By: Sonic Zhang

Open Date

2009-11-24 04:50:37     Close Date

2010-01-14 02:13:12

Priority:

Medium High     Assignee:

Barry Song

Status:

Closed     Fixed In Release:

N/A

Found In Release:

2010R1     Release:

Category:

N/A     Board:

STAMP

Processor:

BF537     Silicon Revision:

Is this bug repeatable?:

Yes     Resolution:

Duplicate

Uboot version or rev.:

    Toolchain version or rev.:

gcc4.3 trunk

App binary format:

N/A     

Summary: SVN trunk MPU kernel panics when boot from a xip root romfs in nor flash on bf537 0.3

Details:

 

SVN trunk MPU kernel panics when boot from a xip root romfs in nor flash on bf537 0.3. This bug doesn't occur in NOMPU kernel.

 

kernel rev. 7860

uClinux rev. 9173

 

 

Steps:

 

1) Built kernel with xip romfs and MPU enabled. Disable initramfs and other fs.

2) flash rootfs.romfs into NOR flash mtdblock2 start from 0x201c0000

3) set bootargs root=/dev/mtdblock2 ro rootfstype=romfs earlyprintk=serial,uart0,57600 console=ttyBF0,57600

4) tftp 0x1000000 vmImage

5) bootm

 

 

The config files and images are attached.

 

 

Result: Instruction fetch CPLB miss

 

## Booting kernel from Legacy Image at 01000000 ...

   Image Name:   bf537-2.6.31.6-ADI-2010R1-pre-sv

   Created:      2009-11-24   9:23:01 UTC

   Image Type:   Blackfin Linux Kernel Image (gzip compressed)

   Data Size:    898897 Bytes = 877.8 kB

   Load Address: 00001000

   Entry Point:  0018a3a4

   Verifying Checksum ... OK

   Uncompressing Kernel Image ... OK

Starting Kernel at = 0018a3a4

Linux version 2.6.31.6-ADI-2010R1-pre-svn7860 (root@eight) (gcc version 4.3.4 (ADI-trunk/svn-3734) ) #15 Tue Nov 24 17:19:25 CST 2009

register early platform devices

bootconsole [early_shadow0] enabled

bootconsole [early_BFuart0] enabled

early printk enabled on early_BFuart0

Board Memory: 64MB

Kernel Managed Memory: 64MB

Memory map:

  fixedcode = 0x00000400-0x00000490

  text      = 0x00001000-0x0010bbb0

  rodata    = 0x0010bbb0-0x0015e5ec

  bss       = 0x0015f000-0x0016fa7c

  data      = 0x0016fa7c-0x00180000

    stack   = 0x0017e000-0x00180000

  init      = 0x00180000-0x0019c000

  available = 0x0019c000-0x03fbf000

  DMA Zone  = 0x03fc0000-0x04000000

Hardware Trace Active and Enabled

Boot Mode: 0

Reset caused by Software reset

Blackfin support (C) 2004-2009 Analog Devices, Inc.

Compiled for ADSP-BF537 Rev 0.3

Blackfin Linux support by http://blackfin.uclinux.org/

Processor Speed: 500 MHz core clock and 125 MHz System Clock

MPU: setting up cplb tables with memory protection

Instruction Cache Enabled for CPU0

  External memory: cacheable in instruction cache

Data Cache Enabled for CPU0

  External memory: cacheable (write-back) in data cache

Built 1 zonelists in Zone order, mobility grouping off.  Total pages: 16191

Kernel command line: root=/dev/mtdblock2 ro rootfstype=romfs earlyprintk=serial,uart0,57600 console=ttyBF0,57600

PID hash table entries: 256 (order: 8, 1024 bytes)

Dentry cache hash table entries: 8192 (order: 3, 32768 bytes)

Inode-cache hash table entries: 4096 (order: 2, 16384 bytes)

Memory available: 60612k/65536k RAM, (112k init code, 1066k kernel code, 466k data, 256k dma, 3020k reserved)

NR_IRQS:98

Configuring Blackfin Priority Driven Interrupts

console [ttyBF0] enabled, bootconsole disabled

console [ttyBF0] enabled, bootconsole disabled

Calibrating delay loop... 997.37 BogoMIPS (lpj=1994752)

Security Framework initialized

Mount-cache hash table entries: 512

Blackfin Scratchpad data SRAM: 4 KB

Blackfin L1 Data A SRAM: 16 KB (16 KB free)

Blackfin L1 Data B SRAM: 16 KB (16 KB free)

Blackfin L1 Instruction SRAM: 48 KB (36 KB free)

NET: Registered protocol family 16

Blackfin DMA Controller

stamp_init(): registering device resources

bio: create slab <bio-0> at 0

NET: Registered protocol family 2

IP route cache hash table entries: 1024 (order: 0, 4096 bytes)

TCP established hash table entries: 2048 (order: 2, 16384 bytes)

TCP bind hash table entries: 2048 (order: 1, 8192 bytes)

TCP: Hash tables configured (established 2048 bind 2048)

TCP reno registered

NET: Registered protocol family 1

ROMFS MTD (C) 2007 Red Hat, Inc.

msgmni has been set to 118

io scheduler noop registered

io scheduler anticipatory registered (default)

io scheduler cfq registered

bfin-uart: Blackfin serial driver

bfin-uart.0: ttyBF0 at MMIO 0xffc00400 (irq = 18) is a BFIN-UART

brd: module loaded

bfin_mii_bus: probed

bfin_mac: attached PHY driver [SMSC LAN83C185] (mii_bus:phy_addr=0:01, irq=-1, mdc_clk=2500000Hz(mdc_div=24)@sclk=125MHz)

bfin_mac bfin_mac.0: Blackfin on-chip Ethernet MAC driver, Version 1.1

physmap platform flash device: 00400000 at 20000000

physmap-flash.0: Found 1 x16 devices at 0x0 in 16-bit bank

Amd/Fujitsu Extended Query Table at 0x0040

number of CFI chips: 1

cfi_cmdset_0002: Disabling erase-suspend-program due to code brokenness.

RedBoot partition parsing not available

Using physmap partition information

Creating 4 MTD partitions on "physmap-flash.0":

0x000000000000-0x000000040000 : "bootloader(nor)"

0x000000040000-0x0000001c0000 : "linux kernel(nor)"

0x0000001c0000-0x0000003f0000 : "file system(nor)"

0x0000003f0000-0x000000400000 : "MAC Address(nor)"

bfin-spi bfin-spi.0: Blackfin on-chip SPI Controller Driver, Version 1.0, regs_base@ffc00500, dma channel@7

rtc-bfin rtc-bfin: rtc core: registered rtc-bfin as rtc0

bfin-wdt: initialized: timeout=20 sec (nowayout=0)

TCP cubic registered

NET: Registered protocol family 17

rtc-bfin rtc-bfin: setting system clock to 2004-05-31 04:09:17 UTC (1085976557)

VFS: Mounted root (romfs filesystem) readonly on device 31:2.

dma_alloc_init: dma_page @ 0x02103000 - 64 pages at 0x03fc0000

Instruction fetch CPLB miss

<5> - CPLB miss on an instruction fetch.

Deferred Exception context

CURRENT PROCESS:

COMM=init PID=1 CPU=0

TEXT = 0x202b2eb0-0x202b5390        DATA = 0x02120010-0x02120b38

BSS = 0x02120b38-0x02131e40  USER-STACK = 0x02132fb8

 

return address: [0x201cdd34]; contents of:

0x201cdd10:  0000  0d01  0000  0200  034b  7e9a  0000  0000

0x201cdd20:  0000  0000  0000  0000  0000  0000  0000  0000

0x201cdd30:  0000  0000 [0127] e201  3a0d  0000  0000  e800

0x201cdd40:  0000  0148  3200  9030  9200  9241  9242  9243

 

ADSP-BF537-0.3 500(MHz CCLK) 125(MHz SCLK) (mpu on)

Linux version 2.6.31.6-ADI-2010R1-pre-svn7860 (root@eight) (gcc version 4.3.4 (ADI-trunk/svn-3734) ) #15 Tue Nov 24 17:19:25 CST 2009

 

SEQUENCER STATUS:               Not tainted

SEQSTAT: 0000202c  IPEND: 0008  IMASK: ffff  SYSCFG: 0006

  EXCAUSE   : 0x2c

  physical IVG3 asserted : <0xffa007f4> { _trap + 0x0 }

RETE: <0x00000000> /* Maybe null pointer? */

RETN: <0x0201c000> /* kernel dynamic memory */

RETX: <0x00000480> /* Maybe fixed code section */

RETS: <0x00000000> /* Maybe null pointer? */

PC  : <0x201cdd34> [ /lib/lib1.so + 0x44 ]

DCPLB_FAULT_ADDR: <0x0201bffc> /* kernel dynamic memory */

ICPLB_FAULT_ADDR: <0x201cdd34> [ /lib/lib1.so + 0x44 ]

PROCESSOR STATE:

R0 : 00000000    R1 : 00000000    R2 : 00000000    R3 : 00000000

R4 : 00000000    R5 : 00000000    R6 : 00000000    R7 : 00000000

P0 : 00000000    P1 : 00000000    P2 : 00000000    P3 : 00000000

P4 : 00000000    P5 : 02120010    FP : 00000000    SP : 0201bf24

LB0: 00000001    LT0: 00000000    LC0: 00000000

LB1: 00000001    LT1: 00000000    LC1: 00000000

B0 : 00000000    L0 : 00000000    M0 : 00000000    I0 : 00000000

B1 : 00000000    L1 : 00000000    M1 : 00000000    I1 : 00000000

B2 : 00000000    L2 : 00000000    M2 : 00000000    I2 : 00000000

B3 : 00000000    L3 : 00000000    M3 : 00000000    I3 : 00000000

A0.w: 00000000   A0.x: 00000000   A1.w: 00000000   A1.x: 00000000

USP : 02132fb8  ASTAT: 00000000

 

Hardware Trace:

   0 Target : <0x00005160> { _trap_c + 0x0 }

     Source : <0xffa00788> { _exception_to_level5 + 0xa4 } CALL pcrel

   1 Target : <0xffa006e4> { _exception_to_level5 + 0x0 }

     Source : <0xffa00598> { _bfin_return_from_exception + 0x18 } RTX

   2 Target : <0xffa00580> { _bfin_return_from_exception + 0x0 }

     Source : <0xffa0063c> { _ex_trap_c + 0x74 } JUMP.S

   3 Target : <0xffa004ac> { _ex_dcplb_miss + 0x0 }

     Source : <0xffa0084e> { _trap + 0x5a } JUMP (P4)

   4 Target : <0xffa007f4> { _trap + 0x0 }

     Source : <0xffa00914> { _kernel_execve + 0xbc } RTI

   5 Target : <0xffa008ae> { _kernel_execve + 0x56 }

     Source : <0xffa00524> { _ex_dcplb_miss + 0x78 } RTX

   6 Target : <0xffa004ac> { _ex_dcplb_miss + 0x0 }

     Source : <0xffa0084e> { _trap + 0x5a } JUMP (P4)

   7 Target : <0xffa007f4> { _trap + 0x0 }

     Source : <0xffa008aa> { _kernel_execve + 0x52 } 0xe630

   8 Target : <0xffa00895> { _kernel_execve + 0x3d }

     Source : <0xffa0089c> { _kernel_execve + 0x44 } IF CC JUMP

   9 Target : <0xffa00884> { _kernel_execve + 0x2c }

     Source : <0xffa00524> { _ex_dcplb_miss + 0x78 } RTX

  10 Target : <0xffa004ac> { _ex_dcplb_miss + 0x0 }

     Source : <0xffa0084e> { _trap + 0x5a } JUMP (P4)

  11 Target : <0xffa007f4> { _trap + 0x0 }

     Source : <0xffa00882> { _kernel_execve + 0x2a } 0x3211

  12 Target : <0xffa00874> { _kernel_execve + 0x1c }

     Source : <0x00047812> { _do_execve + 0x56 } RTS

  13 Target : <0x0004780a> { _do_execve + 0x4e }

     Source : <0x0004799c> { _do_execve + 0x1e0 } IF !CC JUMP

  14 Target : <0x00047998> { _do_execve + 0x1dc }

     Source : <0x00040558> { _kfree + 0x78 } RTS

  15 Target : <0x0004052e> { _kfree + 0x4e }

     Source : <0xffa00524> { _ex_dcplb_miss + 0x78 } RTX

Userspace Stack

Stack info:

SP: [0x02132fb8] <0x02132fb8> [ init + 0x12fb8 ]

Memory from 0x02132fb0 to 02133000

02132fb0: 00000000  00000000 [202b2eb4] 00000001  02132fd4  00000000  02132fdf  02132fe6

02132fd0: 00000000  6962732f  6e692f6e  48007469  3d454d4f  4554002f  6c3d4d52  78756e69

02132ff0: 62732f00  692f6e69  0074696e  00000000

Return addresses in stack:

Kernel panic - not syncing: Attempted to kill init!

Hardware Trace:

   0 Target : <0x0010ba20> { _dump_stack + 0x0 }

     Source : <0x0010ba9e> { _panic + 0x46 } CALL pcrel

   1 Target : <0x0010ba9a> { _panic + 0x42 }

     Source : <0x0010bba4> { _printk + 0x14 } RTS

   2 Target : <0x0010bba0> { _printk + 0x10 }

     Source : <0x00011858> { _vprintk + 0x13c } RTS

   3 Target : <0x0001184c> { _vprintk + 0x130 }

     Source : <0xffa00d28> { __common_int_entry + 0xcc } RTI

   4 Target : <0xffa00cc6> { __common_int_entry + 0x6a }

     Source : <0xffa00b10> { _return_from_int + 0x58 } RTS

   5 Target : <0xffa00b10> { _return_from_int + 0x58 }

     Source : <0xffa00ae6> { _return_from_int + 0x2e } IF !CC JUMP

   6 Target : <0xffa00ab8> { _return_from_int + 0x0 }

     Source : <0xffa00cc2> { __common_int_entry + 0x66 } CALL pcrel

   7 Target : <0xffa00cc0> { __common_int_entry + 0x64 }

     Source : <0xffa0045c> { _asm_do_IRQ + 0x68 } RTS

   8 Target : <0xffa00454> { _asm_do_IRQ + 0x60 }

     Source : <0x00014cbe> { __local_bh_enable + 0x3a } RTS

   9 Target : <0x00014c84> { __local_bh_enable + 0x0 }

     Source : <0x00015334> { ___do_softirq + 0xa8 } JUMP.L

  10 Target : <0x0001532c> { ___do_softirq + 0xa0 }

     Source : <0x00015320> { ___do_softirq + 0x94 } IF !CC JUMP

  11 Target : <0x00015314> { ___do_softirq + 0x88 }

     Source : <0x000311c8> { _rcu_bh_qsctr_inc + 0xc } RTS

  12 Target : <0x000311bc> { _rcu_bh_qsctr_inc + 0x0 }

     Source : <0x00015310> { ___do_softirq + 0x84 } CALL pcrel

  13 Target : <0x00015306> { ___do_softirq + 0x7a }

     Source : <0xffa00524> { _ex_dcplb_miss + 0x78 } RTX

  14 Target : <0xffa004ac> { _ex_dcplb_miss + 0x0 }

     Source : <0xffa0084e> { _trap + 0x5a } JUMP (P4)

  15 Target : <0xffa007f4> { _trap + 0x0 }

     Source : <0x000316e8> { _rcu_process_callbacks + 0x30 } RTS

Stack info:

SP: [0x0201bd5c] <0x0201bd5c> /* kernel dynamic memory (maybe user-space) */

FP: (0x0201bdf0)

Memory from 0x0201bd50 to 0201c000

0201bd50: 02018bc0  0201bd5c  0201a000 [0013a048]<0010baa2> 00173660  0013a048  00164342

0201bd70: 00164342  00164342  0201bd94 <00013a88> 00173660  00171000  0201de40  00000001

0201bd90: 0201cbc0  02018bc0  0201bd68  0201bda0  0201bda0  0201bda0  0201be70 <00013a9e>

0201bdb0: 02018bc0  00171000  0201de40  00000001  00000007  00171000  0201a000  00171000

0201bdd0: 0201de40  00000001 <00013c82> 02018bc0  00000001  00000000  0201bde8  0201bde8

0201bdf0:(00000000)<00013dc8> 00000006  0201a000  00000007  020fd580  0201de40  00000007

0201be10: 020fd580 <0001b3c0> 00000007  00000007  00000000  0201bf24  00000000  00000000

0201be30: 0201a000  0201a000  00000000 <00003352> 0201bf24  02018df0  00000000  00000002

0201be50: 0201bef0  00000000  0000fffe  00000000  0201bef0  0201bf24  00000000  00000000

0201be70: 00000007  00000000  0003000a  201cdd34  00170480  00000000  02109000  0201a000

0201be90: 0016974c  0201be94  0201be94  00168c28 <000316e4> 00000008  00000001  00000020

0201beb0: 00000081  00000004  00000100 <00015306> 00000000 <00030818> 00173f74  00000000

0201bed0: 00000000  00000006  00000000 <ffa00454> 00178384  00000000  00000000  00000006

0201bef0: 00000000  00000000  00000000  00000000 <ffa0078c><ffa009ce> 0201a000  00000000

0201bf10: 00000002  00000000  00000000  00000000  201cdd34  201cdd34  201cdd34  00062026

0201bf30: 00000000  0201c000  00000480  201cdd34  00000000 <ffa00bf6> 00000000  00000001

0201bf50: 00000001  00000000  00000000  00000000  00000000  00000000  00000000  00000000

0201bf70: 00000000  00000000  00000000  00000000  00000000  00000000  00000000  00000000

0201bf90: 00000000  00000000  00000000  00000000  00000000  00000000  00000000  00000000

0201bfb0: 00000000  02132fb8  00000000  02120010  00000000  00000000  00000000  00000000

0201bfd0: 00000000  00000000  00000000  00000000  00000000  00000000  00000000  00000000

0201bff0: 00000000  00000000  00000000  00000006

Return addresses in stack:

    address : <0x0010baa2> { _panic + 0x4a }

    address : <0x00013a88> { _forget_original_parent + 0x20c }

    address : <0x00013a9e> { _exit_notify + 0xe }

    address : <0x00013c82> { _do_exit + 0xea }

   frame  1 : <0x00013dc8> { _do_group_exit + 0x3c }

    address : <0x0001b3c0> { _get_signal_to_deliver + 0x158 }

    address : <0x00003352> { _do_signal + 0x52 }

    address : <0x000316e4> { _rcu_process_callbacks + 0x2c }

    address : <0x00015306> { ___do_softirq + 0x7a }

    address : <0x00030818> { _handle_simple_irq + 0x6c }

    address : <0xffa00454> { _asm_do_IRQ + 0x60 }

    address : <0xffa0078c> { _exception_to_level5 + 0xa8 }

    address : <0xffa009ce> { _system_call + 0xb2 }

    address : <0xffa00bf6> { _schedule_and_signal + 0x82 }

 

 

Follow-ups

 

--- Barry Song                                               2009-12-01 22:04:33

duplicate with [#5704].

 

 

 

    Files

    Changes

    Commits

    Dependencies

    Duplicates

    Associations

    Tags

 

File Name     File Type     File Size     Posted By

vmlinux    application/octet-stream    2220427    Sonic Zhang

xip_mpu_kernel_config    application/octet-stream    29999    Sonic Zhang

xip_mpu_uclinux_config    application/octet-stream    45694    Sonic Zhang

rootfs.romfs    application/octet-stream    1509376    Sonic Zhang

Outcomes