Post Go back to editing

BF609 mcapi_test hangs on cces_msg1

https://docs.blackfin.uclinux.org/doku.php?id=test_mcapiI have been trying to test mcapi between the latest releast ucLinux 2014R1-RC2 on core0 and a CCES v2 application on core1.

 

I have been following https://docs.blackfin.uclinux.org/doku.php?id=test_icc and have run the icc test with the following result:

 

root:/> icc_loader -l bin/icc

load elf code to core B

writing to 0xc8088000, 0x7538    bytes: OK

writing to 0xff600000, 0xb8      bytes: OK

root:/> icc_loader -e bin/task1

kill current task and invalidate dcache on core B

load elf code to core B

writing to 0x07c00000, 0x12c     bytes: OK

task_init_addr 7c00000

task_exit_addr 7c00100

root:/> packet_test -s 123

sp packet 4

begin create ep

finish create ep session index = 1

696e6966

0

0

0

6873

root:/>

 

 

It is not clear to me whether this is working or not, but being optimistic (!!!) it does not report any errors to I continued to https://docs.blackfin.uclinux.org/doku.php?id=test_mcapi and hoped for the best.  The initial test seems to work:

 

root:/> icc_loader -l bin/icc

load elf code to core B

writing to 0xc8088000, 0x7538    bytes: OK

writing to 0xff600000, 0xb8      bytes: OK

root:/> icc_loader -e bin/mcapi_msg1

kill current task and invalidate dcache on core B

load elf code to core B

writing to 0x07c00000, 0x42cc    bytes: OK

task_init_addr 7c00118

task_exit_addr ffffffff

root:/> msg1

MCAPI_DEBUG:mcapi_trans_initialize 865

MCAPI_DEBUG:mcapi_trans_initialize_ 825

MCAPI_DEBUG:mcapi_trans_initialize_ 853 db addr 03480000 size 2c34c

MCAPI_DEBUG:mcapi_trans_initialize_ 857

MCAPI_DEBUG: node index 0 ep index 1

node=0, port=101

ep1 65

MCAPI_DEBUG: mcapi_trans_get_endpoint_internal node_num=1, port_num=5

node=1, port=5

ep2 10005

MCAPI_DEBUG:domain 0 node 0 endpoint 101

MCAPI_DEBUG:index 0 101

MCAPI_DEBUG:index 101 101

MCAPI_DEBUG:mcapi_trans_valid_endpoint endpoint=0x65 (database indices: n=0,e=101) rc=1

MCAPI_DEBUG:domain 0 node 0 endpoint 101

MCAPI_DEBUG:domain 0 node 1 endpoint 5

MCAPI_DEBUG:index 0 101

MCAPI_DEBUG:index 101 101

MCAPI_DEBUG:index 1, se 101, sn 0

MCAPI_DEBUG:index 1, re 5, rn 1

endpoint=101 has sent: [HELLO_MCAPI 0]

coreA: The 0 time sending, status 1

MCAPI_DEBUG:domain 0 node 0 endpoint 101

MCAPI_DEBUG:index 0 101

MCAPI_DEBUG:index 101 101

MCAPI_DEBUG:mcapi_trans_valid_endpoint endpoint=0x65 (database indices: n=0,e=101) rc=1

MCAPI_DEBUG:domain 0 node 0 endpoint 101

MCAPI_DEBUG:domain 0 node 1 endpoint 5

MCAPI_DEBUG:index 0 101

MCAPI_DEBUG:index 101 101

MCAPI_DEBUG:index 1, se 101, sn 0

MCAPI_DEBUG:index 1, re 5, rn 1

endpoint=101 has sent: [HELLO_MCAPI 1]

coreA: The 1 time sending, status 1

MCAPI_DEBUG:domain 0 node 0 endpoint 101

MCAPI_DEBUG:index 0 101

MCAPI_DEBUG:index 101 101

MCAPI_DEBUG:mcapi_trans_valid_endpoint endpoint=0x65 (database indices: n=0,e=101) rc=1

MCAPI_DEBUG:domain 0 node 0 endpoint 101

MCAPI_DEBUG:domain 0 node 1 endpoint 5

