[#5204] Kernel panics in g729 test in BF518F-EZBRD
Submitted By: Vivi Li
Open Date
2009-06-04 00:00:26 Close Date
2010-01-21 04:53:14
Priority:
Medium Assignee:
Yi Li
Status:
Closed Fixed In Release:
N/A
Found In Release:
2009R1-RC6 Release:
Category:
Tests Board:
N/A
Processor:
BF518 Silicon Revision:
Is this bug repeatable?:
Yes Resolution:
Out of Date
Uboot version or rev.:
Toolchain version or rev.:
gcc4.1-09r1_rc6
App binary format:
N/A
Summary: Kernel panics in g729 test in BF518F-EZBRD
Details:
Kernel panics at case g729ab_testfdpic and g729ab_testfdpic_so of g729 test in BF518F-EZBRD.
Bellow is the log for g729ab_testfdpic:
--
Linux version 2.6.28.10-ADI-2009R1-svn6543 (test@uclinux80-518f) (gcc version 4.1.2 (ADI svn)) #21 Thu Jun 4 11:09:14 GMT 2009
console [early_BFuart0] enabled
early printk enabled on early_BFuart0
Board Memory: 64MB
Kernel Managed Memory: 64MB
Memory map:
fixedcode = 0x00000400-0x00000490
text = 0x00001000-0x00104080
rodata = 0x00104080-0x00152920
bss = 0x00153000-0x001637b4
data = 0x001637c0-0x00174000
stack = 0x00172000-0x00174000
init = 0x00174000-0x00565000
available = 0x00565000-0x03eff000
DMA Zone = 0x03f00000-0x04000000
Hardware Trace Active and Enabled
Boot Mode: 1
Reset caused by Software reset
Blackfin support (C) 2004-2009 Analog Devices, Inc.
Compiled for ADSP-BF518 Rev 0.0
Blackfin Linux support by http://blackfin.uclinux.org/
Processor Speed: 400 MHz core clock and 80 MHz System Clock
NOMPU: setting up cplb tables
Instruction Cache Enabled for CPU0
Data Cache Enabled for CPU0 (write-back)
Built 1 zonelists in Zone order, mobility grouping off. Total pages: 16001
Kernel command line: root=/dev/mtdblock0 rw earlyprintk=serial,uart0,57600 ip=10.100.4.50:10.100.4.174:10.100.4.174:255.255.255.0:bf518f-ezbrd:eth0:off
Configuring Blackfin Priority Driven Interrupts
PID hash table entries: 256 (order: 8, 1024 bytes)
console handover: boot [early_BFuart0] -> real [ttyBF0]
Dentry cache hash table entries: 8192 (order: 3, 32768 bytes)
Inode-cache hash table entries: 4096 (order: 2, 16384 bytes)
Memory available: 58416k/65536k RAM, (4036k init code, 1036k kernel code, 448k data, 1024k dma, 572k reserved)
Calibrating delay loop... 796.67 BogoMIPS (lpj=1593344)
Security Framework initialized
Mount-cache hash table entries: 512
Blackfin Scratchpad data SRAM: 4 KB
Blackfin L1 Data A SRAM: 16 KB (16 KB free)
Blackfin L1 Data B SRAM: 16 KB (16 KB free)
Blackfin L1 Instruction SRAM: 48 KB (47 KB free)
net_namespace: 288 bytes
NET: Registered protocol family 16
Blackfin DMA Controller
ezbrd_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 114
io scheduler noop registered (default)
Serial: Blackfin serial driver
bfin-uart.1: ttyBF0 at MMIO 0xffc00400 (irq = 29) is a BFIN-UART
brd: module loaded
bfin_mii_bus: probed
bfin_mac: attached PHY driver [Generic PHY] (mii_bus:phy_addr=0:03, irq=-1, mdc_clk=2500000Hz(mdc_div=15)@sclk=80MHz)
bfin_mac bfin_mac.0: Blackfin on-chip Ethernet MAC driver, Version 1.1
bfin-spi bfin-spi.0: Blackfin on-chip SPI Controller Driver, Version 1.0, regs_base@ffc00500, dma channel@7
bfin-spi bfin-spi.1: Blackfin on-chip SPI Controller Driver, Version 1.0, regs_base@ffc03400, dma channel@5
rtc-bfin rtc-bfin: rtc core: registered rtc-bfin as rtc0
i2c /dev entries driver
i2c-bfin-twi i2c-bfin-twi.0: Blackfin BF5xx on-chip I2C TWI Contoller, regs_base@ffc01400
bfin-wdt: initialized: timeout=20 sec (nowayout=0)
TCP cubic registered
NET: Registered protocol family 17
rtc-bfin rtc-bfin: setting system clock to 2004-06-05 12:08:34 UTC (1086437314)
dma_alloc_init: dma_page @ 0x03858000 - 256 pages at 0x03f00000
IP-Config: Complete:
device=eth0, addr=10.100.4.50, mask=255.255.255.0, gw=10.100.4.174,
host=bf518f-ezbrd, domain=, nis-domain=(none),
bootserver=10.100.4.174, rootserver=10.100.4.174, rootpath=
Freeing unused kernel memory: 4036k freed
_____________________________________
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-03 17:32:28 GMT) built-in shell (msh)
Enter 'help' for a list of built-in commands.
root:/> successful boot attempt
version
kernel: Linux release 2.6.28.10-ADI-2009R1-svn6543, build #21 Thu Jun 4 11:09:14 GMT 2009
toolchain: bfin-uclinux-gcc release gcc version 4.1.2 (ADI svn)
user-dist: release svn-8190, build #146 Thu Jun 4 11:08:26 GMT 2009
root:/> ifconfig eth0 10.100.4.50
root:/> Trying 100/FULL
PHY: 0:03 - Link is Up - 100/Full
*******************************************************************
rcp -r /home/test/work/cruise/checkouts/uclinux-dist/lib/libbfgdots/g729/test/test_data root@10.100.4.50:/var
rcp /home/test/work/cruise/checkouts/uclinux-dist/lib/libbfgdots/g729/test/alltests.sh root@10.100.4.50:/var
rcp /home/test/work/cruise/checkouts/uclinux-dist/lib/libbfgdots/g729/src.fdpic/libg729ab.so root@10.100.4.50:/lib
rcp /home/test/work/cruise/checkouts/uclinux-dist/lib/libbfgdots/g729/test/g729ab_testfdpic root@10.100.4.50:/var
rcp /home/test/work/cruise/checkouts/uclinux-dist/lib/libbfgdots/g729/test/g729ab_testfdpic_so root@10.100.4.50:/var
*******************************************************************
root:/> cd /var
root:/var> ./alltests.sh g729ab_testfdpic
External Memory Addressing Error
HW Error context
CURRENT PROCESS:
COMM=g729ab_testfdpi PID=180
CPU = 0
TEXT = 0xffa00028-0xffa0993c DATA = 0x00e44000-0x00e4738c
BSS = 0x00e4738c-0x00e60000 USER-STACK = 0x00e7fe10
return address: [0xffa056fc]; contents of:
0xffa056d0: 014b 014b 0003 0003 014b 014b 0003 0003
0xffa056e0: 014b 014b 0003 0003 014b 014b 0003 0003
0xffa056f0: 014b 014b 0003 0003 014b 014b [0003] 0003
0xffa05700: 014b 014b 0003 0003 014b 014b 0003 0003
ADSP-BF518-0.0 400(MHz CCLK) 80(MHz SCLK) (mpu off)
Linux version 2.6.28.10-ADI-2009R1-svn6543
Built with gcc version 4.1.2 (ADI svn)
SEQUENCER STATUS: Not tainted
SEQSTAT: 0000e03f IPEND: 0030 SYSCFG: 0006
HWERRCAUSE: 0x3
EXCAUSE : 0x3f
interrupts disabled
physical IVG5 asserted : <0x00008f48> { _evt_ivhw + 0x0 }
RETE: <0x00000000> /* Maybe null pointer? */
RETN: <0x00e96000> /* kernel dynamic memory */
RETX: <0x00ecdb36> [ /lib/libc.so.0 + 0xdb36 ]
RETS: <0xffa0180a> /* kernel dynamic memory */
PC : <0xffa056fc> /* kernel dynamic memory */
PROCESSOR STATE:
R0 : 00000000 R1 : 00000000 R2 : 00000000 R3 : 0000fff3
R4 : 00000000 R5 : 6d13327c R6 : 65d06000 R7 : 00000001
P0 : 0000000b P1 : 0000000a P2 : ff802654 P3 : 0000007c
P4 : ff800e00 P5 : 00e9b15c FP : 00e9b214 SP : 00e95f24
LB0: ffa017e1 LT0: ffa017c8 LC0: 00000000
LB1: ffa02e8f LT1: ffa02e86 LC1: 00000000
B0 : 00e9b15c L0 : 00000000 M0 : 0000002c I0 : 00e9afec
B1 : 00e9b03c L1 : 00000000 M1 : 0000003c I1 : 00e9b190
B2 : 00e9b000 L2 : 00000000 M2 : ff802d4c I2 : 00e9b03c
B3 : 00000000 L3 : 00000000 M3 : 00000000 I3 : 00e9b190
A0.w: 00000000 A0.x: 00000000 A1.w: 00000000 A1.x: 00000000
USP : 00e9afd4 ASTAT: 02001005
Hardware Trace:
0 Target : <0x00004f24> { _trap_c + 0x0 }
Source : <0x00008fc6> { _evt_ivhw + 0x7e } CALL pcrel
1 Target : <0x00008f48> { _evt_ivhw + 0x0 }
Source : <0xffa01806> /* kernel dynamic memory */ CALL pcrel
2 Target : <0xffa01790> /* kernel dynamic memory */
Source : <0xffa02eca> /* kernel dynamic memory */ RTS
3 Target : <0xffa02e44> /* kernel dynamic memory */
Source : <0xffa02e1e> /* kernel dynamic memory */ IF !CC JUMP
4 Target : <0xffa02da4> /* kernel dynamic memory */
Source : <0xffa0178c> /* kernel dynamic memory */ CALL pcrel
5 Target : <0xffa0176c> /* kernel dynamic memory */
Source : <0xffa01504> /* kernel dynamic memory */ CALL pcrel
6 Target : <0xffa01500> /* kernel dynamic memory */
Source : <0xffa01362> /* kernel dynamic memory */ RTS
7 Target : <0xffa012cc> /* kernel dynamic memory */
Source : <0xffa014fc> /* kernel dynamic memory */ CALL pcrel
8 Target : <0xffa014a2> /* kernel dynamic memory */
Source : <0xffa013e8> /* kernel dynamic memory */ RTS
9 Target : <0xffa01364> /* kernel dynamic memory */
Source : <0xffa0149e> /* kernel dynamic memory */ CALL pcrel
10 Target : <0xffa0147c> /* kernel dynamic memory */
Source : <0xffa003ea> /* kernel dynamic memory */ CALL (P1)
11 Target : <0xffa003d8> /* kernel dynamic memory */
Source : <0x039863ee> [ /lib/libpthread.so.0 + 0x63ee ] RTS
12 Target : <0x039863e8> [ /lib/libpthread.so.0 + 0x63e8 ]
Source : <0x039864dc> [ /lib/libpthread.so.0 + 0x64dc ] JUMP.S
13 Target : <0x039864da> [ /lib/libpthread.so.0 + 0x64da ]
Source : <0x0398858c> [ /lib/libpthread.so.0 + 0x858c ] RTS
14 Target : <0x03988586> [ /lib/libpthread.so.0 + 0x8586 ]
Source : <0x03988518> [ /lib/libpthread.so.0 + 0x8518 ] IF !CC JUMP
15 Target : <0x03988516> [ /lib/libpthread.so.0 + 0x8516 ]
Source : <0x00000428> /* Maybe fixed code section */ RTS
Userspace Stack
Stack info:
SP: [0x00e9afd4] <0x00e9afd4> [ g729ab_testfdpi + 0x2fd4 ]
Memory from 0x00e9afd0 to 00e9b000
00e9afd0: 357f0000 [63bd65d0] 5ca960ae 523057cf 44df4bdf 357f3d5b 00002d66 00000000
00e9aff0: 00000000 00000000 00000000 00000000 c6020e00
Return addresses in stack:
External Memory Addressing Error
Kernel OOPS in progress
HW Error context
CURRENT PROCESS:
COMM=g729ab_testfdpi PID=180
CPU = 0
TEXT = 0xffa00028-0xffa0993c DATA = 0x00e44000-0x00e4738c
BSS = 0x00e4738c-0x00e60000 USER-STACK = 0x00e7fe10
return address: [0x00005536]; contents of:
0x00005510: 3049 0062 0023 e14a ffe0 e10a 2108 9110
0x00005520: e121 7fff 5408 3008 67f9 5408 4280 0c00
0x00005530: 1403 e300 1c07 [e300] 772b 6c66 0127 932e
0x00005540: 05b5 0010 c682 8027 5238 3200 e14a 0016
ADSP-BF518-0.0 400(MHz CCLK) 80(MHz SCLK) (mpu off)
Linux version 2.6.28.10-ADI-2009R1-svn6543
Built with gcc version 4.1.2 (ADI svn)
SEQUENCER STATUS: Not tainted
SEQSTAT: 0000e03f IPEND: 4030 SYSCFG: 0006
HWERRCAUSE: 0x3
EXCAUSE : 0x3f
interrupts disabled
physical IVG5 asserted : <0x00008f48> { _evt_ivhw + 0x0 }
physical IVG14 asserted : <0x00008d4c> { _evt14_softirq + 0x0 }
logical irq 6 mapped : <0x00007010> { _timer_interrupt + 0x0 }
logical irq 21 mapped : <0x000a5384> { _bfin_rtc_interrupt + 0x0 }
logical irq 27 mapped : <0x000a81a8> { _bfin_twi_interrupt_entry + 0x0 }
logical irq 29 mapped : <0x00093960> { _bfin_serial_dma_rx_int + 0x0 }
logical irq 30 mapped : <0x00093c9c> { _bfin_serial_dma_tx_int + 0x0 }
logical irq 35 mapped : <0x0009b8e0> { _bfin_mac_interrupt + 0x0 }
RETE: <0x00000000> /* Maybe null pointer? */
RETN: <0x00e96000> /* kernel dynamic memory */
RETX: <0x00ecdb36> [ /lib/libc.so.0 + 0xdb36 ]
RETS: <0x00005536> { _asm_do_IRQ + 0x56 }
PC : <0x00005536> { _asm_do_IRQ + 0x56 }
PROCESSOR STATE:
R0 : 0000003f R1 : 0000003f R2 : 00000001 R3 : 00000000
R4 : 00000000 R5 : 6d13327c R6 : 00000000 R7 : 00000006
P0 : 00000001 P1 : 00000094 P2 : ffe02108 P3 : 0000007c
P4 : ff800e00 P5 : 001609b8 FP : 00e9b214 SP : 00e95e20
LB0: 00083afd LT0: 00083adc LC0: 00000000
LB1: 0000b5e7 LT1: 0000b5d0 LC1: 00000000
B0 : 00000000 L0 : 00000000 M0 : 0000002c I0 : 00000001
B1 : 00000000 L1 : 00000000 M1 : 0000003c I1 : 00000000
B2 : 00e9b000 L2 : 00000000 M2 : ff802d4c I2 : 00e9b03c
B3 : 00000000 L3 : 00000000 M3 : 00000000 I3 : 00e9b190
A0.w: 0000004c A0.x: 00000000 A1.w: 00000010 A1.x: 00000000
USP : 00e9afd4 ASTAT: 02003025
Hardware Trace:
0 Target : <0x00004f24> { _trap_c + 0x0 }
Source : <0x00008fc6> { _evt_ivhw + 0x7e } CALL pcrel
1 Target : <0x00008f48> { _evt_ivhw + 0x0 }
Source : <0x00008d54> { _evt14_softirq + 0x8 } RTS
2 Target : <0x00008d4c> { _evt14_softirq + 0x0 }
Source : <0x00008d48> { _lower_to_irq14 + 0x8 } RTI
3 Target : <0x00008d40> { _lower_to_irq14 + 0x0 }
Source : <0x00005532> { _asm_do_IRQ + 0x52 } CALL pcrel
4 Target : <0x00005514> { _asm_do_IRQ + 0x34 }
Source : <0x0002b432> { _handle_simple_irq + 0x6a } RTS
5 Target : <0x0002b426> { _handle_simple_irq + 0x5e }
Source : <0x0002b43c> { _handle_simple_irq + 0x74 } JUMP.S
6 Target : <0x0002b43c> { _handle_simple_irq + 0x74 }
Source : <0x0002ab92> { _note_interrupt + 0x82 } RTS
7 Target : <0x0002ab7c> { _note_interrupt + 0x6c }
Source : <0x0002ab2c> { _note_interrupt + 0x1c } IF CC JUMP
8 Target : <0x0002ab10> { _note_interrupt + 0x0 }
Source : <0x0002b438> { _handle_simple_irq + 0x70 } CALL pcrel
9 Target : <0x0002b434> { _handle_simple_irq + 0x6c }
Source : <0x0002b41e> { _handle_simple_irq + 0x56 } IF !CC JUMP
10 Target : <0x0002b410> { _handle_simple_irq + 0x48 }
Source : <0x00029db4> { _handle_IRQ_event + 0x5c } RTS
11 Target : <0x00029daa> { _handle_IRQ_event + 0x52 }
Source : <0x00029da2> { _handle_IRQ_event + 0x4a } IF CC JUMP
12 Target : <0x00029d8e> { _handle_IRQ_event + 0x36 }
Source : <0x00007022> { _timer_interrupt + 0x12 } RTS
13 Target : <0x0000701c> { _timer_interrupt + 0xc }
Source : <0x0002640e> { _tick_handle_periodic + 0x1a } RTS
14 Target : <0x00026402> { _tick_handle_periodic + 0xe }
Source : <0x00020a48> { _run_posix_cpu_timers + 0x4e8 } RTS
15 Target : <0x00020a40> { _run_posix_cpu_timers + 0x4e0 }
Source : <0x00020b3e> { _run_posix_cpu_timers + 0x5de } IF CC JUMP
Kernel Stack
Stack info:
SP: [0x00e95f24] <0x00e95f24> /* kernel dynamic memory */
Memory from 0x00e95f20 to 00e96000
00e95f20: 00ecdb36 [ffa056fc] 00000050 0000e000 00000000 00e96000 00ecdb36 ffa056fc
00e95f40:<ffa0180a> 00000006 02001005 ffa02e8f ffa017e1 ffa02e86 ffa017c8 00000000
00e95f60: 00000000 00000000 00000000 00000000 00000000 00000000 00e9b000 00e9b03c
00e95f80: 00e9b15c 00000000 00000000 00000000 00000000 00000000 ff802d4c 0000003c
00e95fa0: 0000002c 00e9b190 00e9b03c 00e9b190 00e9afec 00e9afd4 00e9b214 00e9b15c
00e95fc0: ff800e00 0000007c ff802654 0000000a 0000000b 00000001 65d06000 6d13327c
00e95fe0: 00000000 0000fff3 00000000 00000000 00000000 00000000 0000000b 00000006
00e96000: 17691097
Return addresses in stack:
address : <0xffa0180a> /* kernel dynamic memory */
Modules linked in:
Kernel panic - not syncing: Kernel exception
--
Bellow is the log for g729ab_testfdpic_so:
--
root:/var> ./alltests.sh g729ab_testfdpic_so^M
External Memory Addressing Error^M
HW Error context
CURRENT PROCESS:^M
COMM=g729ab_testfdpi PID=178^M
CPU = 0^M
TEXT = 0x00e2c000-0x00e2e9c8 DATA = 0x038d79c8-0x038d7d04^M
BSS = 0x038d7d04-0x00e40000 USER-STACK = 0x00e5fe20^M
^M
return address: [0xffa05634]; contents of:^M
0xffa05610: 014b 014b 0003 0003 014b 014b 0003 0003 ^M
0xffa05620: 014b 014b 0003 0003 014b 014b 0003 0003 ^M
0xffa05630: 014b 014b [0003] 0003 014b 014b 0003 0003 ^M
0xffa05640: 014b 014b 0003 0003 014b 014b 0003 0003 ^M
^M
ADSP-BF518-0.0 400(MHz CCLK) 80(MHz SCLK) (mpu off)^M
Linux version 2.6.28.10-ADI-2009R1-svn6543^M
Built with gcc version 4.1.2 (ADI svn)^M
^M
SEQUENCER STATUS: Not tainted^M
SEQSTAT: 0000e03f IPEND: 0030 SYSCFG: 0006^M
HWERRCAUSE: 0x3^M
EXCAUSE : 0x3f^M
interrupts disabled^M
physical IVG5 asserted : <0x00008f48> { _evt_ivhw + 0x0 }^M
RETE: <0x00000000> /* Maybe null pointer? */^M
RETN: <0x00eca000> /* kernel dynamic memory */^M
RETX: <0x00e8db36> [ /lib/libc.so.0 + 0xdb36 ]^M
RETS: <0xffa03cd8> /* kernel dynamic memory */^M
PC : <0xffa05634> /* kernel dynamic memory */^M
^M
PROCESSOR STATE:^M
R0 : 00ec321c R1 : 00000000 R2 : 00000000 R3 : 076bf12a^M
R4 : 1e7ff16b R5 : fec9fec3 R6 : ffdf2760 R7 : 00014000^M
P0 : 00000050 P1 : 000001ca P2 : ff800ecc P3 : 0000007c^M
P4 : ff800ec4 P5 : ff800eaa FP : 00ec3260 SP : 00ec9f24^M
LB0: ffa02657 LT0: ffa02622 LC0: 00000000^M
LB1: 00e35ca1 LT1: 00e35ca0 LC1: 00000000^M
B0 : 00000000 L0 : 00000000 M0 : 00000000 I0 : ff800e18^M
B1 : 00000000 L1 : 00000000 M1 : 00000000 I1 : ff8010e0^M
B2 : 00000000 L2 : 00000000 M2 : ff802ccc I2 : 00ec3484^M
B3 : 00000000 L3 : 00000000 M3 : 00000000 I3 : 00ec3ccc^M
A0.w: fff2fbb8 A0.x: ffffffff A1.w: fad10900 A1.x: ffffffff^M
USP : 00ec321c ASTAT: 02002000^M
^M
Hardware Trace:^M
0 Target : <0x00004f24> { _trap_c + 0x0 }^M
Source : <0x00008fc6> { _evt_ivhw + 0x7e } CALL pcrel^M
1 Target : <0x00008f48> { _evt_ivhw + 0x0 }^M
Source : <0xffa03cd4> /* kernel dynamic memory */ CALL pcrel^M
2 Target : <0xffa03cd0> /* kernel dynamic memory */^M
Source : <0xffa02662> /* kernel dynamic memory */ RTS^M
3 Target : <0xffa025cc> /* kernel dynamic memory */^M
Source : <0xffa03ccc> /* kernel dynamic memory */ CALL pcrel^M
4 Target : <0xffa03c72> /* kernel dynamic memory */^M
Source : <0xffa026e8> /* kernel dynamic memory */ RTS^M
5 Target : <0xffa02664> /* kernel dynamic memory */^M
Source : <0xffa03c6e> /* kernel dynamic memory */ CALL pcrel^M
6 Target : <0xffa03c4c> /* kernel dynamic memory */^M
Source : <0x00e2cf82> [ /var/g729ab_testfdpic_so + 0xf82 ] CALL (P1)^M
7 Target : <0x00e2cf70> [ /var/g729ab_testfdpic_so + 0xf70 ]^M
Source : <0x00e363ee> [ /lib/libpthread.so.0 + 0x63ee ] RTS^M
8 Target : <0x00e363e8> [ /lib/libpthread.so.0 + 0x63e8 ]^M
Source : <0x00e364dc> [ /lib/libpthread.so.0 + 0x64dc ] JUMP.S^M
9 Target : <0x00e364da> [ /lib/libpthread.so.0 + 0x64da ]^M
Source : <0x00e3858c> [ /lib/libpthread.so.0 + 0x858c ] RTS^M
10 Target : <0x00e38586> [ /lib/libpthread.so.0 + 0x8586 ]^M
Source : <0x00e38518> [ /lib/libpthread.so.0 + 0x8518 ] IF !CC JUMP^M
11 Target : <0x00e38516> [ /lib/libpthread.so.0 + 0x8516 ]^M
Source : <0x00000428> /* Maybe fixed code section */ RTS^M
12 Target : <0x00000420> /* Maybe fixed code section */^M
Source : <0x00e38514> [ /lib/libpthread.so.0 + 0x8514 ] CALL (P2)^M
13 Target : <0x00e384f8> [ /lib/libpthread.so.0 + 0x84f8 ]^M
Source : <0x00e33dd2> [ /lib/libpthread.so.0 + 0x3dd2 ] JUMP (P1)^M
14 Target : <0x00e33dca> [ /lib/libpthread.so.0 + 0x3dca ]^M
Source : <0x00e364d6> [ /lib/libpthread.so.0 + 0x64d6 ] CALL pcrel^M
15 Target : <0x00e364cc> [ /lib/libpthread.so.0 + 0x64cc ]^M
Source : <0x00e363dc> [ /lib/libpthread.so.0 + 0x63dc ] IF !CC JUMP^M
Userspace Stack^M
Stack info:^M
SP: [0x00ec321c] <0x00ec321c> [ g729ab_testfdpi + 0x321c ]^M
FP: (0x00ec3224)^M
Memory from 0x00ec3210 to 00ec4000^M
00ec3210: 00ec3e24 0000007c 00ec33e4 [c8039c1c] 00ec3260 (00ec3258)<00e364da> 038d7c78 ^M
00ec3230: 00ec3e24 038d7b50 00ec3e24 ff802ccc 00ec3e24 00000020 03989388 00ccf9cc ^M
00ec3250: 00ec33e4 00ec3484 (00000000) 00ec3340 00ec3274 <00e2cf84> 03989388 00ec3e24 ^M
00ec3270: 00ec3e24 00ec3ce8 <00e2d128> 03989388 00ec3484 00ec33e4 00ec3340 00ec4008 ^M
00ec3290: 9c049e77 038d7b50 2000c408 c0430330 00002b9b 5834c862 00009e36 1018c683 ^M
00ec32b0: 6000c408 c8450332 9c0d599b c8600000 9226802c 9e560000 108734db 014b0140 ^M
00ec32d0: e418329e 34000034 90309073 e12932a8 9c0100ea 41f1ce81 00009c01 1002e0e2 ^M
00ec32f0: 41f1ce81 9c019228 014b0140 e418329e 3220003b 90309073 9c1c34c9 1800c803 ^M
00ec3310: 9c1c9224 1800c803 9c1c9224 1800c803 9c1c9224 1800c803 9d1c9224 cc00345c ^M
00ec3330: 9224c42d 32d09c0d 901434d2 c8603832 9f67802c c8639d1e 90141634 e0e30000 ^M
00ec3350: 6b600040 9034c862 00009cde 5634c862 9cbe9014 9034c862 00009cde 5634c862 ^M
00ec3370: 9cbe9014 9034c862 00009cde 5634c862 9cbe9014 9034c862 00009cde 5634c862 ^M
00ec3390: 9cbe8102 9034c862 00009014 0018ce83 00009e77 2000c408 2b9bc043 c8620000 ^M
00ec33b0: 9e365834 c6830000 c4081018 c8456000 9c0d599b c8600000 9226802c c8630000 ^M
00ec33d0: 90141634 34db9e56 6de532ea c803902e 902e1800 00000000 00000000 00000000 ^M
00ec33f0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ^M
00ec3410: 00000000 00000000 00000000 00000000 005e0056 006d0066 007d0075 008d0085 ^M
00ec3430: 009b0094 00a900a2 00b300ae 00bb00b8 00bf00bd <00bd00be> 00b500ba 00a600ae ^M
00ec3450: 008f009c 00710081 004b005f 001f0036 ffed0006 ffb6ffd2 ff7dff9a ff46ff61 ^M
00ec3470: ff14ff2c feebfefe fecefedb fec2fec6 fec9fec3 00000000 00000000 00000000 ^M
00ec3490: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ^M
00ec34b0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ^M
00ec34d0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ^M
00ec34f0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ^M
00ec3510: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ^M
00ec3530: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ^M
00ec3550: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ^M
00ec3570: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ^M
00ec3590: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ^M
00ec35b0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ^M
00ec35d0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ^M
00ec35f0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ^M
00ec3610: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ^M
00ec3630: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ^M
00ec3650: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ^M
00ec3670: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ^M
00ec3690: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ^M
00ec36b0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ^M
00ec36d0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ^M
00ec36f0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ^M
00ec3710: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ^M
00ec3730: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ^M
00ec3750: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ^M
00ec3770: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ^M
00ec3790: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ^M
00ec37b0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ^M
00ec37d0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ^M
00ec37f0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ^M
00ec3810: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ^M
00ec3830: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ^M
00ec3850: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ^M
00ec3870: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ^M
00ec3890: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ^M
00ec38b0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ^M
00ec38d0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ^M
00ec38f0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ^M
00ec3910: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ^M
00ec3930: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ^M
00ec3950: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ^M
00ec3970: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ^M
00ec3990: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ^M
00ec39b0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ^M
00ec39d0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ^M
00ec39f0: 00000000 00000000 12470923 248e1b6a 36d52db2 491d3ff9 5b645240 12470923 ^M
00ec3a10: 248e1b6a 36d52db2 491d3ff9 5b645240 12470923 248e1b6a 36d52db2 491d3ff9 ^M
00ec3a30: 5b645240 12470923 248e1b6a 36d52db2 491d3ff9 5b645240 65907530 3a985208 ^M
00ec3a50: 00001f40 c568e0c0 9a70adf8 65907530 3a985208 00001f40 c568e0c0 9a70adf8 ^M
00ec3a70: c800c800 c800c800 00004000 00004000 00004000 00004000 00000ccd 00001000 ^M
00ec3a90: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ^M
00ec3ab0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ^M
00ec3ad0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ^M
00ec3af0: 239520e5 230523d7 2361234a 2247223d 21e12392 1c151b6a 1c8b1dd6 1cd31d14 ^M
00ec3b10: 1b2c1b7e 1ad41b12 137e1560 1439140e 1415147e 13e71456 141b12de 0bd70fd8 ^M
00ec3b30: 0bd00a36 0a990b64 0ca50ced 0d910b29 21a91fd1 21c8224b 227d220e 22012209 ^M
00ec3b50: 20272266 15951706 168d15e3 17501780 16cb1708 164b1659 0eb511d8 0f7b0e15 ^M
00ec3b70: 0fc61030 102b1081 109f0f4a 09970e3b 09a20798 08d30986 0ad70aee 0c3409af ^M
00ec3b90: 2b670007 00007fff 00280028 00280028 00280028 00000028 00000000 00000000 ^M
00ec3bb0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ^M
00ec3bd0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ^M
00ec3bf0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ^M
00ec3c10: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ^M
00ec3c30: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ^M
00ec3c50: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ^M
00ec3c70: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ^M
00ec3c90: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ^M
00ec3cb0: 00000000 00000000 00000000 00000000 00000000 00000001 <00e9afc2> 00ec3e24 ^M
00ec3cd0: 00ec3484 00000000 00000000 03989388 65a57f61 00000000 00ec3d44 <00e2d7e4>^M
00ec3cf0: 00ccf9cc 00ec3e24 00000020 00000000 00ec4008 00ec4150 00ec3d18 00000000 ^M
00ec3d10: 00000000 038d7b50 000090ab 00e5fd40 00000006 00e5fe24 00000000 00000000 ^M
00ec3d30: 00ec4008 00ec4150 0000b0e4 00000000 00000000 00ec3e00 <00e356e6> 00ec3e24 ^M
00ec3d50: 00000020 03989388 00e5fd38 682034c9 9c073456 4bffce81 00009c0e 49fece81 ^M
00ec3d70: 00009c07 262cc400 000ae0a2 4bffce81 00009c0e 49fece81 00009c07 262ccc00 ^M
00ec3d90: 00009e13 34469e13 32da32d2 ff3ae3ff 32d334c1 e3ff32db e801ff35 00100000 ^M
00ec3db0: c42dcc00 0000901d 0001e103 a673ce80 9c049f6f ffece135 c8003832 9f67802c ^M
00ec3dd0: c8639d1e 9c041634 e0e20000 c8620039 9cde9034 c8620000 9c045634 c8629cbe ^M
00ec3df0: 9cde9034 c8620000 9c045634 c8629cbe 00000000 <00e8bdec> 00ec3e24 00000000 ^M
00ec3e10: 00004000 00000020 9da45634 c8629cbe 9e779034 03988a80 03988a80 00000000 ^M
00ec3e30: 00000000 00000402 000000b2 00000000 0398b690 00000000 00000000 00000000 ^M
00ec3e50: 00000000 00000000 00000000 00000000 00000000 00000000 00ec3e6c 00000000 ^M
00ec3e70: 00ec3e74 00000000 00000000 00000000 00ccf9cc 00e5fd38 80000000 00000000 ^M
00ec3e90: 00e691d8 002663e8 005fd414 00e2e8a8 <00e2da70> 00e5fcb4 00e5fcb4 00e691d8 ^M
00ec3eb0: 00000000 80000000 00000000 3237475f 5f424139 5f434544 434f5250 00535345 ^M
00ec3ed0: 00e6224c 00e62180 00e6224c 00e620d8 00e68f94 00e5fc8c 00e691d8 00000000 ^M
00ec3ef0: 0347923c 00000000 00e5fc38 00e5ff24 00e5fee0 00e6bb24 ffffffff 00000000 ^M
00ec3f10: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ^M
00ec3f30: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ^M
00ec3f50: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ^M
00ec3f70: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ^M
00ec3f90: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ^M
00ec3fb0: 00000000 00000000 00ec3e24 00000002 00000000 00000000 00000000 00000000 ^M
00ec3fd0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ^M
00ec3ff0: 00000000 00000000 00000000 00000000 00000000 ^M
Return addresses in stack:^M
frame 1 : <0x00e364da> [ /lib/libpthread.so.0 + 0x64da ]^M
address : <0x00e2cf84> [ /var/g729ab_testfdpic_so + 0xf84 ]^M
address : <0x00e2d128> [ /var/g729ab_testfdpic_so + 0x1128 ]^M
address : <0x00bd00be> /* kernel dynamic memory */^M
address : <0x00e9afc2> [ /lib/libc.so.0 + 0x1afc2 ]^M
address : <0x00e2d7e4> [ /var/g729ab_testfdpic_so + 0x17e4 ]^M
address : <0x00e356e6> [ /lib/libpthread.so.0 + 0x56e6 ]^M
address : <0x00e8bdec> [ /lib/libc.so.0 + 0xbdec ]^M
address : <0x00e2da70> [ /var/g729ab_testfdpic_so + 0x1a70 ]
...
--
Follow-ups
--- Yi Li 2009-06-09 05:39:50
To make this bug easy to reproduce:
1. the test program is built as:
bfin-linux-uclibc-gcc -I ../include/ -Wall -fno-jump-tables -DFDPIC -DDLOPEN \
-o g729ab_testfdpic_so.o -c g729ab_test.c
bfin-linux-uclibc-gcc -o g729ab_testfdpic_so g729ab_testfdpic_so.o -lpthread
-ldl
2. run the test program:
root:/> /var/g729ab_testfdpic_so $1 /var/test_data/g729a/std_in_en/SINE.BIN
/var
/test_data/g729a/std_out_en/SINEA.BIT --enc --g729a --mips
3. get HW error:
[snip]:
Hardware Trace:
0 Target : <0x00004cb4> { _trap_c + 0x0 }
Source : <0xffa00c10> { _evt_ivhw + 0xa0 } CALL pcrel
1 Target : <0xffa00bf2> { _evt_ivhw + 0x82 }
Source : <0xffa00be4> { _evt_ivhw + 0x74 } IF !CC JUMP
2 Target : <0xffa00b70> { _evt_ivhw + 0x0 }
Source : <0x03104f58> [ /var/g729ab_testfdpic_so + 0xf58 ] CALL
(P1)
3 Target : <0x03104f3c> [ /var/g729ab_testfdpic_so + 0xf3c ]
Source : <0x031050ec> [ /var/g729ab_testfdpic_so + 0x10ec ] CALL
pcrel
4 Target : <0x031050d4> [ /var/g729ab_testfdpic_so + 0x10d4 ]
4. register "P1" is "0xffa05268"
5. The disassembled code:
00000f3c <_G729AB_ENC>:
f3c: 00 e8 03 00 LINK 0xc; /* (12) */
f40: b8 b0 [FP + 0x8] = R0;
f42: f9 b0 [FP + 0xc] = R1;
f44: 3a b1 [FP + 0x10] = R2;
f46: 18 e4 2e 00 R0 = [P3 + 0xb8];
f4a: 10 32 P2 = R0;
f4c: 52 91 P2 = [P2];
f4e: f9 a0 R1 = [FP + 0xc];
f50: 3a a1 R2 = [FP + 0x10];
f52: b8 a0 R0 = [FP + 0x8];
f54: 51 91 P1 = [P2];
f56: 53 ac P3 = [P2 + 0x4];
f58: 61 00 CALL (P1);
f5a: 01 e8 00 00 UNLINK;
f5e: 10 00 RTS;
5. note that the L1 instruction mem 0xffa05268 looks does not contain correct
machine code:
return address: [0xffa05268]; contents of:
0xffa05240: 0003 0003 014b 014b 0003 0003 014b 014b
0xffa05250: 0003 0003 014b 014b 0003 0003 014b 014b
0xffa05260: 0003 0003 014b 014b [0003] 0003 014b 014b
0xffa05270: 0003 0003 014b 014b 0003 0003 014b 014b
So I think the loader did not load correct code to L1 instruction SRAM.
6. The same "binary" runs well on BF537-STAMP. And the corresponding
L1 mem looks as:
(gdb) si
0x028d4f58 212 (*g729ab_enc_process)(svptr, pcm_ptr, data_ptr);
1: x/i $pc 0x28d4f58 <G729AB_ENC+28>: CALL (P1);
(gdb) si
0xffa04e64 in ?? ()
1: x/i $pc 0xffa04e64: LINK 0x10; /* (16) */
(gdb) p $p1
$1 = (void *) 0xffa04e64
(gdb) x/8xb 0xffa04e60
0xffa04e60: 0x10 0x00 0x00 0x00 0x00 0xe8 0x04 0x00
(gdb) x/8xb 0xffa04e68
0xffa04e68: 0x3c 0xe1 0x00 0x00 0x3d 0xe1 0x00 0x00
--- Yi Li 2009-06-09 05:41:31
If adding "-mcpu=bf518-0.0" flag when building, I got the same
result:
1. Modify the Makefiles to use "-mcpu=bf518-0.0"
2. Build the library
make -C ../src.fdpic
make[2]: Entering directory
`/home/adam/new_workspace/local_svn/kernel/518/uclinux-dist/lib/libbfgdots/g729/src.fdpic'
bfin-linux-uclibc-gcc -Wall -mcpu=bf518-0.0 -DFLAG533 -DNOTIMER -DFDPIC -x
assembler-with-cpp -c -o acelp_code_a.o acelp_code_a.asm
bfin-linux-uclibc-gcc -Wall -mcpu=bf518-0.0 -DFLAG533 -DNOTIMER -DFDPIC -x
assembler-with-cpp -c -o dtx.o dtx.asm
bfin-linux-uclibc-gcc -Wall -mcpu=bf518-0.0 -DFLAG533 -DNOTIMER -DFDPIC -x
assembler-with-cpp -c -o lpc.o lpc.asm
bfin-linux-uclibc-gcc -Wall -mcpu=bf518-0.0 -DFLAG533 -DNOTIMER -DFDPIC -x
assembler-with-cpp -c -o pitch_a.o pitch_a.asm
bfin-linux-uclibc-gcc -Wall -mcpu=bf518-0.0 -DFLAG533 -DNOTIMER -DFDPIC -x
assembler-with-cpp -c -o tab_dtxe.o tab_dtxe.asm
bfin-linux-uclibc-gcc -Wall -mcpu=bf518-0.0 -DFLAG533 -DNOTIMER -DFDPIC -x
assembler-with-cpp -c -o allinitialdnew.o allinitialdnew.asm
bfin-linux-uclibc-gcc -Wall -mcpu=bf518-0.0 -DFLAG533 -DNOTIMER -DFDPIC -x
assembler-with-cpp -c -o allinitialenew.o allinitialenew.asm
bfin-linux-uclibc-gcc -Wall -mcpu=bf518-0.0 -DFLAG533 -DNOTIMER -DFDPIC -x
assembler-with-cpp -c -o dec_ld8a.o dec_ld8a.asm
bfin-linux-uclibc-gcc -Wall -mcpu=bf518-0.0 -DFLAG533 -DNOTIMER -DFDPIC -x
assembler-with-cpp -c -o lpcfunc.o lpcfunc.asm
bfin-linux-uclibc-gcc -Wall -mcpu=bf518-0.0 -DFLAG533 -DNOTIMER -DFDPIC -x
assembler-with-cpp -c -o postfilt.o postfilt.asm
bfin-linux-uclibc-gcc -Wall -mcpu=bf518-0.0 -DFLAG533 -DNOTIMER -DFDPIC -x
assembler-with-cpp -c -o coder.o coder.asm
bfin-linux-uclibc-gcc -Wall -mcpu=bf518-0.0 -DFLAG533 -DNOTIMER -DFDPIC -x
assembler-with-cpp -c -o dec_sid.o dec_sid.asm
bfin-linux-uclibc-gcc -Wall -mcpu=bf518-0.0 -DFLAG533 -DNOTIMER -DFDPIC -x
assembler-with-cpp -c -o gainped.o gainped.asm
bfin-linux-uclibc-gcc -Wall -mcpu=bf518-0.0 -DFLAG533 -DNOTIMER -DFDPIC -x
assembler-with-cpp -c -o lspgetq.o lspgetq.asm
bfin-linux-uclibc-gcc -Wall -mcpu=bf518-0.0 -DFLAG533 -DNOTIMER -DFDPIC -x
assembler-with-cpp -c -o qua_lsp.o qua_lsp.asm
bfin-linux-uclibc-gcc -Wall -mcpu=bf518-0.0 -DFLAG533 -DNOTIMER -DFDPIC -x
assembler-with-cpp -c -o vad.o vad.asm
bfin-linux-uclibc-gcc -Wall -mcpu=bf518-0.0 -DFLAG533 -DNOTIMER -DFDPIC -x
assembler-with-cpp -c -o cod_ld8a.o cod_ld8a.asm
bfin-linux-uclibc-gcc -Wall -mcpu=bf518-0.0 -DFLAG533 -DNOTIMER -DFDPIC -x
assembler-with-cpp -c -o dspfunc.o dspfunc.asm
bfin-linux-uclibc-gcc -Wall -mcpu=bf518-0.0 -DFLAG533 -DNOTIMER -DFDPIC -x
assembler-with-cpp -c -o l1_function.o l1_function.asm
bfin-linux-uclibc-gcc -Wall -mcpu=bf518-0.0 -DFLAG533 -DNOTIMER -DFDPIC -x
assembler-with-cpp -c -o decoder.o decoder.asm
bfin-linux-uclibc-gcc -Wall -mcpu=bf518-0.0 -DFLAG533 -DNOTIMER -DFDPIC -x
assembler-with-cpp -c -o tab_ld8a.o tab_ld8a.asm
bfin-linux-uclibc-gcc -Wall -mcpu=bf518-0.0 -DFLAG533 -DNOTIMER -DFDPIC -x
assembler-with-cpp -c -o tab_ld8ae.o tab_ld8ae.asm
bfin-linux-uclibc-gcc -Wall -mcpu=bf518-0.0 -DFLAG533 -DNOTIMER -DFDPIC -x
assembler-with-cpp -c -o g729comd.o g729comd.asm
bfin-linux-uclibc-gcc -Wall -mcpu=bf518-0.0 -DFLAG533 -DNOTIMER -DFDPIC -x
assembler-with-cpp -c -o g729comc.o g729comc.asm
bfin-linux-uclibc-gcc -Wall -mcpu=bf518-0.0 -DFLAG533 -DNOTIMER -DFDPIC -x
assembler-with-cpp -c -o lspdec.o lspdec.asm
bfin-linux-uclibc-gcc -Wall -mcpu=bf518-0.0 -DFLAG533 -DNOTIMER -DFDPIC -x
assembler-with-cpp -c -o qua_gain.o qua_gain.asm
bfin-linux-uclibc-gcc -Wall -mcpu=bf518-0.0 -DFLAG533 -DNOTIMER -DFDPIC -x
assembler-with-cpp -c -o tab_dtx.o tab_dtx.asm
bfin-linux-uclibc-ar rc libg729ab.a acelp_code_a.o dtx.o lpc.o pitch_a.o
tab_dtxe.o allinitialdnew.o allinitialenew.o dec_ld8a.o lpcfunc.o postfilt.o
coder.o dec_sid.o gainped.o lspgetq.o qua_lsp.o vad.o cod_ld8a.o dspfunc.o
l1_function.o decoder.o tab_ld8a.o tab_ld8ae.o g729comd.o g729comc.o lspdec.o
qua_gain.o tab_dtx.o
# partially link into one object file
bfin-linux-uclibc-ld -r -o partial.o acelp_code_a.o dtx.o lpc.o pitch_a.o
tab_dtxe.o allinitialdnew.o allinitialenew.o dec_ld8a.o lpcfunc.o postfilt.o
coder.o dec_sid.o gainped.o lspgetq.o qua_lsp.o vad.o cod_ld8a.o dspfunc.o
l1_function.o decoder.o tab_ld8a.o tab_ld8ae.o g729comd.o g729comc.o lspdec.o
qua_gain.o tab_dtx.o
# now make most symbols local. This ensures any calls
# don't use the PLT method which is not compatable with
# the G729 asm (the asm uses the same registers as the
# PLT code)
bfin-linux-uclibc-objcopy \
-G _G729AB_ENC_PROCESS \
-G _G729AB_ENC_RESET \
-G _G729AB_DEC_PROCESS \
-G _G729AB_DEC_RESET \
partial.o partial_local.o
# finally, create the .so
bfin-linux-uclibc-gcc -mcpu=bf518-0.0 -shared -o libg729ab.so partial_local.o
\
-Wl,-sep-code -Wl,-code-in-l1 -Wl,-z,now -Wl,-data-in-l1
make[2]: Leaving directory
`/home/adam/new_workspace/local_svn/kernel/518/uclinux-dist/lib/libbfgdots/g729/src.fdpic'
3. Build the test program
bfin-linux-uclibc-gcc -I ../include/ -Wall -g -mcpu=bf518-0.0 -fno-jump-tables
-DFDPIC -DDLOPEN \
-o g729ab_testfdpic_so.o -c g729ab_test.c
bfin-linux-uclibc-gcc -o g729ab_testfdpic_so g729ab_testfdpic_so.o -lpthread
-ldl -mcpu=bf518-0.0
--- Yi Li 2009-06-09 05:42:18
So I think this may be a HW or toolchain bug.
--- Yi Li 2009-06-09 23:39:39
Using gdbproxy to disassemble the L1 instruction mem on BF518, it contains
illegal instruction.
(gdb) disassemble 0xffa05260 0xffa05270
Dump of assembler code from 0xffa05260 to 0xffa05270:
0xffa05260: ILLEGAL
0xffa05262: ILLEGAL
0xffa05264: [--SP] = P3;
0xffa05266: [--SP] = P3;
0xffa05268: ILLEGAL
0xffa0526a: ILLEGAL
0xffa0526c: [--SP] = P3;
0xffa0526e: [--SP] = P3;
End of assembler dump.
--- Robin Getz 2009-06-10 00:39:27
What version of 518?
The memory mapped changed between 0.0 and 0.1
See Anomaly 05000444 - Incorrect L1 Instruction Bank B Memory Map Location:
We should only be testing things in L1 on 0.1 (It looks like you are testing on
ADSP-BF518-0.0) - so I think we can reject this bug.
-Robin
--- Vivi Li 2009-06-10 02:07:18
We only got 518 0.0 cpu version for testing.
--- Yi Li 2009-06-11 04:07:22
reject the bug as Robin says.
--- Yi Li 2009-06-11 05:18:20
As Sonic suggests, re-accept this bug. Add a task to workaround this anomaly:
--- Robin Getz 2009-06-11 08:18:46
We are going to obsolete support for 0.0 in a few weeks.
Please don't waste time working on something that we have no plans for long
term support.
-Robin
--- Yi Li 2009-06-11 22:58:49
Closed the task for anomaly 05000444. Leave this bug open to be verify on
BF518-0.1.
--- Vivi Li 2009-12-16 23:15:43
With latest BF518F-EZBRD silicon revision 0.1, test g729 with g729ab_testfdpic
and g729ab_testfdpic_so, both are failed and kernel reboot.
Bellow is the example for g729ab_testfdpic:
--
root:/var> ./alltests.sh g729ab_testfdpic
U-Boot 2009.08-svn2141 (ADI-2009R2-pre) (Dec 07 2009 - 14:46:26)
CPU: ADSP bf518-0.1 (Detected Rev: 0.1) (parallel flash boot)
Board: ADI BF518F EZ-Board board
Support: http://blackfin.uclinux.org/
Clock: VCO: 400 MHz, Core: 400 MHz, System: 80 MHz
RAM: 64 MB
Flash: 4 MB
MMC: Blackfin SDH: 0
In: serial
Out: serial
Err: serial
Net: Blackfin EMAC
Hit any key to stop autoboot: 0
bfin>
--
--- Vivi Li 2009-12-25 04:10:03
Bellow is the latest g729 test on BF518F-EZBRD silicon revision 0.1 in 09r1.1
branch.
config is attached.
--
root:/>
kernel: Linux release 2.6.28.10-ADI-2009R1.1-svn8074, build #4 Fri Dec 25
05:25:22 CST 2009^M
toolchain: bfin-uclinux-gcc release gcc version 4.1.2 (ADI svn)^M
user-dist: release svn-9302, build #45 Fri Dec 25 05:24:45 CST 2009^M
root:/>
root:/var> ./alltests.sh g729ab_testfdpic
Not enough L1 instruction sram
Unable to load executable
SIGSEGV
(...)
Not enough L1 instruction sram^M
Not enough L1 instruction sram^M
Unable to load executable^M
SIGSEGV^M
Not enough L1 instruction sram^M
Unable to load executable^M
SIGSEGV^M
root:/var>
--
--- Yi Li 2010-01-21 04:52:58
This result is expected since BF518 has 32KB L1 Instruction SRAM, and g729
library is too big to fit into. (BF537 has 48KB Instruction SRAM).
# uclinux-dist/lib/libbfgdots/g729/src.fdpic$ bfin-linux-uclibc-readelf -a
libg729ab.so
Section Headers:
[Nr] Name Type Addr Off Size ES Flg Lk Inf
Al
[ 7] .init PROGBITS 00000a8c 000a8c 00001a 00 AX 0 0
1
[ 8] .text PROGBITS 00000aa8 000aa8 008260 00 AX 0 0
8
[ 9] .fini PROGBITS 00008d08 008d08 000014 00 AX 0 0
1
The size of .text section is 0x8260 (32.5KB).
So - I think the L1 instruction issue on BF518F-0.0 chip is considered fixed on
BF518F-0.1. This bug can be closed.
Files
Changes
Commits
Dependencies
Duplicates
Associations
Tags
File Name File Type File Size Posted By
config.kernel application/octet-stream 29570 Vivi Li
config.user application/octet-stream 45431 Vivi Li
g729.tar.gz application/x-gzip 16001 Vivi Li