[#5204] Kernel panics in g729 test in BF518F-EZBRD

Document created by Aaronwu Employee on Sep 3, 2013
Version 1Show Document
  • View in full screen mode

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

http://blackfin.uclinux.org/gf/project/uclinux-dist/tracker/?action=TrackerItemEdit&tracker_item_id=5235

 

--- 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

Attachments

Outcomes