[#5423] traps_test fails sometimes on bf561-ezkit SMP kernel

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

[#5423] traps_test fails sometimes on bf561-ezkit SMP kernel

Submitted By: Vivi Li

Open Date

2009-08-05 23:30:56    

Priority:

Low     Assignee:

Sonic Zhang

Status:

Open     Fixed In Release:

N/A

Found In Release:

2010R1     Release:

Category:

Tests     Board:

EZKIT Lite

Processor:

BF561     Silicon Revision:

Is this bug repeatable?:

Yes     Resolution:

N/A

Uboot version or rev.:

    Toolchain version or rev.:

gcc4.1-09r1_rc9

App binary format:

N/A     

Summary: traps_test fails sometimes on bf561-ezkit SMP kernel

Details:

 

Run following traps_test commands in bf561-ezkit SMP kernel and it will fail sometimes.

 

--

taskset 1 ./traps_test -1

./traps_test -1

--

 

--

Running test 53 for exception 0x3f: Stack set to non-existant L1^M

... External Memory Addressing Error^M

Kernel OOPS in progress^M

HW Error context^M

CURRENT PROCESS:^M

COMM=traps_test PID=315^M

CPU = 0^M

TEXT = 0x004b0040-0x004b5320        DATA = 0x004b5340-0x004b7700^M

BSS = 0x004b7700-0x004b79e0  USER-STACK = 0x004b8f64^M

^M

return address: [0x00009e82]; contents of:^M

0x00009e60:  0171  0174  0172  0175  0166  0140  0167  31c3 ^M

0x00009e70:  0140  017c  017d  017e  0179  0140  017b  6000 ^M

0x00009e80:  3620 [3628] 3630  3638  e108  203c  e148  ffe0 ^M

0x00009e90:  e109  a274  e149  0000  9341  0023  e108  9eaa ^M

Looks like this was a deferred error - sorry^M

It might be better to look around here : ^M

-------------------------------------------^M

^M

ADSP-BF561-0.5 600(MHz CCLK) 100(MHz SCLK) (mpu off)^M

Linux version 2.6.28.10-ADI-2009R1-svn7106^M

Built with gcc version 4.1.2 (ADI svn)^M

^M

SEQUENCER STATUS:               Not tainted^M

SEQSTAT: 0000e000  IPEND: 4b0932  SYSCFG: 0006^M

  EXCAUSE   : 0x0^M

  interrupts disabled^M

  physical IVG5 asserted : <0x0000a00c> { _evt_ivhw + 0x0 }^M

  physical IVG8 asserted : <0x0000a16c> { _evt_evt8 + 0x0 }^M

  physical IVG11 asserted : <0x0000a1f0> { _evt_evt11 + 0x0 }^M

  logical irq   6 mapped  : <0x00007d54> { _timer_interrupt + 0x0 }^M

  logical irq  35 mapped  : <0x000a3048> { _bfin_serial_dma_rx_int + 0x0 }^M

  logical irq  36 mapped  : <0x000a35d8> { _bfin_serial_dma_tx_int + 0x0 }^M

  logical irq  69 mapped  : <0x0000aaf4> { _ipi_handler + 0x0 }^M

  logical irq  82 mapped  : <0x000aa49c> { _smc_interrupt + 0x0 }^M

RETE: <0x00000000> /* Maybe null pointer? */^M

RETN: <0x004a2000> /* kernel dynamic memory */^M

RETX: <0x004b0afc> [ traps_test + 0xabc ]^M

RETS: <0x004b09c6> [ traps_test + 0x986 ]^M

PC  : <0x004b0932> [ traps_test + 0x8f2 ]^M

^M

PROCESSOR STATE:^M

R0 : 00000001    R1 : 00000035    R2 : 00000028    R3 : 00000035^M

R4 : 00000005    R5 : 00000000    R6 : 00000005    R7 : 00000000^M

P0 : 00000350    P1 : 00000035    P2 : 004b0a48    P3 : 004b8f68^M

P4 : 004b76fc    P5 : 004b75ac    FP : ffafff00    SP : 004a1f24^M

LB0: 004b446d    LT0: 004b4460    LC0: 00000000^M

LB1: 006f1351    LT1: 006f1350    LC1: 00000000^M

B0 : 00000000    L0 : 00000000    M0 : 00000000    I0 : 004b8fe8^M

B1 : 00000000    L1 : 00000000    M1 : 00000000    I1 : 004b8f68^M

B2 : 00000000    L2 : 00000000    M2 : 00000000    I2 : 00000000^M

B3 : 00000000    L3 : 00000000    M3 : 00000000    I3 : 00000000^M

A0.w: 00000000   A0.x: 00000000   A1.w: 00000000   A1.x: 00000000^M

USP : ffafff00  ASTAT: 02003026^M

^M

-------------------------------------------^M

^M

ADSP-BF561-0.5 600(MHz CCLK) 100(MHz SCLK) (mpu off)^M

Linux version 2.6.28.10-ADI-2009R1-svn7106^M

Built with gcc version 4.1.2 (ADI svn)^M

^M

SEQUENCER STATUS:               Not tainted^M

SEQSTAT: 0000e03f  IPEND: 8030  SYSCFG: 0006^M

  HWERRCAUSE: 0x3^M

  EXCAUSE   : 0x3f^M

  interrupts disabled^M

  physical IVG5 asserted : <0x0000a00c> { _evt_ivhw + 0x0 }^M

  physical IVG15 asserted : <0x00009e28> { _schedule_and_signal + 0x0 }^M

  logical irq   6 mapped  : <0x00007d54> { _timer_interrupt + 0x0 }^M

  logical irq  35 mapped  : <0x000a3048> { _bfin_serial_dma_rx_int + 0x0 }^M

  logical irq  36 mapped  : <0x000a35d8> { _bfin_serial_dma_tx_int + 0x0 }^M

  logical irq  69 mapped  : <0x0000aaf4> { _ipi_handler + 0x0 }^M

  logical irq  82 mapped  : <0x000aa49c> { _smc_interrupt + 0x0 }^M

RETE: <0x00000000> /* Maybe null pointer? */^M

RETN: <0x004a2000> /* kernel dynamic memory */^M

RETX: <0x004b0afc> [ traps_test + 0xabc ]^M

RETS: <0x004b09c6> [ traps_test + 0x986 ]^M

PC  : <0x00009e82> { _schedule_and_signal + 0x5a }^M

^M

PROCESSOR STATE:^M

R0 : 00000000    R1 : 00000035    R2 : 00000028    R3 : 00000035^M

R4 : 00000005    R5 : 00000000    R6 : 00000005    R7 : 00000000^M

P0 : 00000350    P1 : 00000035    P2 : 004b0a48    P3 : 004b8f68^M

P4 : 004b76fc    P5 : 004b75ac    FP : ffafff00    SP : 004a1e48^M

LB0: 004b446d    LT0: 004b4460    LC0: 00000000^M

LB1: 006f1351    LT1: 006f1350    LC1: 00000000^M

B0 : 00000000    L0 : 00000000    M0 : 00000000    I0 : 004b8fe8^M

B1 : 00000000    L1 : 00000000    M1 : 00000000    I1 : 004b8f68^M

B2 : 00000000    L2 : 00000000    M2 : 00000000    I2 : 00000000^M

B3 : 00000000    L3 : 00000000    M3 : 00000000    I3 : 00000000^M

A0.w: 00000000   A0.x: 00000000   A1.w: 00000000   A1.x: 00000000^M

USP : ffafff00  ASTAT: 02003026^M

^M

Hardware Trace:^M

   0 Target : <0x0000529c> { _trap_c + 0x0 }^M

     Source : <0x0000a0a2> { _evt_ivhw + 0x96 } CALL pcrel^M

   1 Target : <0x0000a084> { _evt_ivhw + 0x78 }^M

     Source : <0x0000a080> { _evt_ivhw + 0x74 } IF !CC JUMP^M

   2 Target : <0x0000a00c> { _evt_ivhw + 0x0 }^M

     Source : <0x00009e80> { _schedule_and_signal + 0x58 } 0x3620^M

   3 Target : <0x00009e28> { _schedule_and_signal + 0x0 }^M

     Source : <0x0000a100> { _evt_ivhw + 0xf4 } RTI^M

   4 Target : <0x0000a0ac> { _evt_ivhw + 0xa0 }^M

     Source : <0x00009d62> { _ret_from_exception + 0x66 } RTS^M

   5 Target : <0x00009cfc> { _ret_from_exception + 0x0 }^M

     Source : <0x0000a0a8> { _evt_ivhw + 0x9c } CALL pcrel^M

   6 Target : <0x0000a0a6> { _evt_ivhw + 0x9a }^M

     Source : <0x000053d0> { _trap_c + 0x134 } RTS^M

^M

Kernel Stack^M

Stack info:^M

SP: [0x004a1dac] <0x004a1dac> /* kernel dynamic memory */^M

Memory from 0x004a1da0 to 004a2000^M

004a1da0:<0000f1d4><00103700> 00030002 [03102060] 0000000c <0000f22c> 00000000  3e303066 ^M

004a1dc0: 202a2f20  6e72656b  0000003f  ffafff00 <0001f00c> 03102060  031022b8  03102060 ^M

004a1de0: 00000000  00000007  00000000  0000003f  031022b8  03102060  004a1e7c  ffafff00 ^M

004a1e00:<0001f37c> 031780a8  004a1e4c  00000000  004a1f24  004b0950 <0001f450> 03102060 ^M

004a1e20:<0000a0a6> ffc00014  004b76fc  00000000  00000005  00000000  00000005 <00015eca>^M

004a1e40:<0001fae0> 00000000  004b0afc  00008030  0000e03f  00000000  004a2000  004b0afc ^M

004a1e60: 00009e82 <004b09c6> 00000000  02003026  006f1351  004b446d  006f1350  004b4460 ^M

004a1e80: 00000000  00000000  00000000  00000000  00000000  00000000  00000000  00000000 ^M

004a1ea0: 00000000  00000000  00000000  00000000  00000000  00000000  00000000  00000000 ^M

004a1ec0: 00000000  00000000  00000000  00000000  004b8f68  004b8fe8  ffafff00  ffafff00 ^M

004a1ee0: 004b75ac  004b76fc  004b8f68  004b0a48  00000035  00000350  00000000  00000005 ^M

004a1f00: 00000000  00000005  00000035  00000028  00000035  00000000  00000000  00000350 ^M

004a1f20: 00000006  004b0932  004b0932  0000e000  00000000  004a2000  004b0afc  004b0932 ^M

004a1f40:<004b09c6> 00000001  02003026  006f1351  004b446d  006f1350  004b4460  00000000 ^M

004a1f60: 00000000  00000000  00000000  00000000  00000000  00000000  00000000  00000000 ^M

004a1f80: 00000000  00000000  00000000  00000000  00000000  00000000  00000000  00000000 ^M

004a1fa0: 00000000  00000000  00000000  004b8f68  004b8fe8  ffafff00  ffafff00  004b75ac ^M

004a1fc0: 004b76fc  004b8f68  004b0a48  00000035  00000350  00000000  00000005  00000000 ^M

004a1fe0: 00000005  00000035  00000028  00000035  00000001  00000001  00000350  00000006 ^M

Return addresses in stack:^M

    address : <0x0000f1d4> { _try_to_wake_up + 0x30 }^M

    address : <0x00103700> { __spin_unlock_irqrestore + 0xc }^M

    address : <0x0000f22c> { _try_to_wake_up + 0x88 }^M

    address : <0x0001f00c> { _signal_wake_up + 0x24 }^M

    address : <0x0001f37c> { _send_signal + 0xc8 }^M

    address : <0x0001f450> { _specific_send_sig_info + 0xc }^M

    address : <0x0000a0a6> { _evt_ivhw + 0x9a }^M

    address : <0x00015eca> { _printk + 0x12 }^M

    address : <0x0001fae0> { _force_sig_info + 0x78 }^M

    address : <0x004b09c6> [ traps_test + 0x986 ]^M

    address : <0x004b09c6> [ traps_test + 0x986 ]^M

Modules linked in:^M

Kernel panic - not syncing: Kernel exception^M

CPU1: stopping^M

Hardware Trace:^M

Stack info:^M

SP: [0x03ed3e48] <0x03ed3e48> /* kernel dynamic memory */^M

FP: (0x03ed3e48)^M

Memory from 0x03ed3e40 to 03ed4000^M

03ed3e40: 03ed3e48  00000001 [00000000]<0000ac0e> ffe05000  00000000  00000000  00000001 ^M

03ed3e60: 0000001f  00000000  00000001  00159248  03ed4000 <000332fe> 03efe300  00000045 ^M

03ed3e80: 00152010  00000000  00000000  00000045  00000000  00000006  00152010  00165028 ^M

03ed3ea0:<0003470e> 001699e0  00000000  00000000  00000000 <0001a490> 00152010  00000000 ^M

03ed3ec0:<00005942> 00000045  00193438  006f1d22  00000000  00000000 <00009f92> ffc00014 ^M

03ed3ee0: 001528ac  00000000  03ed2008  00000000  00000000  00000000  00001b3c  02002020 ^M

03ed3f00: 00060000  00000000  0317c000  006f0b6e  00001b3c <00001b14> 00000007  02002020 ^M

03ed3f20: 006f1351  006f1d25  006f1350  006f1d22  00000000  00000000  00000923  00000000 ^M

03ed3f40: 003d08e6  00000000  00000000  00000000  00000000  00000000  00000000  00000000 ^M

03ed3f60: 00000000  00000000  00000000  00000000  00000000  00000000  00000000  00000000 ^M

03ed3f80: 006f8f7c  006f6f54  03ed4000  03ed4000  00001b00  001528ac  00000000  00155064 ^M

03ed3fa0: 00155000  03ed2000  03ed2008  00000000  00000000  00000000  00000004  0000001f ^M

03ed3fc0: 03ed2000  0000ffff  0000ffff  03ed2000  00000006  03ed2008  00000000  00000000 ^M

03ed3fe0:<00001a2a> 00000001  0000001f  00000000  00184234  00000000  00000000  00000000 ^M

Return addresses in stack:^M

   frame  1 : <0x0000ac0e> { _ipi_handler + 0x11a }^M

    address : <0x000332fe> { _handle_IRQ_event + 0x46 }^M

    address : <0x0003470e> { _handle_percpu_irq + 0x4e }^M

    address : <0x0001a490> { _irq_enter + 0x18 }^M

    address : <0x00005942> { _asm_do_IRQ + 0x52 }^M

    address : <0x00009f92> { __common_int_entry + 0x72 }^M

    address : <0x00001b14> { _default_idle + 0x14 }^M

    address : <0x00001a2a> { _cpu_idle + 0x22 }^M

^M

^M

U-Boot 2008.10-svn1954 (ADI-2009R1-rc2) (Jul  1 2009 - 00:35:43)^M

^M

CPU:   ADSP bf561-0.3 (Detected Rev: 0.5) (bypass boot)^M

Board: ADI BF561 EZ-Kit Lite board^M

       Support: http://blackfin.uclinux.org/^M

Clock: VCO: 600 MHz, Core: 600 MHz, System: 100 MHz^M

RAM:   64 MB^M

Flash:  8 MB^M

In:    serial^M

Out:   serial^M

Err:   serial^M

Net:   MAC:   00:E0:22:FE:BA:2A^M

Hit any key to stop autoboot:  5

bfin>

--

 

Follow-ups

 

--- Graf Yang                                                2009-08-12 04:33:12

It's a serial driver bug, now is fixed.

 

--- Vivi Li                                                  2009-08-14 00:16:58

Test still fails in following version:

--

kernel:    Linux release 2.6.28.10-ADI-2009R1-svn7186, build #14 SMP Fri Aug 14

11:12:09 GMT 2009

toolchain: bfin-uclinux-gcc release gcc version 4.1.2 (ADI svn)

user-dist: release svn-8719, build #7 Fri Aug 14 11:11:10 GMT 2009

--

 

Board info in u-boot:

--

U-Boot 2008.10-svn1954 (ADI-2009R1-rc2) (Jul  1 2009 - 00:35:43)^M

^M

CPU:   ADSP bf561-0.3 (Detected Rev: 0.5) (bypass boot)^M

Board: ADI BF561 EZ-Kit Lite board^M

       Support: http://blackfin.uclinux.org/^M

Clock: VCO: 600 MHz, Core: 600 MHz, System: 100 MHz^M

RAM:   64 MB^M

Fl

RAM size is 64 MB.

ash:  8 MB^M

In:    serial^M

Out:   serial^M

Err:   serial^M

Net:   MAC:   00:E0:22:FE:BA:2A^M

Hit any key to stop autoboot:  5 ^H^H^H 0 ^M

bfin>

--

 

--- Graf Yang                                                2009-08-17 07:27:42

Since Yi's modification about bug [#5412]on branch 09R1, SMP kernel even can not

bootup.

 

There is code '.align 8' in old version (rev7120)

arch/blackfin/mach-common/entry.S

New version 7193 have not this code.

 

Adding NOPs instead of '.align 8', kernel can bootup.

 

Need dig deeper.

 

--- Graf Yang                                                2009-08-18 05:31:31

The bootup issue is reported at,

https://blackfin.uclinux.org/gf/project/uclinux-dist/tracker/?action=TrackerItemEdit&tracker_item_id=5448

 

--- Sonic Zhang                                              2009-08-18 06:06:13

        { 0x3f, l1_instruction_read, SIGBUS, "Read of L1 instruction"

},

        { 0x3f, l1_non_existant_read, SIGBUS, "Read non-existant L1"

},

        { 0x3f, stack_instruction, SIGBUS, "Stack set to L1

instruction" },

        { 0x3f, stack_l1_non_existant, SIGBUS, "Stack set to non-existant

L1" },

 

These 4 test cases will cause doulb hardware exception in SMP kernel on bf561

v0.5. First 2 are at inst "R1 = [P2];" with P2 in L1 instruction SRAM

or non-existant address. Next 2 are at inst "unlink;" with sp/fp in L1

instruction SRAM or non-existant adress.

 

This issue can't be found in UP kernel. And it can be walked around in SMP

kernel by set fp->pc to SAFE_USER_INSTRUCTION in traps.c before return from

hardware exception.

 

This issue looks similar to anomaly 05000461, which only covers call and jump

instruction.

 

--- Sonic Zhang                                              2009-08-18 06:18:09

This issue can't be found in SMP kernel on bf561 core B as well.

So, it is only in SMP kernel on bf561 core A.

 

--- Sonic Zhang                                              2009-08-18 06:23:38

SMP kernel config for bf561 v0.5 is attached.

 

--- Sonic Zhang                                              2009-08-19 02:51:55

After disable data cache in both UP and SMP kernel for bf561 v0.5, we can easily

replicate this issue on both core a and b(under SMP). Data cache may hide this

issue.

 

It looks that anomaly 05000281 "False Hardware Error when ISR context is

not restored" still exists on bf561 v0.5.

 

--- Graf Yang                                                2009-08-20 05:46:40

After discussion by Robin and Sonic, this bug is caused by an unfixed anomaly

05000281 on BF561-0.5. We have add a temporary walk around. Waiting for official

confirm.

 

--- Sonic Zhang                                              2010-04-16 00:32:46

Down priority. Close if this anomaly is confirmed.

 

 

 

    Files

    Changes

    Commits

    Dependencies

    Duplicates

    Associations

    Tags

 

File Name     File Type     File Size     Posted By

config.double_exception_smp_core_a    application/octet-stream    26205    Sonic Zhang

Outcomes