[#3824] serial driver causes problems during PM suspend resume

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

[#3824] serial driver causes problems during PM suspend resume

Submitted By: Michael Hennerich

Open Date

2008-01-11 10:16:07     Close Date

2008-01-28 01:21:10

Priority:

High     Assignee:

Sonic Zhang

Status:

Closed     Fixed In Release:

N/A

Found In Release:

N/A     Release:

2007R1 svn branch

Category:

N/A     Board:

STAMP

Processor:

BF537     Silicon Revision:

0.3

Is this bug repeatable?:

Yes     Resolution:

Fixed

Uboot version or rev.:

trunk     Toolchain version or rev.:

App binary format:

N/A     

Summary: serial driver causes problems during PM suspend resume

Details:

 

The serial driver causes problems during PM suspend resume on 2007R1 svn branch

 

For the issue to recreate enable PM support (Cause Wakeup Event by GPIO PF2)

see PM test - and have PF2 constantly being asserted. (push button)

 

root:~> while [ 1 ];echo standby > /sys/power/state;done;

Stopping tasks ... done.

Suspending console(s)

 

After a while you will see one or all below reported issues.

If you type chars into the console while running this test - the bugs are more likely to happen.

 

This issue seems to be already fixed on 2008R1.

 

1) There are messages like this coming out of the dma driver:

 

Assertion failed! dma_ch[channel].chan_status != DMA_CHANNEL_FREE && channel < MAX_BLACKFIN_DMA_CHANNEL, arch/blackfin/kernel/bfin_dma_5xx.c, disable_dma, line=417

Unable to attach Blackfin UART TX DMA channel

 

Assertion failed! dma_ch[channel].chan_status != DMA_CHANNEL_FREE && channel < MAX_BLACKFIN_DMA_CHANNEL, arch/blackfin/kernel/bfin_dma_5xx.c, disable_dma, line=417

 

 

Assertion failed! dma_ch[channel].chan_status != DMA_CHANNEL_FREE && channel < MAX_BLACKFIN_DMA_CHANNEL, arch/blackfin/kernel/bfin_dma_5xx.c, get_dma_curr_xcount, line=583

Unable to attach Blackfin UART TX DMA channel

 

Error 1:

 

  0: Waiting for input from trig

Stopping tasks: ========|

Suspending console(s)

Restarting tasks...<0>Data access CPLB miss

- Used by the MMU to signal a CPLB miss on a data access.

 

CURRENT PROCESS:

 

COMM=sh PID=92

TEXT = 0x92003060-0x92003060  DATA = 0x92003060-0x92003060

BSS = 0x92003060-0x92003060   USER-STACK = 0x92003060

 

return address: 0x0001d2a4; contents of [PC-16...PC+8]:

 

 

RETE:  00000000  RETN: 0027fe9c  RETX: 0001d2a4  RETS: 0000e724

IPEND: 8030  SYSCFG: 0036

SEQSTAT: 00000026    SP: 0027fdc0

R0: 0000ffff    R1: 0000001f    R2: 00000000    R3: ffffffff

R4: ffffffff    R5: 029dfac4    R6: ffffe000    R7: 00000004

P0: 92003060    P1: 0027febc    P2: 0027fec8    P3: 02989920

P4: 00000072    P5: 02aadce8    FP: 0027fed0

A0.w: 00000000    A0.x: 00000000    A1.w: 00000000    A1.x: 00000000

LB0: 0285d687  LT0: 0285d674  LC0: fffffffd

LB1: 02930fdf  LT1: 02930fde  LC1: 00000000

B0: 00000000  L0: 00000000  M0: 00000000  I0: 029a0584

B1: 00000000  L1: 00000000  M1: 00000000  I1: ffffffff

B2: 00000000  L2: 00000000  M2: 00000000  I2: 00000000

B3: 00000000  L3: 00000000  M3: 00000000  I3: 00000000

 

USP: 029dfa70   ASTAT: 02003004

DCPLB_FAULT_ADDR=92003064

ICPLB_FAULT_ADDR=0001d2a4

 

 

Hardware Trace:

0 Target : <0x00004720> { _trap_c + 0x0 }

   Source : <0xffa00b68> { _exception_to_level5 + 0xb4 }

1 Target : <0xffa00ab4> { _exception_to_level5 + 0x0 }

   Source : <0xffa00ab2> { _ex_trap_c + 0x4e }

2 Target : <0xffa00a0c> { _handle_bad_cplb + 0x0 }

   Source : <0xffa00504> { __cplb_hdr + 0x5c }

3 Target : <0xffa00502> { __cplb_hdr + 0x5a }

   Source : <0x000046b2> { _panic_cplb_error + 0x16 }

4 Target : <0x0000469c> { _panic_cplb_error + 0x0 }

   Source : <0xffa004fe> { __cplb_hdr + 0x56 }

5 Target : <0xffa004fa> { __cplb_hdr + 0x52 }

   Source : <0xffa004ea> { __cplb_hdr + 0x42 }

6 Target : <0xffa004e4> { __cplb_hdr + 0x3c }

   Source : <0xffa004de> { __cplb_hdr + 0x36 }

7 Target : <0xffa004dc> { __cplb_hdr + 0x34 }

   Source : <0xffa004d4> { __cplb_hdr + 0x2c }

8 Target : <0xffa004d0> { __cplb_hdr + 0x28 }

   Source : <0xffa00648> { _cplb_mgr + 0x140 }

9 Target : <0xffa00644> { _cplb_mgr + 0x13c }

   Source : <0xffa007ac> { _cplb_mgr + 0x2a4 }

10 Target : <0xffa007a4> { _cplb_mgr + 0x29c }

   Source : <0xffa007c0> { _cplb_mgr + 0x2b8 }

11 Target : <0xffa007a4> { _cplb_mgr + 0x29c }

   Source : <0xffa007c0> { _cplb_mgr + 0x2b8 }

12 Target : <0xffa007a4> { _cplb_mgr + 0x29c }

   Source : <0xffa007c0> { _cplb_mgr + 0x2b8 }

13 Target : <0xffa007a4> { _cplb_mgr + 0x29c }

   Source : <0xffa007c0> { _cplb_mgr + 0x2b8 }

14 Target : <0xffa007a4> { _cplb_mgr + 0x29c }

   Source : <0xffa007c0> { _cplb_mgr + 0x2b8 }

15 Target : <0xffa007a4> { _cplb_mgr + 0x29c }

   Source : <0xffa007c0> { _cplb_mgr + 0x2b8 }

Stack from 0027fda0:

        00000000 ffa00b6c 0012a714 0012a714 0012a710 00000044 00000002 000087ac

        0001d2a4 00008030 00000026 00000000 0027fe9c 0001d2a4 0001d2a4 0000e724

        0000ffff 02003004 02930fdf 0285d687 02930fde 0285d674 00000000 fffffffd

        00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

        00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

        00000000 00000000 ffffffff 029a0584 029dfa70 0027fed0 02aadce8 00000072

Call Trace:

[<0000ffff>] _do_setitimer+0x2cb/0x520

[<0000ffff>] _do_setitimer+0x2cb/0x520

[<0000f01c>] _sys_wait4+0x0/0x34

[<0000f01c>] _sys_wait4+0x0/0x34

[<00009780>] _default_wake_function+0x0/0x10

[<0000f048>] _sys_wait4+0x2c/0x34

[<0000f01c>] _sys_wait4+0x0/0x34

[<00008000>] _irq_panic+0x104/0x144

 

 

Exception: IRQ 0x5 entered

code=[0x0000c026],   stack frame=0x0027fdc0,   bad PC=0x0001d2ba

----------- HARDWARE ERROR -----------

External Memory Addressing Error

 

CURRENT PROCESS:

 

COMM=sh PID=92

TEXT = 0x92003060-0x92003060  DATA = 0x92003060-0x92003060

BSS = 0x92003060-0x92003060   USER-STACK = 0x92003060

 

return address: 0x0001d2ba; contents of [PC-16...PC+8]:

 

 

RETE:  00000000  RETN: 0027fe9c  RETX: 0001d2a4  RETS: 0000e724

IPEND: 8020  SYSCFG: 0036

SEQSTAT: 0000c026    SP: 0027fdc0

R0: 0000ffff    R1: 0000001f    R2: 00000000    R3: ffffffff

R4: ffffffff    R5: 029dfac4    R6: ffffe000    R7: 00000004

P0: 92003060    P1: 0027febc    P2: 0012a730    P3: 02989920

P4: 00000072    P5: 02aadce8    FP: 0027fed0

A0.w: 00000000    A0.x: 00000000    A1.w: 00000000    A1.x: 00000000

LB0: 0285d687  LT0: 0285d674  LC0: fffffffd

LB1: 02930fdf  LT1: 02930fde  LC1: 00000000

B0: 00000000  L0: 00000000  M0: 00000000  I0: 029a0584

B1: 00000000  L1: 00000000  M1: 00000000  I1: ffffffff

B2: 00000000  L2: 00000000  M2: 00000000  I2: 00000000

B3: 00000000  L3: 00000000  M3: 00000000  I3: 00000000

 

USP: 029dfa70   ASTAT: 02003004

DCPLB_FAULT_ADDR=92003064

ICPLB_FAULT_ADDR=0001d2a4

 

 

Error 2:

 

 

Kernel panic - not syncing: Unhandled IRQ or exceptions!

 

NULL pointer access (probably)

 

No Valid pid - Either things are really messed up, or you are in the kernel

return address: 0x00091a10; contents of [PC-16...PC+8]:

6c09 9b10 bcc1 6c0d e418 0025 304d 0908

1832 0000 e51a 0023 a1d9 3001 4c08 5a95 X

9952 ae1a 5407 0c00 9154 17cc e6b2 0013

 

RETE:  00000000  RETN: 00127e1c  RETX: 00091a10  RETS: 00091d70

IPEND: c030  SYSCFG: 0036

SEQSTAT: 00000027    SP: 00127d40

R0: 00000000    R1: 00000000    R2: 00000001    R3: 00000000

R4: 00127e2f    R5: 00127e2e    R6: 00000000    R7: 00000000

P0: 00168764    P1: 02a987a0    P2: 00000000    P3: 001686cc

P4: 00127e7c    P5: 00000000    FP: 02a66000

A0.w: 00000000    A0.x: 00000000    A1.w: 00000000    A1.x: 00000000

LB0: ffa01e46  LT0: ffa01e44  LC0: 00000000

LB1: 02930fdf  LT1: 02930fde  LC1: 00000000

B0: 00000000  L0: 00000000  M0: 00000000  I0: 00000001

B1: 00000000  L1: 00000000  M1: 00000000  I1: 00000000

B2: 00000000  L2: 00000000  M2: 00000000  I2: ffff44a1

B3: 00000000  L3: 00000000  M3: 00000000  I3: 00000000

 

USP: 00128000   ASTAT: 02002021

DCPLB_FAULT_ADDR=00000000

ICPLB_FAULT_ADDR=00091a10

 

 

Hardware Trace:

0 Target : <0x00004720> { _trap_c + 0x0 }

   Source : <0xffa00b68> { _exception_to_level5 + 0xb4 }

1 Target : <0xffa00ab4> { _exception_to_level5 + 0x0 }

   Source : <0xffa00ab2> { _ex_trap_c + 0x4e }

2 Target : <0xffa00a64> { _ex_trap_c + 0x0 }

   Source : <0xffa00c08> { _trap + 0x28 }

3 Target : <0xffa00be0> { _trap + 0x0 }

   Source : <0x00091a0e> { _bfin_serial_dma_rx_chars + 0xfa }

4 Target : <0x00091a04> { _fin_serial_dma_rx_chars + 0xf0 }

   Source : <0x00091998> { _bfin_serial_dma_rx_chars + 0x84 }

5 Target : <0x00091988> { _bfin_serial_dma_rx_chars + 0x74 }

   Source : <0x00091a82> { _bfin_serial_dma_rxchars + 0x16e }

6 Target : <0x00091a74> { _bfin_serial_dma_rx_chars + 0x160 }

   Source : <0x00091984> { _bfin_serial_dma_rx_chars + 0x70 }

7 Target : <0x0009197e> { _bfin_serial_dma_rx_chars + 0x6a }

  Source : <0x00091976> { _bfin_serial_dma_rx_chars + 0x62 }

8 Target : <0x00091974> { _bfin_serial_dma_rx_chars + 0x60 }

   Source : <0x00091968> { _bfin_serial_dma_rx_chars + 0x54 }

9 Target : <0x00091966> { _bfin_serial_dma_rx_chars + 0x52 }

   Source : <0x0009195a> { _bfin_serial_dma_rx_chars + 0x46 }

10 Target : <0x00091958> { _bfin_serial_dma_rx_chars + 0x44 }

   Source : <0x00091940> { _bfin_serial_dma_rx_chars + 0x2c }

11 Target : <0x00091914> { _bfin_serial_dma_rx_chars + 0x0 }

   Source : <0x00091d6c> { _bfin_serial_rx_dma_timeout + 0x7c }

12 Target : <0x00091d66>{ _bfin_serial_rx_dma_timeout + 0x76 }

   Source : <0x00091d26> { _bfin_serial_rx_dma_timeout + 0x36 }

13 Target : <0x00091d06> { _bfin_serial_rx_dma_timeout + 0x16 }

   Source : <0x000069b6> { _gt_dma_curr_xcount + 0x6a }

14 Target : <0x000069a2> { _get_dma_curr_xcount + 0x56 }

   Source : <0x00006974> { _get_dma_curr_xcount + 0x28 }

15 Target : <0x0000694c> { _get_dma_curr_xcount + 0x0 }

   Sourc : <0x00091d02> { _bfin_serial_rx_dma_timeout + 0x12 }

Stack from 00127d20:

        00000000 ffa00b6c 0012a714 0012a714 0012a710 00000000 00000000 00000000

        00091a10 0000c030 00000027 00000000 00127e1c 00091a10 00091a10 00091d70

        00000000 02002021 02930fdf ffa01e46 02930fde ffa01e44 00000000 00000000

        00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

        00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

        00000000 ffff44a1 00000000 00000001 00128000 02a66000 00000000 00127e7c

Call Trace:

[<000093d2>] _scheduler_tick+0xa/0x2c8

[<00091d70>] _bfin_serial_rx_dma_timeout+0x80/0xb4

[<00091cf0>] _bfin_serial_rx_dma_timeout+0x0/0xb4

[<0000ffff>] _do_setitimer+0x2c3/0x520

[<00013fe8>] _run_timer_softirq+0xb0/0x164

[<00011008>] _tasklet_action+0x50/0xa8

[<00010f0a>] ___do_softirq+0x5e/0xac

[<00008002>] _irq_panic+0x106/0x144

[<00008050>] _cplbinfo_write_proc+0x10/0x44

[<0000ffff>] _do_setitimer+0x2c3/0x520

[<001155a2>] _start_kernel+0x1ae/0x1d0

[<00115164>] _unknown_bootoption+0x0/0x234

[<000011f6>] _real_start+0x92/0x94

 

Kernel panic - not syncing: Kernel exception

 

Follow-ups

 

--- Sonic Zhang                                              2008-01-14 00:19:46

Fixed.

 

--- Michael Hennerich                                        2008-01-28 03:25:24

Close

-Michael

 

 

 

    Files

    Changes

    Commits

    Dependencies

    Duplicates

    Associations

    Tags

 

File Name     File Type     File Size     Posted By

No Files Were Found

Attachments

    Outcomes