[#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