[#5287] kgdb kernel with write through policy on bf533 stamp would have dump info
Submitted By: Mingquan Pan
Open Date
2009-06-22 03:38:11
Priority:
Medium Assignee:
Sonic Zhang
Status:
Open Fixed In Release:
N/A
Found In Release:
N/A Release:
Category:
N/A Board:
N/A
Processor:
BF533 Silicon Revision:
Is this bug repeatable?:
Yes Resolution:
Fixed
Uboot version or rev.:
Toolchain version or rev.:
09r1-rc7
App binary format:
N/A
Summary: kgdb kernel with write through policy on bf533 stamp would have dump info
Details:
kgdb kernel with write through policy on bf533 stamp would have dump info.
## Booting kernel from Legacy Image at 02000000 ...
Image Name: Linux-2.6.28.10-ADI-2009R1-svn67
Created: 2009-06-16 18:02:41 UTC
Image Type: Blackfin Linux Kernel Image (gzip compressed)
Data Size: 4089856 Bytes = 3.9 MB
Load Address: 00001000
Entry Point: 0018f52c
Verifying Checksum ... OK
Uncompressing Kernel Image ... OK
Starting Kernel at = 0018f52c
Linux version 2.6.28.10-ADI-2009R1-svn6753 (test@uclinux75-bf533-stamp-wt) (gcc version 4.1.2 (ADI svn)) #4 Wed Jun 17 02:02:27 CST 2009
Warning: limiting memory to 56MB due to hardware anomaly 05000263
Board Memory: 128MB
Kernel Managed Memory: 128MB
Memory map:
fixedcode = 0x00000400-0x00000490
text = 0x00001000-0x0010cf60
rodata = 0x0010cf60-0x0015cee0
bss = 0x0015d000-0x001749c4
data = 0x001749c4-0x00184000
stack = 0x00182000-0x00184000
init = 0x00184000-0x007cc000
available = 0x007cc000-0x037ff000
DMA Zone = 0x07f00000-0x08000000
Hardware Trace Active and Enabled
Boot Mode: 0
Reset caused by Software reset
Blackfin support (C) 2004-2009 Analog Devices, Inc.
Compiled for ADSP-BF533 Rev 0.3
Blackfin Linux support by http://blackfin.uclinux.org/
Processor Speed: 398 MHz core clock and 79 MHz System Clock
NOMPU: setting up cplb tables
Instruction Cache Enabled for CPU0
Data Cache Enabled for CPU0 (write-through)
Built 1 zonelists in Zone order, mobility grouping off. Total pages: 14223
Kernel command line: console=ttyBF0,57600 kgdboe=@10.100.4.50/,@10.100.4.174/
kgdboe: local port 6443
kgdboe: local IP 10.100.4.50
kgdboe: interface eth0
kgdboe: remote port 6442
kgdboe: remote IP 10.100.4.174
kgdboe: remote ethernet address ff:ff:ff:ff:ff:ff
Configuring Blackfin Priority Driven Interrupts
PID hash table entries: 256 (order: 8, 1024 bytes)
bfin-rtc: invalid date; resetting
console [ttyBF0] enabled
Dentry cache hash table entries: 8192 (order: 3, 32768 bytes)
Inode-cache hash table entries: 4096 (order: 2, 16384 bytes)
Memory available: 48788k/131072k RAM, (6432k init code, 1071k kernel code, 477k data, 1024k dma, 73280k reserved)
Calibrating delay loop... 790.52 BogoMIPS (lpj=1581056)
Security Framework initialized
Mount-cache hash table entries: 512
Blackfin Scratchpad data SRAM: 4 KB
Blackfin L1 Data A SRAM: 16 KB (15 KB free)
Blackfin L1 Data B SRAM: 16 KB (16 KB free)
Blackfin L1 Instruction SRAM: 64 KB (52 KB free)
net_namespace: 288 bytes
NET: Registered protocol family 16
Blackfin DMA Controller
stamp_init(): registering device resources
NET: Registered protocol family 2
IP route cache hash table entries: 1024 (order: 0, 4096 bytes)
TCP established hash table entries: 2048 (order: 2, 16384 bytes)
TCP bind hash table entries: 2048 (order: 1, 8192 bytes)
TCP: Hash tables configured (established 2048 bind 2048)
TCP reno registered
NET: Registered protocol family 1
msgmni has been set to 95
io scheduler noop registered
io scheduler anticipatory registered (default)
io scheduler cfq registered
Serial: Blackfin serial driver
bfin-uart.1: ttyBF0 at MMIO 0xffc00400 (irq = 21) is a BFIN-UART
brd: module loaded
smc91x.c: v1.1, sep 22 2004 by Nicolas Pitre <nico@cam.org>
eth0: SMC91C11xFD (rev 1) at 20300300 IRQ 40 [nowait]
eth0: Ethernet addr: f2:06:01:61:68:b5
kgdboe: local port 6443
kgdboe: local IP 10.100.4.50
kgdboe: interface eth0
kgdboe: remote port 6442
kgdboe: remote IP 10.100.4.174
kgdboe: remote ethernet address ff:ff:ff:ff:ff:ff
kgdboe: device eth0 not up yet, forcing it
eth0: link down
eth0: link up, 100Mbps, full-duplex, lpa 0x45E1
kgdb: Registered I/O driver kgdboe.
kgdboe: debugging over ethernet enabled
bfin-spi bfin-spi.0: Blackfin on-chip SPI Controller Driver, Version 1.0, regs_base@ffc00500, dma channel@5
rtc-bfin rtc-bfin: rtc core: registered rtc-bfin as rtc0
TCP cubic registered
NET: Registered protocol family 17
rtc-bfin rtc-bfin: setting system clock to 1970-01-02 02:37:45 UTC (95865)
Freeing unused kernel memory: 6432k freed
dma_alloc_init: dma_page @ 0x007c9000 - 256 pages at 0x07f00000
_____________________________________
a8888b. / Welcome to the uClinux distribution \
d888888b. / _ _ \
8P"YP"Y88 / | | |_| __ __ (TM) |
8|o||o|88 _____/ | | _ ____ _ _ \ \/ / |
8' .88 \ | | | | _ \| | | | \ / |
8`._.' Y8. \ | |__ | | | | | |_| | / \ |
d/ `8b. \ \____||_|_| |_|\____|/_/\_\ |
dP . Y8b. \ For embedded processors including |
d8:' " `::88b \ the Analog Devices Blackfin /
d8" 'Y88b \___________________________________/
:8P ' :888
8a. : _a88P For further information, check out:
._/"Yaa_: .| 88P| - http://blackfin.uclinux.org/
\ YP" `| 8P `. - http://docs.blackfin.uclinux.org/
/ \.___.d| .' - http://www.uclinux.org/
`--..__)8888P`._.' jgs/a:f - http://www.analog.com/blackfin
Have a lot of fun...
BusyBox v1.13.4 (2009-06-16 22:14:36 CST) built-in shell (msh)
Enter 'help' for a list of built-in commands.
root:/> version
kernel: Linux release 2.6.28.10-ADI-2009R1-svn6753, build #4 Wed Jun 17 02:02:27 CST 2009
toolchain: bfin-uclinux-gcc release gcc version 4.1.2 (ADI svn)
user-dist: release svn-8295, build #8 Wed Jun 17 02:01:20 CST 2009
root:/>
************** STEP 3: Start KGDB TEST
ifconfig eth0 10.100.4.50
root:/> GNU gdb 6.6
Copyright (C) 2006 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB. Type "show warranty" for details.
This GDB was configured as "--host=i686-pc-linux-gnu --target=bfin-uclinux"...
(gdb)
Case 1 ...PASS
Case 1 ...PASS
target remote udp:10.100.4.50:6443
warning: The remote protocol may be unreliable over UDP.
Some events may be lost, rendering further debugging impossible.
Remote debugging using udp:10.100.4.50:6443
kgdb_breakpoint () at kernel/kgdb.c:1722
Case 2 ...PASS
Case 2 ...PASS
1722 atomic_set(&kgdb_setting_breakpoint, 0);
(gdb) break kgdb_test
Breakpoint 1 at 0x8f9a: file arch/blackfin/kernel/kgdb_test.c, line 57.
Case 3 ...PASS
Case 3 ...PASS
(gdb) c
Continuing.
Case 4 ...PASS
Case 4 ...PASS
root:/> [New Thread 153]
[Switching to Thread 153]
Breakpoint 1, kgdb_test (name=0x10d9d0 "hello world!", len=12, count=85, z=16) at arch/blackfin/kernel/kgdb_test.c:57
Case 5 ...PASS
Case 5 ...PASS
57 printk(KERN_DEBUG "kgdb name(%d): %s, %d, %d\n", len, name, count, z);
(gdb) hbreak 58
Hardware assisted breakpoint 2 at 0x8fbc: file arch/blackfin/kernel/kgdb_test.c, line 58.
(gdb)
Case 6 ...PASS
Case 6 ...PASS
info b
Num Type Disp Enb Address What
1 breakpoint keep y 0x00008f9a in kgdb_test at arch/blackfin/kernel/kgdb_test.c:57
breakpoint already hit 1 time
2 hw breakpoint keep y 0x00008fbc in kgdb_test at arch/blackfin/kernel/kgdb_test.c:58
Case 7 ...PASS
Case 7 ...PASS
(gdb) list
52 #endif
53
54
55 int kgdb_test(char *name, int len, int count, int z)
56 {
57 printk(KERN_DEBUG "kgdb name(%d): %s, %d, %d\n", len, name, count, z);
58 count = z;
59 return count;
60 }
61
(gdb)
Case 8 ...PASS
Case 8 ...PASS
bt
#0 kgdb_test (name=0x10d9d0 "hello world!", len=12, count=85, z=16) at arch/blackfin/kernel/kgdb_test.c:57
Case 9 ...PASS
Case 9 ...PASS
#1 0x00008fec in test_proc_output (buf=0x1cf000 "") at arch/blackfin/kernel/kgdb_test.c:64
#2 0x00009016 in test_read_proc (page=0x1cf000 "", start=0x37d7e64, off=0, count=3072, eof=0x37d7e68, data=0x0) at arch/blackfin/kernel/kgdb_test.c:80
#3 0x0006ddc0 in proc_file_read (file=<value optimized out>, buf=0x31e1e8c "", nbytes=4096, ppos=0x37d7eec) at fs/proc/generic.c:120
#4 0x0006a0f4 in proc_reg_read (file=0x37d7eec, buf=0xc <Address 0xc out of bounds>, count=85, ppos=0x37d7eec) at fs/proc/inode.c:191
#5 0x00042bd0 in vfs_read (file=0xa8c2c0, buf=0x31e1e8c "", count=4096, pos=0x37d7eec) at fs/read_write.c:279
#6 0x00042e08 in sys_read (fd=<value optimized out>, buf=0x31e1e8c "", count=4096) at fs/read_write.c:368
#7 0xffa00960 in system_call () at /home/test/work/cruise/checkouts/uclinux-dist/linux-2.6.x/arch/blackfin/include/asm/current.h:17
(gdb) c
Continuing.
Breakpoint 2, kgdb_test (name=0x10d9d0 "hello world!", len=12, count=85, z=16) at arch/blackfin/kernel/kgdb_test.c:58
Case 10 ...PASS
Case 10 ...PASS
58 count = z;
(gdb) cat /proc/kgdbtest
kgdb name(12): hello world!, 85, 16
Case 10 ...PASS
Case 10 ...PASS
print z
$1 = 16
Case 12 ...PASS
Case 12 ...PASS
(gdb) c
Continuing.
L1(before change) : data variable addr = 0xff800000, data value is 0
L1 : code function addr = 0xffa003b4
L1(after change) : data variable addr = 0xff800000, data value is 10
root:/>
Case 12 ...PASS
Case 12 ...PASS
[New Thread 154]
[Switching to Thread 154]
Breakpoint 1, kgdb_test (name=0x10d9d0 "hello world!", len=12, count=85, z=16) at arch/blackfin/kernel/kgdb_test.c:57
57 printk(KERN_DEBUG "kgdb name(%d): %s, %d, %d\n", len, name, count, z);
(gdb) hbreak kgdb_l1_test
Hardware assisted breakpoint 3 at 0xffa003b8: file arch/blackfin/kernel/kgdb_test.c, line 30.
Case 13 ...PASS
Case 13 ...PASS
(gdb) break 33
Breakpoint 4 at 0xffa0040c: file arch/blackfin/kernel/kgdb_test.c, line 33.
Case 14 ...PASS
Case 14 ...PASS
(gdb) c
Continuing.
Breakpoint 2, kgdb_test (name=0x10d9d0 "hello world!", len=12, count=85, z=16) at arch/blackfin/kernel/kgdb_test.c:58
58 count = z;
(gdb) cat /proc/kgdbtest
kgdb name(12): hello world!, 85, 16
Case 14 ...PASS
Case 14 ...PASS
c
Continuing.
Breakpoint 3, kgdb_l1_test () at arch/blackfin/kernel/kgdb_test.c:30
30 printk(KERN_ALERT "L1(before change) : data variable addr = 0x%p, data value is %d\n", &num1, num1);
(gdb) print num1
$2 = 10
Case 15 ...PASS
Case 15 ...PASS
(gdb) c
Continuing.
Breakpoint 4, kgdb_l1_test () at arch/blackfin/kernel/kgdb_test.c:33
33 printk(KERN_ALERT "L1(after change) : data variable addr = 0x%p, data value is %d\n", &num1, num1);
(gdb) print num1
$3 = 20
Case 16 ...PASS
Case 16 ...PASS
(gdb) L1(before change) : data variable addr = 0xff800000, data value is 10
L1 : code function addr = 0xffa003b4
Case 16 ...PASS
Case 16 ...PASS
x/1xw 0xff808010
0xff808010: Cannot access memory at address 0xff808010
Case 17 ...PASS
Case 17 ...PASS
(gdb) set *0xff808020 = 23
Cannot access memory at address 0xff808020
Case 18 ...PASS
Case 18 ...PASS
(gdb) x/1xw 0xffc00400
0xffc00400: 0x000d000d
Case 19 ...PASS
Case 19 ...PASS
(gdb) set *0xffe08100=0x456
(gdb) x/1xw 0xffe08100
0xffe08100: 0x00000456
Case 20 ...PASS
Case 20 ...PASS
(gdb) d 1
(gdb) d 2
(gdb) info break
Num Type Disp Enb Address What
3 hw breakpoint keep y 0xffa003b8 in kgdb_l1_test at arch/blackfin/kernel/kgdb_test.c:30
breakpoint already hit 1 time
4 breakpoint keep y 0xffa0040c in kgdb_l1_test at arch/blackfin/kernel/kgdb_test.c:33
breakpoint already hit 1 time
Case 21 ...PASS
Case 21 ...PASS
(gdb) info reg
r0 0x14 20
r1 0xffff 65535
r2 0xffffffff -1
r3 0xffffff68 -152
r4 0x37c6000 58482688
r5 0x0 0
r6 0x7fffffff 2147483647
r7 0x0 0
p0 0x1259 0x1259
p1 0x176df4 0x176df4
p2 0xff800000 0xff800000
p3 0x31e1e8c 0x31e1e8c
p4 0xc00 0xc00
p5 0x1000 0x1000
sp 0x37d7dfc 0x37d7dfc
fp 0x37d7e0c 0x37d7e0c
i0 0x8 8
i1 0xf 15
i2 0x0 0
i3 0x1150c0 1134784
m0 0x1 1
m1 0x0 0
m2 0x0 0
m3 0x0 0
b0 0x1b 27
b1 0x0 0
b2 0x0 0
b3 0x0 0
l0 0x0 0
l1 0x0 0
l2 0x0 0
l3 0x0 0
a0x 0x0 0
a0w 0x0 0
a1x 0x0 0
a1w 0x0 0
astat 0x2002000 33562624
rets 0xffa003f6 0xffa003f6 <kgdb_l1_test+66>
lc0 0x7 7
lt0 0x318c2fe 51954430
lb0 0x318c307 51954439
lc1 0x0 0
lt1 0x8dbdc 580572
lb1 0x8dbec 580588
cycles 0x0 0
cycles2 0x0 0
usp 0x31e1e48 0x31e1e48
seqstat 0x62001 401409
syscfg 0x6 6
reti 0xffa0040e -6290418
retx 0x480 1152
retn 0x37d7e00 58555904
rete 0x0 0
---Type <return> to continue, or q <return> to quit---
pc 0xffa0040c 0xffa0040c <kgdb_l1_test+88>
cc 0x0 0
text_addr 0x0 0
text_end_addr 0x0 0
data_addr 0x0 0
fdpic_exec 0x0 0
fdpic_interp 0x0 0
ipend 0x8030 32816
(gdb)
Case 22 ...PASS
Case 22 ...PASS
disassemble
Dump of assembler code for function kgdb_l1_test:
0xffa003b4 <kgdb_l1_test+0>: LINK 0xc; /* (12) */
0xffa003b8 <kgdb_l1_test+4>: P2.H = 0xff80; /* (-128) P2=0x0xff800000 <num1> */
0xffa003bc <kgdb_l1_test+8>: P2.L = 0x0; /* ( 0) P2=0x0xff800000 <num1> */
0xffa003c0 <kgdb_l1_test+12>: R2 = [P2];
0xffa003c2 <kgdb_l1_test+14>: R0.H = 0x10; /* ( 16) R0=0x0x100000 <__xfrm4_init_tempsel+256>(1048576) */
0xffa003c6 <kgdb_l1_test+18>: R0.L = 0xd904; /* (-9980) R0=0x0x10d904(1104132) */
0xffa003ca <kgdb_l1_test+22>: R1.H = 0xff80; /* (-128) R1=0x0xff800000 <num1>(-8388608) */
0xffa003ce <kgdb_l1_test+26>: R1.L = 0x0; /* ( 0) R1=0x0xff800000 <num1>(-8388608) */
0xffa003d2 <kgdb_l1_test+30>: P2.H = 0x1; /* ( 1) P2=0x0x10000 <copy_process+1340> */
0xffa003d6 <kgdb_l1_test+34>: P2.L = 0x1750; /* (5968) P2=0x0x11750 <printk> */
0xffa003da <kgdb_l1_test+38>: CALL (P2);
0xffa003dc <kgdb_l1_test+40>: R0.H = 0x10; /* ( 16) R0=0x0x10d904(1104132) */
0xffa003e0 <kgdb_l1_test+44>: R0.L = 0xd948; /* (-9912) R0=0x0x10d948(1104200) */
0xffa003e4 <kgdb_l1_test+48>: R1.H = 0xffa0; /* (-96) R1=0x0xffa00000 <ret_from_fork>(-6291456) */
0xffa003e8 <kgdb_l1_test+52>: R1.L = 0x3b4; /* (948) R1=0x0xffa003b4 <kgdb_l1_test>(-6290508) */
0xffa003ec <kgdb_l1_test+56>: P2.H = 0x1; /* ( 1) P2=0x0x11750 <printk> */
0xffa003f0 <kgdb_l1_test+60>: P2.L = 0x1750; /* (5968) P2=0x0x11750 <printk> */
0xffa003f4 <kgdb_l1_test+64>: CALL (P2);
0xffa003f6 <kgdb_l1_test+66>: P2.H = 0xff80; /* (-128) P2=0x0xff801750 */
0xffa003fa <kgdb_l1_test+70>: P2.L = 0x0; /* ( 0) P2=0x0xff800000 <num1> */
0xffa003fe <kgdb_l1_test+74>: R0 = [P2];
0xffa00400 <kgdb_l1_test+76>: R0 += 0xa; /* ( 10) */
0xffa00402 <kgdb_l1_test+78>: P2.H = 0xff80; /* (-128) P2=0x0xff800000 <num1> */
0xffa00406 <kgdb_l1_test+82>: P2.L = 0x0; /* ( 0) P2=0x0xff800000 <num1> */
0xffa0040a <kgdb_l1_test+86>: [P2] = R0;
0xffa0040c <kgdb_l1_test+88>: P2.H = 0xff80; /* (-128) P2=0x0xff800000 <num1> */
0xffa00410 <kgdb_l1_test+92>: P2.L = 0x0; /* ( 0) P2=0x0xff800000 <num1> */
Get reg_addr_after1.
0xffa00414 <kgdb_l1_test+96>: R2 = [P2];
0xffa00416 <kgdb_l1_test+98>: R0.H = 0x10; /* ( 16) R0=0x0x10d948(1104200) */
0xffa0041a <kgdb_l1_test+102>: R0.L = 0xd96c; /* (-9876) R0=0x0x10d96c(1104236) */
0xffa0041e <kgdb_l1_test+106>: R1.H = 0xff80; /* (-128) R1=0x0xff8003b4(-8387660) */
0xffa00422 <kgdb_l1_test+110>: R1.L = 0x0; /* ( 0) R1=0x0xff800000 <num1>(-8388608) */
0xffa00426 <kgdb_l1_test+114>: P2.H = 0x1; /* ( 1) P2=0x0x10000 <copy_process+1340> */
0xffa0042a <kgdb_l1_test+118>: P2.L = 0x1750; /* (5968) P2=0x0x11750 <printk> */
0xffa0042e <kgdb_l1_test+122>: CALL (P2);
0xffa00430 <kgdb_l1_test+124>: UNLINK;
0xffa00434 <kgdb_l1_test+128>: RTS;
End of assembler dump.
(gdb) Find reg_addr_after1 .
Case 23 ...PASS
Case 23 ...PASS
si
0xffa00410 33 printk(KERN_ALERT "L1(after change) : data variable addr = 0x%p, data value is %d\n", &num1, num1);
(gdb) info reg
r0 0x14 20
r1 0xffff 65535
r2 0xffffffff -1
r3 0xffffff68 -152
r4 0x37c6000 58482688
r5 0x0 0
r6 0x7fffffff 2147483647
r7 0x0 0
p0 0x1259 0x1259
p1 0x176df4 0x176df4
p2 0xff800000 0xff800000
p3 0x31e1e8c 0x31e1e8c
p4 0xc00 0xc00
p5 0x1000 0x1000
sp 0x37d7dfc 0x37d7dfc
fp 0x37d7e0c 0x37d7e0c
i0 0x8 8
i1 0xf 15
i2 0x0 0
i3 0x1150c0 1134784
m0 0x1 1
m1 0x0 0
m2 0x0 0
m3 0x0 0
b0 0x1b 27
b1 0x0 0
b2 0x0 0
b3 0x0 0
l0 0x0 0
l1 0x0 0
l2 0x0 0
l3 0x0 0
a0x 0x0 0
a0w 0x0 0
a1x 0x0 0
a1w 0x0 0
astat 0x2002000 33562624
rets 0xffa003f6 0xffa003f6 <kgdb_l1_test+66>
lc0 0x7 7
lt0 0x318c2fe 51954430
lb0 0x318c307 51954439
lc1 0x0 0
lt1 0x8dbdc 580572
lb1 0x8dbec 580588
cycles 0x0 0
cycles2 0x0 0
usp 0x31e1e48 0x31e1e48
seqstat 0x62010 401424
syscfg 0x6 6
reti 0xffa00410 -6290416
retx 0x480 1152
retn 0x37d7e00 58555904
rete 0x0 0
---Type <return> to continue, or q <return> to quit---
pc 0xffa00410 0xffa00410 <kgdb_l1_test+92>
cc 0x0 0
text_addr 0x0 0
text_end_addr 0x0 0
data_addr 0x0 0
fdpic_exec 0x0 0
fdpic_interp 0x0 0
ipend 0x8030 32816
(gdb)
Case 25 ...PASS
Case 25 ...PASS
SI case pass!
print len
$4 = 0
Case 26 ...PASS
Case 26 ...PASS
(gdb) c
Continuing.
Double Fault
Kernel OOPS in progress
Deferred Exception context
CURRENT PROCESS:
COMM=cat PID=154
CPU = 0
TEXT = 0x03180040-0x031c6980 DATA = 0x031c69a0-0x031d86d0
BSS = 0x031d86d0-0x031d9ff0 USER-STACK = 0x031e2f78
return address: [0x00009d7a]; contents of:
0x00009d50: 6501 5281 4e2a 320a 3200 e0b2 1003 0278
0x00009d60: 0000 0010 6302 5410 67f9 5451 6501 5281
0x00009d70: 4e2a 320a 3200 e0b2 1002 [0268] 0010 0000
0x00009d80: 6302 5410 67f9 5451 6501 5281 4e2a 320a
ADSP-BF533-0.3 398(MHz CCLK) 79(MHz SCLK) (mpu off)
Linux version 2.6.28.10-ADI-2009R1-svn6753
Built with gcc version 4.1.2 (ADI svn)
SEQUENCER STATUS: Not tainted
SEQSTAT: 00062027 IPEND: ffe02108 SYSCFG: 0006
EXCAUSE : 0x27
physical IVG3 asserted : <0xffa007c4> { _trap + 0x0 }
physical IVG8 asserted : <0xffa00e7c> { _evt_evt8 + 0x0 }
physical IVG13 asserted : <0xffa00f58> { _evt_evt13 + 0x0 }
logical irq 6 mapped : <0xffa003a0> { _timer_interrupt + 0x0 }
logical irq 14 mapped : <0x000b2b88> { _bfin_rtc_interrupt + 0x0 }
logical irq 21 mapped : <0x0009e890> { _bfin_serial_dma_rx_int + 0x0 }
logical irq 22 mapped : <0x0009ebf0> { _bfin_serial_dma_tx_int + 0x0 }
logical irq 40 mapped : <0x000a7e58> { _smc_interrupt + 0x0 }
RETE: <0x00000000> /* Maybe null pointer? */
RETN: <0x037d7bb4> /* kernel dynamic memory */
RETX: <0x00009d7a> { _blackfin_dcache_invalidate_range + 0x16 }
RETS: <0x0002df58> { _kgdb_flush_swbreak_addr + 0x18 }
PC : <0x00009d7a> { _blackfin_dcache_invalidate_range + 0x16 }
DCPLB_FAULT_ADDR: <0x00000000> /* Maybe null pointer? */
ICPLB_FAULT_ADDR: <0x00009d7a> { _blackfin_dcache_invalidate_range + 0x16 }
PROCESSOR STATE:
R0 : ffa00400 R1 : 00000021 R2 : 0002ffe1 R3 : fffffffe
R4 : 00000003 R5 : 0000100d R6 : 001688ac R7 : 00000001
P0 : 00000000 P1 : 0002ffe1 P2 : ffc00e08 P3 : 0016c754
P4 : 00008cc8 P5 : 001688b4 FP : 037d7bc0 SP : 037d7ad8
LB0: ffa01784 LT0: ffa01784 LC0: 00000000
LB1: 00009d7a LT1: 00009d7a LC1: 00000001
B0 : 0000001b L0 : 00000000 M0 : 00000001 I0 : 00000008
B1 : 00000000 L1 : 00000000 M1 : 00000000 I1 : 001724c0
B2 : 00000000 L2 : 00000000 M2 : 00000000 I2 : 00000000
B3 : 00000000 L3 : 00000000 M3 : 00000000 I3 : 001150c0
A0.w: 00000500 A0.x: 00000000 A1.w: 00000500 A1.x: 00000000
USP : 031e1e48 ASTAT: 02002020
Hardware Trace:
Kernel panic - not syncing: Double Fault - unrecoverable event
Last pass : kernel 6699, uclinux 8285, toolchain 09r1-6
fail : kernel 6753, uclinux 8295, toolchain 09r1-7
Follow-ups
--- Sonic Zhang 2009-06-30 04:51:41
Fixed.
L1 instruction SRAM is not cachable. Executing Flush, flushinv or iflush at
this address region on bf533 v0.3 triggers double fault exception. Although no
double fault on other bfin chips, it is safe not to do it.
--- Robin Getz 2009-06-30 13:55:49
Sonic:
Either this is a hardware anomaly - or something else is going on. Since it is
not on the anomaly list - we need to assume (until someone in design verifies it
needs to be added) it is something else).
You should be able to execute these instructions (Flush, flushinv. iflush or
prefetch) on any memory location - if it is specific to 0.3 silicon, that should
be ifdef'ed so people understand what the cause is.
I see something wrong with prefetch - but not anything else when I added them
to traps_test.
3 0x00 flush l1_instruction
13 0x00 iflush l1_instruction
27 0x00 flushinv l1_instruction
All seem to work with out causing a EVT3 event from userspace... - so I think
this is something else....
-Robin
--- Sonic Zhang 2009-06-30 22:58:18
Are you running the trap_test with WT cache is selected on bf533 v0.3?
--- Sonic Zhang 2009-06-30 23:01:18
In addition, did you run trap_test on 2009R1 branch?
Files
Changes
Commits
Dependencies
Duplicates
Associations
Tags
File Name File Type File Size Posted By
No Files Were Found