[#6075] reading USB_EP_NI7_RXINTERVAL via debug mmr sysfs results triggers a System MMR
Submitted By: Michael Hennerich
Open Date
2010-06-23 10:27:37 Close Date
2010-10-11 04:02:18
Priority:
Medium Assignee:
Mike Frysinger
Status:
Closed Fixed In Release:
N/A
Found In Release:
2010R1 Release:
trunk
Category:
Kernel Functions Board:
EZKIT Lite
Processor:
BF527 Silicon Revision:
any
Is this bug repeatable?:
Yes Resolution:
Fixed
Uboot version or rev.:
Toolchain version or rev.:
trunk
App binary format:
N/A
Summary: reading USB_EP_NI7_RXINTERVAL via debug mmr sysfs results triggers a System MMR
Details:
System MMR Error in Blackfin debug MMR sysfs tree
root:/sys/kernel/debug/blackfin/USB> ls
USB_APHY_CALIB USB_EP_NI0_RXMAXP USB_EP_NI6_RXCOUNT
USB_APHY_CNTRL USB_EP_NI0_RXTYPE USB_EP_NI6_RXCSR
USB_APHY_CNTRL2 USB_EP_NI0_TXCOUNT USB_EP_NI6_RXINTERVAL
USB_COUNT0 USB_EP_NI0_TXCSR USB_EP_NI6_RXMAXP
USB_CSR0 USB_EP_NI0_TXINTERVAL USB_EP_NI6_RXTYPE
USB_DMA0_ADDRHIGH USB_EP_NI0_TXMAXP USB_EP_NI6_TXCOUNT
USB_DMA0_ADDRLOW USB_EP_NI0_TXTYPE USB_EP_NI6_TXCSR
USB_DMA0_CONTROL USB_EP_NI1_RXCOUNT USB_EP_NI6_TXINTERVAL
USB_DMA0_COUNTHIGH USB_EP_NI1_RXCSR USB_EP_NI6_TXMAXP
USB_DMA0_COUNTLOW USB_EP_NI1_RXINTERVAL USB_EP_NI6_TXTYPE
USB_DMA1_ADDRHIGH USB_EP_NI1_RXMAXP USB_EP_NI7_RXCOUNT
USB_DMA1_ADDRLOW USB_EP_NI1_RXTYPE USB_EP_NI7_RXCSR
USB_DMA1_CONTROL USB_EP_NI1_TXCOUNT USB_EP_NI7_RXINTERVAL
USB_DMA1_COUNTHIGH USB_EP_NI1_TXCSR USB_EP_NI7_RXMAXP
USB_DMA1_COUNTLOW USB_EP_NI1_TXINTERVAL USB_EP_NI7_RXTYPE
USB_DMA2_ADDRHIGH USB_EP_NI1_TXMAXP USB_EP_NI7_TXCOUNT
USB_DMA2_ADDRLOW USB_EP_NI1_TXTYPE USB_EP_NI7_TXCSR
USB_DMA2_CONTROL USB_EP_NI2_RXCOUNT USB_EP_NI7_TXINTERVAL
USB_DMA2_COUNTHIGH USB_EP_NI2_RXCSR USB_EP_NI7_TXMAXP
USB_DMA2_COUNTLOW USB_EP_NI2_RXINTERVAL USB_EP_NI7_TXTYPE
USB_DMA3_ADDRHIGH USB_EP_NI2_RXMAXP USB_FADDR
USB_DMA3_ADDRLOW USB_EP_NI2_RXTYPE USB_FRAME
USB_DMA3_CONTROL USB_EP_NI2_TXCOUNT USB_FS_EOF1
USB_DMA3_COUNTHIGH USB_EP_NI2_TXCSR USB_GLOBAL_CTL
USB_DMA3_COUNTLOW USB_EP_NI2_TXINTERVAL USB_GLOBINTR
USB_DMA4_ADDRHIGH USB_EP_NI2_TXMAXP USB_HS_EOF1
USB_DMA4_ADDRLOW USB_EP_NI2_TXTYPE USB_INDEX
USB_DMA4_CONTROL USB_EP_NI3_RXCOUNT USB_INTRRX
USB_DMA4_COUNTHIGH USB_EP_NI3_RXCSR USB_INTRRXE
USB_DMA4_COUNTLOW USB_EP_NI3_RXINTERVAL USB_INTRTX
USB_DMA5_ADDRHIGH USB_EP_NI3_RXMAXP USB_INTRTXE
USB_DMA5_ADDRLOW USB_EP_NI3_RXTYPE USB_INTRUSB
USB_DMA5_CONTROL USB_EP_NI3_TXCOUNT USB_INTRUSBE
USB_DMA5_COUNTHIGH USB_EP_NI3_TXCSR USB_LINKINFO
USB_DMA5_COUNTLOW USB_EP_NI3_TXINTERVAL USB_LS_EOF1
USB_DMA6_ADDRHIGH USB_EP_NI3_TXMAXP USB_NAKLIMIT0
USB_DMA6_ADDRLOW USB_EP_NI3_TXTYPE USB_OTG_DEV_CTL
USB_DMA6_CONTROL USB_EP_NI4_RXCOUNT USB_OTG_VBUS_IRQ
USB_DMA6_COUNTHIGH USB_EP_NI4_RXCSR USB_OTG_VBUS_MASK
USB_DMA6_COUNTLOW USB_EP_NI4_RXINTERVAL USB_PHY_TEST
USB_DMA7_ADDRHIGH USB_EP_NI4_RXMAXP USB_PLLOSC_CTRL
USB_DMA7_ADDRLOW USB_EP_NI4_RXTYPE USB_POWER
USB_DMA7_CONTROL USB_EP_NI4_TXCOUNT USB_RXCOUNT
USB_DMA7_COUNTHIGH USB_EP_NI4_TXCSR USB_RXCSR
USB_DMA7_COUNTLOW USB_EP_NI4_TXINTERVAL USB_RXINTERVAL
USB_DMA_INTERRUPT USB_EP_NI4_TXMAXP USB_RXTYPE
USB_EP0_FIFO USB_EP_NI4_TXTYPE USB_RX_MAX_PACKET
USB_EP1_FIFO USB_EP_NI5_RXCOUNT USB_SRP_CLKDIV
USB_EP2_FIFO USB_EP_NI5_RXCSR USB_TESTMODE
USB_EP3_FIFO USB_EP_NI5_RXINTERVAL USB_TXCOUNT
USB_EP4_FIFO USB_EP_NI5_RXMAXP USB_TXCSR
USB_EP5_FIFO USB_EP_NI5_RXTYPE USB_TXINTERVAL
USB_EP6_FIFO USB_EP_NI5_TXCOUNT USB_TXTYPE
USB_EP7_FIFO USB_EP_NI5_TXCSR USB_TX_MAX_PACKET
USB_EP_NI0_RXCOUNT USB_EP_NI5_TXINTERVAL USB_VPLEN
USB_EP_NI0_RXCSR USB_EP_NI5_TXMAXP
USB_EP_NI0_RXINTERVAL USB_EP_NI5_TXTYPE
root:/sys/kernel/debug/blackfin/USB> cat *
0x6510
0x0000
0x0000
0x0000
0x000a
0x03f7
0x640c
0x0000
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=299 CPU=0
TEXT = 0x02b80040-0x02bc99c0 DATA = 0x02bc99e0-0x02bdae40
BSS = 0x02bdae40-0x02bdc7b0 USER-STACK = 0x02be4180
return address: [0x000798d0]; contents of:
0x000798b0: 0010 0000 0000 3210 6000 9711 0010 0000
0x000798c0: 3210 3209 9510 42c0 6001 9308 b049 6000
0x000798d0: [0010] 0000 0000 3210 6000 9311 0010 0000
0x000798e0: 3210 3209 9110 9308 6000 b048 0010 0000
ADSP-BF527-0.1(Detected 0.2) 600(MHz CCLK) 120(MHz SCLK) (mpu off)
Linux version 2.6.34-ADI-2010R1-pre-svn8924 (michael@mhenneri-D02) (gcc version 4.3.5 (ADI-trunk/svn-4637) ) #13362 Wed Jun 23 14:54:43 CEST 20
SEQUENCER STATUS: Not tainted
SEQSTAT: 0000803f 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 : <0xffa00c70> { _evt_ivhw + 0x0 }
physical IVG15 asserted : <0xffa00f60> { _evt_system_call + 0x0 }
logical irq 6 mapped : <0xffa0035c> { _bfin_coretmr_interrupt + 0x0 }
logical irq 27 mapped : <0x000e8de8> { _bfin_twi_interrupt_entry + 0x0 }
logical irq 29 mapped : <0x000b0a84> { _bfin_serial_dma_rx_int + 0x0 }
logical irq 30 mapped : <0x000b07f8> { _bfin_serial_dma_tx_int + 0x0 }
logical irq 59 mapped : <0x000df7dc> { _blackfin_interrupt + 0x0 }
RETE: <0x00000000> /* Maybe null pointer? */
RETN: <0x02046000> /* kernel dynamic memory (maybe user-space) */
RETX: <0x02b830be> /* kernel dynamic memory (maybe user-space) */
RETS: <0x0005838a> { _simple_attr_read + 0x7e }
PC : <0x000798d0> { _debugfs_u16_get + 0x10 }
PROCESSOR STATE:
R0 : 00000000 R1 : 00000000 R2 : 00000000 R3 : 00000000
R4 : 00001000 R5 : 02be308c R6 : 028207e0 R7 : 00000000
P0 : 0276286c P1 : 02045e8c P2 : ffc03bf0 P3 : 02be308c
P4 : 02045ef0 P5 : 028207a0 FP : 02be3054 SP : 02045d9c
LB0: 02b8cb0f LT0: 02b8cb06 LC0: 00000006
LB1: 0289210f LT1: 02892104 LC1: 00000000
B0 : 00000001 L0 : 00000000 M0 : 00000004 I0 : 02be4fd4
B1 : 00000000 L1 : 00000000 M1 : 00000001 I1 : 02bd4b78
B2 : 028e4a67 L2 : 00000000 M2 : 00000000 I2 : 02be40c4
B3 : 00000000 L3 : 00000000 M3 : 00000000 I3 : 00000000
A0.w: 00000000 A0.x: 00000000 A1.w: 00000000 A1.x: 00000000
USP : 02be3048 ASTAT: 02000061
Hardware Trace:
0 Target : <0x00003efc> { _trap_c + 0x0 }
Source : <0xffa00d1a> { _evt_ivhw + 0xaa } JUMP.L
1 Target : <0xffa00cfc> { _evt_ivhw + 0x8c }
Source : <0xffa00cee> { _evt_ivhw + 0x7e } IF !CC JUMP pcrel
2 Target : <0xffa00c70> { _evt_ivhw + 0x0 }
FAULT : <0x000798ce> { _debugfs_u16_get + 0xe } 0x6000
3 Target : <0x000798c0> { _debugfs_u16_get + 0x0 }
Source : <0x00058388> { _simple_attr_read + 0x7c } CALL (P2)
4 Target : <0x00058380> { _simple_attr_read + 0x74 }
Source : <0x00058348> { _simple_attr_read + 0x3c } IF CC JUMP pcrel (BP)
5 Target : <0x00058334> { _simple_attr_read + 0x28 }
Source : <0x00147958> { _mutex_lock_interruptible + 0x38 } RTS
6 Target : <0x0014792c> { _mutex_lock_interruptible + 0xc }
Source : <0x00147078> { __cond_resched + 0x20 } RTS
7 Target : <0x00147072> { __cond_resched + 0x1a }
Source : <0x0014706a> { __cond_resched + 0x12 } IF CC JUMP pcrel (BP)
8 Target : <0x00147058> { __cond_resched + 0x0 }
Source : <0x00147928> { _mutex_lock_interruptible + 0x8 } CALL pcrel
9 Target : <0x00147920> { _mutex_lock_interruptible + 0x0 }
Source : <0x00058330> { _simple_attr_read + 0x24 } JUMP.L
10 Target : <0x0005830c> { _simple_attr_read + 0x0 }
Source : <0x000442ac> { _vfs_read + 0x68 } CALL (P2)
11 Target : <0x0004428c> { _vfs_read + 0x48 }
Source : <0x00043a16> { _rw_verify_area + 0x62 } RTS
12 Target : <0x00043a00> { _rw_verify_area + 0x4c }
Source : <0x0007f388> { _cap_file_permission + 0x8 } RTS
13 Target : <0x0007f380> { _cap_file_permission + 0x0 }
Source : <0x0007eb52> { _security_file_permission + 0xe } JUMP (P2)
14 Target : <0x0007eb44> { _security_file_permission + 0x0 }
Source : <0x000439fc> { _rw_verify_area + 0x48 } JUMP.L
15 Target : <0x000439b4> { _rw_verify_area + 0x0 }
Source : <0x00044288> { _vfs_read + 0x44 } CALL pcrel
Kernel Stack
Stack info:
SP: [0x02045f24] <0x02045f24> /* kernel dynamic memory (maybe user-space) */
Memory from 0x02045f20 to 02046000
02045f20: 00000003 [02b830be] 00008000 00000000 00000000 02046000 02b830be 02b830be
02045f40: 02b99b20 ffa00fc4 02000040 0289210f 02b8cb0f 02892104 02b8cb06 00000000
02045f60: 00000006 00000000 00000000 00000000 00000000 00000000 028e4a67 00000000
02045f80: 00000001 00000000 00000000 00000000 00000000 00000000 00000000 00000001
02045fa0: 00000004 00000000 02be40c4 02bd4b78 02be4fd4 02be3048 02be3054 02bdbdc8
02045fc0: 00000000 02be308c 02bdc298 02be4d20 00000003 00001000 02be308c 00000003
02045fe0: 00000001 02be4d20 00001000 02be308c 00000003 00000003 00000003 00000006
Return addresses in stack:
Modules linked in:
Kernel panic - not syncing: Kernel exception
Hardware Trace:
Stack info:
SP: [0x02045cc0] <0x02045cc0> /* kernel dynamic memory (maybe user-space) */
FP: (0x02045e90)
Memory from 0x02045cc0 to 02046000
02045cc0:[0017ef10] 00146ae6 02045d9c 0017ef10 001bf4be 001bf4be 001bf4be 02045cf0
02045ce0: 00004338 02045d9c 00000000 02045d9c 0000ffff 0000003f 02044000 00000001
02045d00: 00030001 001e2298 02003380 00041022 02003380 02008f60 02008f60 02760214
02045d20: 00041556 00000000 00000001 00000006 000583e6 0209f7c0 000798c0 000798b4
02045d40:<0018bc14> 00000006 00000000 02be308c 00079e18 0209f7c0 0276286c 0200eea0
02045d60: 00000000 00079df4 00000000 0276286c 00000024 00000024 ffa00d1e 028207a0
02045d80: 00000000 028207e0 02be308c 00001000 00000001 00042530 0209f7c0 02b830be
02045da0: 00008030 0000803f 00000000 02046000 02b830be 000798d0 <0005838a> 00000000
02045dc0: 02000061 0289210f 02b8cb0f 02892104 02b8cb06 00000000 00000006 00000000
02045de0: 00000000 00000000 00000000 00000000 028e4a67 00000000 00000001 00000000
02045e00: 00000000 00000000 00000000 00000000 00000000 00000001 00000004 00000000
02045e20: 02be40c4 02bd4b78 02be4fd4 02be3048 02be3054 028207a0 02045ef0 02be308c
02045e40: ffc03bf0 02045e8c 0276286c 00000000 028207e0 02be308c 00001000 00000000
02045e60: 00000000 00000000 00000000 00000000 0276286c 00000006 00200200 00000001
02045e80: 00000000 0209f7c0 001c5c90 00000000 (00000000)<000442ae> 0209f7c0 00000003
02045ea0: 02045ef0 02be308c 00001000 00000001 00000020 00000003 0202f000 02045ef0
02045ec0: 0209f840 00000006 000443d4 0209f7c0 00000003 02be308c 00001000 00000003
02045ee0: 00000007 00000000 ffffe000 02045ef0 00000000 00000000 00000000 <ffa008b6>
02045f00: 000443a4 00000000 ffffe000 ffffe000 00000000 0000fffe 02be4d20 00000001
02045f20: 00000003 02b830be 00008000 00000000 00000000 02046000 02b830be 02b830be
02045f40: 02b99b20 ffa00fc4 02000040 0289210f 02b8cb0f 02892104 02b8cb06 00000000
02045f60: 00000006 00000000 00000000 00000000 00000000 00000000 028e4a67 00000000
02045f80: 00000001 00000000 00000000 00000000 00000000 00000000 00000000 00000001
02045fa0: 00000004 00000000 02be40c4 02bd4b78 02be4fd4 02be3048 02be3054 02bdbdc8
02045fc0: 00000000 02be308c 02bdc298 02be4d20 00000003 00001000 02be308c 00000003
02045fe0: 00000001 02be4d20 00001000 02be308c 00000003 00000003 00000003 00000006
Return addresses in stack:
address : <0x0018bc14> /* kernel dynamic memory (maybe user-space) */
address : <0x0005838a> { _simple_attr_read + 0x7e }
frame 1 : <0x000442ae> { _vfs_read + 0x6a }
address : <0xffa008b6> { _system_call + 0x6a }
Follow-ups
--- Mike Frysinger 2010-06-23 13:19:19
i sent this to ADI support about a year ago, but i guess i forgot to update the
related files. their response:
I just got the confirmation from designers that the correct address for
USB_EP_NI7_RXINTERVAL is 0xFFC03FE0 and USB_EP_NI7_TXCOUNT is 0xFFC03FE8.
--- Mike Frysinger 2010-06-23 13:30:01
oh, but this is BF52x. my old report was for BF54x. i'm guessing same issue
applies to the BF52x, but i'll double check.
--- Mike Frysinger 2010-07-11 21:25:22
should be fixed in trunk now by using:
USB_EP_NI7_RXINTERVAL 0xFFC03BE0
USB_EP_NI7_TXCOUNT 0xFFC03BE8
double checking with processor support again though as they told me 0xFFC006E0
and 0xFFC006E8, but those dont work.
--- Michael Hennerich 2010-10-11 04:02:18
close it
Files
Changes
Commits
Dependencies
Duplicates
Associations
Tags
File Name File Type File Size Posted By
No Files Were Found