[#3912] CONFIG_MPU doesn't seem to handle access to ASYNC/IO Memory well
Submitted By: Michael Hennerich
Open Date
2008-02-19 05:37:34 Close Date
2008-04-05 09:43:48
Priority:
Medium Assignee:
Bernd Schmidt
Status:
Closed Fixed In Release:
N/A
Found In Release:
N/A Release:
2008R1 / trunk (linux-2.6.24)
Category:
Architecture Board:
EZKIT Lite
Processor:
BF548 Silicon Revision:
Is this bug repeatable?:
Yes Resolution:
Assigned (Not Start)
Uboot version or rev.:
Toolchain version or rev.:
App binary format:
N/A
Summary: CONFIG_MPU doesn't seem to handle access to ASYNC/IO Memory well
Details:
CONFIG_MPU doesn't seem to handle access to ASYNC/IO Memory well:
On the BF548-EZkit the kernel dies in function smsc911x_drv_probe() due to a DCPLB miss on Async Memory address 0x24000050.
smsc911x: Driver version 2007-07-13.
Data access CPLB miss
- Used by the MMU to signal a CPLB miss on a data access.
Kernel OOPS in progress
Deferred Exception context
No Valid process in current context
return address: [0x000e867e]; contents of:
0x000e8650: 9110 b0c8 a050 b108 3216 9110 0c00 1985
0x000e8660: 0000 e52c 0063 9161 0c41 182b 6003 e12a
0x000e8670: 0050 b0a3 5a91 0030 0000 0000 0024 [9111]
0x000e8680: 0040 ce82 8181 b061 0000 42ca 0810 1819
SEQUENCER STATUS: Not tainted
SEQSTAT: 00000026 IPEND: 8030 SYSCFG: 0006
HWERRCAUSE: 0x0
EXCAUSE : 0x26
physical IVG15 asserted : <0xffa00ddc> { _evt_system_call + 0x0 }
logical irq 6 mapped : <0xffa00250> { _timer_interrupt + 0x0 }
logical irq 9 mapped : <0x000cbdec> { _bfin_bf54x_irq_error + 0x0 }
RETE: <0x00000000> { __start + 0xfffff000 }
RETN: <0x00c99ea8> /* unknown address */
RETX: <0x000e867e> { _smsc911x_drv_probe + 0xde }
RETS: <0x000e863c> { _smsc911x_drv_probe + 0x9c }
PC : <0x000e867e> { _smsc911x_drv_probe + 0xde }
DCPLB_FAULT_ADDR: <0x00ca7128> /* unknown address */
ICPLB_FAULT_ADDR: <0x000ca626> { _bit_cursor + 0x28a }
PROCESSOR STATE:
R0 : 0000ffff R1 : 00000002 R2 : ffffffff R3 : 00000000
R4 : 00000000 R5 : 0022fd68 R6 : 03ddab40 R7 : 001cd0a8
P0 : 002213c0 P1 : 24000000 P2 : 24000050 P3 : 002213c0
P4 : 03ddab40 P5 : 03dda800 FP : 00220994 SP : 00c99dcc
LB0: 000bd9f0 LT0: 000bd9f0 LC0: 00000000
LB1: 000ca8f4 LT1: 000ca8f4 LC1: 00000000
B0 : 000005a0 L0 : 00000000 M0 : 00000000 I0 : 00000400
B1 : 00000000 L1 : 00000000 M1 : 00000000 I1 : 03e58f20
B2 : 00000000 L2 : 00000000 M2 : 00000000 I2 : 00000001
B3 : 00000000 L3 : 00000000 M3 : 00000000 I3 : 00001680
A0.w: 00000000 A0.x: 00000000 A1.w: 00000000 A1.x: 00000000
USP : 00000000 ASTAT: 00003004
No trace since you do not have CONFIG_DEBUG_BFIN_NO_KERN_HWTRACE enabled
Stack from 00c99dac:
00000000 ffa00708 00220508 00220508 00220504 00000020 00000000 00221788
000e867e 00008030 00000026 00000000 00c99ea8 000e867e 000e867e 000e863c
0000ffff 00003004 000ca8f4 000bd9f0 000ca8f4 000bd9f0 00000000 00000000
00000000 00000000 00000000 00000000 00000000 00000000 00000000 000005a0
00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
00001680 00000001 03e58f20 00000400 00000000 00220994 03dda800 03ddab40
Call Trace:
[<0000ffff>] _do_wait+0x857/0x9fc
[<0000ffff>] _do_wait+0x857/0x9fc
[<000e360c>] _driver_sysfs_add+0x44/0x64
[<000e3706>] _driver_probe_device+0x7a/0x17c
[<0018fc98>] _klist_next+0x1c/0x60
[<0018fcb2>] _klist_next+0x36/0x60
[<000e39e2>] ___driver_attach+0x102/0x10c
[<000e2bb2>] _bus_for_each_dev+0x36/0x64
[<000e38e0>] ___driver_attach+0x0/0x10c
[<000b9ba2>] _kobject_register+0x2e/0x44
[<000e35c2>] _driver_attach+0x1a/0x20
[<000e2ee6>] _bus_add_driver+0x4a/0x190
[<000e38e0>] ___driver_attach+0x0/0x10c
[<000e2efe>] _bus_add_driver+0x62/0x190
[<0023a3d0>] _kernel_init+0x88/0x234
[<0023a348>] _kernel_init+0x0/0x234
[<00001856>] _kernel_thread_helper+0x6/0xc
Modules linked in:
Kernel panic - not syncing: Kernel exception
Follow-ups
--- Robin Getz 2008-04-05 09:11:08
Michael:
I think Bernd committed a fix for this - can you try it out?
Thanks
-Robin
--- Michael Hennerich 2008-04-05 09:43:47
Works like a dream now...
close it.
-Michael
root:/proc> cat cplbinfo
------------------ CPLB Information ------------------
Instruction CPLB entry:
Index Address Data Size U/RD U/WR S/WR Switch
0 0x00000000 031205 4M Y N N N
1 0x00400000 031201 4M N N N N
2 0x00800000 031201 4M N N N N
3 0xffa00000 030007 4M Y N N N
4 0x03194000 011205 4K Y N N Y
5 0x03193000 011205 4K Y N N Y
6 0x03195000 011205 4K Y N N Y
7 0x031b1000 011205 4K Y N N Y
8 0x0319b000 011205 4K Y N N Y
9 0x03182000 011205 4K Y N N Y
10 0x0318c000 011205 4K Y N N Y
11 0x031c9000 011205 4K Y N N Y
12 0x03199000 011205 4K Y N N Y
13 0x0319a000 011205 4K Y N N Y
14 0x031c4000 011205 4K Y N N Y
15 0x031c5000 011205 4K Y N N Y
Data CPLB entry:
Index Address Data Size U/RD U/WR S/WR Switch
0 0x00000000 000083 1K N N N N
1 0x00000000 03d091 4M N N Y N
2 0x00400000 03d091 4M N N Y N
3 0x00800000 03d091 4M N N Y N
4 0xff800000 03009f 4M Y Y Y N
5 0x0324c000 01d091 4K N N Y N
6 0x0324d000 01d091 4K N N Y N
7 0x00c7b000 01d091 4K N N Y Y
8 0x00c69000 01d091 4K N N Y Y
9 0x03b6c000 01d091 4K N N Y Y
10 0x031db000 01d09d 4K Y Y Y Y
11 0x0324b000 01d091 4K N N Y Y
12 0x03878000 01d091 4K N N Y Y
13 0x03b47000 01d091 4K N N Y Y
14 0x03def000 01d091 4K N N Y Y
15 0x03dc3000 01d091 4K N N Y Y
ICPLB miss: 44530
ICPLB supervisor miss: 0
DCPLB miss: 521994
DCPLB protection fault:0
CPLB flushes: 328
root:/proc>
Files
Changes
Commits
Dependencies
Duplicates
Associations
Tags
File Name File Type File Size Posted By
No Files Were Found