MCAPI_DEBUG:index 0 101

MCAPI_DEBUG:index 101 101

MCAPI_DEBUG:index 1, se 101, sn 0

MCAPI_DEBUG:index 1, re 5, rn 1

endpoint=101 has sent: [HELLO_MCAPI 2]

coreA: The 2 time sending, status 1

MCAPI_DEBUG:domain 0 node 0 endpoint 101

MCAPI_DEBUG:index 0 101

MCAPI_DEBUG:index 101 101

MCAPI_DEBUG:mcapi_trans_valid_endpoint endpoint=0x65 (database indices: n=0,e=101) rc=1

MCAPI_DEBUG:domain 0 node 0 endpoint 101

MCAPI_DEBUG:domain 0 node 1 endpoint 5

MCAPI_DEBUG:index 0 101

MCAPI_DEBUG:index 101 101

MCAPI_DEBUG:index 1, se 101, sn 0

MCAPI_DEBUG:index 1, re 5, rn 1

endpoint=101 has sent: [HELLO_MCAPI 3]

coreA: The 3 time sending, status 1

MCAPI_DEBUG:domain 0 node 0 endpoint 101

MCAPI_DEBUG:index 0 101

MCAPI_DEBUG:index 101 101

MCAPI_DEBUG:mcapi_trans_valid_endpoint endpoint=0x65 (database indices: n=0,e=101) rc=1

MCAPI_DEBUG:domain 0 node 0 endpoint 101

MCAPI_DEBUG:index 0 101

MCAPI_DEBUG:index 101 101

MCAPI_DEBUG:mcapi_trans_msg_available avail = 1

MCAPI_DEBUG:domain 0 node 0 endpoint 101

MCAPI_DEBUG:index 0 101

MCAPI_DEBUG:index 101 101

MCAPI_DEBUG:mcapi_trans_valid_endpoint endpoint=0x65 (database indices: n=0,e=101) rc=1

MCAPI_DEBUG:domain 0 node 0 endpoint 101

MCAPI_DEBUG:index 0 101

MCAPI_DEBUG:index 101 101

session_idx 1

MCAPI_DEBUG:index 1, se 5, sn 1

node=1, port=5

endpoint=101 has received: [HELLO_MCAPI 0]

CoreA : message recv. The 0 time receiving , status 1

MCAPI_DEBUG:domain 0 node 0 endpoint 101

MCAPI_DEBUG:index 0 101

MCAPI_DEBUG:index 101 101

MCAPI_DEBUG:mcapi_trans_valid_endpoint endpoint=0x65 (database indices: n=0,e=101) rc=1

MCAPI_DEBUG:domain 0 node 0 endpoint 101

MCAPI_DEBUG:index 0 101

MCAPI_DEBUG:index 101 101

MCAPI_DEBUG:mcapi_trans_msg_available avail = 3

MCAPI_DEBUG:domain 0 node 0 endpoint 101

MCAPI_DEBUG:index 0 101

MCAPI_DEBUG:index 101 101

MCAPI_DEBUG:mcapi_trans_valid_endpoint endpoint=0x65 (database indices: n=0,e=101) rc=1

MCAPI_DEBUG:domain 0 node 0 endpoint 101

MCAPI_DEBUG:index 0 101

MCAPI_DEBUG:index 101 101

session_idx 1

MCAPI_DEBUG:index 1, se 5, sn 1

node=1, port=5

endpoint=101 has received: [HELLO_MCAPI 1]

CoreA : message recv. The 1 time receiving , status 1

MCAPI_DEBUG:domain 0 node 0 endpoint 101

MCAPI_DEBUG:index 0 101

MCAPI_DEBUG:index 101 101

MCAPI_DEBUG:mcapi_trans_valid_endpoint endpoint=0x65 (database indices: n=0,e=101) rc=1

MCAPI_DEBUG:domain 0 node 0 endpoint 101

MCAPI_DEBUG:index 0 101

MCAPI_DEBUG:index 101 101

MCAPI_DEBUG:mcapi_trans_msg_available avail = 2

MCAPI_DEBUG:domain 0 node 0 endpoint 101

