[#6625] reading IMDMA_*_PERIPHERAL_MAP via debugfs mmrs will trigger System MMR Error
Submitted By: Vivi Li
Open Date
2011-06-07 05:57:26 Close Date
2011-08-23 22:28:34
Priority:
Medium Assignee:
Mike Frysinger
Status:
Closed Fixed In Release:
N/A
Found In Release:
2011R1 Release:
Category:
N/A Board:
N/A
Processor:
BF561 Silicon Revision:
Is this bug repeatable?:
Yes Resolution:
Fixed
Uboot version or rev.:
Toolchain version or rev.:
gcc4.3-2010_Dec_09
App binary format:
N/A
Summary: reading IMDMA_*_PERIPHERAL_MAP via debugfs mmrs will trigger System MMR Error
Details:
Read IMDMA_S1_PERIPHERAL_MAP via debugfs mmrs will cause kernel crash on bf561-ezkit.
Bellow is the log:
--
root:/> find /sys/kernel/debug/blackfin/ -type f -print -exec cat '{}' \;
...
/sys/kernel/debug/blackfin/imdma/IMDMA_S1_PERIPHERAL_MAP
System MMR Error
<5> - An error occurred due to an invalid access to an System MMR location
<5> Possible reason: a 32-bit register is accessed with a 16-bit instruction
<5> or a 16-bit register is accessed with a 32-bit instruction.
Kernel OOPS in progress
HW Error context
CURRENT PROCESS:
COMM=cat PID=420 CPU=0
TEXT = 0x02a00040-0x02a54140 DATA = 0x02a54160-0x02a68a68
BSS = 0x02a68a68-0x02a6a420 USER-STACK = 0x02a73f48
return address: [0x0007e880]; contents of:
0x0007e860: 0010 0000 0000 3210 6000 9711 0010 0000
0x0007e870: 3210 3209 9510 42c0 6001 9308 b049 6000
0x0007e880: [0010] 0000 0000 3210 6000 9311 0010 0000
0x0007e890: 3210 3209 9110 9308 6000 b048 0010 0000
ADSP-BF561-0.5 600(MHz CCLK) 100(MHz SCLK) (mpu off)
Linux version 2.6.39.1-ADI-2011R1-pre-svn9923 (test@linux66-561-jtag-capture) (gcc version 4.3.5 (ADI-trunk/svn-5013) ) #102 Mon Jun 6 11:58:41 CST 2011
SEQUENCER STATUS: Not tainted
SEQSTAT: 0000a03f IPEND: 8030 IMASK: 0000 SYSCFG: 0006
Global Interrupts Disabled (IPEND[4])
Peripheral interrupts masked off
Kernel interrupts masked off
HWERRCAUSE: 0x2
EXCAUSE : 0x3f
interrupts disabled
physical IVG5 asserted : <0xffa00d78> { _evt_ivhw + 0x0 }
physical IVG15 asserted : <0xffa010f4> { _evt_system_call + 0x0 }
logical irq 6 mapped : <0xffa0044c> { _bfin_coretmr_interrupt + 0x0 }
logical irq 35 mapped : <0x000a68c4> { _bfin_serial_dma_rx_int + 0x0 }
logical irq 36 mapped : <0x000a6630> { _bfin_serial_dma_tx_int + 0x0 }
logical irq 82 mapped : <0x000b8e7c> { _smc_interrupt + 0x0 }
RETE: <0x00000000> /* Maybe null pointer? */
RETN: <0x02070000> /* kernel dynamic memory (maybe user-space) */
RETX: <0x02a0330e> /* kernel dynamic memory (maybe user-space) */
RETS: <0x0005e4a8> { _simple_attr_read + 0x78 }
PC : <0x0007e880> { _debugfs_u16_get + 0x10 }
PROCESSOR STATE:
R0 : 00000000 R1 : 00000000 R2 : 00000000 R3 : 00000000
R4 : 00001000 R5 : 02a72e5c R6 : 0273e4c0 R7 : 00000000
P0 : 0255dd1c P1 : 0206fe88 P2 : ffc018ec P3 : 00000001
P4 : 0206fef0 P5 : 0273e480 FP : 02a72e24 SP : 0206fd98
LB0: 02a0cd5b LT0: 02a0cd52 LC0: 0000000e
LB1: 0298cfc9 LT1: 0298cf7e LC1: 00000000
B0 : 00000000 L0 : 00000000 M0 : 00000004 I0 : 02a73fed
B1 : 00000000 L1 : 00000000 M1 : 00000000 I1 : 02a6308c
B2 : 00000000 L2 : 00000000 M2 : 00000000 I2 : 02a73e94
B3 : 00000000 L3 : 00000000 M3 : 00000000 I3 : 00000000
A0.w: 0000147a A0.x: 00000000 A1.w: 0000147a A1.x: 00000000
USP : 02a72e18 ASTAT: 02000060
Hardware Trace:
0 Target : <0x00003fbc> { _trap_c + 0x0 }
Source : <0xffa00e30> { _evt_ivhw + 0xb8 } JUMP.L
1 Target : <0xffa00e12> { _evt_ivhw + 0x9a }
Source : <0xffa00e04> { _evt_ivhw + 0x8c } IF !CC JUMP pcrel
2 Target : <0xffa00df4> { _evt_ivhw + 0x7c }
Source : <0xffa00df0> { _evt_ivhw + 0x78 } IF CC JUMP pcrel
3 Target : <0xffa00d78> { _evt_ivhw + 0x0 }
FAULT : <0x0007e87e> { _debugfs_u16_get + 0xe } 0x6000
4 Target : <0x0007e870> { _debugfs_u16_get + 0x0 }
Source : <0x0005e4a6> { _simple_attr_read + 0x76 } CALL (P2)
5 Target : <0x0005e49e> { _simple_attr_read + 0x6e }
Source : <0x0005e466> { _simple_attr_read + 0x36 } IF CC JUMP pcrel (BP)
6 Target : <0x0005e458> { _simple_attr_read + 0x28 }
Source : <0xffa02a40> { _mutex_lock_interruptible + 0x38 } RTS
7 Target : <0xffa02a14> { _mutex_lock_interruptible + 0xc }
Source : <0xffa0217c> { __cond_resched + 0x20 } RTS
8 Target : <0xffa02176> { __cond_resched + 0x1a }
Source : <0xffa0216e> { __cond_resched + 0x12 } IF CC JUMP pcrel (BP)
9 Target : <0xffa0215c> { __cond_resched + 0x0 }
Source : <0xffa02a10> { _mutex_lock_interruptible + 0x8 } CALL pcrel
10 Target : <0xffa02a08> { _mutex_lock_interruptible + 0x0 }
Source : <0x0005e454> { _simple_attr_read + 0x24 } JUMP.L
11 Target : <0x0005e430> { _simple_attr_read + 0x0 }
Source : <0x00049b98> { _vfs_read + 0x60 } CALL (P2)
12 Target : <0x00049b7e> { _vfs_read + 0x46 }
Source : <0x0004931c> { _rw_verify_area + 0x44 } RTS
13 Target : <0x000492d8> { _rw_verify_area + 0x0 }
Source : <0x00049b7a> { _vfs_read + 0x42 } CALL pcrel
14 Target : <0x00049b6e> { _vfs_read + 0x36 }
Source : <0xffa001b6> { __access_ok + 0x5e } RTS
15 Target : <0xffa001ae> { __access_ok + 0x56 }
Source : <0xffa001c8> { __access_ok + 0x70 } JUMP.S
Kernel Stack
Stack info:
SP: [0x0206ff24] <0x0206ff24> /* kernel dynamic memory (maybe user-space) */
Memory from 0x0206ff20 to 02070000
0206ff20: 00000003 [02a0330e] 00008000 00002000 00000000 02070000 02a0330e 02a0330e
0206ff40: 02a50910 ffa01158 02001044 0298cfc9 02a0cd5b 0298cf7e 02a0cd52 00000000
0206ff60: 0000000e 0000147a 00000000 0000147a 00000000 00000000 00000000 00000000
0206ff80: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
0206ffa0: 00000004 00000000 02a73e94 02a6308c 02a73fed 02a72e18 02a72e24 02a699f0
0206ffc0: 00000000 00000001 02a69f08 <02a73f72> 00000003 00001000 02a72e5c 00000003
0206ffe0: 00000001 00000000 00001000 02a72e5c 00000003 00000003 00000003 00000006
Return addresses in stack:
address : <0x02a73f72> /* kernel dynamic memory (maybe user-space) */
Modules linked in:
Kernel panic - not syncing: Kernel exception
Hardware Trace:
Stack info:
SP: [0x0206fca0] <0x0206fca0> /* kernel dynamic memory (maybe user-space) */
FP: (0x0206fe8c)
Memory from 0x0206fca0 to 02070000
0206fca0:[0013a1a8] 0010e228 0206fd98 0013a1a8 0016a4bb 0016a4bb 0016a4bb 0206fce8
0206fcc0: 02a72e24 00004468 0206fd98 0206fef0 00000001 00000000 00000007 0000003f
0206fce0: 00000013 0206fd98 0000ffff ffffffff 0233d1e0 0007e870 00030001 00144c84
0206fd00: 00000000 025faa54 0004ff06 0007ee14 0233d1e0 0255dd1c 0007edf0 00000000
0206fd20: 0200eee0 0206fdf0 00001051 026dd2b4 0004ff06 0007e864 00144c84 <000481e4>
0206fd40: 00000001 00000001 0206fda8 0206fec4 000483ac 0233d1e0 0206fec4 0004fa6a
0206fd60: 0206fe34 0206fe34 00000000 00000000 00000000 ffa00e34 ffc00014 00000000
0206fd80: 0273e4c0 02a72e5c 00001000 00000000 0211f021 02727400 02a0330e 00008030
0206fda0: 0000a03f 00000000 02070000 02a0330e 0007e880 <0005e4a8> 00000000 02000060
0206fdc0: 0298cfc9 02a0cd5b 0298cf7e 02a0cd52 00000000 0000000e 0000147a 00000000
0206fde0: 0000147a 00000000 00000000 00000000 00000000 00000000 00000000 00000000
0206fe00: 00000000 00000000 00000000 00000000 00000000 00000004 00000000 02a73e94
0206fe20: 02a6308c 02a73fed 02a72e18 02a72e24 0273e480 0206fef0 00000001 ffc018ec
0206fe40: 0206fe88 0255dd1c 00000000 0273e4c0 02a72e5c 00001000 00000000 00000000
0206fe60: 00000000 00000000 00000000 0255dd1c 00000006 0201ce04 00000003 00000000
0206fe80: 00000000 00000000 0000b0cb (00000000)<00049b9a> 0233d1e0 00000003 0206fef0
0206fea0: 00001000 02a72e5c 00000001 029f3b74 00000020 0233d1e8 0206fef0 00000000
0206fec0: 00000000 00049cb0 0233d1e0 00000003 02a72e5c 00001000 00000003 00000001
0206fee0: 02a6881c 00000000 ffffe000 0206fef0 00000000 00000000 00000000 <ffa009b2>
0206ff00: 00049c80 00000000 ffffe000 02044ff6 0205c320 0205c5a0 00000000 00000001
0206ff20: 00000003 02a0330e 00008000 00002000 00000000 02070000 02a0330e 02a0330e
0206ff40: 02a50910 ffa01158 02001044 0298cfc9 02a0cd5b 0298cf7e 02a0cd52 00000000
0206ff60: 0000000e 0000147a 00000000 0000147a 00000000 00000000 00000000 00000000
0206ff80: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
0206ffa0: 00000004 00000000 02a73e94 02a6308c 02a73fed 02a72e18 02a72e24 02a699f0
0206ffc0: 00000000 00000001 02a69f08 <02a73f72> 00000003 00001000 02a72e5c 00000003
0206ffe0: 00000001 00000000 00001000 02a72e5c 00000003 00000003 00000003 00000006
Return addresses in stack:
address : <0x000481e4> { ___dentry_open + 0xc0 }
address : <0x0005e4a8> { _simple_attr_read + 0x78 }
frame 1 : <0x00049b9a> { _vfs_read + 0x62 }
address : <0xffa009b2> { _system_call + 0x6a }
address : <0x02a73f72> /* kernel dynamic memory (maybe user-space) */
U-Boot 2010.06 (ADI-2010R1-RC1) (Sep 29 2010 - 17:50:45)
CPU: ADSP bf561-0.3 (Detected Rev: 0.5) (bypass boot)
Board: ADI BF561 EZ-Kit Lite board
Support: http://blackfin.uclinux.org/
Clock: VCO: 600 MHz, Core: 600 MHz, System: 100 MHz
RAM: 64 MiB
Flash: 8 MiB
In: serial
Out: serial
Err: serial
KGDB: [on serial] ready
Net: SMC91111-0
Hit any key to stop autoboot:
--
Follow-ups
--- Mike Frysinger 2011-06-08 16:23:49
the HRM says that IMDMA_PERIPHERAL_MAP should exist, but clearly reading any of
them on the hardware results in a System MMR error (which indicates they dont
exist). ive sent an e-mail to processor support about it.
--- Mike Frysinger 2011-07-21 10:18:06
i committed a patch to disable PERIPHERAL_MAP MMRs for IMDMA devices
--- Vivi Li 2011-08-23 22:28:34
OK now.
Close it.
Files
Changes
Commits
Dependencies
Duplicates
Associations
Tags
File Name File Type File Size Posted By
No Files Were Found