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(®_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 ...