MCAPI_DEBUG:index 0 101

MCAPI_DEBUG:index 101 101

MCAPI_DEBUG:mcapi_trans_valid_endpoint endpoint=0x65 (database indices: n=0,e=101) rc=1

MCAPI_DEBUG:domain 0 node 0 endpoint 101

MCAPI_DEBUG:index 0 101

MCAPI_DEBUG:index 101 101

session_idx 1

MCAPI_DEBUG:index 1, se 5, sn 1

node=1, port=5

endpoint=101 has received: [HELLO_MCAPI 2]

CoreA : message recv. The 2 time receiving , status 1

MCAPI_DEBUG:domain 0 node 0 endpoint 101

MCAPI_DEBUG:index 0 101

MCAPI_DEBUG:index 101 101

MCAPI_DEBUG:mcapi_trans_valid_endpoint endpoint=0x65 (database indices: n=0,e=101) rc=1

MCAPI_DEBUG:domain 0 node 0 endpoint 101

MCAPI_DEBUG:index 0 101

MCAPI_DEBUG:index 101 101

MCAPI_DEBUG:mcapi_trans_msg_available avail = 1

MCAPI_DEBUG:domain 0 node 0 endpoint 101

MCAPI_DEBUG:index 0 101

MCAPI_DEBUG:index 101 101

MCAPI_DEBUG:mcapi_trans_valid_endpoint endpoint=0x65 (database indices: n=0,e=101) rc=1

MCAPI_DEBUG:domain 0 node 0 endpoint 101

MCAPI_DEBUG:index 0 101

MCAPI_DEBUG:index 101 101

session_idx 1

MCAPI_DEBUG:index 1, se 5, sn 1

node=1, port=5

endpoint=101 has received: [HELLO_MCAPI 3]

CoreA : message recv. The 3 time receiving , status 1

MCAPI_DEBUG:domain 0 node 0 endpoint 101

MCAPI_DEBUG:index 0 101

MCAPI_DEBUG:index 101 101

MCAPI_DEBUG:mcapi_trans_valid_endpoint endpoint=0x65 (database indices: n=0,e=101) rc=1

MCAPI_DEBUG:domain 0 node 0 endpoint 101

MCAPI_DEBUG:index 0 101

MCAPI_DEBUG:index 101 101

MCAPI_DEBUG:domain 0 node 0 endpoint 101

MCAPI_DEBUG:index 0 101

MCAPI_DEBUG:index 101 101

mcapi_finalize 322 

CoreA Test PASSED

root:/>

 

But then I try the core1 CCES application test, it hangs.  I have build the BF609 EZ BOARD installed C:\Analog Devices\ADSP-BF609_Evaluation_Board-Rel1.1.0\BF609_EZ-Board\Blackfin\Examples\services\mcapi\BF609_MCAPI_msg project in CCES v2 and tried to adjust as per https://docs.blackfin.uclinux.org/doku.php?id=test_mcapi though the instructions seem to be for an old version of CCES.  I have also adjusted my kernel boot command line parameters as per the instructions:

 

U-Boot 2013.07 (ADI-2014R1) (Jul 09 2014 - 18:59:03)

 

CPU: ADSP bf609-0.0 (Detected Rev: 0.0) (rsi master boot)

Board: ADI BF609 EZ-Kit board

Support: http://blackfin.uclinux.org/

Clock: VCO: 500 MHz, Core: 500 MHz, System0: 125 MHz, System1: 125 MHz, Dclk: 250 MHz

RAM: 128 MiB

Flash: 16 MiB

MMC: Blackfin SDH: 0

In: serial

Out: serial

Err: serial

KGDB: [on serial] ready

other init

Net: mii0

Hit any key to stop autoboot:  0

24127880 bytes read in 8187 ms (2.8 MiB/s)

## Booting kernel from Legacy Image at 04000000 ...

Image Name: bf609-0.0-3.10.10-ADI-2014R1

Image Type:   Blackfin Linux Kernel Image (gzip compressed)

Data Size:    24127816 Bytes = 23 MiB

Load Address: 00001000

Entry Point:  002b79ec

