FAQ: [#6075] reading USB_EP_NI7_RXINTERVAL via debug mmr sysfs results triggers a System MMR(2010)

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

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

Attachments

    Outcomes