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