Verifying Checksum ... OK

Uncompressing Kernel Image ... OK

Starting Kernel at = 002b79ec

Linux version 3.10.10-ADI-2014R1 (vm@ubuntu) (gcc version 4.3.5 (ADI-2014R1-RC2) ) #21 Fri Jan 22 14:28:58 GMT 2016

register early platform devices

bootconsole [early_shadow0] enabled

ERROR: Not running on ADSP-BF609: unknown CPUID 0x0000 Rev 0.0

bootconsole [early_BFuart0] enabled

early printk enabled on early_BFuart0

Board Memory: 128MB

Kernel Managed Memory: 124MB

Memory map:

fixedcode = 0x00000400-0x00000490

text      = 0x00001000-0x001d8ac0

rodata    = 0x001d8ae4-0x00275cbc

bss       = 0x00276000-0x0028b434

data      = 0x0028b440-0x002b4000

stack   = 0x002b2000-0x002b4000

init      = 0x002b4000-0x030ad000

available = 0x030ad000-0x07b00000

  DMA Zone  = 0x07b00000-0x07c00000

Hardware Trace active and enabled

Blackfin support (C) 2004-2010 Analog Devices, Inc.

Compiled for ADSP-BF609 Rev 0.0

Blackfin Linux support by http://blackfin.uclinux.org/

Processor Speed: 500 MHz core clock, 125 MHz SCLk, 125 MHz SCLK0, 125 MHz SCLK1 and 250 MHz DCLK

NOMPU: setting up cplb tables

Instruction Cache Enabled for CPU0

External memory: cacheable in instruction cache

  L2 SRAM        : uncacheable in instruction cache

Data Cache Enabled for CPU0

External memory: cacheable (write-through) in data cache

  L2 SRAM        : uncacheable in data cache

Built 1 zonelists in Zone order, mobility grouping off.  Total pages: 31242

Kernel command line: root=/dev/mmcblk0p1 rw clkin_hz=(25000000) earlyprintk=serial,uart0,57600 console=ttyBF0,57600 mem=124M max_mem=128M icc_l2_mem=0x8000

PID hash table entries: 512 (order: -1, 2048 bytes)

Dentry cache hash table entries: 16384 (order: 4, 65536 bytes)

Inode-cache hash table entries: 8192 (order: 3, 32768 bytes)

Sorting __ex_table...

Memory available: 74940k/126976k RAM, (47076k init code, 1886k kernel code, 878k data, 1024k dma, 1172k reserved)

NR_IRQS:291

Configuring Blackfin Priority Driven Interrupts

Console: colour dummy device 80x25

Calibrating delay loop... 989.18 BogoMIPS (lpj=1978368)

pid_max: default: 32768 minimum: 301

Mount-cache hash table entries: 512

devtmpfs: initialized

Blackfin Scratchpad data SRAM: 4 KB

Blackfin L1 Data A SRAM: 16 KB (9 KB free)

Blackfin L1 Data B SRAM: 16 KB (16 KB free)

Blackfin L1 Instruction SRAM: 64 KB (51 KB free)

Blackfin L2 SRAM: 256 KB (224 KB free)

pinctrl core: initialized pinctrl subsystem

NET: Registered protocol family 16

Blackfin DMA Controller

ezkit_init(): registering device resources

bio: create slab <bio-0> at 0

SCSI subsystem initialized

usbcore: registered new interface driver usbfs

usbcore: registered new interface driver hub

usbcore: registered new device driver usb

i2c-bfin-twi i2c-bfin-twi.0: Blackfin on-chip I2C TWI Contoller, regs_base@ffc01e00

i2c-bfin-twi i2c-bfin-twi.1: Blackfin on-chip I2C TWI Contoller, regs_base@ffc01f00

pps_core: LinuxPPS API ver. 1 registered

pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti giometti@linux.it

PTP clock support registered

NET: Registered protocol family 23

Switching to clocksource bfin_cs_cycles

NET: Registered protocol family 2

TCP established hash table entries: 1024 (order: 1, 8192 bytes)

TCP bind hash table entries: 1024 (order: 0, 4096 bytes)

