[U-Boot] Blackfin BF547 board testing.
Dimitar Penev
dpn at switchfin.org
Wed Aug 22 17:13:54 CEST 2012
Hi Guys,
We have developed Blackfin based board using BF547-Rev04.
At the moment we face strange probably hardware issue.
Let me share few details
- GCC assumes rev 0.2 of the CPU is this OK with the rev 0.4 which we have
on board?
- The DDR routing due to a PCB mistake is not perfect now so we had to
reduce the SCLK to 75 MHz
- Now mtest in uboot is working OK for a very long time.
- as the uCinux boots we get 2 different kind of OOPS. The OOPS trace are
exactly the same on each try.
Which one of the OOPS we will get depends even from the place in memory
we put uImage before 'bootm' it.
Let me copy one of the OOPS at the end of this message.
The first reason for this behavior seems to be memory issue.
At the moment we have soldered two Micron memory chips MT46V64M8BN-5B. (On
the board we have footprints for 4 chips,
two are not soldered and their traces are hanging as a bridged taps now)
We are using Vtt active termination. The series resistors are 22 Ohm and
the Vtt pull-ups are 47 Ohm.
We have experimented a lot varying the SCLK and keeping EBIU_DDRCTL[0..2]
as per the excel document
available at http://docs.blackfin.uclinux.org/doku.php?id=bfin:sdram.
The most stable behavior we have got around SCLK-75MHz. For higher and lower
frequency we get worse results.
With SCLK=75 MHz mtest is working stable. Can we assume that our memory is
OK for this settings then?
The OOPS we get looks stable as well. All the trace data are exactly
repeatable.
Can you please point us to the way/direction so we narrow down the issue.
=================================================================================
Freeing unused kernel memory: 120k freed
Undefined instruction
<5> - May be used to emulate instructions that are not defined for
<5> a particular processor implementation.
Kernel OOPS in progress
Deferred Exception context
CURRENT PROCESS:
COMM=mtdblock0 PID=141 CPU=0
invalid mm
return address: [0x0006a5fc]; contents of:
0x0006a5d0: 0000 0000 3044 a0ea 4ee2 e3ff ffd5 a060
0x0006a5e0: 0c00 1809 304d 6c66 5201 0127 a0a1 0484
0x0006a5f0: e2fe 7568 6c66 0127 3045 a0a1 [0484] e2fe
0x0006a600: 7561 0000 e14a 001f e10a 60a0 9111 e2ff
ADSP-BF547-0.2(Detected 0.4) 375(MHz CCLK) 75(MHz SCLK) (mpu off)
Linux version 3.0.8-ADI-2011R1switchfin (root at Switchvoice) (gcc version
4.3.5 (ADI-2011R1-RC4) ) #2 Wed Aug 22 11:17:03 EEST 2012
SEQUENCER STATUS: Not tainted
SEQSTAT: 00000021 IPEND: 8008 IMASK: 003f SYSCFG: 0006
Peripheral interrupts masked off
Kernel interrupts masked off
EXCAUSE : 0x21
physical IVG3 asserted : <0xffa0077c> { _trap + 0x0 }
physical IVG15 asserted : <0xffa00fc4> { _evt_system_call + 0x0 }
logical irq 6 mapped : <0x00006240> { _bfin_coretmr_interrupt + 0x0 }
logical irq 48 mapped : <0x000d7230> { _bfin_serial_dma_rx_int + 0x0 }
logical irq 49 mapped : <0x000d6fb4> { _bfin_serial_dma_tx_int + 0x0 }
RETE: <0x00000000> /* Maybe null pointer? */
RETN: <0x0216ff18> /* kernel dynamic memory (maybe user-space) */
RETX: <0x00000480> /* Maybe fixed code section */
RETS: <0x000b419a> { _blk_update_request + 0x7a }
PC : <0x0006a5fc> { _bio_free + 0x48 }
DCPLB_FAULT_ADDR: <0x0204eca8> /* kernel dynamic memory (maybe user-space)
*/
ICPLB_FAULT_ADDR: <0x0006a5fc> { _bio_free + 0x48 }
PROCESSOR STATE:
R0 : 0204a6a0 R1 : 0204ec80 R2 : 00000000 R3 : 00000000
R4 : 00000000 R5 : 00000000 R6 : 00001000 R7 : 00001000
P0 : 001fc064 P1 : 0204a6a0 P2 : 0204a6e4 P3 : 0204a6a0
P4 : 0204eca0 P5 : 0204a6a0 FP : 0217592c SP : 0216fe3c
LB0: 000c2cf6 LT0: 000c2cf6 LC0: 00000000
LB1: 00066470 LT1: 00066464 LC1: 00000008
B0 : 0000000c L0 : 00000000 M0 : 0201b92c I0 : 00000003
B1 : 0000001f L1 : 00000000 M1 : 00000001 I1 : 0605ac00
B2 : 0018589c L2 : 00000000 M2 : 00000019 I2 : 0204a6a0
B3 : 00000001 L3 : 00000000 M3 : 00000000 I3 : 00000000
A0.w: 00000000 A0.x: 00000000 A1.w: 00000000 A1.x: 00000000
USP : 00000000 ASTAT: 02003025
Hardware Trace:
0 Target : <0x00004028> { _trap_c + 0x0 }
Source : <0xffa00710> { _exception_to_level5 + 0xa4 } JUMP.L
1 Target : <0xffa0066c> { _exception_to_level5 + 0x0 }
Source : <0xffa00520> { _bfin_return_from_exception + 0x18 } RTX
2 Target : <0xffa00508> { _bfin_return_from_exception + 0x0 }
Source : <0xffa005c4> { _ex_trap_c + 0x74 } JUMP.S
3 Target : <0xffa00550> { _ex_trap_c + 0x0 }
Source : <0xffa007d6> { _trap + 0x5a } JUMP (P4)
4 Target : <0xffa0077c> { _trap + 0x0 }
FAULT : <0x0006a5fc> { _bio_free + 0x48 } 0x0484
Source : <0x0006a5fa> { _bio_free + 0x46 } P1 = W[P4 + 2]
5 Target : <0x0006a5f4> { _bio_free + 0x40 }
Source : <0x0006a5e2> { _bio_free + 0x2e } IF CC JUMP pcrel
6 Target : <0x0006a5de> { _bio_free + 0x2a }
Source : <0x0006a5ce> { _bio_free + 0x1a } IF CC JUMP pcrel
7 Target : <0x0006a5b4> { _bio_free + 0x0 }
Source : <0x0006a60e> { _bio_fs_destructor + 0xa } CALL pcrel
8 Target : <0x0006a604> { _bio_fs_destructor + 0x0 }
Source : <0x000690ba> { _bio_put + 0x3a } JUMP (P2)
9 Target : <0x000690b0> { _bio_put + 0x30 }
Source : <0x000690ac> { _bio_put + 0x2c } IF CC JUMP pcrel
10 Target : <0x000690aa> { _bio_put + 0x2a }
Source : <0x0006909c> { _bio_put + 0x1c } IF CC JUMP pcrel (BP)
11 Target : <0x00069080> { _bio_put + 0x0 }
Source : <0x0006d48c> { _mpage_end_io + 0xa8 } CALL pcrel
12 Target : <0x0006d484> { _mpage_end_io + 0xa0 }
Source : <0x0006d42e> { _mpage_end_io + 0x4a } IF CC JUMP pcrel
13 Target : <0x0006d42a> { _mpage_end_io + 0x46 }
Source : <0x00024028> { ___wake_up_bit + 0x24 } RTS
14 Target : <0x00024024> { ___wake_up_bit + 0x20 }
Source : <0x0000b6ca> { ___wake_up + 0x32 } RTS
15 Target : <0x0000b6c4> { ___wake_up + 0x2c }
Source : <0x0000b6b6> { ___wake_up + 0x1e } IF CC JUMP pcrel (BP)
Kernel Stack
Stack info:
SP: [0x0216ff2c] <0x0216ff2c> /* kernel dynamic memory (maybe user-space)
*/
FP: (0x0216ffa0)
Memory from 0x0216ff20 to 02170000
0216ff20: 00000000 02054eb0 001fc098 [00000000] 00000200 02158990
000b4422 0217592c
0216ff40: 001fba18 00000000 00000000 00000000 02009d30 00000000
021abe00 00000000
0216ff60: 000052d5 000b4e0c 02009d20 0217592c 000e786c 02009d20
001fba18 00000000
0216ff80: 000e787e 00000000 0217592c 000e7820 00000000 0216e008
0216e000 00208458
0216ffa0:(00000000)<00023d08> 0201bea8 000e7820 00000000 02009d20
00000000 00000000
0216ffc0: 00000000 00000000 00000000 00023cac 00000000 02009d20
00000000 0216ffdc
0216ffe0: 0216ffdc
00000000 00000000 00000000 00000000 ffffffff 00000006
Return addresses in stack:
frame 1 : <0x00023d08> { _kthread + 0x5c }
address : <0x00001576> { _kernel_thread_helper + 0x6 }
Modules linked in:
Kernel panic - not syncing: Kernel exception
Hardware Trace:
Stack info:
SP: [0x0216fd48] <0x0216fd48> /* kernel dynamic memory (maybe user-space)
*/
FP: (0x0216fdfc)
Memory from 0x0216fd40 to 02170000
0216fd40: 0216fd48 00000013 [001b0688] 001724ec 0216fe3c 001b0688
001ef6fb 001ef6fb
0216fd60: 001ef6fb 0216fd90 0217592c 00004464 0216fe3c ffe02014
0204a6a0 00008008
0216fd80: 00000004 00000021 00000013 0216fe3c 0000003f ffffffff
00000000 02009d20
0216fda0: 00030001 00000000 00000000 0216fddc 0000cd2a 0216fddc
00000000 0216fdf0
0216fdc0: 0000a6c4 02019d8c 00000000 0216fdfc 0000cd2a 0216fdfc
00000000 0216fe10
0216fde0: 0000a6c4 02019d8c 02054d60 02054d8c 0216fe10 0000a6d4
00000000 (00000000)
0216fe00:<0000c5c4> 02019d60 001fc064 001fc064 0216fe40 <0000af96>
ffa00714 001ec000
0216fe20: 00008008 00000021 00000000 00000000 00000000 002f10b8
00000480 00000480
0216fe40: 00008008 00000021 00000000 0216ff18 00000480 0006a5fc
000b419a 0204a6a0
0216fe60: 02003025 00066470 000c2cf6 00066464 000c2cf6 00000008
00000000 00000000
0216fe80: 00000000 00000000 00000000 00000001 0018589c 0000001f
0000000c 00000000
0216fea0: 00000000 00000000 00000000 00000000 00000019 00000001
0201b92c 00000000
0216fec0: 0204a6a0 0605ac00 00000003 00000000 0217592c 0204a6a0
0204eca0 0204a6a0
0216fee0: 0204a6e4 0204a6a0 001fc064 00001000 00001000 00000000
00000000 00000000
0216ff00: 00000000 0204ec80 0204a6a0 0204a6a0 001fc064 00000006
0204a6a0 001fba18
0216ff20: 00000000 02054eb0 001fc098 00000000 00000200 02158990
000b4422 0217592c
0216ff40: 001fba18 00000000 00000000 00000000 02009d30 00000000
021abe00 00000000
0216ff60: 000052d5 000b4e0c 02009d20 0217592c 000e786c 02009d20
001fba18 00000000
0216ff80: 000e787e 00000000 0217592c 000e7820 00000000 0216e008
0216e000 00208458
0216ffa0: 00000000 <00023d08> 0201bea8 000e7820 00000000 02009d20
00000000 00000000
0216ffc0: 00000000 00000000 00000000 00023cac 00000000 02009d20
00000000 0216ffdc
0216ffe0: 0216ffdc
00000000 00000000 00000000 00000000 ffffffff 00000006
Return addresses in stack:
frame 1 : <0x0000c5c4> { _activate_task + 0x40 }
address : <0x0000af96> { _check_preempt_curr + 0x72 }
address : <0x00023d08> { _kthread + 0x5c }
address : <0x00001576> { _kernel_thread_helper + 0x6 }
=======================================================================================
Thank you!
Dimitar
More information about the U-Boot
mailing list