[#5793] bf561 smp: kernel panic if enabling high resolution timer
Submitted By: Yi Li
Open Date
2009-12-25 04:37:36 Close Date
2010-01-04 01:04:12
Priority:
Medium Assignee:
Yi Li
Status:
Closed Fixed In Release:
N/A
Found In Release:
2010R1 Release:
Category:
N/A Board:
N/A
Processor:
BF561 Silicon Revision:
Is this bug repeatable?:
Yes Resolution:
Fixed
Uboot version or rev.:
Toolchain version or rev.:
2009R1
App binary format:
N/A
Summary: bf561 smp: kernel panic if enabling high resolution timer
Details:
If enable SMP on BF561 and configure HRT as bellow, kernel will panic:
CONFIG_GENERIC_TIME=y
CONFIG_GENERIC_CLOCKEVENTS=y
# CONFIG_TICKSOURCE_GPTMR0 is not set
CONFIG_TICKSOURCE_CORETMR=y
CONFIG_GPTMR0_CLOCKSOURCE=y
CONFIG_TICK_ONESHOT=y
CONFIG_HIGH_RES_TIMERS=y
CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
## Booting kernel from Legacy Image at 01000000 ...
Image Name: bf561-2.6.32.2-ADI-2010R1-pre-sv
Image Type: Blackfin Linux Kernel Image (gzip compressed)
Data Size: 4495281 Bytes = 4.3 MB
Load Address: 00001000
Entry Point: 001aed78
Verifying Checksum ... OK
Uncompressing Kernel Image ... OK
Starting Kernel at = 001aed78
Linux version 2.6.32.2-ADI-2010R1-pre-svn8064 (adam@adam-laptop) (gcc version 4.1.2 (ADI svn)) #101 SMP Tue Dec 22 17:14:44 CST 2009
register early platform devices
bootconsole [early_shadow0] enabled
bootconsole [early_BFuart0] enabled
early printk enabled on early_BFuart0
Board Memory: 64MB
Kernel Managed Memory: 64MB
Memory map:
fixedcode = 0x00000400-0x00000490
text = 0x00001000-0x0011e4f0
rodata = 0x0011e500-0x0017fa9c
bss = 0x00180000-0x001924a8
data = 0x001924c0-0x001a2000
stack = 0x001a2000-0x001a4000
init = 0x001a4000-0x008ce000
available = 0x008ce000-0x03f00000
DMA Zone = 0x03f00000-0x04000000
Hardware Trace Active and Enabled
Boot Mode: 0
Blackfin support (C) 2004-2009 Analog Devices, Inc.
Compiled for ADSP-BF561 Rev 0.5
Blackfin Linux support by http://blackfin.uclinux.org/
Processor Speed: 600 MHz core clock and 100 MHz System Clock
NOMPU: setting up cplb tables
NOMPU: setting up cplb tables
Instruction Cache Enabled for CPU0
External memory: cacheable in instruction cache
L2 SRAM : uncacheable in instruction cache
Data Cache Enabled for CPU0
External memory: cacheable (write-through) in data cache
L2 SRAM : uncacheable in data cache
Built 1 zonelists in Zone order, mobility grouping off. Total pages: 16002
Kernel command line: root=/dev/mtdblock0 rw clkin_hz=30000000 earlyprintk=serial,uart0,57600 console=ttyBF0,57600 ip=192.168.1.102:192.168.1.101:192.168.0.1:255.255.255.0:bf561-ezkit:eth0:off
PID hash table entries: 256 (order: -2, 1024 bytes)
Dentry cache hash table entries: 8192 (order: 3, 32768 bytes)
Inode-cache hash table entries: 4096 (order: 2, 16384 bytes)
Memory available: 54900k/65536k RAM, (7336k init code, 1141k kernel code, 535k data, 1024k dma, 600k reserved)
Hierarchical RCU implementation.
NR_IRQS:121
Configuring Blackfin Priority Driven Interrupts
console [ttyBF0] enabled, bootconsole disabled
console [ttyBF0] enabled, bootconsole disabled
Calibrating delay loop... 1187.84 BogoMIPS (lpj=2375680)
Security Framework initialized
Mount-cache hash table entries: 512
CoreB bootstrap code to SRAM ff600000 via DMA.
Booting Core B.
Instruction Cache Enabled for CPU1
External memory: cacheable in instruction cache
L2 SRAM : uncacheable in instruction cache
Data Cache Enabled for CPU1
External memory: cacheable (write-through) in data cache
L2 SRAM : uncacheable in data cache
Calibrating delay loop...
Brought up 2 CPUs
SMP: Total of 2 processors activated (4.09 BogoMIPS).
Blackfin Scratchpad data SRAM: 4 KB
Blackfin Scratchpad data SRAM: 4 KB
Blackfin L1 Data A SRAM: 16 KB (16 KB free)
Blackfin L1 Data A SRAM: 16 KB (16 KB free)
Blackfin L1 Data B SRAM: 16 KB (16 KB free)
Blackfin L1 Data B SRAM: 16 KB (16 KB free)
Blackfin L1 Instruction SRAM: 16 KB (15 KB free)
Blackfin L1 Instruction SRAM: 16 KB (15 KB free)
Blackfin L2 SRAM: 128 KB (127 KB free)
NET: Registered protocol family 16
Blackfin DMA Controller
ezkit_init(): registering device resources
bio: create slab <bio-0> at 0
Switching to clocksource bfin_cs_gptimer0
1589.24 BogoMIPS (lpj=3178496)
------------[ cut here ]------------
kernel BUG at kernel/hrtimer.c:1255!
Kernel panic - not syncing: BUG()
Hardware Trace:
Stack info:
SP: [0x0204bbc0] <0x0204bbc0> /* kernel dynamic memory (maybe user-space) */
FP: (0x0204bbc4)
Memory from 0x0204bbc0 to 0204c000
0204bbc0:[0203a340](0204bbe8)<00018bd4> 0204bcb4 001516e4 00186b22 00186b22 00186f22
0204bbe0: 0204bc04 0204bc04 (0204bc8c)<000057be> 0204bcb4 ffe02014 0203a340 00008048
0204bc00: 0208ee44 0000003f 0000001f 00000001 00000001 0000003f 0000003f <0000c136>
0204bc20:<0011e2b0><0009cc9a> 0204bc48 <0000bb7e> 0204bc48 <0000bba8> cccccccd 0204bce0
0204bc40:<00012498> 009519a0 0204bc70 <0003989c> 02009a60 0018d13c 00000046 00000000
0204bc60: 00000000 008ccc60 00000000 0095419c 0204bc98 0204bc98 <0003b09e> 00197a80
0204bc80: 00000046 0204be84 ffe05000 (0204bdb4)<0000a754> 00182068 00008048 00000021
0204bca0: 00000000 00000006 <0002e56c> 009543ac 00000480 00000480 00008048 00000021
0204bcc0: 00000000 0204bd90 00000480 0002c864 <0000817a> 00000000 00003065 0005d1ac
0204bce0: 000a3694 0005d19a 000a3674 00000000 00000000 00000000 00000000 00000000
0204bd00: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
0204bd20: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
0204bd40: 00000002 0204c000 0204bdb4 00193260 009542a8 0203a340 00087d40 008cc568
0204bd60: 00000001 00000006 00000000 00000000 00000006 0204be84 0000001f 00000000
0204bd80: 00000000 00000000 00000001 00000006 0204bda4 <0000b7ce> 00000100 008cc488
0204bda0: 00954440 0204bde4 <0000c074> fffffffc 00000100 (0204bde4)<0000817a> 00193260
0204bdc0: 0018d13c 0203a340 00000006 00000000 00000000 00000006 00193260 0208ede4
0204bde0: 00000001 (0204bdfc)<0003989c> 001932a8 0000003f 0000003f <0000c136>(0204be24)
0204be00:<0003b072> 00196280 00000006 00000000 ffe05000 0204a000 <0001dabe> 0204a000
0204be20: 00000025 (0204be40)<00005a16> 008cca18 00000006 00000046 0204be4c <0003989c>
0204be40:(0204be70)<0000b2b0> ffc00014 009549a0 00199378 00000040 00197a20 00000045
0204be60: 00000000 00000000 <0001dabe> 00000480 (00000000)<0000ad28><00005a16> 0204be90
0204be80:<000059e8> 000134de 00008050 00000026 00000000 00000000 00000000 000134de
0204bea0:<000134b8> 00000006 00002060 0005d1ac 000a3694 0005d19a 000a3674 00000000
0204bec0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
0204bee0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
0204bf00: 00000000 00000000 00000000 00000000 00000002 0204c000 0204bf6c 0207e0c0
0204bf20: 009549a0 0203a340 00182068 00000068 feb00000 00199378 00000040 ffe05000
0204bf40: 0204a000 00000004 0000001f 00000000 0000ffff 0000ffff feb00000 00000006
0204bf60: 009549a0 0203a340 00199378 0204bfa0 <0011ce64> 00000001 00199378 00000000
0204bf80: 0204a000 0204a008 00000000 0204a000 0203a4cc 008ccc60 0204a000 0204a000
0204bfa0: 0204bfd0 <00001b8c> 00001e08 00180268 00000000 0204a008 00000000 00000000
0204bfc0: 00000000 <001b9a88><001ba0c8> 00000635 0204bff0 <001b9e16> ffe05000 00000000
0204bfe0: 00000001 <001af516> 00000000 00000000 0204c000 <001af51c> 00000000 00000000
Return addresses in stack:
frame 1 : <0x00018bd4> { _panic + 0x48 }
frame 2 : <0x000057be> { _trap_c + 0x3ae }
address : <0x0000c136> { ___raw_spin_lock_asm + 0x1a }
address : <0x0011e2b0> { __spin_unlock_irqrestore + 0xc }
address : <0x0009cc9a> { _cpumask_next_and + 0x22 }
address : <0x0000bb7e> { _ipi_handler_int1 + 0xba }
address : <0x0000bba8> { _ipi_handler_int1 + 0xe4 }
address : <0x00012498> { _find_busiest_group + 0xf4 }
address : <0x0003989c> { _handle_IRQ_event + 0x50 }
address : <0x0003b09e> { _handle_percpu_irq + 0x62 }
frame 3 : <0x0000a754> { _exception_to_level5 + 0xb8 }
address : <0x0002e56c> { _sched_clock_cpu + 0x1c }
address : <0x0000817a> { _timer_interrupt + 0x16 }
address : <0x0000b7ce> { _resync_core_dcache + 0x16 }
address : <0x0000c074> { ___raw_smp_check_barrier_asm + 0x4c }
frame 4 : <0x0000817a> { _timer_interrupt + 0x16 }
frame 5 : <0x0003989c> { _handle_IRQ_event + 0x50 }
address : <0x0000c136> { ___raw_spin_lock_asm + 0x1a }
frame 6 : <0x0003b072> { _handle_percpu_irq + 0x36 }
address : <0x0001dabe> { _irq_enter + 0x5e }
frame 7 : <0x00005a16> { _asm_do_IRQ + 0x82 }
address : <0x0003989c> { _handle_IRQ_event + 0x50 }
frame 8 : <0x0000b2b0> { _do_irq + 0x7c }
address : <0x0001dabe> { _irq_enter + 0x5e }
frame 9 : <0x0000ad28> { __common_int_entry + 0x74 }
address : <0x00005a16> { _asm_do_IRQ + 0x82 }
address : <0x000059e8> { _asm_do_IRQ + 0x54 }
address : <0x000134b8> { _finish_task_switch + 0x1c }
address : <0x0011ce64> { _schedule + 0x12c }
address : <0x00001b8c> { _cpu_idle + 0x34 }
address : <0x001b9a88> { _calibrate_delay + 0x160 }
address : <0x001ba0c8> { _platform_secondary_init + 0x118 }
address : <0x001b9e16> { _secondary_start_kernel + 0x9a }
address : <0x001af516> { _coreb_start + 0x26 }
address : <0x001af51c> { _coreb_start + 0x2c }
CPU0: stopping
Hardware Trace:
0 Target : <0x0000536c> { _dump_stack + 0x0 }
Source : <0x0000b8ce> { _ipi_cpu_stop + 0x22 } CALL pcrel
1 Target : <0x0000b8ce> { _ipi_cpu_stop + 0x22 }
Source : <0x0001998e> { _printk + 0x16 } RTS
2 Target : <0x0001998a> { _printk + 0x12 }
Source : <0x000197c6> { _vprintk + 0x16a } RTS
3 Target : <0x000197be> { _vprintk + 0x162 }
Source : <0x00019796> { _vprintk + 0x13a } IF !CC JUMP
4 Target
Follow-ups
--- Yi Li 2010-01-04 01:04:19
fixed and close.
Files
Changes
Commits
Dependencies
Duplicates
Associations
Tags
File Name File Type File Size Posted By
No Files Were Found