TCP: Hash tables configured (established 1024 bind 1024)

TCP: reno registered

UDP hash table entries: 256 (order: 0, 4096 bytes)

UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)

NET: Registered protocol family 1

msgmni has been set to 146

io scheduler noop registered (default)

bfin-uart: Blackfin serial driver

bfin-uart.0: ttyBF0 at MMIO 0xffc02000 (irq = 88) is a BFIN-UART

console [ttyBF0] enabled, bootconsole disabled

console [ttyBF0] enabled, bootconsole disabled

CAN device driver interface

bfin_can bfin_can.0: bfin_can device registered(&reg_base=ffc00a00, rx_irq=47, tx_irq=48, err_irq=49, sclk=125000000)

stmmac - user ID: 0x10, Synopsys ID: 0x36

Enhanced/Alternate descriptors

            Enabled extended descriptors

Ring mode enabled

DMA HW capability register supported

RX Checksum Offload Engine supported (type 2)

Wake-Up On Lan supported

Enable RX Mitigation via HW Watchdog Timer

libphy: stmmac: probed

eth0: PHY ID 20005c90 at 1 IRQ 0 (stmmac-0:01) active

usbcore: registered new interface driver usb-storage

input: bfin-rotary as /devices/platform/bfin-rotary/input/input0

i2c /dev entries driver

bfin_wdt: initialized: timeout=20 sec (nowayout=0)

dma_alloc_init: dma_page @ 0x033b4000 - 256 pages at 0x07b00000

usbcore: registered new interface driver usbhid

usbhid: USB HID core driver

icc icc.0: initialized

TCP: cubic registered

NET: Registered protocol family 17

can: controller area network core (rev 20120528 abi 9)

NET: Registered protocol family 29

can: raw protocol (rev 20120528)

can: broadcast manager protocol (rev 20120528 t)

can: netlink gateway (rev 20130117) max_hops=1

Freeing unused kernel memory: 47076K (2b4000 - 30ad000)

mmc0: host does not support reading read-only switch. assuming write-enable.

mmc0: new SD card at address b368

mmcblk0: mmc0:b368 SMI   1.85 GiB

mmcblk0: p1

eth0: device MAC address 02:80:ad:20:31:e8

input: AD7879 Touchscreen as /devices/platform/bfin-spi3.0/spi_master/spi0/spi0.65/input/input1

BusyBox v1.21.1 (2016-01-18 11:18:53 GMT) hush - the humble shell

root:/> libphy: stmmac-0:01 - Link is Up - 100/Full

root:/> icc_loader -l /tmp/BF609_MCAPI_msg_Core1.dxe

load elf code to core B

writing to 0xff600000, 0x7f46    bytes: OK

writing to 0xff5005d0, 0x8       bytes: OK

writing to 0xff501118, 0x20c8    bytes: OK

writing to 0xff503720, 0xf8      bytes: OK

writing to 0xff500000, 0x59b     bytes: OK

writing to 0xff50059c, 0x34      bytes: OK

writing to 0xff5005d8, 0xb40     bytes: OK

writing to 0xff5031e0, 0x540     bytes: OK

writing to 0xc80a8000, 0x1a      bytes: OK

writing to 0xc8088210, 0x560     bytes: OK

writing to 0xc80a801c, 0x10      bytes: OK

root:/> cces_msg1

MCAPI_DEBUG:mcapi_trans_initialize 865

MCAPI_DEBUG:mcapi_trans_initialize_ 825

MCAPI_DEBUG:mcapi_trans_initialize_ 853 db addr 03640000 size 2c34c

MCAPI_DEBUG:mcapi_trans_initialize_ 857

MCAPI_DEBUG: node index 0 ep index 1

node=0, port=101

ep1 65

MCAPI_DEBUG: node index 0 ep index 2

node=0, port=2

ep4 2

MCAPI_DEBUG: mcapi_trans_get_endpoint_internal node_num=1, port_num=0

node=1, port=0

ep2 10000

MCAPI_DEBUG: mcapi_trans_get_endpoint_internal node_num=1, port_num=1

node=1, port=1

ep3 10001

