[#3912] CONFIG_MPU doesn't seem to handle access to ASYNC/IO Memory well

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

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

Attachments

    Outcomes