MCAPI_DEBUG:domain 0 node 0 endpoint 101

MCAPI_DEBUG:index 0 101

MCAPI_DEBUG:index 101 101

MCAPI_DEBUG:mcapi_trans_valid_endpoint endpoint=0x65 (database indices: n=0,e=101) rc=1

MCAPI_DEBUG:domain 0 node 0 endpoint 101

MCAPI_DEBUG:domain 0 node 1 endpoint 0

MCAPI_DEBUG:index 0 101

MCAPI_DEBUG:index 101 101

MCAPI_DEBUG:index 1, se 101, sn 0

MCAPI_DEBUG:index 1, re 0, rn 1

endpoint=101 has sent: [1]

DSP data before

1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7fffffff80ffffff81ffffff82ffffff83ffffff84ffffff85ffffff86ffffff87ffffff88ffffff89ffffff8affffff8bffffff8cffffff8dffffff8effffff8fffffff90ffffff91ffffff92ffffff93ffffff94ffffff95ffffff96ffffff97ffffff98ffffff99ffffff9affffff9bffffff9cffffff9dMCAPI_DEBUG:domain 0 node 0 endpoint 101

MCAPI_DEBUG:index 0 101

MCAPI_DEBUG:index 101 101

MCAPI_DEBUG:mcapi_trans_valid_endpoint endpoint=0x65 (database indices: n=0,e=101) rc=1

MCAPI_DEBUG:domain 0 node 0 endpoint 101

MCAPI_DEBUG:domain 0 node 1 endpoint 1

MCAPI_DEBUG:index 0 101

MCAPI_DEBUG:index 101 101

MCAPI_DEBUG:index 1, se 101, sn 0

MCAPI_DEBUG:index 1, re 1, rn 1

endpoint=101 has sent: [1]

MCAPI_DEBUG:domain 0 node 0 endpoint 101

MCAPI_DEBUG:index 0 101

MCAPI_DEBUG:index 101 101

MCAPI_DEBUG:mcapi_trans_valid_endpoint endpoint=0x65 (database indices: n=0,e=101) rc=1

MCAPI_DEBUG:domain 0 node 0 endpoint 101

MCAPI_DEBUG:domain 0 node 1 endpoint 0

MCAPI_DEBUG:index 0 101

MCAPI_DEBUG:index 101 101

MCAPI_DEBUG:index 1, se 101, sn 0

MCAPI_DEBUG:index 1, re 0, rn 1

endpoint=101 has sent: [4]

MCAPI_DEBUG:domain 0 node 0 endpoint 2

MCAPI_DEBUG:index 0 2

MCAPI_DEBUG:index 101 2

MCAPI_DEBUG:index 2 2

MCAPI_DEBUG:mcapi_trans_valid_endpoint endpoint=0x2 (database indices: n=0,e=2) rc=1

MCAPI_DEBUG:domain 0 node 0 endpoint 2

MCAPI_DEBUG:index 0 2

MCAPI_DEBUG:index 101 2

MCAPI_DEBUG:index 2 2

session_idx 2

 

(forgive formatting, I am really struggling to use this forum editor ...)

 

And there it hangs ...

 

Any suggestions for what is wrong or how to fix it appreciated ...

 

Parents
  • Will, in my case I will not have concurrency problems because only core 0 will begin transmission. Core 1 will set memory fields and set ready flag. Core 0 just write start flag, there are no variables which can be write at the same time by both cores.


    And the main advantage - I can do it in my Qt app without another mcapi provider.


    Aaronwu, I tried dxe from testsuites and I get correct results as you write. But dxe compiled by myself not work. I think there are problem in project configuration in Cross Core Studio.

Reply
  • Will, in my case I will not have concurrency problems because only core 0 will begin transmission. Core 1 will set memory fields and set ready flag. Core 0 just write start flag, there are no variables which can be write at the same time by both cores.


    And the main advantage - I can do it in my Qt app without another mcapi provider.


    Aaronwu, I tried dxe from testsuites and I get correct results as you write. But dxe compiled by myself not work. I think there are problem in project configuration in Cross Core Studio.

Children
No Data